我尝试使用模板类来使用我的函数,而不管点类型如何。我读了“编写一个新的PCL类”教程,但我没有得到它。我将分享我尝试使用这种技术的最简单的课程。它的唯一功能是在进程的父树的正确执行点上创建点云的KD树。使用不同点类型处理pcl :: PointCloud对象的类模板
KdtreeBuilder_Process.h
#ifndef KDTREEBUILDER_PROCESS_H
#define KDTREEBUILDER_PROCESS_H
#include "ProcessManager/ProcessConcurrent.h" //Parent class
#include <pcl/kdtree/kdtree_flann.h>
class KdtreeBuilder_Process:public ProcessConcurrent
{
public:
KdtreeBuilder_Process(pcl::PointCloud<pcl::PointXYZ>::Ptr inputCloud,pcl::KdTree<pcl::PointXYZ>::Ptr cloudKdtree);
virtual void run(); //method that executed when the process starts
private:
pcl::PointCloud<pcl::PointXYZ>::Ptr mInputCloud;
pcl::KdTree<pcl::PointXYZ>::Ptr mCloudKdtree;
};
#endif // KDTREEBUILDER_PROCESS_H
KdtreeBuilder_Process.cpp
#include "KdtreeBuilder_Process.h"
KdtreeBuilder_Process::KdtreeBuilder_Process(pcl::PointCloud<pcl::PointXYZ>::Ptr inputCloud,pcl::KdTree<pcl::PointXYZ>::Ptr cloudKdtree):
mInputCloud(inputCloud),mCloudKdtree(cloudKdtree)
{
}
void KdtreeBuilder_Process::run(){
mCloudKdtree->setInputCloud(mInputCloud);
}
我的目的是要能够使用这个类包含XYZ坐标
感谢您的支持任意点的类型。 BR
谢谢您的回答@ W.F。看起来很简单,但我有构造函数参数的问题。不可能在模板类的构造函数中包含boost共享指针?我有错误“C2061:语法错误:标识符'Ptr'” –