Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::OrganizedFastMesh< PointInT > Class Template Reference

Simple triangulation/surface reconstruction for organized point clouds. More...

#include <pcl/surface/organized_fast_mesh.h>

+ Inheritance diagram for pcl::OrganizedFastMesh< PointInT >:
+ Collaboration diagram for pcl::OrganizedFastMesh< PointInT >:

Public Types

enum  TriangulationType { TRIANGLE_RIGHT_CUT , TRIANGLE_LEFT_CUT , TRIANGLE_ADAPTIVE_CUT , QUAD_MESH }
 
using Ptr = shared_ptr< OrganizedFastMesh< PointInT > >
 
using ConstPtr = shared_ptr< const OrganizedFastMesh< PointInT > >
 
using PointCloudPtr = typename pcl::PointCloud< PointInT >::Ptr
 
using Polygons = std::vector< pcl::Vertices >
 
- Public Types inherited from pcl::MeshConstruction< PointInT >
using Ptr = shared_ptr< MeshConstruction< PointInT > >
 
using ConstPtr = shared_ptr< const MeshConstruction< PointInT > >
 
- Public Types inherited from pcl::PCLSurfaceBase< PointInT >
using Ptr = shared_ptr< PCLSurfaceBase< PointInT > >
 
using ConstPtr = shared_ptr< const PCLSurfaceBase< PointInT > >
 
using KdTree = pcl::search::Search< PointInT >
 
using KdTreePtr = typename KdTree::Ptr
 
- Public Types inherited from pcl::PCLBase< PointInT >
using PointCloud = pcl::PointCloud< PointInT >
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using PointIndicesPtr = PointIndices::Ptr
 
using PointIndicesConstPtr = PointIndices::ConstPtr
 

Public Member Functions

 OrganizedFastMesh ()
 Constructor. More...
 
 ~OrganizedFastMesh () override=default
 Destructor. More...
 
void setMaxEdgeLength (float a, float b=0.0f, float c=0.0f)
 Set a maximum edge length. More...
 
void unsetMaxEdgeLength ()
 
void setTrianglePixelSize (int triangle_size)
 Set the edge length (in pixels) used for constructing the fixed mesh. More...
 
void setTrianglePixelSizeRows (int triangle_size)
 Set the edge length (in pixels) used for iterating over rows when constructing the fixed mesh. More...
 
void setTrianglePixelSizeColumns (int triangle_size)
 Set the edge length (in pixels) used for iterating over columns when constructing the fixed mesh. More...
 
void setTriangulationType (TriangulationType type)
 Set the triangulation type (see TriangulationType) More...
 
void setViewpoint (const Eigen::Vector3f &viewpoint)
 Set the viewpoint from where the input point cloud has been acquired. More...
 
const Eigen::Vector3f & getViewpoint () const
 Get the viewpoint from where the input point cloud has been acquired. More...
 
void storeShadowedFaces (bool enable)
 Store shadowed faces or not. More...
 
void setAngleTolerance (float angle_tolerance)
 Set the angle tolerance used for checking whether or not an edge is occluded. More...
 
void setDistanceTolerance (float distance_tolerance, bool depth_dependent=false)
 
void useDepthAsDistance (bool enable)
 Use the points' depths (z-coordinates) instead of measured distances (points' distances to the viewpoint). More...
 
- Public Member Functions inherited from pcl::MeshConstruction< PointInT >
 MeshConstruction ()=default
 Constructor. More...
 
 ~MeshConstruction () override=default
 Destructor. More...
 
void reconstruct (pcl::PolygonMesh &output) override
 Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> More...
 
virtual void reconstruct (std::vector< pcl::Vertices > &polygons)
 Base method for mesh construction for all points given in <setInputCloud (), setIndices ()> More...
 
- Public Member Functions inherited from pcl::PCLSurfaceBase< PointInT >
 PCLSurfaceBase ()
 Empty constructor. More...
 
 ~PCLSurfaceBase () override=default
 Empty destructor. More...
 
void setSearchMethod (const KdTreePtr &tree)
 Provide an optional pointer to a search object. More...
 
KdTreePtr getSearchMethod ()
 Get a pointer to the search method used. More...
 
- Public Member Functions inherited from pcl::PCLBase< PointInT >
 PCLBase ()
 Empty constructor. More...
 
 PCLBase (const PCLBase &base)
 Copy constructor. More...
 
virtual ~PCLBase ()=default
 Destructor. More...
 
virtual void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset. More...
 
PointCloudConstPtr const getInputCloud () const
 Get a pointer to the input point cloud dataset. More...
 
virtual void setIndices (const IndicesPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (const IndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (const PointIndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data. More...
 
virtual void setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
 Set the indices for the points laying within an interest region of the point cloud. More...
 
IndicesPtr getIndices ()
 Get a pointer to the vector of indices used. More...
 
IndicesConstPtr const getIndices () const
 Get a pointer to the vector of indices used. More...
 
const PointInT & operator[] (std::size_t pos) const
 Override PointCloud operator[] to shorten code. More...
 

Protected Member Functions

void reconstructPolygons (std::vector< pcl::Vertices > &polygons)
 Perform the actual polygonal reconstruction. More...
 
void performReconstruction (std::vector< pcl::Vertices > &polygons) override
 Create the surface. More...
 
void performReconstruction (pcl::PolygonMesh &output) override
 Create the surface. More...
 
void addTriangle (int a, int b, int c, int idx, std::vector< pcl::Vertices > &polygons)
 Add a new triangle to the current polygon mesh. More...
 
void addQuad (int a, int b, int c, int d, int idx, std::vector< pcl::Vertices > &polygons)
 Add a new quad to the current polygon mesh. More...
 
void resetPointData (const int &point_index, pcl::PolygonMesh &mesh, const float &value=0.0f, int field_x_idx=0, int field_y_idx=1, int field_z_idx=2)
 Set (all) coordinates of a particular point to the specified value. More...
 
bool isShadowed (const PointInT &point_a, const PointInT &point_b)
 Check if a point is shadowed by another point. More...
 
bool isValidTriangle (const int &a, const int &b, const int &c)
 Check if a triangle is valid. More...
 
bool isShadowedTriangle (const int &a, const int &b, const int &c)
 Check if a triangle is shadowed. More...
 
bool isValidQuad (const int &a, const int &b, const int &c, const int &d)
 Check if a quad is valid. More...
 
bool isShadowedQuad (const int &a, const int &b, const int &c, const int &d)
 Check if a triangle is shadowed. More...
 
void makeQuadMesh (std::vector< pcl::Vertices > &polygons)
 Create a quad mesh. More...
 
void makeRightCutMesh (std::vector< pcl::Vertices > &polygons)
 Create a right cut mesh. More...
 
void makeLeftCutMesh (std::vector< pcl::Vertices > &polygons)
 Create a left cut mesh. More...
 
void makeAdaptiveCutMesh (std::vector< pcl::Vertices > &polygons)
 Create an adaptive cut mesh. More...
 
- Protected Member Functions inherited from pcl::PCLSurfaceBase< PointInT >
virtual std::string getClassName () const
 Abstract class get name method. More...
 
- Protected Member Functions inherited from pcl::PCLBase< PointInT >
bool initCompute ()
 This method should get called before starting the actual computation. More...
 
bool deinitCompute ()
 This method should get called after finishing the actual computation. More...
 

Protected Attributes

float max_edge_length_a_ {0.0f}
 max length of edge, scalar component More...
 
float max_edge_length_b_ {0.0f}
 max length of edge, scalar component More...
 
float max_edge_length_c_ {0.0f}
 max length of edge, scalar component More...
 
bool max_edge_length_set_ {false}
 flag whether or not edges are limited in length More...
 
bool max_edge_length_dist_dependent_ {false}
 flag whether or not max edge length is distance dependent. More...
 
int triangle_pixel_size_rows_ {1}
 size of triangle edges (in pixels) for iterating over rows. More...
 
int triangle_pixel_size_columns_ {1}
 size of triangle edges (in pixels) for iterating over columns More...
 
TriangulationType triangulation_type_ {QUAD_MESH}
 Type of meshing scheme (quads vs. More...
 
Eigen::Vector3f viewpoint_ {Eigen::Vector3f::Zero ()}
 Viewpoint from which the point cloud has been acquired (in the same coordinate frame as the data). More...
 
bool store_shadowed_faces_ {false}
 Whether or not shadowed faces are stored, e.g., for exploration. More...
 
float cos_angle_tolerance_ {std::abs (std::cos (pcl::deg2rad (12.5f)))}
 (Cosine of the) angle tolerance used when checking whether or not an edge between two points is shadowed. More...
 
float distance_tolerance_ {-1.0f}
 distance tolerance for filtering out shadowed/occluded edges More...
 
bool distance_dependent_ {false}
 flag whether or not distance_tolerance_ is distance dependent (multiplied by the squared distance to the point) or not. More...
 
bool use_depth_as_distance_ {false}
 flag whether or not the points' depths are used instead of measured distances (points' distances to the viewpoint). More...
 
- Protected Attributes inherited from pcl::MeshConstruction< PointInT >
bool check_tree_ {true}
 A flag specifying whether or not the derived reconstruction algorithm needs the search object tree. More...
 
- Protected Attributes inherited from pcl::PCLSurfaceBase< PointInT >
KdTreePtr tree_
 A pointer to the spatial search object. More...
 
- Protected Attributes inherited from pcl::PCLBase< PointInT >
PointCloudConstPtr input_
 The input point cloud dataset. More...
 
IndicesPtr indices_
 A pointer to the vector of point indices to use. More...
 
bool use_indices_
 Set to true if point indices are used. More...
 
bool fake_indices_
 If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...
 

Detailed Description

template<typename PointInT>
class pcl::OrganizedFastMesh< PointInT >

Simple triangulation/surface reconstruction for organized point clouds.

Neighboring points (pixels in image space) are connected to construct a triangular (or quad) mesh.

Note
If you use this code in any academic work, please cite: D. Holz and S. Behnke. Fast Range Image Segmentation and Smoothing using Approximate Surface Reconstruction and Region Growing. In Proceedings of the 12th International Conference on Intelligent Autonomous Systems (IAS), Jeju Island, Korea, June 26-29 2012. http://purl.org/holz/papers/holz_2012_ias.pdf
Author
Dirk Holz, Radu B. Rusu

Definition at line 66 of file organized_fast_mesh.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointInT >
using pcl::OrganizedFastMesh< PointInT >::ConstPtr = shared_ptr<const OrganizedFastMesh<PointInT> >

Definition at line 70 of file organized_fast_mesh.h.

◆ PointCloudPtr

template<typename PointInT >
using pcl::OrganizedFastMesh< PointInT >::PointCloudPtr = typename pcl::PointCloud<PointInT>::Ptr

Definition at line 75 of file organized_fast_mesh.h.

◆ Polygons

template<typename PointInT >
using pcl::OrganizedFastMesh< PointInT >::Polygons = std::vector<pcl::Vertices>

Definition at line 77 of file organized_fast_mesh.h.

◆ Ptr

template<typename PointInT >
using pcl::OrganizedFastMesh< PointInT >::Ptr = shared_ptr<OrganizedFastMesh<PointInT> >

Definition at line 69 of file organized_fast_mesh.h.

Member Enumeration Documentation

◆ TriangulationType

template<typename PointInT >
enum pcl::OrganizedFastMesh::TriangulationType
Enumerator
TRIANGLE_RIGHT_CUT 
TRIANGLE_LEFT_CUT 
TRIANGLE_ADAPTIVE_CUT 
QUAD_MESH 

Definition at line 79 of file organized_fast_mesh.h.

Constructor & Destructor Documentation

◆ OrganizedFastMesh()

template<typename PointInT >
pcl::OrganizedFastMesh< PointInT >::OrganizedFastMesh ( )
inline

Constructor.

Triangulation type defaults to QUAD_MESH.

Definition at line 88 of file organized_fast_mesh.h.

References pcl::MeshConstruction< PointInT >::check_tree_.

◆ ~OrganizedFastMesh()

template<typename PointInT >
pcl::OrganizedFastMesh< PointInT >::~OrganizedFastMesh ( )
overridedefault

Destructor.

Member Function Documentation

◆ addQuad()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::addQuad ( int  a,
int  b,
int  c,
int  d,
int  idx,
std::vector< pcl::Vertices > &  polygons 
)
inlineprotected

Add a new quad to the current polygon mesh.

Parameters
[in]aindex of the first vertex
[in]bindex of the second vertex
[in]cindex of the third vertex
[in]dindex of the fourth vertex
[in]idxthe index in the set of polygon vertices (assumes idx is valid in polygons)
[out]polygonsthe polygon mesh to be updated

Definition at line 305 of file organized_fast_mesh.h.

◆ addTriangle()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::addTriangle ( int  a,
int  b,
int  c,
int  idx,
std::vector< pcl::Vertices > &  polygons 
)
inlineprotected

Add a new triangle to the current polygon mesh.

Parameters
[in]aindex of the first vertex
[in]bindex of the second vertex
[in]cindex of the third vertex
[in]idxthe index in the set of polygon vertices (assumes idx is valid in polygons)
[out]polygonsthe polygon mesh to be updated

Definition at line 287 of file organized_fast_mesh.h.

◆ getViewpoint()

template<typename PointInT >
const Eigen::Vector3f& pcl::OrganizedFastMesh< PointInT >::getViewpoint ( ) const
inline

Get the viewpoint from where the input point cloud has been acquired.

Definition at line 168 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::viewpoint_.

◆ isShadowed()

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::isShadowed ( const PointInT &  point_a,
const PointInT &  point_b 
)
inlineprotected

◆ isShadowedQuad()

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::isShadowedQuad ( const int &  a,
const int &  b,
const int &  c,
const int &  d 
)
inlineprotected

Check if a triangle is shadowed.

Parameters
[in]aindex of the first vertex
[in]bindex of the second vertex
[in]cindex of the third vertex
[in]dindex of the fourth vertex

Definition at line 437 of file organized_fast_mesh.h.

References pcl::PCLBase< PointInT >::input_, and pcl::OrganizedFastMesh< PointInT >::isShadowed().

◆ isShadowedTriangle()

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::isShadowedTriangle ( const int &  a,
const int &  b,
const int &  c 
)
inlineprotected

Check if a triangle is shadowed.

Parameters
[in]aindex of the first vertex
[in]bindex of the second vertex
[in]cindex of the third vertex

Definition at line 406 of file organized_fast_mesh.h.

References pcl::PCLBase< PointInT >::input_, and pcl::OrganizedFastMesh< PointInT >::isShadowed().

◆ isValidQuad()

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::isValidQuad ( const int &  a,
const int &  b,
const int &  c,
const int &  d 
)
inlineprotected

Check if a quad is valid.

Parameters
[in]aindex of the first vertex
[in]bindex of the second vertex
[in]cindex of the third vertex
[in]dindex of the fourth vertex

Definition at line 421 of file organized_fast_mesh.h.

References pcl::PCLBase< PointInT >::input_, and pcl::isFinite().

◆ isValidTriangle()

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::isValidTriangle ( const int &  a,
const int &  b,
const int &  c 
)
inlineprotected

Check if a triangle is valid.

Parameters
[in]aindex of the first vertex
[in]bindex of the second vertex
[in]cindex of the third vertex

Definition at line 392 of file organized_fast_mesh.h.

References pcl::PCLBase< PointInT >::input_, and pcl::isFinite().

◆ makeAdaptiveCutMesh()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::makeAdaptiveCutMesh ( std::vector< pcl::Vertices > &  polygons)
protected

Create an adaptive cut mesh.

Parameters
[out]polygonsthe resultant mesh

Definition at line 218 of file organized_fast_mesh.hpp.

◆ makeLeftCutMesh()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::makeLeftCutMesh ( std::vector< pcl::Vertices > &  polygons)
protected

Create a left cut mesh.

Parameters
[out]polygonsthe resultant mesh

Definition at line 177 of file organized_fast_mesh.hpp.

◆ makeQuadMesh()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::makeQuadMesh ( std::vector< pcl::Vertices > &  polygons)
protected

Create a quad mesh.

Parameters
[out]polygonsthe resultant mesh

Definition at line 99 of file organized_fast_mesh.hpp.

◆ makeRightCutMesh()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::makeRightCutMesh ( std::vector< pcl::Vertices > &  polygons)
protected

Create a right cut mesh.

Parameters
[out]polygonsthe resultant mesh

Definition at line 136 of file organized_fast_mesh.hpp.

◆ performReconstruction() [1/2]

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::performReconstruction ( pcl::PolygonMesh output)
overrideprotectedvirtual

Create the surface.

Simply uses image indices to create an initial polygonal mesh for organized point clouds. indices_ are ignored!

Parameters
[out]outputthe resultant polygonal mesh

Implements pcl::MeshConstruction< PointInT >.

Definition at line 49 of file organized_fast_mesh.hpp.

References pcl::PolygonMesh::cloud, pcl::getFieldIndex(), pcl::isFinite(), and pcl::PolygonMesh::polygons.

◆ performReconstruction() [2/2]

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::performReconstruction ( std::vector< pcl::Vertices > &  polygons)
overrideprotectedvirtual

Create the surface.

Parameters
[out]polygonsthe resultant polygons, as a set of vertices. The Vertices structure contains an array of point indices.

Implements pcl::MeshConstruction< PointInT >.

Definition at line 74 of file organized_fast_mesh.hpp.

◆ reconstructPolygons()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::reconstructPolygons ( std::vector< pcl::Vertices > &  polygons)
protected

Perform the actual polygonal reconstruction.

Parameters
[out]polygonsthe resultant polygons

Definition at line 85 of file organized_fast_mesh.hpp.

◆ resetPointData()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::resetPointData ( const int &  point_index,
pcl::PolygonMesh mesh,
const float &  value = 0.0f,
int  field_x_idx = 0,
int  field_y_idx = 1,
int  field_z_idx = 2 
)
inlineprotected

Set (all) coordinates of a particular point to the specified value.

Parameters
[in]point_indexindex of point
[out]meshto modify
[in]valuevalue to use when re-setting
[in]field_x_idxthe X coordinate of the point
[in]field_y_idxthe Y coordinate of the point
[in]field_z_idxthe Z coordinate of the point

Definition at line 324 of file organized_fast_mesh.h.

References pcl::PolygonMesh::cloud, pcl::PCLPointCloud2::data, pcl::PCLPointCloud2::fields, and pcl::PCLPointCloud2::point_step.

◆ setAngleTolerance()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setAngleTolerance ( float  angle_tolerance)
inline

Set the angle tolerance used for checking whether or not an edge is occluded.

Standard values are 5deg to 15deg (input in rad!). Set a value smaller than zero to disable the check for shadowed edges.

Parameters
[in]angle_toleranceAngle tolerance (in rad). Set a value <0 to disable.

Definition at line 188 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::cos_angle_tolerance_.

◆ setDistanceTolerance()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setDistanceTolerance ( float  distance_tolerance,
bool  depth_dependent = false 
)
inline

◆ setMaxEdgeLength()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setMaxEdgeLength ( float  a,
float  b = 0.0f,
float  c = 0.0f 
)
inline

Set a maximum edge length.

Using not only the scalar a, but also b and c, allows for using a distance threshold in the form of: threshold(x) = c*x*x + b*x + a

Parameters
[in]ascalar coefficient of the (distance-dependent polynom) threshold
[in]blinear coefficient of the (distance-dependent polynom) threshold
[in]cquadratic coefficient of the (distance-dependent polynom) threshold

Definition at line 104 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::max_edge_length_a_, pcl::OrganizedFastMesh< PointInT >::max_edge_length_b_, pcl::OrganizedFastMesh< PointInT >::max_edge_length_c_, and pcl::OrganizedFastMesh< PointInT >::max_edge_length_set_.

◆ setTrianglePixelSize()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSize ( int  triangle_size)
inline

Set the edge length (in pixels) used for constructing the fixed mesh.

Parameters
[in]triangle_sizeedge length in pixels (Default: 1 = neighboring pixels are connected)

Definition at line 123 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSizeColumns(), and pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSizeRows().

◆ setTrianglePixelSizeColumns()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSizeColumns ( int  triangle_size)
inline

Set the edge length (in pixels) used for iterating over columns when constructing the fixed mesh.

Parameters
[in]triangle_sizeedge length in pixels (Default: 1 = neighboring pixels are connected)

Definition at line 144 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::triangle_pixel_size_columns_.

Referenced by pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSize().

◆ setTrianglePixelSizeRows()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSizeRows ( int  triangle_size)
inline

Set the edge length (in pixels) used for iterating over rows when constructing the fixed mesh.

Parameters
[in]triangle_sizeedge length in pixels (Default: 1 = neighboring pixels are connected)

Definition at line 134 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::triangle_pixel_size_rows_.

Referenced by pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSize().

◆ setTriangulationType()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setTriangulationType ( TriangulationType  type)
inline

Set the triangulation type (see TriangulationType)

Parameters
[in]typequad mesh, triangle mesh with fixed left, right cut, or adaptive cut (splits a quad w.r.t. the depth (z) of the points)

Definition at line 154 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::triangulation_type_.

◆ setViewpoint()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::setViewpoint ( const Eigen::Vector3f &  viewpoint)
inline

Set the viewpoint from where the input point cloud has been acquired.

Parameters
[in]viewpointVector containing the viewpoint coordinates (in the coordinate system of the data)

Definition at line 162 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::viewpoint_.

◆ storeShadowedFaces()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::storeShadowedFaces ( bool  enable)
inline

Store shadowed faces or not.

Parameters
[in]enableset to true to store shadowed faces

Definition at line 177 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::store_shadowed_faces_.

◆ unsetMaxEdgeLength()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::unsetMaxEdgeLength ( )
inline

◆ useDepthAsDistance()

template<typename PointInT >
void pcl::OrganizedFastMesh< PointInT >::useDepthAsDistance ( bool  enable)
inline

Use the points' depths (z-coordinates) instead of measured distances (points' distances to the viewpoint).

Parameters
[in]enableSet to true skips comptations and further speeds up computation by using depth instead of computing distance. false to disable.

Definition at line 210 of file organized_fast_mesh.h.

References pcl::OrganizedFastMesh< PointInT >::use_depth_as_distance_.

Member Data Documentation

◆ cos_angle_tolerance_

template<typename PointInT >
float pcl::OrganizedFastMesh< PointInT >::cos_angle_tolerance_ {std::abs (std::cos (pcl::deg2rad (12.5f)))}
protected

(Cosine of the) angle tolerance used when checking whether or not an edge between two points is shadowed.

Definition at line 244 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setAngleTolerance().

◆ distance_dependent_

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::distance_dependent_ {false}
protected

flag whether or not distance_tolerance_ is distance dependent (multiplied by the squared distance to the point) or not.

Definition at line 250 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setDistanceTolerance().

◆ distance_tolerance_

template<typename PointInT >
float pcl::OrganizedFastMesh< PointInT >::distance_tolerance_ {-1.0f}
protected

distance tolerance for filtering out shadowed/occluded edges

Definition at line 247 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setDistanceTolerance().

◆ max_edge_length_a_

template<typename PointInT >
float pcl::OrganizedFastMesh< PointInT >::max_edge_length_a_ {0.0f}
protected

max length of edge, scalar component

Definition at line 217 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setMaxEdgeLength().

◆ max_edge_length_b_

template<typename PointInT >
float pcl::OrganizedFastMesh< PointInT >::max_edge_length_b_ {0.0f}
protected

max length of edge, scalar component

Definition at line 219 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setMaxEdgeLength().

◆ max_edge_length_c_

template<typename PointInT >
float pcl::OrganizedFastMesh< PointInT >::max_edge_length_c_ {0.0f}
protected

max length of edge, scalar component

Definition at line 221 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setMaxEdgeLength().

◆ max_edge_length_dist_dependent_

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::max_edge_length_dist_dependent_ {false}
protected

flag whether or not max edge length is distance dependent.

Definition at line 226 of file organized_fast_mesh.h.

◆ max_edge_length_set_

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::max_edge_length_set_ {false}
protected

◆ store_shadowed_faces_

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::store_shadowed_faces_ {false}
protected

Whether or not shadowed faces are stored, e.g., for exploration.

Definition at line 241 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::storeShadowedFaces().

◆ triangle_pixel_size_columns_

template<typename PointInT >
int pcl::OrganizedFastMesh< PointInT >::triangle_pixel_size_columns_ {1}
protected

size of triangle edges (in pixels) for iterating over columns

Definition at line 232 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSizeColumns().

◆ triangle_pixel_size_rows_

template<typename PointInT >
int pcl::OrganizedFastMesh< PointInT >::triangle_pixel_size_rows_ {1}
protected

size of triangle edges (in pixels) for iterating over rows.

Definition at line 229 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::setTrianglePixelSizeRows().

◆ triangulation_type_

template<typename PointInT >
TriangulationType pcl::OrganizedFastMesh< PointInT >::triangulation_type_ {QUAD_MESH}
protected

Type of meshing scheme (quads vs.

triangles, left cut vs. right cut ...

Definition at line 235 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::setTriangulationType().

◆ use_depth_as_distance_

template<typename PointInT >
bool pcl::OrganizedFastMesh< PointInT >::use_depth_as_distance_ {false}
protected

flag whether or not the points' depths are used instead of measured distances (points' distances to the viewpoint).

This flag may be set using useDepthAsDistance(true) for (RGB-)Depth cameras to skip computations and gain additional speed up.

Definition at line 254 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::useDepthAsDistance().

◆ viewpoint_

template<typename PointInT >
Eigen::Vector3f pcl::OrganizedFastMesh< PointInT >::viewpoint_ {Eigen::Vector3f::Zero ()}
protected

Viewpoint from which the point cloud has been acquired (in the same coordinate frame as the data).

Definition at line 238 of file organized_fast_mesh.h.

Referenced by pcl::OrganizedFastMesh< PointInT >::getViewpoint(), pcl::OrganizedFastMesh< PointInT >::isShadowed(), and pcl::OrganizedFastMesh< PointInT >::setViewpoint().


The documentation for this class was generated from the following files: