Я пытаюсь использовать классы шаблонов для использования своих функций независимо от типа точки. Я прочитал учебник «Написание нового класса PCL», но у меня его нет. Я расскажу о простейшем классе, где я пытаюсь использовать эту технику. Его единственная функция - создать KDtree pointcloud в правильной точке выполнения родительского дерева процессов.Класс templating для обработки 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. Выглядит просто, но у меня проблемы с параметрами конструктора. Невозможно включить форсированные общие указатели в конструктор шаблонного класса? У меня есть ошибка «C2061: синтаксическая ошибка: идентификатор« Ptr » –