SubmodMap.h
Go to the documentation of this file.
00001 
00002 /*
00003  * SubmodMap.h
00004  *
00005  *  Created on: 14.11.2011
00006  *      Author: hess
00007  */
00008 
00009 #ifndef SubmodMap_H_
00010 #define SubmodMap_H_
00011 #include <pcl/common/common_headers.h>
00012 #include <pcl/kdtree/impl/kdtree_flann.hpp>
00013 #include <surfacelet/SurfacePatch.h>
00014 #include <visualization_msgs/Marker.h>
00015 #include <visualization_msgs/MarkerArray.h>
00016 namespace surfacelet {
00017 
00018 class SubmodMap {
00019 
00020 public:
00021 
00022     SubmodMap();
00023 
00024     void insertScan(pcl::PointCloud<pcl::PointXYZ>& cloud, pcl::PointCloud<pcl::PointXYZ>& not_used_cloud);
00025     void insertScan(pcl::PointCloud<pcl::PointXYZ>& cloud, pcl::PointCloud<pcl::PointXYZ>& not_used_cloud,
00026         pcl::PointXYZ view_point);
00027     void constructNormalMarker(const std::string frame_id, visualization_msgs::MarkerArray& array) const;
00028     void constructMarker(const std::string frame_id, const std::vector<bool>& reachable,
00029         visualization_msgs::MarkerArray& array);
00030     void constructMarker(const std::string frame_id, const std::vector<bool>& reachable,
00031         const std::vector<bool>& collision, visualization_msgs::MarkerArray& array);
00032     void constructMarker(const std::string frame_id, visualization_msgs::MarkerArray& array);
00033 //    std::vector<SurfacePatch> getMap();
00034 //    void  setMap(std::vector<SurfacePatch> patches);
00035     std::vector<SurfacePatch> map_;
00036 
00037 private:
00038     void computePatchesFromCloud(pcl::PointCloud<pcl::PointXYZ>& cloud, const pcl::PointXYZ view_point,
00039         std::vector<SurfacePatch>& patches, pcl::PointCloud<pcl::PointXYZ>& not_used_cloud);
00040     bool pointRepresented(pcl::PointNormal p);
00041     bool searchPatchForPoint(pcl::PointXYZ p);
00042     bool generatePatch(const pcl::PointCloud<pcl::PointXYZ>& cloud, const pcl::PointXYZ view_point,
00043         const pcl::PointXYZ center, const std::vector<int>& mask, SurfacePatch& patch,
00044         std::vector<int>& removed_points);
00045 
00046     pcl::KdTreeFLANN<SurfacePatch> tree_;
00047 
00048     bool first_insert;
00049     float radius_;
00050     float ransac_distance_;
00051     int ransac_iterations_;
00052 
00053 };
00054 }
00055 
00056 #endif /* SubmodMap_H_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends


surfacelet
Author(s): Juergen Hess
autogenerated on Wed Dec 26 2012 15:24:47