pcl::EarClipping Class Reference
Module surface

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

## ConstPtr

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

Definition at line 57 of file ear_clipping.h.

## Ptr

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

Definition at line 56 of file ear_clipping.h.

## Constructor & Destructor Documentation

## EarClipping()

pcl::EarClipping::EarClipping | ( |  | ) |

inline

Empty constructor.

Definition at line 62 of file ear_clipping.h.

## Member Function Documentation

## area()

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

protected

Compute the signed area of a polygon.

Parameters

  [in] | vertices | the vertices representing the polygon

## crossProduct()

float pcl::EarClipping::crossProduct | ( | const Eigen::Vector2f & | p1,
|  | const Eigen::Vector2f & | p2
| ) |  | const

inline protected

Compute the cross product between 2D vectors.

Parameters

  [in] | p1 | the first 2D vector
  [in] | p2 | the first 2D vector

Definition at line 119 of file ear_clipping.h.

## initCompute()

bool pcl::EarClipping::initCompute | ( |  | ) |

protected virtual

This method should get called before starting the actual computation.

Reimplemented from pcl::MeshProcessing.

## isEar()

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] | u | the first triangle vertex
  [in] | v | the second triangle vertex
  [in] | w | the third triangle vertex
  [in] | vertices | a set of input vertices

## isInsideTriangle()

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] | u | the first triangle vertex
  [in] | v | the second triangle vertex
  [in] | w | the third triangle vertex
  [in] | p | the point to check

## performProcessing()

void pcl::EarClipping::performProcessing | ( | pcl::PolygonMesh & | output | ) |

protected virtual

The actual surface reconstruction method.

Parameters

  [out] | output | the output polygonal mesh

Implements pcl::MeshProcessing.

## triangulate()

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

protected

Triangulate one polygon.

Parameters

  [in] | vertices | the set of vertices
  [out] | output | the resultant polygonal mesh

## Member Data Documentation

## points_

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:

- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/surface/include/pcl/surface/ear_clipping.h