2727#include < QFileDialog>
2828#include < QKeyEvent>
2929
30- SLPointCloudWidget::SLPointCloudWidget (QWidget *parent) : QVTKWidget(parent), surfaceReconstruction(false ) {
30+ SLPointCloudWidget::SLPointCloudWidget (QWidget *parent) : QVTKWidget(parent), surfaceReconstruction(false ),CordAdjust( true ) {
3131
3232 visualizer = new pcl::visualization::PCLVisualizer (" PCLVisualizer" , false );
3333 this ->SetRenderWindow (visualizer->getRenderWindow ());
@@ -38,7 +38,7 @@ SLPointCloudWidget::SLPointCloudWidget(QWidget *parent) : QVTKWidget(parent), su
3838
3939 // Create point cloud viewport
4040 visualizer->setBackgroundColor (255 , 255 , 255 );
41- visualizer->addCoordinateSystem (50 , 0 );
41+ // visualizer->addCoordinateSystem(50, 0);
4242 visualizer->setCameraPosition (0 ,0 ,-50 ,0 ,0 ,0 ,0 ,-1 ,0 );
4343 visualizer->setCameraClipDistances (0.1 , 10000 );
4444 // Initialize point cloud color handler
@@ -59,7 +59,7 @@ void SLPointCloudWidget::updateCalibration(){
5959 calibration.load (" calibration.xml" );
6060
6161 // Camera coordinate system
62- visualizer->addCoordinateSystem (50 , " camera" , 0 );
62+ // visualizer->addCoordinateSystem(50, "camera", 0);
6363
6464 // Projector coordinate system
6565 cv::Mat TransformPCV (3 , 4 , CV_32F);
@@ -68,7 +68,7 @@ void SLPointCloudWidget::updateCalibration(){
6868 Eigen::Affine3f TransformP;
6969 cv::cv2eigen (TransformPCV, TransformP.matrix ());
7070
71- visualizer->addCoordinateSystem (50 , TransformP.inverse (), " projector" , 0 );
71+ // visualizer->addCoordinateSystem(50, TransformP.inverse(), "projector", 0);
7272}
7373
7474void SLPointCloudWidget::keyPressEvent (QKeyEvent *event){
@@ -99,7 +99,6 @@ void SLPointCloudWidget::keyPressEvent(QKeyEvent *event){
9999}
100100
101101void SLPointCloudWidget::updatePointCloud (PointCloudConstPtr _pointCloudPCL){
102-
103102 if (!_pointCloudPCL || _pointCloudPCL->points .empty ())
104103 return ;
105104
@@ -129,6 +128,25 @@ void SLPointCloudWidget::updatePointCloud(PointCloudConstPtr _pointCloudPCL){
129128// std::cout << "PCL Widget: " << time.restart() << "ms" << std::endl;
130129}
131130
131+ void SLPointCloudWidget::updateRGBAPointCloud (RGBAPointCloudConstPtr _RGBACloudPCL){
132+
133+ if (CordAdjust)
134+ {
135+ // visualizer->removeCoordinateSystem("Camera",0);
136+ // visualizer->removeCoordinateSystem("Projector",0);
137+ }
138+ if (!_RGBACloudPCL || _RGBACloudPCL->points .empty ())
139+ return ;
140+ RGBAPointCloudPCL = _RGBACloudPCL;
141+ if (!visualizer->updatePointCloud (RGBAPointCloudPCL," RGBAPointCloud" )){
142+ visualizer->addPointCloud (RGBAPointCloudPCL," RGBAPointCloud" );
143+ visualizer->setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE,1.0 ," RGBAPointCloud" );
144+ }
145+ this ->update ();
146+ CordAdjust = false ;
147+ emit newPointCloudDisplayed ();
148+ }
149+
132150void SLPointCloudWidget::savePointCloud (){
133151
134152 QString selectedFilter;
0 commit comments