2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > PCL使用类成员函数作为pclvisualizer的回调函数

PCL使用类成员函数作为pclvisualizer的回调函数

时间:2018-08-06 22:53:32

相关推荐

PCL使用类成员函数作为pclvisualizer的回调函数

参考链接

#include <pcl/point_types.h>#include <pcl/point_cloud.h>#include <pcl/point_representation.h>#include <pcl/visualization/pcl_visualizer.h>using namespace pcl; class dummyClass{ public: dummyClass(); ~dummyClass(){}; void keyboardEventOccurred (const visualization::KeyboardEvent &event, void* junk); pcl::PointXYZ randomPoint(); void spin(); private: boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer; pcl::PointCloud<pcl::PointXYZ>::Ptr pc; }; dummyClass::dummyClass(){ // Create viewer viewer.reset(new pcl::visualization::PCLVisualizer ("3D Viewer")); viewer->addCoordinateSystem(1); viewer->addText("Press r to add a random point", 30, 10, 15, 1.0f,0.0f,0.0f,"text"); // Create cloud pc.reset(new pcl::PointCloud<pcl::PointXYZ>()); pc->push_back(randomPoint()); viewer->addPointCloud(pc,"cloud"); viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5,"cloud"); // Register Keyboard Event viewer->registerKeyboardCallback(&dummyClass::keyboardEventOccurred,*this); }; void dummyClass::keyboardEventOccurred (const visualization::KeyboardEvent &event, void* junk){ if (event.getKeySym() == "r" && event.keyDown()){ pc->push_back(randomPoint()); viewer->updatePointCloud(pc,"cloud"); } }; pcl::PointXYZ dummyClass::randomPoint(){ pcl::PointXYZ pt; pt.x = (double)rand() / RAND_MAX *10 - 5; pt.y = (double)rand() / RAND_MAX *10 - 5; pt.z = (double)rand() / RAND_MAX *10 - 5; return pt; }; void dummyClass::spin(){ viewer->spin(); }; int main (int argc, char** argv) { dummyClass dc; dc.spin(); return 0; }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。