Point Cloud Library (PCL)  1.9.1-dev
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::EarClipping Class Reference

The ear clipping triangulation algorithm. More...

#include <pcl/surface/ear_clipping.h>

+ Inheritance diagram for pcl::EarClipping:

Public Types

typedef boost::shared_ptr< EarClippingPtr
 
typedef boost::shared_ptr< const EarClippingConstPtr
 
- Public Types inherited from pcl::MeshProcessing
typedef boost::shared_ptr< MeshProcessingPtr
 
typedef boost::shared_ptr< const MeshProcessingConstPtr
 
typedef PolygonMesh::ConstPtr PolygonMeshConstPtr
 

Public Member Functions

 EarClipping ()
 Empty constructor. More...
 
- Public Member Functions inherited from pcl::MeshProcessing
 MeshProcessing ()
 Constructor. More...
 
virtual ~MeshProcessing ()
 Destructor. More...
 
void setInputMesh (const pcl::PolygonMeshConstPtr &input)
 Set the input mesh that we want to process. More...
 
pcl::PolygonMeshConstPtr getInputMesh () const
 Get the input mesh to be processed. More...
 
void process (pcl::PolygonMesh &output)
 Process the input surface mesh and store the results. More...
 

Protected Member Functions

bool initCompute () override
 This method should get called before starting the actual computation. More...
 
void performProcessing (pcl::PolygonMesh &output) override
 The actual surface reconstruction method. More...
 
void triangulate (const Vertices &vertices, PolygonMesh &output)
 Triangulate one polygon. More...
 
float area (const std::vector< uint32_t > &vertices)
 Compute the signed area of a polygon. More...
 
bool isEar (int u, int v, int w, const std::vector< uint32_t > &vertices)
 Check if the triangle (u,v,w) is an ear. More...
 
bool isInsideTriangle (const Eigen::Vector3f &u, const Eigen::Vector3f &v, const Eigen::Vector3f &w, const Eigen::Vector3f &p)
 Check if p is inside the triangle (u,v,w). More...
 
float crossProduct (const Eigen::Vector2f &p1, const Eigen::Vector2f &p2) const
 Compute the cross product between 2D vectors. More...
 
- Protected Member Functions inherited from pcl::MeshProcessing
virtual void deinitCompute ()
 UnInitialize computation. More...
 
virtual std::string getClassName () const
 Abstract class get name method. More...
 

Protected Attributes

pcl::PointCloud< pcl::PointXYZ >::Ptr points_
 a Pointer to the point cloud data. More...
 
- Protected Attributes inherited from pcl::MeshProcessing
pcl::PolygonMeshConstPtr input_mesh_
 Input polygonal mesh. More...
 

Detailed Description

The ear clipping triangulation algorithm.

The code is inspired by Flavien Brebion implementation, which is in n^3 and does not handle holes.

Author
Nicolas Burrus

Definition at line 52 of file ear_clipping.h.

Member Typedef Documentation

typedef boost::shared_ptr<const EarClipping> pcl::EarClipping::ConstPtr

Definition at line 56 of file ear_clipping.h.

typedef boost::shared_ptr<EarClipping> pcl::EarClipping::Ptr

Definition at line 55 of file ear_clipping.h.

Constructor & Destructor Documentation

pcl::EarClipping::EarClipping ( )
inline

Empty constructor.

Definition at line 61 of file ear_clipping.h.

Member Function Documentation

float pcl::EarClipping::area ( const std::vector< uint32_t > &  vertices)
protected

Compute the signed area of a polygon.

Parameters
[in]verticesthe vertices representing the polygon
float pcl::EarClipping::crossProduct ( const Eigen::Vector2f &  p1,
const Eigen::Vector2f &  p2 
) const
inlineprotected

Compute the cross product between 2D vectors.

Parameters
[in]p1the first 2D vector
[in]p2the first 2D vector

Definition at line 118 of file ear_clipping.h.

bool pcl::EarClipping::initCompute ( )
overrideprotectedvirtual

This method should get called before starting the actual computation.

Reimplemented from pcl::MeshProcessing.

bool pcl::EarClipping::isEar ( int  u,
int  v,
int  w,
const std::vector< uint32_t > &  vertices 
)
protected

Check if the triangle (u,v,w) is an ear.

Parameters
[in]uthe first triangle vertex
[in]vthe second triangle vertex
[in]wthe third triangle vertex
[in]verticesa set of input vertices
bool pcl::EarClipping::isInsideTriangle ( const Eigen::Vector3f &  u,
const Eigen::Vector3f &  v,
const Eigen::Vector3f &  w,
const Eigen::Vector3f &  p 
)
protected

Check if p is inside the triangle (u,v,w).

Parameters
[in]uthe first triangle vertex
[in]vthe second triangle vertex
[in]wthe third triangle vertex
[in]pthe point to check
void pcl::EarClipping::performProcessing ( pcl::PolygonMesh output)
overrideprotectedvirtual

The actual surface reconstruction method.

Parameters
[out]outputthe output polygonal mesh

Implements pcl::MeshProcessing.

void pcl::EarClipping::triangulate ( const Vertices vertices,
PolygonMesh output 
)
protected

Triangulate one polygon.

Parameters
[in]verticesthe set of vertices
[out]outputthe resultant polygonal mesh

Member Data Documentation

pcl::PointCloud<pcl::PointXYZ>::Ptr pcl::EarClipping::points_
protected

a Pointer to the point cloud data.

Definition at line 63 of file ear_clipping.h.


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