Main MRPT website > C++ reference for MRPT 1.5.9
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Private Attributes
mrpt::pbmap::Plane Class Reference

Detailed Description

A class used to store a planar feature (Plane for short).

It is described with geometric features representing the shape and relative location of the patch (area, normal vector, elongation, 3D-convex hull, etc.) and radiometric features (the most representative color).

Definition at line 48 of file Plane.h.

#include <mrpt/pbmap/Plane.h>

Inheritance diagram for mrpt::pbmap::Plane:
Inheritance graph

Public Member Functions

voidoperator new (size_t size)
 
voidoperator new[] (size_t size)
 
void operator delete (void *ptr) throw ()
 
void operator delete[] (void *ptr) throw ()
 
void operator delete (void *memory, void *ptr) throw ()
 
voidoperator new (size_t size, const std::nothrow_t &) throw ()
 
void operator delete (void *ptr, const std::nothrow_t &) throw ()
 
 Plane ()
 
void forcePtsLayOnPlane ()
 
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. More...
 
void calcConvexHullandParams (pcl::PointCloud< pcl::PointXYZRGBA >::Ptr &pointCloud, std::vector< size_t > &indices=DEFAULT_VECTOR)
 
float compute2DPolygonalArea ()
 Compute the area of a 2D planar polygon patch - using a given normal. More...
 
void computeMassCenterAndArea ()
 Compute the patch's convex-hull area and mass center. More...
 
void calcElongationAndPpalDir ()
 
bool isPlaneNearby (Plane &plane, const float distThreshold)
 
bool isSamePlane (Plane &plane, const float &cosAngleThreshold, const float &distThreshold, const float &proxThreshold)
 
bool isSamePlane (Eigen::Matrix4f &Rt, Plane &plane_, const float &cosAngleThreshold, const float &distThreshold, const float &proxThreshold)
 
bool hasSimilarDominantColor (Plane &plane, const float colorThreshold)
 
void mergePlane (Plane &plane)
 
void mergePlane2 (Plane &plane)
 
void transform (Eigen::Matrix4f &Rt)
 
void calcMainColor ()
 
void calcMainColor2 ()
 
void calcPlaneHistH ()
 
virtual mxArraywriteToMatlab () const
 Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class. More...
 
CObjectclone () const
 Cloning interface for smart pointers. More...
 
RTTI classes and functions
mrpt::utils::CObjectPtr duplicateGetSmartPtr () const
 Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). More...
 

Static Public Member Functions

static voidoperator new (size_t size, void *ptr)
 

Public Attributes

unsigned id
 ! Parameters to allow the plane-based representation of the map by a graph More...
 
unsigned numObservations
 
unsigned semanticGroup
 
std::set< unsigned > nearbyPlanes
 
std::map< unsigned, unsigned > neighborPlanes
 
std::string label
 
std::string label_object
 
std::string label_context
 
Eigen::Vector3f v3center
 ! Geometric description More...
 
Eigen::Vector3f v3normal
 
float d
 
Eigen::Matrix4f information
 
float curvature
 
Eigen::Vector3f v3PpalDir
 
float elongation
 
float areaVoxels
 
float areaHull
 
bool bFullExtent
 
bool bFromStructure
 
unsigned nFramesAreaIsStable
 
Eigen::Vector3f v3colorNrgb
 ! Radiometric description More...
 
float dominantIntensity
 
bool bDominantColor
 
Eigen::Vector3f v3colorNrgbDev
 
Eigen::Vector3f v3colorC1C2C3
 
std::vector< float > hist_H
 
std::vector< double > prog_area
 
std::vector< double > prog_elongation
 
std::vector< Eigen::Vector3f > prog_C1C2C3
 
std::vector< Eigen::Vector3f > prog_Nrgb
 
std::vector< float > prog_intensity
 
std::vector< std::vector< float > > prog_hist_H
 
std::vector< int32_tinliers
 ! Convex Hull More...
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr polygonContourPtr
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr outerPolygonPtr
 
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr planePointCloudPtr
 

Static Public Attributes

static const mrpt::utils::TRuntimeClassId classCObject
 
RTTI stuff
static const mrpt::utils::TRuntimeClassId classCSerializable
 

Protected Member Functions

CSerializable virtual methods
void writeToStream (mrpt::utils::CStream &out, int *getVersion) const
 *---------------------------------------------------------—— More...
 
void readFromStream (mrpt::utils::CStream &in, int version)
 Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori. More...
 

Private Member Functions

void getPlaneNrgb ()
 
void getPlaneC1C2C3 ()
 

Private Attributes

std::vector< float > r
 
std::vector< float > g
 
std::vector< float > b
 
std::vector< float > intensity
 
std::vector< float > c1
 
std::vector< float > c2
 
std::vector< float > c3
 

RTTI stuff

typedef PlanePtr Ptr
 
typedef PlanePtr ConstPtr
 
static mrpt::utils::CLASSINIT _init_Plane
 
static mrpt::utils::TRuntimeClassId classPlane
 
static const mrpt::utils::TRuntimeClassIdclassinfo
 
static const mrpt::utils::TRuntimeClassId_GetBaseClass ()
 
virtual const mrpt::utils::TRuntimeClassIdGetRuntimeClass () const
 Returns information about the class of an object in runtime. More...
 
virtual mrpt::utils::CObjectduplicate () const
 Returns a copy of the object, indepently of its class. More...
 
static mrpt::utils::CObjectCreateObject ()
 
static PlanePtr Create ()
 

Member Typedef Documentation

◆ ConstPtr

typedef PlanePtr mrpt::pbmap::Plane::ConstPtr

Definition at line 51 of file Plane.h.

◆ Ptr

typedef PlanePtr mrpt::pbmap::Plane::Ptr

A typedef for the associated smart pointer

Definition at line 51 of file Plane.h.

Constructor & Destructor Documentation

◆ Plane()

mrpt::pbmap::Plane::Plane ( )
inline

Definition at line 54 of file Plane.h.

Member Function Documentation

◆ _GetBaseClass()

static const mrpt::utils::TRuntimeClassId* mrpt::pbmap::Plane::_GetBaseClass ( )
staticprotected

◆ calcConvexHull()

void Plane::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.

Definition at line 784 of file Plane.cpp.

References cross().

Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and mrpt::pbmap::PbMapMaker::mergePlanes().

◆ calcConvexHullandParams()

void Plane::calcConvexHullandParams ( pcl::PointCloud< pcl::PointXYZRGBA >::Ptr pointCloud,
std::vector< size_t > &  indices = DEFAULT_VECTOR 
)

Definition at line 854 of file Plane.cpp.

References cross(), and mrpt::math::norm().

◆ calcElongationAndPpalDir()

void Plane::calcElongationAndPpalDir ( )

Calculate plane's elongation and principal direction

Definition at line 413 of file Plane.cpp.

Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud().

◆ calcMainColor()

void Plane::calcMainColor ( )

Calculate plane's main color using "MeanShift" method

Definition at line 642 of file Plane.cpp.

References mrpt::pbmap::getHistogramMeanShift().

Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud().

◆ calcMainColor2()

void Plane::calcMainColor2 ( )

Definition at line 583 of file Plane.cpp.

References concentrationThreshold, and mrpt::pbmap::getMultiDimMeanShift_color().

◆ calcPlaneHistH()

void Plane::calcPlaneHistH ( )

Definition at line 473 of file Plane.cpp.

◆ clone()

CObject* mrpt::utils::CObject::clone ( ) const
inlineinherited

Cloning interface for smart pointers.

Definition at line 133 of file CObject.h.

◆ compute2DPolygonalArea()

float Plane::compute2DPolygonalArea ( )

Compute the area of a 2D planar polygon patch - using a given normal.

Compute the area of a 2D planar polygon patch.

Parameters
polygonContourPtrthe point cloud (planar)
normalthe plane normal

Definition at line 345 of file Plane.cpp.

Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud().

◆ computeMassCenterAndArea()

void Plane::computeMassCenterAndArea ( )

Compute the patch's convex-hull area and mass center.

Definition at line 375 of file Plane.cpp.

Referenced by mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and mrpt::pbmap::PbMapMaker::mergePlanes().

◆ Create()

static PlanePtr mrpt::pbmap::Plane::Create ( )
static

◆ CreateObject()

static mrpt::utils::CObject* mrpt::pbmap::Plane::CreateObject ( )
static

◆ duplicate()

virtual mrpt::utils::CObject* mrpt::pbmap::Plane::duplicate ( ) const
virtual

Returns a copy of the object, indepently of its class.

Implements mrpt::utils::CObject.

◆ duplicateGetSmartPtr()

mrpt::utils::CObjectPtr CObject::duplicateGetSmartPtr ( ) const
inlineinherited

Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).

Definition at line 162 of file CObject.h.

References mrpt::utils::CObjectPtr.

Referenced by mrpt::obs::CRawlog::addActions(), mrpt::slam::CIncrementalMapPartitioner::addMapFrame(), and mrpt::obs::CRawlog::addObservations().

◆ forcePtsLayOnPlane()

void Plane::forcePtsLayOnPlane ( )

Force the plane inliers to lay on the plane

Definition at line 321 of file Plane.cpp.

Referenced by mrpt::pbmap::PbMapMaker::mergePlanes().

◆ getPlaneC1C2C3()

void Plane::getPlaneC1C2C3 ( )
private

Definition at line 459 of file Plane.cpp.

◆ getPlaneNrgb()

void Plane::getPlaneNrgb ( )
private

Calculate plane's main color in normalized rgb space

Definition at line 430 of file Plane.cpp.

◆ GetRuntimeClass()

virtual const mrpt::utils::TRuntimeClassId* mrpt::pbmap::Plane::GetRuntimeClass ( ) const
virtual

Returns information about the class of an object in runtime.

Reimplemented from mrpt::utils::CSerializable.

◆ hasSimilarDominantColor()

bool Plane::hasSimilarDominantColor ( Plane plane,
const float  colorThreshold 
)

Definition at line 1057 of file Plane.cpp.

References bDominantColor, and v3colorNrgb.

◆ isPlaneNearby()

bool Plane::isPlaneNearby ( Plane plane_nearby,
const float  distThreshold 
)

Returns true when the closest distance between the patches "this" and "plane" is under distThreshold.

Returns true when the closest distance between the patches "this" and the input "plane_nearby" is under distThreshold. This function is approximated

Definition at line 976 of file Plane.cpp.

References mrpt::pbmap::diffPoints(), mrpt::pbmap::dist3D_Segment_to_Segment2(), mrpt::pbmap::getVector3fromPointXYZ(), polygonContourPtr, and v3center.

◆ isSamePlane() [1/2]

bool Plane::isSamePlane ( Plane plane_nearby,
const float &  cosAngleThreshold,
const float &  parallelDistThres,
const float &  proxThreshold 
)

Returns true if the two input planes represent the same physical surface for some given angle and distance thresholds. If the planes are the same they are merged in this and the function returns true. Otherwise it returns false.

Definition at line 1010 of file Plane.cpp.

References v3center, and v3normal.

◆ isSamePlane() [2/2]

bool Plane::isSamePlane ( Eigen::Matrix4f &  Rt,
Plane plane_,
const float &  cosAngleThreshold,
const float &  parallelDistThres,
const float &  proxThreshold 
)

Check if the the input plane is the same than this plane for some given angle and distance thresholds. If the planes are the same they are merged in this and the function returns true. Otherwise it returns false.

Definition at line 1030 of file Plane.cpp.

References d, polygonContourPtr, v3center, and v3normal.

◆ mergePlane()

void Plane::mergePlane ( Plane same_plane_patch)

Merge the two input patches into "updatePlane". Recalculate center, normal vector, area, inlier points (filtered), convex hull, etc.

Merge the input "same_plane_patch" into "this". Recalculate center, normal vector, area, inlier points (filtered), convex hull, etc.

Definition at line 1072 of file Plane.cpp.

References inliers, planePointCloudPtr, polygonContourPtr, and v3normal.

◆ mergePlane2()

void Plane::mergePlane2 ( Plane plane)

Definition at line 1116 of file Plane.cpp.

References hist_H, inliers, planePointCloudPtr, polygonContourPtr, and v3normal.

◆ operator delete() [1/3]

void mrpt::pbmap::Plane::operator delete ( void ptr,
const std::nothrow_t &   
)
throw (
)
inline

Definition at line 51 of file Plane.h.

◆ operator delete() [2/3]

void mrpt::pbmap::Plane::operator delete ( void memory,
void ptr 
)
throw (
)
inline

Definition at line 51 of file Plane.h.

◆ operator delete() [3/3]

void mrpt::pbmap::Plane::operator delete ( void ptr)
throw (
)
inline

Definition at line 51 of file Plane.h.

◆ operator delete[]()

void mrpt::pbmap::Plane::operator delete[] ( void ptr)
throw (
)
inline

Definition at line 51 of file Plane.h.

◆ operator new() [1/3]

void* mrpt::pbmap::Plane::operator new ( size_t  size,
const std::nothrow_t &   
)
throw (
)
inline

Definition at line 51 of file Plane.h.

◆ operator new() [2/3]

static void* mrpt::pbmap::Plane::operator new ( size_t  size,
void ptr 
)
inlinestatic

Definition at line 51 of file Plane.h.

◆ operator new() [3/3]

void* mrpt::pbmap::Plane::operator new ( size_t  size)
inline

Definition at line 51 of file Plane.h.

◆ operator new[]()

void* mrpt::pbmap::Plane::operator new[] ( size_t  size)
inline

Definition at line 51 of file Plane.h.

◆ readFromStream()

void Plane::readFromStream ( mrpt::utils::CStream in,
int  version 
)
protectedvirtual

Introduces a pure virtual method responsible for loading from a CStream This can not be used directly be users, instead use "stream >> object;" for reading it from a stream or "stream >> object_ptr;" if the class is unknown apriori.

Parameters
inThe input binary stream where the object data must read from.
versionThe version of the object stored in the stream: use this version number in your code to know how to read the incoming data.
Exceptions
std::exceptionOn any error, see CStream::ReadBuffer
See also
CStream

Implements mrpt::utils::CSerializable.

Definition at line 214 of file Plane.cpp.

References MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION, and version.

◆ transform()

void Plane::transform ( Eigen::Matrix4f &  Rt)

Definition at line 1150 of file Plane.cpp.

◆ writeToMatlab()

virtual mxArray* mrpt::utils::CSerializable::writeToMatlab ( ) const
inlinevirtualinherited

Introduces a pure virtual method responsible for writing to a mxArray Matlab object, typically a MATLAB struct whose contents are documented in each derived class.

Returns
A new mxArray (caller is responsible of memory freeing) or NULL is class does not support conversion to MATLAB.

Definition at line 79 of file CSerializable.h.

◆ writeToStream()

void Plane::writeToStream ( mrpt::utils::CStream out,
int *  out_Version 
) const
protectedvirtual

*---------------------------------------------------------——

*------------------------------------------------------------—

Implements mrpt::utils::CSerializable.

Definition at line 126 of file Plane.cpp.

Member Data Documentation

◆ _init_Plane

mrpt::utils::CLASSINIT mrpt::pbmap::Plane::_init_Plane
staticprotected

Definition at line 51 of file Plane.h.

◆ areaHull

float mrpt::pbmap::Plane::areaHull

◆ areaVoxels

float mrpt::pbmap::Plane::areaVoxels

◆ b

std::vector<float> mrpt::pbmap::Plane::b
private

Definition at line 185 of file Plane.h.

◆ bDominantColor

bool mrpt::pbmap::Plane::bDominantColor

Definition at line 149 of file Plane.h.

Referenced by hasSimilarDominantColor().

◆ bFromStructure

bool mrpt::pbmap::Plane::bFromStructure

◆ bFullExtent

bool mrpt::pbmap::Plane::bFullExtent

◆ c1

std::vector<float> mrpt::pbmap::Plane::c1
private

Calculate plane's main color in C1C2C3 representation

Definition at line 192 of file Plane.h.

◆ c2

std::vector<float> mrpt::pbmap::Plane::c2
private

Definition at line 193 of file Plane.h.

◆ c3

std::vector<float> mrpt::pbmap::Plane::c3
private

Definition at line 194 of file Plane.h.

◆ classCObject

const mrpt::utils::TRuntimeClassId mrpt::utils::CObject::classCObject
staticinherited

Definition at line 118 of file CObject.h.

◆ classCSerializable

const mrpt::utils::TRuntimeClassId mrpt::utils::CSerializable::classCSerializable
staticinherited

Definition at line 42 of file CSerializable.h.

◆ classinfo

const mrpt::utils::TRuntimeClassId* mrpt::pbmap::Plane::classinfo
static

Definition at line 51 of file Plane.h.

◆ classPlane

mrpt::utils::TRuntimeClassId mrpt::pbmap::Plane::classPlane
static

Definition at line 51 of file Plane.h.

◆ curvature

float mrpt::pbmap::Plane::curvature

Definition at line 135 of file Plane.h.

◆ d

float mrpt::pbmap::Plane::d

◆ dominantIntensity

float mrpt::pbmap::Plane::dominantIntensity

◆ elongation

float mrpt::pbmap::Plane::elongation

◆ g

std::vector<float> mrpt::pbmap::Plane::g
private

Definition at line 184 of file Plane.h.

◆ hist_H

std::vector<float> mrpt::pbmap::Plane::hist_H

◆ id

unsigned mrpt::pbmap::Plane::id

◆ information

Eigen::Matrix4f mrpt::pbmap::Plane::information

Definition at line 134 of file Plane.h.

◆ inliers

std::vector<int32_t> mrpt::pbmap::Plane::inliers

! Convex Hull

Definition at line 166 of file Plane.h.

Referenced by mergePlane(), and mergePlane2().

◆ intensity

std::vector<float> mrpt::pbmap::Plane::intensity
private

Definition at line 186 of file Plane.h.

◆ label

std::string mrpt::pbmap::Plane::label

Labels to store semantic attributes

Definition at line 124 of file Plane.h.

Referenced by mrpt::pbmap::PlaneInferredInfo::searchTheFloor().

◆ label_context

std::string mrpt::pbmap::Plane::label_context

Definition at line 126 of file Plane.h.

◆ label_object

std::string mrpt::pbmap::Plane::label_object

Definition at line 125 of file Plane.h.

◆ nearbyPlanes

std::set<unsigned> mrpt::pbmap::Plane::nearbyPlanes

◆ neighborPlanes

std::map<unsigned,unsigned> mrpt::pbmap::Plane::neighborPlanes

Definition at line 121 of file Plane.h.

Referenced by mrpt::pbmap::PbMapLocaliser::searchPlaneContext().

◆ nFramesAreaIsStable

unsigned mrpt::pbmap::Plane::nFramesAreaIsStable

Definition at line 142 of file Plane.h.

Referenced by mrpt::pbmap::PlaneInferredInfo::isFullExtent().

◆ numObservations

unsigned mrpt::pbmap::Plane::numObservations

Definition at line 118 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ outerPolygonPtr

pcl::PointCloud<pcl::PointXYZRGBA>::Ptr mrpt::pbmap::Plane::outerPolygonPtr

Definition at line 168 of file Plane.h.

Referenced by mrpt::pbmap::PlaneInferredInfo::isSurroundingBackground().

◆ planePointCloudPtr

pcl::PointCloud<pcl::PointXYZRGBA>::Ptr mrpt::pbmap::Plane::planePointCloudPtr

◆ polygonContourPtr

pcl::PointCloud<pcl::PointXYZRGBA>::Ptr mrpt::pbmap::Plane::polygonContourPtr

◆ prog_area

std::vector<double> mrpt::pbmap::Plane::prog_area

Definition at line 155 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ prog_C1C2C3

std::vector<Eigen::Vector3f> mrpt::pbmap::Plane::prog_C1C2C3

Definition at line 157 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ prog_elongation

std::vector<double> mrpt::pbmap::Plane::prog_elongation

Definition at line 156 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ prog_hist_H

std::vector<std::vector<float> > mrpt::pbmap::Plane::prog_hist_H

Definition at line 160 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ prog_intensity

std::vector<float> mrpt::pbmap::Plane::prog_intensity

Definition at line 159 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ prog_Nrgb

std::vector<Eigen::Vector3f> mrpt::pbmap::Plane::prog_Nrgb

Definition at line 158 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ r

std::vector<float> mrpt::pbmap::Plane::r
private

Definition at line 183 of file Plane.h.

◆ semanticGroup

unsigned mrpt::pbmap::Plane::semanticGroup

Definition at line 119 of file Plane.h.

◆ v3center

Eigen::Vector3f mrpt::pbmap::Plane::v3center

◆ v3colorC1C2C3

Eigen::Vector3f mrpt::pbmap::Plane::v3colorC1C2C3

Definition at line 152 of file Plane.h.

Referenced by mrpt::pbmap::PbMapMaker::watchProperties().

◆ v3colorNrgb

Eigen::Vector3f mrpt::pbmap::Plane::v3colorNrgb

◆ v3colorNrgbDev

Eigen::Vector3f mrpt::pbmap::Plane::v3colorNrgbDev

Definition at line 150 of file Plane.h.

◆ v3normal

Eigen::Vector3f mrpt::pbmap::Plane::v3normal

◆ v3PpalDir

Eigen::Vector3f mrpt::pbmap::Plane::v3PpalDir

Definition at line 136 of file Plane.h.

Referenced by mrpt::pbmap::PbMap::MergeWith().




Page generated by Doxygen 1.8.14 for MRPT 1.5.9 Git: 690a4699f Wed Apr 15 19:29:53 2020 +0200 at miƩ abr 15 19:30:12 CEST 2020