ポイントタイプに関係なく、テンプレートクラスを使用して関数を使用しようとしています。私は "新しい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
ありがとう:ここだけのヘッダーファイルを使用して、最終的なソリューションです。単純に見えますが、私はコンストラクタのパラメータに問題があります。 boosted共有ポインタをテンプレートクラスのコンストラクタに含めることはできませんか?私はエラーがあります "C2061:構文エラー:識別子 'Ptr'" –