From 48148a9e267e9b22112a0548d2b9925d528dec92 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sun, 23 Jul 2017 22:33:26 -0400 Subject: [PATCH] DbViewer: fixed voxel assert --- guilib/src/DatabaseViewer.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/guilib/src/DatabaseViewer.cpp b/guilib/src/DatabaseViewer.cpp index c5cb0998..661ca828 100644 --- a/guilib/src/DatabaseViewer.cpp +++ b/guilib/src/DatabaseViewer.cpp @@ -2560,6 +2560,7 @@ void DatabaseViewer::update(int value, if(!data.imageRaw().empty()) { pcl::PointCloud::Ptr cloud; + pcl::IndicesPtr indices(new std::vector); if(!data.depthRaw().empty() && data.cameraModels().size()==1) { cv::Mat depth = data.depthRaw(); @@ -2570,8 +2571,9 @@ void DatabaseViewer::update(int value, cloud = util3d::cloudFromDepthRGB( data.imageRaw(), depth, - data.cameraModels()[0]); - if(cloud->size()) + data.cameraModels()[0], + 1,0,0,indices.get()); + if(indices->size()) { cloud = util3d::transformPointCloud(cloud, data.cameraModels()[0].localTransform()); } @@ -2579,13 +2581,13 @@ void DatabaseViewer::update(int value, } else { - cloud = util3d::cloudRGBFromSensorData(data, 1, 0, 0, 0, ui_->parameters_toolbox->getParameters()); + cloud = util3d::cloudRGBFromSensorData(data, 1, 0, 0, indices.get(), ui_->parameters_toolbox->getParameters()); } - if(cloud->size()) + if(indices->size()) { if(ui_->doubleSpinBox_voxelSize->value() > 0.0) { - cloud = util3d::voxelize(cloud, ui_->doubleSpinBox_voxelSize->value()); + cloud = util3d::voxelize(cloud, indices, ui_->doubleSpinBox_voxelSize->value()); } if(ui_->checkBox_showMesh->isChecked() && !cloud->is_dense) @@ -2646,12 +2648,13 @@ void DatabaseViewer::update(int value, else if(ui_->checkBox_showCloud->isChecked()) { pcl::PointCloud::Ptr cloud; - cloud = util3d::cloudFromSensorData(data, 1, 0, 0, 0, ui_->parameters_toolbox->getParameters()); - if(cloud->size()) + pcl::IndicesPtr indices(new std::vector); + cloud = util3d::cloudFromSensorData(data, 1, 0, 0, indices.get(), ui_->parameters_toolbox->getParameters()); + if(indices->size()) { if(ui_->doubleSpinBox_voxelSize->value() > 0.0) { - cloud = util3d::voxelize(cloud, ui_->doubleSpinBox_voxelSize->value()); + cloud = util3d::voxelize(cloud, indices, ui_->doubleSpinBox_voxelSize->value()); } cloudViewer_->addCloud("cloud", cloud, pose); @@ -3521,7 +3524,7 @@ void DatabaseViewer::updateConstraintView( { if(ui_->doubleSpinBox_voxelSize->value() > 0.0) { - cloudFrom = util3d::voxelize(cloudFrom, ui_->doubleSpinBox_voxelSize->value()); + cloudFrom = util3d::voxelize(cloudFrom, indicesFrom, ui_->doubleSpinBox_voxelSize->value()); } constraintsViewer_->addCloud("cloud0", cloudFrom, pose, Qt::red); } @@ -3529,7 +3532,7 @@ void DatabaseViewer::updateConstraintView( { if(ui_->doubleSpinBox_voxelSize->value() > 0.0) { - cloudTo = util3d::voxelize(cloudTo, ui_->doubleSpinBox_voxelSize->value()); + cloudTo = util3d::voxelize(cloudTo, indicesTo, ui_->doubleSpinBox_voxelSize->value()); } constraintsViewer_->addCloud("cloud1", cloudTo, pose, Qt::cyan); }