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>
|
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...
|
|
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.
pcl::EarClippingPatched::EarClippingPatched |
( |
| ) |
|
|
inline |
float pcl::EarClippingPatched::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 118 of file ear_clipping_patched.h.
bool pcl::EarClippingPatched::initCompute |
( |
| ) |
|
|
protected |
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] | p0 | an end of the first line segment |
[in] | p1 | the other end of the first line segment |
[in] | p2 | an end of the second line segment |
[in] | p3 | the 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] | u | the first triangle vertex |
[in] | v | the second triangle vertex |
[in] | w | the third triangle vertex |
[in] | vertices | a 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] | u | the first triangle vertex |
[in] | v | the second triangle vertex |
[in] | w | the third triangle vertex |
[in] | p | the 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] | output | the 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] | vertices | the set of vertices |
[out] | output | the 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] | vertices | the set of vertices |
[out] | output | the resultant polygonal mesh |
Definition at line 95 of file ear_clipping_patched.cpp.
The documentation for this class was generated from the following files: