포인트 유형에 관계없이 템플릿 클래스를 사용하여 내 기능을 사용하려고합니다. 나는 "Writing a new PCL class"튜토리얼을 읽었지만 그것을 얻지 못했습니다. 이 기술을 사용하려고하는 가장 간단한 수업을 나눌 것입니다. 그것의 유일한 기능은 프로세스의 부모 트리 실행의 올바른 지점에 포인트 클라우드의 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
감사 : 여기에만 헤더 파일을 사용하여 최종 솔루션입니다. 간단한 것처럼 보이지만 생성자 매개 변수에 문제가 있습니다. boosted 공유 포인터를 템플릿 기반 클래스의 생성자에 포함시킬 수 있습니까? 오류가 있습니다 "C2061 : 구문 오류 : 식별자 'Ptr'" –