Win VTK
E:\PCL_VS\Vizum_filter\CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(Vizum_filter LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(VTK REQUIRED)
# PCL
find_package(PCL REQUIRED)
# Fix a compilation bug under ubuntu 16.04 (Xenial)
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
include_directories(${PCL_INCLUDE_DIRS})
add_definitions(${PCL_DEFINITIONS})
find_package(Qt5 COMPONENTS Core Widgets Gui REQUIRED)
add_executable(Vizum_filter
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
typedefs.h
)
#target_link_libraries(Vizum_filter PRIVATE Qt5::Widgets)
target_link_libraries(Vizum_filter ${PCL_LIBRARIES} Qt5::Core Qt5::Widgets Qt5::Gui)
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
typedef pcl::PointXYZ PointT;
typedef pcl::PointCloud<PointT> PointCloud;
typedef pcl::PointCloud<PointT>::Ptr PointCloudPtr;
typedef pcl::PointCloud<PointT>::ConstPtr PointCloudConstPtr;
// VTK 相关
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
#include <vtkRenderWindow.h>
void MainWindow::m_initialVtkWidget()
{
m_cloudPtr.reset(new PointCloud);
viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
viewer->addPointCloud(m_cloudPtr, "cloud");
ui->qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
viewer->setupInteractor(ui->qvtkWidget->GetInteractor(), ui->qvtkWidget->GetRenderWindow());
ui->qvtkWidget->update();
}
viewer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "cloud"); viewer->updatePointCloud(m_cloudPtr, "cloud"); viewer->resetCamera(); ui->qvtkWidget->update();