47template<
typename Po
intSource,
typename Po
intTarget>
void
55template<
typename Po
intSource,
typename Po
intTarget>
void
59 viewer_thread_.~thread ();
63template<
typename Po
intSource,
typename Po
intTarget>
void
69 viewer_->initCameraParameters ();
81 viewer_->createViewPort (0.0, 0.0, 0.5, 1.0,
v1);
82 viewer_->setBackgroundColor (0, 0, 0,
v1);
83 viewer_->addText (
"Initial position of source and target point clouds", 10, 50,
"title v1",
v1);
84 viewer_->addText (
"Blue -> target", 10, 30, 0.0, 0.0, 1.0,
"legend target v1",
v1);
85 viewer_->addText (
"Red -> source", 10, 10, 1.0, 0.0, 0.0,
"legend source v1",
v1);
87 viewer_->addPointCloud<PointSource> (cloud_source_.makeShared (),
cloud_source_handler_,
"cloud source v1",
v1);
88 viewer_->addPointCloud<PointTarget> (cloud_target_.makeShared (),
cloud_target_handler_,
"cloud target v1",
v1);
92 viewer_->createViewPort (0.5, 0.0, 1.0, 1.0,
v2);
93 viewer_->setBackgroundColor (0.1, 0.1, 0.1,
v2);
97 viewer_->addText (
"Yellow -> intermediate", 10, 50, 1.0, 1.0, 0.0,
"legend intermediate v2",
v2);
98 viewer_->addText (
"Blue -> target", 10, 30, 0.0, 0.0, 1.0,
"legend target v2",
v2);
99 viewer_->addText (
"Red -> source", 10, 10, 1.0, 0.0, 0.0,
"legend source v2",
v1);
102 viewer_->addPointCloud<PointTarget> (cloud_target_.makeShared (),
cloud_target_handler_,
"cloud target v2",
v2);
104 "cloud intermediate v2",
v2);
110 viewer_->addCoordinateSystem (1.0,
"global");
116 while (!viewer_->wasStopped ())
119 visualizer_updating_mutex_.lock ();
123 viewer_->removePointCloud (
"cloud intermediate v2",
v2);
127 "cloud intermediate v2",
v2);
147 viewer_->removeShape (
"correspondences_size", 0);
151 if( ( 0 < maximum_displayed_correspondences_ ) &&
170 viewer_->addLine (cloud_intermediate_[cloud_intermediate_indices_[
correspondence_id]],
177 visualizer_updating_mutex_.unlock ();
180 viewer_->spinOnce (100);
181 using namespace std::chrono_literals;
182 std::this_thread::sleep_for(100
ms);
187template<
typename Po
intSource,
typename Po
intTarget>
void
195 visualizer_updating_mutex_.lock ();
199 if (!first_update_flag_)
201 first_update_flag_ =
true;
217 visualizer_updating_mutex_.unlock ();
Iterator class for point clouds with or without given indices.
ConstCloudIterator(const PointCloud< PointT > &cloud)
RegistrationVisualizer represents the base class for rendering the intermediate positions occupied by...
void updateIntermediateCloud(const pcl::PointCloud< PointSource > &cloud_src, const pcl::Indices &indices_src, const pcl::PointCloud< PointTarget > &cloud_tgt, const pcl::Indices &indices_tgt)
Updates visualizer local buffers cloud_intermediate, cloud_intermediate_indices, cloud_target_indices...
void startDisplay()
Start the viewer thread.
void stopDisplay()
Stop the viewer thread.
PCL Visualizer main class.
shared_ptr< PCLVisualizer > Ptr
Handler for predefined user colors.