Triangulating a convex polygon by ear-removal. More...
#include <Triangulation.h>
Classes | |
class | Node |
Public Types | |
typedef CGAL::PointS2< Real > | PointS2 |
typedef CGAL::Simple_cartesian < Real >::Segment_2 | SegmentS2 |
typedef Three_tuple< int > | Triangle |
Connectivity for a triangle. More... | |
typedef std::vector< Triangle > | Connectivity |
Element connectivity table. More... | |
Public Member Functions | |
Triangulation () | |
A constructor. More... | |
void | triangulate (const Point_2 *ps, int n, Connectivity *tri) |
Main entry for triangulation. More... | |
Private Types | |
typedef std::list< Node > | Node_list |
typedef Node_list::iterator | Node_iterator |
typedef Node_list::const_iterator | Node_const_iterator |
Private Member Functions | |
const PointS2 & | get_point (const Node &v) const |
Node_iterator | get_next (Node_iterator i) |
Node_iterator | get_prev (Node_iterator i) |
Node_const_iterator | get_next (Node_const_iterator i) const |
Node_const_iterator | get_prev (Node_const_iterator i) const |
bool | is_diagonal (Node_const_iterator u, Node_const_iterator v) const |
bool | in_cone (Node_const_iterator u, Node_const_iterator v) const |
bool | is_diagonalie (Node_const_iterator u, Node_const_iterator v) const |
Private Attributes | |
const Point_2 * | _pnts |
Node_list | _nodes |
Triangulating a convex polygon by ear-removal.
This class implements the ear-removal algorithm described in the book "Computational Geometry in C" for triangulating a convex polygon. It triangulates a polygon by cutting off ears incrementally until only one triangle is left. This method may generate triangles with poor quality, but quality is not a concern because we will compute integration instead of differentiation.
Definition at line 50 of file Triangulation.h.
typedef std::vector< Triangle> Connectivity |
Element connectivity table.
Definition at line 75 of file Triangulation.h.
|
private |
Definition at line 71 of file Triangulation.h.
|
private |
Definition at line 70 of file Triangulation.h.
Definition at line 69 of file Triangulation.h.
Definition at line 52 of file Triangulation.h.
Definition at line 53 of file Triangulation.h.
typedef Three_tuple< int> Triangle |
Connectivity for a triangle.
Definition at line 73 of file Triangulation.h.
|
inline |
|
inlineprivate |
Definition at line 130 of file Triangulation.h.
Referenced by in_cone(), is_diagonalie(), and triangulate().
|
inlineprivate |
Definition at line 138 of file Triangulation.h.
Definition at line 128 of file Triangulation.h.
References _pnts, and Triangulation::Node::id().
Referenced by in_cone(), and is_diagonalie().
|
inlineprivate |
Definition at line 133 of file Triangulation.h.
Referenced by in_cone(), and triangulate().
|
inlineprivate |
Definition at line 141 of file Triangulation.h.
|
inlineprivate |
Definition at line 150 of file Triangulation.h.
References get_next(), get_point(), get_prev(), leftturn(), and rightturn().
Referenced by is_diagonal().
|
inlineprivate |
Definition at line 146 of file Triangulation.h.
References in_cone(), and is_diagonalie().
Referenced by triangulate().
|
inlineprivate |
Definition at line 163 of file Triangulation.h.
References _nodes, CGAL::do_intersect(), get_next(), get_point(), i, and j.
Referenced by is_diagonal().
|
inline |
Main entry for triangulation.
ps | the coordinates of the nodes. |
n | the number of nodes. |
tri | the element connectivity for output. |
Definition at line 87 of file Triangulation.h.
References _nodes, _pnts, get_next(), get_prev(), i, is_diagonal(), n, and RFC_assertion.
Referenced by Overlay::number_subfaces().
|
private |
Definition at line 177 of file Triangulation.h.
Referenced by get_next(), get_prev(), is_diagonalie(), and triangulate().
|
private |
Definition at line 176 of file Triangulation.h.
Referenced by get_point(), and triangulate().