赞
踩
- #include <pcl/visualization/cloud_viewer.h>
- #include <iostream>
- #include <pcl/io/io.h>
- #include <pcl/io/pcd_io.h>
-
- int user_data;
-
- void
- viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
- {
- viewer.setBackgroundColor(1.0, 0.5, 1.0);
- pcl::PointXYZ o;
- o.x = 1.0;
- o.y = 0;
- o.z = 0;
- viewer.addSphere(o, 0.25, "sphere", 0);
- std::cout << "i only run once" << std::endl;
-
- }
-
- void
- viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
- {
- static unsigned count = 0;
- std::stringstream ss;
- ss << "Once per viewer loop: " << count++;
- viewer.removeShape("text", 0);
- viewer.addText(ss.str(), 200, 300, "text", 0);
-
- //FIXME: possible race condition here:
- user_data++;
- }
-
- int
- main()
- {
- pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
- pcl::io::loadPCDFile("my_point_cloud.pcd", *cloud);
-
- pcl::visualization::CloudViewer viewer("Cloud Viewer");
-
- //blocks until the cloud is actually rendered
- viewer.showCloud(cloud);
-
- //use the following functions to get access to the underlying more advanced/powerful
- //PCLVisualizer
-
- //This will only get called once
- viewer.runOnVisualizationThreadOnce(viewerOneOff);
-
- //This will get called once per visualization iteration
- viewer.runOnVisualizationThread(viewerPsycho);
- while (!viewer.wasStopped())
- {
- //you can also do cool processing here
- //FIXME: Note that this is running in a separate thread from viewerPsycho
- //and you should guard against race conditions yourself...
- user_data++;
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。