Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
pcl::EarClippingPatched Class Reference

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

#include <ear_clipping_patched.h>

Inheritance diagram for pcl::EarClippingPatched:
Inheritance graph
[legend]

Public Types

typedef boost::shared_ptr< const EarClippingPatchedConstPtr
 
typedef boost::shared_ptr< EarClippingPatchedPtr
 

Public Member Functions

 EarClippingPatched ()
 Empty constructor. More...
 

Protected Member Functions

float crossProduct (const Eigen::Vector2f &p1, const Eigen::Vector2f &p2) const
 Compute the cross product between 2D vectors. More...
 
bool initCompute ()
 This method should get called before starting the actual computation. More...
 
bool intersect (const Eigen::Vector3f &p0, const Eigen::Vector3f &p1, const Eigen::Vector3f &p2, const Eigen::Vector3f &p3)
 Check if two line segments intersect by themselves. 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...
 
void performProcessing (pcl::PolygonMesh &output)
 The actual surface reconstruction method. More...
 
void triangulate (const Vertices &vertices, PolygonMesh &output)
 Triangulate one polygon. More...
 
size_t triangulateClockwiseVertices (std::vector< uint32_t > &vertices, PolygonMesh &output)
 Triangulate one polygon, assume the vertices are clockwise. More...
 

Protected Attributes

pcl::PointCloud< pcl::PointXYZ >::Ptr points_
 a Pointer to the point cloud data. 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 51 of file ear_clipping_patched.h.

Member Typedef Documentation

Definition at line 55 of file ear_clipping_patched.h.

Definition at line 54 of file ear_clipping_patched.h.

Constructor & Destructor Documentation

pcl::EarClippingPatched::EarClippingPatched ( )
inline

Empty constructor.

Definition at line 60 of file ear_clipping_patched.h.

Member Function Documentation

float pcl::EarClippingPatched::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_patched.h.

bool pcl::EarClippingPatched::initCompute ( )
protected

This method should get called before starting the actual computation.

Definition at line 43 of file ear_clipping_patched.cpp.

bool pcl::EarClippingPatched::intersect ( const Eigen::Vector3f &  p0,
const Eigen::Vector3f &  p1,
const Eigen::Vector3f &  p2,
const Eigen::Vector3f &  p3 
)
protected

Check if two line segments intersect by themselves.

Parameters
[in]p0an end of the first line segment
[in]p1the other end of the first line segment
[in]p2an end of the second line segment
[in]p3the other end of the second line segment

Definition at line 211 of file ear_clipping_patched.cpp.

bool pcl::EarClippingPatched::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

Definition at line 130 of file ear_clipping_patched.cpp.

bool pcl::EarClippingPatched::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

Definition at line 182 of file ear_clipping_patched.cpp.

void pcl::EarClippingPatched::performProcessing ( pcl::PolygonMesh &  output)
protected

The actual surface reconstruction method.

Parameters
[out]outputthe output polygonal mesh

Definition at line 56 of file ear_clipping_patched.cpp.

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

Triangulate one polygon.

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

Definition at line 66 of file ear_clipping_patched.cpp.

size_t pcl::EarClippingPatched::triangulateClockwiseVertices ( std::vector< uint32_t > &  vertices,
PolygonMesh &  output 
)
protected

Triangulate one polygon, assume the vertices are clockwise.

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

Definition at line 95 of file ear_clipping_patched.cpp.

Member Data Documentation

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

a Pointer to the point cloud data.

Definition at line 62 of file ear_clipping_patched.h.


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


jsk_recognition_utils
Author(s):
autogenerated on Mon May 3 2021 03:03:03