W3cubDocs

/PointCloudLibrary

The ear clipping triangulation algorithm. More...

#include <pcl/surface/ear_clipping.h>

Public Types

using Ptr = shared_ptr< EarClipping >
using ConstPtr = shared_ptr< const EarClipping >
- Public Types inherited from pcl::MeshProcessing
using Ptr = shared_ptr< MeshProcessing >
using ConstPtr = shared_ptr< const MeshProcessing >
using PolygonMeshConstPtr = PolygonMesh::ConstPtr

Public Member Functions

EarClipping ()
Empty constructor. More...
virtual bool initCompute ()
Initialize computation. 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...

Public Attributes

pcl::PolygonMeshConstPtr input_mesh_
Input polygonal mesh. 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 Indices &vertices)
Compute the signed area of a polygon. More...
template<typename T = pcl::index_t, std::enable_if_t<!std::is_same< T, std::uint32_t >::value, pcl::index_t > = 0>
float area (const std::vector< std::uint32_t > &vertices)
Compute the signed area of a polygon. More...
bool isEar (int u, int v, int w, const Indices &vertices)
Check if the triangle (u,v,w) is an ear. More...
template<typename T = pcl::index_t, std::enable_if_t<!std::is_same< T, std::uint32_t >::value, pcl::index_t > = 0>
bool isEar (int u, int v, int w, const std::vector< std::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

ConstPtr

using pcl::EarClipping::ConstPtr = shared_ptr<const EarClipping>

Definition at line 56 of file ear_clipping.h.

Ptr

using pcl::EarClipping::Ptr = shared_ptr<EarClipping>

Definition at line 55 of file ear_clipping.h.

Constructor & Destructor Documentation

EarClipping()

pcl::EarClipping::EarClipping ( )
inline

Empty constructor.

Definition at line 61 of file ear_clipping.h.

Member Function Documentation

area() [1/2]

float pcl::EarClipping::area ( const Indices & vertices )
protected

Compute the signed area of a polygon.

Parameters
[in] vertices the vertices representing the polygon

area() [2/2]

template<typename T = pcl::index_t, std::enable_if_t<!std::is_same< T, std::uint32_t >::value, pcl::index_t > = 0>
float pcl::EarClipping::area ( const std::vector< std::uint32_t > & vertices )
inlineprotected

Compute the signed area of a polygon.

Parameters
[in] vertices the vertices representing the polygon
Deprecated:
Scheduled for removal in version 1 . 14 : "This method creates a useless copy of the vertices vector. Use area method which accepts Indices instead"

Definition at line 98 of file ear_clipping.h.

crossProduct()

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

Compute the cross product between 2D vectors.

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

Definition at line 143 of file ear_clipping.h.

initCompute() [1/2]

virtual bool pcl::MeshProcessing::initCompute

Initialize computation.

Must be called before processing starts.

initCompute() [2/2]

bool pcl::EarClipping::initCompute ( )
overrideprotectedvirtual

This method should get called before starting the actual computation.

Reimplemented from pcl::MeshProcessing.

isEar() [1/2]

bool pcl::EarClipping::isEar ( int u,
int v,
int w,
const Indices & 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

isEar() [2/2]

template<typename T = pcl::index_t, std::enable_if_t<!std::is_same< T, std::uint32_t >::value, pcl::index_t > = 0>
bool pcl::EarClipping::isEar ( int u,
int v,
int w,
const std::vector< std::uint32_t > & vertices
)
inlineprotected

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
Deprecated:
Scheduled for removal in version 1 . 14 : "This method creates a useless copy of the vertices vector. Use isEar method which accepts Indices instead"

Definition at line 121 of file ear_clipping.h.

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

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

input_mesh_

pcl::PolygonMeshConstPtr pcl::MeshProcessing::input_mesh_

Input polygonal mesh.

Definition at line 147 of file processing.h.

points_

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:

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_ear_clipping.html