00001 #ifndef OCTOMAP_OCTREE_NODE_PCL_H 00002 #define OCTOMAP_OCTREE_NODE_PCL_H 00003 00004 /* 00005 * Based on orignal code writtien by K. M. Wurm, A. Hornung, University of Freiburg, Copyright (C) 2009. 00006 * @author: Hozefa Indorewala 00007 */ 00008 00009 #include "octomap/OcTreeNode.h" 00010 #include <pcl/point_types.h> 00011 #include <pcl/io/pcd_io.h> 00012 00013 namespace octomap { 00014 00015 00019 class OcTreeNodePCL : public OcTreeNode { 00020 00021 public: 00022 00023 int label; 00024 point3d centroid; 00025 double resolution; 00026 std::vector <int> inliers; 00027 00028 public: 00029 00030 OcTreeNodePCL(); 00031 virtual ~OcTreeNodePCL(); 00032 00033 00034 // -- children ---------------------------------- 00035 00036 virtual bool createChild(unsigned int i); 00037 virtual OcTreeNodePCL* getChild(unsigned int i); 00038 virtual const OcTreeNodePCL* getChild(unsigned int i) const; 00039 00040 00041 // data ----------------------------------------- 00042 00046 void setLabel(int l); 00050 int getLabel() const; 00051 00052 00056 void setCentroid(point3d c); 00060 point3d getCentroid() const; 00061 00065 void setResolution(double res); 00069 double getResolution() const; 00070 00074 void set3DPointInliers(int inlier_index); 00078 std::vector<int> get3DPointInliers(); 00079 00080 // -- I/O --------------------------------------- 00081 00092 std::istream& readBinary(std::istream &s); 00093 00104 std::ostream& writeBinary(std::ostream &s) const; 00105 00106 00107 00108 }; 00109 00110 00111 00112 } // end namespace 00113 00114 00115 00116 #endif