Go to the documentation of this file.00001
00064 #ifndef STRUCTURE_EXTRACTION_H_
00065 #define STRUCTURE_EXTRACTION_H_
00066
00067
00068
00069
00070
00071 #include <iostream>
00072 #include <fstream>
00073 #include <sstream>
00074 #include <string>
00075 #include <vector>
00076 #include <math.h>
00077
00078
00079 #include "pcl/point_types.h"
00080 #include "pcl/common/centroid.h"
00081 #include "pcl/common/eigen.h"
00082
00083
00084 #include <Eigen/Core>
00085 #include <boost/shared_ptr.hpp>
00086 #include <boost/thread/mutex.hpp>
00087
00088 #include <cob_3d_mapping_common/polygon.h>
00089
00090 using namespace cob_3d_mapping;
00091
00095 class StructureExtraction
00096 {
00097
00098 public:
00099
00103 StructureExtraction () :
00104 floor_height_ (0.2), ceiling_height_ (2.2)
00105 {
00107 }
00108
00112 ~StructureExtraction ()
00113 {
00114
00116 }
00117
00124 void
00125 setFloorHeight (double height)
00126 {
00127 floor_height_ = height;
00128 }
00129
00136 void
00137 setCeilingHeight (double height)
00138 {
00139 ceiling_height_ = height;
00140 }
00141
00148 void
00149 setInputPolygon (Polygon::Ptr poly_ptr)
00150 {
00151 poly_ptr_ = poly_ptr;
00152 }
00153
00161 bool
00162 classify (unsigned int& label);
00163
00164 protected:
00170 bool
00171 isWall ();
00172
00178 bool
00179 isFloor ();
00180
00186 bool
00187 isCeiling ();
00188
00189 double floor_height_;
00190 double ceiling_height_;
00191
00192 Polygon::Ptr poly_ptr_;
00193
00194 };
00195
00196 #endif