Point Cloud Library (PCL)  1.8.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
< EarClipping
Ptr
 
typedef boost::shared_ptr
< const EarClipping
ConstPtr
 
- Public Types inherited from pcl::MeshProcessing
typedef boost::shared_ptr
< MeshProcessing
Ptr
 
typedef boost::shared_ptr
< const MeshProcessing
ConstPtr
 
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 ()
 This method should get called before starting the actual computation. More...
 
void performProcessing (pcl::PolygonMesh &output)
 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 53 of file ear_clipping.h.

Member Typedef Documentation

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

Definition at line 57 of file ear_clipping.h.

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

Definition at line 56 of file ear_clipping.h.

Constructor & Destructor Documentation

pcl::EarClipping::EarClipping ( )
inline

Empty constructor.

Definition at line 62 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 119 of file ear_clipping.h.

bool pcl::EarClipping::initCompute ( )
protectedvirtual

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)
protectedvirtual

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 64 of file ear_clipping.h.


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