16 #ifndef __PBMAP_PLANE_H 17 #define __PBMAP_PLANE_H 19 #include <mrpt/config.h> 26 #include <pcl/point_types.h> 27 #include <pcl/common/pca.h> 31 #define USE_COMPLETNESS_HEURISTICS 1 32 #define USE_INFERRED_STRUCTURE 1 75 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr& pointCloud,
79 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr& pointCloud,
108 Plane& plane,
const float& cosAngleThreshold,
109 const float& distThreshold,
const float& proxThreshold);
112 Eigen::Matrix4f& Rt,
Plane& plane_,
const float& cosAngleThreshold,
113 const float& distThreshold,
const float& proxThreshold);
185 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr
187 pcl::PointCloud<pcl::PointXYZRGBA>::Ptr
202 std::vector<float>
r;
203 std::vector<float>
g;
204 std::vector<float>
b;
211 std::vector<float>
c1;
212 std::vector<float>
c2;
213 std::vector<float>
c3;
std::vector< double > prog_area
std::string label_context
std::vector< Eigen::Vector3f > prog_Nrgb
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr polygonContourPtr
void transform(Eigen::Matrix4f &Rt)
The virtual base class which provides a unified interface for all persistent objects in MRPT...
A class used to store a planar feature (Plane for short).
Eigen::Vector3f v3PpalDir
Eigen::Vector3f v3colorNrgbDev
std::map< unsigned, unsigned > neighborPlanes
void mergePlane2(Plane &plane)
static std::vector< size_t > DEFAULT_VECTOR
GLuint GLuint GLsizei GLenum const GLvoid * indices
void mergePlane(Plane &plane)
Eigen::Vector3f v3colorNrgb
! Radiometric description
void calcConvexHullandParams(pcl::PointCloud< pcl::PointXYZRGBA >::Ptr &pointCloud, std::vector< size_t > &indices=DEFAULT_VECTOR)
void calcElongationAndPpalDir()
std::vector< Eigen::Vector3f > prog_C1C2C3
std::vector< float > prog_intensity
std::set< unsigned > nearbyPlanes
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr planePointCloudPtr
std::vector< float > intensity
void forcePtsLayOnPlane()
std::vector< double > prog_elongation
GLsizei const GLchar ** string
bool isSamePlane(Plane &plane, const float &cosAngleThreshold, const float &distThreshold, const float &proxThreshold)
bool isPlaneNearby(Plane &plane, const float distThreshold)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
float compute2DPolygonalArea()
Compute the area of a 2D planar polygon patch - using a given normal.
std::vector< std::vector< float > > prog_hist_H
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr outerPolygonPtr
unsigned id
! Parameters to allow the plane-based representation of the map by a graph
void computeMassCenterAndArea()
Compute the patch's convex-hull area and mass center.
std::vector< int32_t > inliers
! Convex Hull
std::vector< float > hist_H
Eigen::Vector3f v3center
! Geometric description
Eigen::Matrix4f information
unsigned nFramesAreaIsStable
bool hasSimilarDominantColor(Plane &plane, const float colorThreshold)
Eigen::Vector3f v3colorC1C2C3
void calcConvexHull(pcl::PointCloud< pcl::PointXYZRGBA >::Ptr &pointCloud, std::vector< size_t > &indices=DEFAULT_VECTOR)
! Calculate the plane's convex hull with the monotone chain algorithm.