|
| ExactCDT2d () |
| ExactCDT2d constructor.
|
|
| ~ExactCDT2d () override |
| ExactCDT2d destructor.
|
|
void | clear () override |
| Removes everything from this triangulation. More...
|
|
index_t | insert (const ExactPoint &p, index_t id=0, index_t hint=index_t(-1)) |
| Inserts a point. More...
|
|
void | insert_constraint (index_t v1, index_t v2, index_t operand_bits=0) |
| Inserts a constraint. More...
|
|
void | create_enclosing_quad (const ExactPoint &p1, const ExactPoint &p2, const ExactPoint &p3, const ExactPoint &p4) |
| Creates a first large enclosing quad. More...
|
|
void | create_enclosing_rectangle (double x1, double y1, double x2, double y2) |
| Creates a first large enclosing rectangle. More...
|
|
const ExactPoint & | point (index_t v) const |
| Gets a point by vertex index. More...
|
|
index_t | vertex_id (index_t v) const |
| Gets a vertex id by vertex index. More...
|
|
void | set_vertex_id (index_t v, index_t id) |
| Sets a vertex id by vertex index. More...
|
|
void | classify_triangles (const std::string &boolean_expression, bool mark_only=false) |
| Used by 2D CSG operations, discards triangles according to a boolean operation. More...
|
|
void | save (const std::string &filename) const override |
|
| CDTBase2d () |
| CDTBase2d constructor.
|
|
virtual | ~CDTBase2d () |
| CDTBase2d destructor.
|
|
void | insert_constraint (index_t i, index_t j) |
| Inserts a constraint. More...
|
|
void | remove_external_triangles (bool remove_internal_holes=false) |
| Recursively removes all the triangles adjacent to the border, and keeps what's surrounded by constraints. More...
|
|
void | set_delaunay (bool delaunay) |
| Specifies whether a constrained Delaunay triangulation should be constructed, or just a plain constrained triangulation. More...
|
|
index_t | nT () const |
| Gets the number of triangles.
|
|
index_t | nv () const |
| Gets the number of vertices.
|
|
index_t | ncnstr () const |
| Gets the number of constraints.
|
|
index_t | Tv (index_t t, index_t lv) const |
| Gets a vertex of a triangle. More...
|
|
index_t | Tv_find (index_t t, index_t v) const |
| Finds the local index of a vertex in a triangle. More...
|
|
index_t | Tadj (index_t t, index_t le) const |
| Gets a triangle adjacent to a triangle. More...
|
|
index_t | Tadj_find (index_t t1, index_t t2) const |
| Finds the edge accross which a triangle is adjacent to another one. More...
|
|
index_t | vT (index_t v) const |
| Gets a triangle incident to a given vertex. More...
|
|
index_t | Tedge_cnstr_first (index_t t, index_t le) const |
| Gets the constraint associated with an edge. More...
|
|
index_t | edge_cnstr_next (index_t ecit) const |
| Gets the successor of an edge constraint iterator. More...
|
|
index_t | edge_cnstr (index_t ecit) const |
| Gets an edge constraint from an edge constraint iterator. More...
|
|
index_t | Tedge_cnstr_nb (index_t t, index_t le) const |
| Gets the number of constraints associated with a triange edge. More...
|
|
bool | Tedge_is_Delaunay (index_t t, index_t le) const |
| Tests whether a triangle edge is Delaunay. More...
|
|
void | check_consistency () const |
| Checks both combinatorics and geometry, aborts on unconsistency.
|
|
|
void | add_point (const ExactPoint &p, index_t id=index_t(-1)) |
|
void | begin_insert_transaction () override |
|
void | commit_insert_transaction () override |
|
void | rollback_insert_transaction () override |
|
Sign | orient2d (index_t i, index_t j, index_t k) const override |
| Computes the orientation predicate in 2d. More...
|
|
Sign | incircle (index_t i, index_t j, index_t k, index_t l) const override |
| Incircle predicate. More...
|
|
index_t | create_intersection (index_t E1, index_t i, index_t j, index_t E2, index_t k, index_t l) override |
| Given two segments that have an intersection, create the intersection. More...
|
|
index_t | insert (index_t v, index_t hint=index_t(-1)) |
| Inserts a new point. More...
|
|
void | create_enclosing_triangle (index_t v1, index_t v2, index_t v3) |
| Creates the combinatorics for a first large enclosing triangle. More...
|
|
void | create_enclosing_quad (index_t v1, index_t v2, index_t v3, index_t v4) |
| Creates the combinatorics for a first large enclosing quad. More...
|
|
void | Tset_flag (index_t t, index_t flag) |
| Sets a triangle flag. More...
|
|
void | Treset_flag (index_t t, index_t flag) |
| Resets a triangle flag. More...
|
|
bool | Tflag_is_set (index_t t, index_t flag) |
| Tests a triangle flag. More...
|
|
bool | Tis_in_list (index_t t) const |
| Tests whether a triangle is in a DList. More...
|
|
void | insert_vertex_in_edge (index_t v, index_t t, index_t le, DList &S) |
| Inserts a vertex in an edge. More...
|
|
void | insert_vertex_in_edge (index_t v, index_t t, index_t le) |
| Inserts a vertex in an edge. More...
|
|
void | insert_vertex_in_triangle (index_t v, index_t t, DList &S) |
| Inserts a vertex in a triangle. More...
|
|
index_t | find_intersected_edges (index_t i, index_t j, DList &Q) |
| Finds the edges intersected by a constraint. More...
|
|
void | walk_constraint_v (CDT2d_ConstraintWalker &W) |
| Used by find_intersected_edges()
|
|
void | walk_constraint_t (CDT2d_ConstraintWalker &W, DList &Q) |
| Used by find_intersected_edges()
|
|
void | constrain_edges (index_t i, index_t j, DList &Q, DList &N) |
| Constrains an edge by iteratively flipping the intersected edges. More...
|
|
void | Delaunayize_vertex_neighbors (index_t from_v) |
| Restores Delaunay condition starting from the triangles incident to a given vertex. More...
|
|
void | Delaunayize_vertex_neighbors (index_t v, DList &S) |
| Restores Delaunay condition starting from the triangles incident to a given vertex. More...
|
|
void | Delaunayize_new_edges (DList &N) |
| Restores Delaunay condition for a set of edges after inserting a constrained edge. More...
|
|
void | Tset (index_t t, index_t v1, index_t v2, index_t v3, index_t adj1, index_t adj2, index_t adj3, index_t e1cnstr=index_t(-1), index_t e2cnstr=index_t(-1), index_t e3cnstr=index_t(-1)) |
| Sets all the combinatorial information of a triangle and edge flags. More...
|
|
void | Trot (index_t t, index_t lv) |
| Rotates indices in triangle t in such a way that a given vertex becomes vertex 0. More...
|
|
void | swap_edge (index_t t1, bool swap_t1_t2=false) |
| Swaps an edge. More...
|
|
void | Tadj_set (index_t t, index_t le, index_t adj) |
| Sets a triangle adjacency relation. More...
|
|
index_t | Topp (index_t t, index_t e=0) const |
| Gets the neighboring triangle vertex opposite to a given vertex.
|
|
void | Tadj_back_connect (index_t t1, index_t le1, index_t prev_t2_adj_e2) |
| After having changed connections from triangle to a neighbor, creates connections from neighbor to triangle. More...
|
|
index_t | Tnew () |
| Creates a new triangle. More...
|
|
void | Tset_edge_cnstr_first (index_t t, index_t le, index_t ecit) |
| Sets the constraints list associated with an edge. More...
|
|
void | Tadd_edge_cnstr (index_t t, index_t le, index_t cnstr_id) |
| Adds a constraint to a triangle edge. More...
|
|
void | Tadd_edge_cnstr_with_neighbor (index_t t, index_t le, index_t cnstr_id) |
| Adds a constraint to a triangle edge and to the neighboring edge if it exists. More...
|
|
bool | Tedge_is_constrained (index_t t, index_t le) const |
| Tests whether an edge is constrained. More...
|
|
void | for_each_T_around_v (index_t v, std::function< bool(index_t t, index_t lv)> doit) |
| Calls a user-defined function for each triangle around a vertex. More...
|
|
index_t | locate (index_t v, index_t hint=index_t(-1), Sign *orient=nullptr) const |
| Locates a vertex. More...
|
|
bool | is_convex_quad (index_t t) const |
| Tests whether triange t and its neighbor accross edge 0 form a strictly convex quad. More...
|
|
void | remove_marked_triangles () |
| Removes all the triangles that have the flag T_MARKED_FLAG set. More...
|
|
void | Tcheck (index_t t) const |
| Consistency check for a triangle. More...
|
|
void | debug_Tcheck (index_t t) const |
| Consistency check for a triangle in debug mode, ignored in release mode. More...
|
|
void | check_combinatorics () const |
| Consistency combinatorial check for all the triangles. More...
|
|
void | debug_check_combinatorics () const |
| Consistency combinatorial check for all the triangles in debug mode, ignored in release mode. More...
|
|
virtual void | check_geometry () const |
| Consistency geometrical check for all the triangles. More...
|
|
void | debug_check_geometry () const |
| Consistency geometrical check for all the triangles in debug mode, ignored in release mode. More...
|
|
void | debug_check_consistency () const |
| Checks both combinatorics and geometry in debug mode, ignored in release mode, aborts on unconsistency.
|
|
bool | segment_segment_intersect (index_t u1, index_t u2, index_t v1, index_t v2) const |
| Tests whether two segments have a frank intersection. More...
|
|
bool | segment_edge_intersect (index_t v1, index_t v2, index_t t, index_t le) const |
| Tests whether an edge triangle and a segment have a frank intersection. More...
|
|
void | check_edge_intersections (index_t v1, index_t v2, const DList &Q) |
| Checks that the edges stored in a DList exactly correspond to all edge intersections between a segment and the triangle edges. More...
|
|
index_t | eT (Edge E) |
| Gets a triangle incident a a given edge. More...
|
|
index_t | locate_naive (index_t v, index_t hint=index_t(-1), Sign *orient=nullptr) const |
| Simpler version of locate() kept for reference. More...
|
|
void | constrain_edges_naive (index_t i, index_t j, DList &Q, vector< Edge > &N) |
| Simpler version of constrain_edges() kept for reference. More...
|
|
void | Delaunayize_new_edges_naive (vector< Edge > &N) |
| Simpler version of Delaunayize_new_edges() that uses a vector instead of a DList, kept for reference.
|
|
Constrained Delaunay Triangulation with vertices that are exact points. Can be used to implement 2D CSG.
Points are represented using exact 2d homogeneous coordinates. Unlike CDT2d, this ensures exact representation of constraints intersections with guaranteed behavior. Under the hood, it inherits CDTBase2d (constrained Delaunay triangulation), and redefines orient2d(), incircle2d() and create_intersection() using vectors with homogeneous coordinates stored as arithmetic expansions (vec2HE) or arbitrary-precision floating point numbers (vec2HEx) if compiled with Tessael's geogramplus extension package.
- See also
- CDT2d
Definition at line 1537 of file CDT_2d.h.