Subversion Repositories seema-scanner

Rev

Rev 44 | Rev 46 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 44 Rev 45
Line 35... Line 35...
35
    // this leads to a segfault on OS X
35
    // this leads to a segfault on OS X
36
    visualizer->setCameraPosition(0,0,-50,0,0,0,0,-1,0);
36
    visualizer->setCameraPosition(0,0,-50,0,0,0,0,-1,0);
37
#endif
37
#endif
38
 
38
 
39
    // Initialize point cloud color handler
39
    // Initialize point cloud color handler
40
    colorHandler = new pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGBNormal>();
40
    colorHandler = new pcl::visualization::PointCloudColorHandlerRGBField<pcl::PointXYZRGB>();
41
 
41
 
42
    updateCalibrationParameters();
42
    updateCalibrationParameters();
43
    //time.start();
43
    //time.start();
44
}
44
}
45
 
45
 
46
void SMPointCloudWidget::addPointCloud(SMPointCloud pointCloud, int id){
46
void SMPointCloudWidget::addPointCloud(SMPointCloud pointCloud, int id){
47
 
47
 
48
    std::string stringId = QString::number(id).toStdString();
48
    //std::string stringId = QString::number(id).toStdString();
-
 
49
    std::string stringId = QString("id%1").arg(id).toStdString();
49
 
50
 
50
    // Note: using the color handler makes a copy of the rgb fields
51
    // Note: using the color handler makes a copy of the rgb fields
51
    colorHandler->setInputCloud(pointCloud.pointCloud);
52
    colorHandler->setInputCloud(pointCloud.pointCloud);
52
 
53
 
53
    visualizer->addPointCloud(pointCloud.pointCloud, *colorHandler, stringId);
54
    visualizer->addPointCloud(pointCloud.pointCloud, *colorHandler, stringId);
Line 67... Line 68...
67
 
68
 
68
}
69
}
69
 
70
 
70
void SMPointCloudWidget::updatePointCloud(SMPointCloud pointCloud, int id){
71
void SMPointCloudWidget::updatePointCloud(SMPointCloud pointCloud, int id){
71
 
72
 
-
 
73
    //std::string stringId = QString::number(id).toStdString();
-
 
74
    std::string stringId = QString("id%1").arg(id).toStdString();
-
 
75
 
72
    // Note: using the color handler makes a copy of the rgb fields
76
    // Note: using the color handler makes a copy of the rgb fields
73
    colorHandler->setInputCloud(pointCloud.pointCloud);
77
    colorHandler->setInputCloud(pointCloud.pointCloud);
74
 
78
 
75
    if(!visualizer->updatePointCloud(pointCloud.pointCloud, *colorHandler, QString::number(id).toStdString())){
79
    if(!visualizer->updatePointCloud(pointCloud.pointCloud, *colorHandler, stringId)){
76
        visualizer->addPointCloud(pointCloud.pointCloud, *colorHandler, QString::number(id).toStdString());
80
        visualizer->addPointCloud(pointCloud.pointCloud, *colorHandler, stringId);
77
        visualizer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2.0, QString::number(id).toStdString());
81
        visualizer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2.0, stringId);
78
     }
82
     }
79
 
83
 
80
    this->update();
84
    this->update();
81
    emit pointCloudDataChanged();
85
    emit pointCloudDataChanged();
82
 
86
 
83
}
87
}
84
 
88
 
85
void SMPointCloudWidget::removePointCloud(int id){
89
void SMPointCloudWidget::removePointCloud(int id){
86
 
90
 
87
    std::string stringId = QString::number(id).toStdString();
91
    //std::string stringId = QString::number(id).toStdString();
-
 
92
    std::string stringId = QString("id%1").arg(id).toStdString();
88
 
93
 
89
    visualizer->removePointCloud(stringId);
94
    visualizer->removePointCloud(stringId);
90
 
95
 
91
    this->update();
96
    this->update();
92
    emit pointCloudDataChanged();
97
    emit pointCloudDataChanged();