我嘗試使用模板類來使用我的函數,而不管點類型如何。我讀了「編寫一個新的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'」 –