|
Geogram Version 1.9.7
A programming library of geometric algorithms
|
Computes the intersection between a set of halfspaces. More...
#include <geogram/voronoi/generic_RVD_cell.h>
Classes | |
| class | Corner |
| A Corner corresponds to a vertex seen from a triangle. More... | |
| struct | Triangle |
| Represents a vertex of this ConvexCell in dual form. More... | |
| class | Vertex |
| Represents a facet of this ConvexCell in dual form. More... | |
Public Types | |
| enum | TriangleStatus { TRI_IS_FREE = 0 , TRI_IS_CONFLICT = 1 , TRI_IS_USED = 2 } |
| Represents the current state of a triangle. More... | |
Public Member Functions | |
| ConvexCell (coord_index_t dim) | |
| ConvexCell constructor. | |
| void | copy (const ConvexCell &rhs) |
| Copies a ConvexCell. | |
| coord_index_t | dimension () const |
| Gets the dimension of this ConvexCell. | |
| void | clear () |
| Clears this ConvexCell. | |
| void | set_symbolic_is_surface (bool x) |
| Specifies that symbolic information is relative to surfacic mesh (rather than volumetric mesh). | |
| void | initialize_from_mesh_tetrahedron (const Mesh *mesh, index_t t, bool symbolic, const GEO::Attribute< double > &vertex_weight) |
| Assigns a mesh tetrahedron to this ConvexCell. | |
| void | initialize_from_surface_mesh (Mesh *mesh, bool symbolic) |
| Copies a Mesh into a ConvexCell. | |
| void | convert_to_mesh (Mesh *mesh, bool copy_symbolic_info=false) |
| Copies a ConvexCell into a Mesh. | |
| template<index_t DIM> | |
| signed_index_t | clip_by_plane (const Mesh *mesh, const Delaunay *delaunay, index_t i, index_t j, bool exact, bool symbolic) |
| Clips this ConvexCell with a plane. | |
| index_t | max_t () const |
| Gets the maximum valid triangle index plus one. | |
| index_t | nb_t () const |
| Gets the number of used triangles. | |
| index_t | max_v () const |
| Gets the maximum valid vertex index plus one. | |
| bool | triangle_is_free (index_t t) const |
| Tests whether a given triangle is free. | |
| bool | triangle_is_valid (index_t t) const |
| Tests whether a given triangle is valid. | |
| bool | triangle_is_used (index_t t) const |
| Tests whether a given triangle is used. | |
| bool | triangle_is_conflict (index_t t) const |
| Tests whether a given triangle belongs to the conflict zone. | |
| index_t | triangle_vertex (index_t t, index_t iv) const |
| Gets the index of a triangle vertex. | |
| index_t | triangle_adjacent (index_t t, index_t e) const |
| Gets the index of a triangle adjacent to another one. | |
| void | set_triangle_vertex (index_t t, index_t iv, index_t v) |
| Sets a vertex of a triangle. | |
| void | set_triangle_adjacent (index_t t, index_t e, index_t t2) |
| Sets a triangle adjacency. | |
| index_t | find_triangle_vertex (index_t t, index_t v) const |
| Finds the local index of a triangle vertex. | |
| index_t | triangle_adjacent_index (index_t t1, index_t t2) const |
| Finds the edge along which two triangles are adjacent. | |
| signed_index_t | vertex_triangle (index_t v) const |
| Gets one of the triangles incident to a vertex. | |
| void | set_vertex_triangle (index_t v, index_t t) |
| Stores in a vertex the index of one the triangles incident to it. | |
| const GEOGen::Vertex & | triangle_dual (index_t t) const |
| Gets the dual vertex that corresponds to a triangle. | |
| GEOGen::Vertex & | triangle_dual (index_t t) |
| Gets the dual vertex that corresponds to a triangle. | |
| signed_index_t | cell_id () const |
| Gets the id of this ConvexCell. | |
| void | set_cell_id (signed_index_t i) |
| Sets the id of this ConvexCell. | |
| signed_index_t | triangle_id (index_t t) const |
| Gets the id of a triangle. | |
| void | set_triangle_id (index_t t, signed_index_t id) |
| Sets the id of a triangle. | |
| signed_index_t | vertex_id (index_t v) const |
| Gets the id of a vertex. | |
| void | set_vertex_id (index_t v, signed_index_t id) |
| Sets the id of a vertex. | |
| void | move_to_next_around_vertex (Corner &c) const |
| Replaces a corner by the next corner obtained by turing around the vertex. | |
| void | init_v_to_t () |
| Updates the cache that stores for each vertex a triangle incident to it. | |
| index_t | create_triangle () |
| Creates a new uninitialized triangle. | |
| index_t | create_triangle (index_t v0, index_t v1, index_t v2) |
| Creates a new triangle with specified vertices. | |
| index_t | create_triangle (index_t v0, index_t v1, index_t v2, index_t t0, index_t t1, index_t t2) |
| Creates a new triangles with specified vertices and adjacent triangles. | |
| void | set_triangle (index_t t, index_t v0, index_t v1, index_t v2, index_t t0, index_t t1, index_t t2) |
| Sets the vertices and adjacent triangles of a triangle. | |
| index_t | create_triangle (const double *p, double w, index_t v0, index_t v1, index_t v2, index_t t0, index_t t1, index_t t2) |
| Creates a new triangles with specified vertices, adjacent triangles and geometric location at the dual vertex. | |
| index_t | create_triangle_copy (const double *p, index_t v0, index_t v1, index_t v2, index_t t0, index_t t1, index_t t2) |
| Creates a new triangles with specified vertices, adjacent triangles and geometric location at the dual vertex. | |
| index_t | create_vertex () |
| Creates a new vertex. | |
| template<index_t DIM> | |
| index_t | triangulate_hole (const Delaunay *delaunay, index_t i, index_t j, bool symbolic, index_t t1, index_t t1ebord, index_t v_in) |
| Triangulates the conflict zone. | |
| template<index_t DIM> | |
| void | get_conflict_list (const Mesh *mesh, const Delaunay *delaunay, index_t i, index_t j, bool exact, index_t &conflict_begin, index_t &conflict_end) |
| Determines the conflict zone. | |
| template<index_t DIM> | |
| index_t | find_furthest_point_linear_scan (const Delaunay *delaunay, index_t i, index_t j) const |
| Finds the index of the vertex furthest away on the negative side of a bisector. | |
| template<index_t DIM> | |
| void | propagate_conflict_list (const Mesh *mesh, const Delaunay *delaunay, index_t first_t, index_t i, index_t j, bool exact, index_t &conflict_begin, index_t &conflict_end) |
| Computes the conflict list by propagation from a conflict triangle. | |
| template<index_t DIM> | |
| Sign | side (const Mesh *mesh, const Delaunay *delaunay, const GEOGen::Vertex &v, index_t i, index_t j, bool exact) const |
| Tests on which side a vertex is relative to a bisector. | |
| Sign | side_exact (const Mesh *mesh, const Delaunay *delaunay, const GEOGen::Vertex &v, const double *pi, const double *pj, coord_index_t dim, bool symbolic_is_surface=false) const |
| Tests on which side a vertex is relative to a bisector using exact predicates. | |
| bool | find_triangle_on_border (index_t conflict_begin, index_t conflict_end, index_t &t, index_t &e) const |
| Gets a triangle and an edge on the internal border of the conflict zone. | |
| index_t | next_triangle (index_t t) const |
| Gets the successor of a triangle. | |
| void | set_next_triangle (index_t t, index_t t2) |
| Sets the successor of a triangle. | |
| void | mark_as_free (index_t t) |
| Specify that a triangle is free. | |
| void | mark_as_conflict (index_t t) |
| Specify that a triangle belongs to the conflict zone. | |
| void | mark_as_used (index_t t) |
| Specify that a triangle is used. | |
| void | append_triangle_to_conflict_list (index_t t, index_t &conflict_begin, index_t &conflict_end) |
| Appends a triangle to the conflict list. | |
| void | merge_into_free_list (index_t list_begin, index_t list_end) |
| Merges a list of triangles into the free list. | |
| void | grow () |
| Allocates a new triangle. | |
| std::ostream & | show_stats (std::ostream &os) const |
| Displays the number of free,used,conflict triangles. | |
Static Public Member Functions | |
| template<index_t DIM> | |
| static double | signed_bisector_distance (const Delaunay *delaunay, index_t i, index_t j, const double *q) |
| Evaluates the equation of a bisector at a given point. | |
| static index_t | global_facet_id (const Mesh *mesh, index_t t, index_t lf) |
| Computes a unique global facet id from a mesh tetrahedron and local facet index. | |
Static Public Attributes | |
| static constexpr index_t | NO_TRIANGLE = index_t(-1) |
| static constexpr index_t | NO_VERTEX = index_t(-1) |
| static constexpr index_t | END_OF_LIST = index_t(-1) |
Computes the intersection between a set of halfspaces.
Definition at line 69 of file generic_RVD_cell.h.
Represents the current state of a triangle.
Definition at line 83 of file generic_RVD_cell.h.
|
inline |
ConvexCell constructor.
| [in] | dim | dimension of the ConvexCell, e.g. 3 for 3d |
Definition at line 173 of file generic_RVD_cell.h.
|
inline |
Appends a triangle to the conflict list.
The triangle is marked as conflict and linked to the conflict list.
| [in] | t | the triangle |
| [in,out] | conflict_begin | first triangle in the conflict list |
| [in,out] | conflict_end | one position past the last triangle in the conflict list |
Definition at line 1306 of file generic_RVD_cell.h.
|
inline |
Gets the id of this ConvexCell.
The id can be used to maintain the correspondence with a tetrahedron in the Mesh.
Definition at line 575 of file generic_RVD_cell.h.
|
inline |
Clears this ConvexCell.
Definition at line 201 of file generic_RVD_cell.h.
|
inline |
Clips this ConvexCell with a plane.
The plane is specified as a bisector in a Delaunay triangulation.
| [in] | mesh | input mesh, used by exact predicates |
| [in] | delaunay | the Delaunay triangulation |
| [in] | i | index of the first extremity of the bisector |
| [in] | j | index of the second extremity of the bisector |
| [in] | exact | if true, uses exact predicates (implies symbolic) |
| [in] | symbolic | if true, computes symbolic information |
| DIM | dimension (specified as a template parameter for efficiency reasons). |
Definition at line 282 of file generic_RVD_cell.h.
| void GEOGen::ConvexCell::convert_to_mesh | ( | Mesh * | mesh, |
| bool | copy_symbolic_info = false |
||
| ) |
Copies a ConvexCell into a Mesh.
On exit, the output mesh is a surfacic mesh with the boundary of the convex cell.
| [out] | mesh | a pointer to the target mesh |
| [in] | copy_symbolic_info | if true, symbolic information is copied. An attribute "id" is attached to the facets. The value of id[f] is either 1 + the index of the Voronoi vertex that generated with i the bisector that created the facet, or -1-g if the facet was an original facet of mesh mesh, where g is the index of the original facet in mesh. |
| void GEOGen::ConvexCell::copy | ( | const ConvexCell & | rhs | ) |
Copies a ConvexCell.
The allocated vertices are shared with rhs, thus rhs should not be deleted before this ConvexCell.
| [in] | rhs | a const reference to the ConvexCell to be copied. |
|
inline |
Creates a new uninitialized triangle.
The created triangle is marked as used.
Definition at line 720 of file generic_RVD_cell.h.
|
inline |
Creates a new triangles with specified vertices, adjacent triangles and geometric location at the dual vertex.
The vertex is shared with caller. The created triangle is marked as used.
| [in] | p | geometric location at the dual vertex, shared with caller. Caller remains responsible for memory management. |
| [in] | w | the weight associated with point p |
| [in] | v0 | index of first vertex |
| [in] | v1 | index of second vertex |
| [in] | v2 | index of third vertex |
| [in] | t0 | index of adjacent triangle opposite to v0 |
| [in] | t1 | index of adjacent triangle opposite to v1 |
| [in] | t2 | index of adjacent triangle opposite to v2 |
Definition at line 816 of file generic_RVD_cell.h.
|
inline |
Creates a new triangle with specified vertices.
The created triangle is marked as used. Adjacent triangles are left uninitialized.
| [in] | v0 | index of first vertex |
| [in] | v1 | index of second vertex |
| [in] | v2 | index of third vertex |
Definition at line 740 of file generic_RVD_cell.h.
|
inline |
Creates a new triangles with specified vertices and adjacent triangles.
The created triangle is marked as used.
| [in] | v0 | index of first vertex |
| [in] | v1 | index of second vertex |
| [in] | v2 | index of third vertex |
| [in] | t0 | index of adjacent triangle opposite to v0 |
| [in] | t1 | index of adjacent triangle opposite to v1 |
| [in] | t2 | index of adjacent triangle opposite to v2 |
Definition at line 760 of file generic_RVD_cell.h.
|
inline |
Creates a new triangles with specified vertices, adjacent triangles and geometric location at the dual vertex.
The vertex is copied into local storage. The created triangle is marked as used.
| [in] | p | geometric location at the dual vertex. Vertex is copied into local storage. |
| [in] | v0 | index of first vertex |
| [in] | v1 | index of second vertex |
| [in] | v2 | index of third vertex |
| [in] | t0 | index of adjacent triangle opposite to v0 |
| [in] | t1 | index of adjacent triangle opposite to v1 |
| [in] | t2 | index of adjacent triangle opposite to v2 |
Definition at line 844 of file generic_RVD_cell.h.
|
inline |
Creates a new vertex.
Definition at line 862 of file generic_RVD_cell.h.
|
inline |
Gets the dimension of this ConvexCell.
Definition at line 194 of file generic_RVD_cell.h.
|
inline |
Finds the index of the vertex furthest away on the negative side of a bisector.
| [in] | delaunay | the Delaunay triangulation |
| [in] | i | index of the first extremity of the bisector in delaunay |
| [in] | j | index of the second extremity of the bisector in delaunay |
j's side, or -1 if all the vertices are on i's side. Definition at line 1044 of file generic_RVD_cell.h.
|
inline |
Gets a triangle and an edge on the internal border of the conflict zone.
The returned triangle touches the conflict zone from inside.
| [in] | conflict_begin | first triangle of the conflict zone |
| [in] | conflict_end | one element past the last triangle of the conflict zone |
| [out] | t | a triangle in the conflict zone adjacent to the border of the conflict zone. |
| [out] | e | the edge along which t is adjacent to the border of the conflict zone. |
Definition at line 1226 of file generic_RVD_cell.h.
|
inline |
Finds the local index of a triangle vertex.
| [in] | t | the triangle |
| [in] | v | global vertex index |
v in t t is incident to v Definition at line 469 of file generic_RVD_cell.h.
|
inline |
Determines the conflict zone.
The conflict zone corresponds to the set of triangles that have their dual vertices on the negative side of a bisector.
| [in] | mesh | the input mesh |
| [in] | delaunay | the Delaunay triangulation |
| [in] | i | index of the first extremity of the bisector in delaunay |
| [in] | j | index of the second extremity of the bisector in delaunay |
| [in] | exact | if true, exact predicates are used |
| [out] | conflict_begin | index of the first triangle in conflict list |
| [out] | conflict_end | one position past index of the last triangle in conflict list |
Definition at line 980 of file generic_RVD_cell.h.
|
inlinestatic |
Computes a unique global facet id from a mesh tetrahedron and local facet index.
If a facet is shared by two tetrahedra t1 and t2, its global index determined from t1 and from t2 is the same.
| [in] | mesh | the mesh |
| [in] | t | the index of the tetrahedron |
| [in] | lf | the local facet index (0,1,2 or 3) in tetrahedron t |
Definition at line 1367 of file generic_RVD_cell.h.
|
inline |
Allocates a new triangle.
This function is called whenever a triangle needs to be created and the free list is empty.
Definition at line 1344 of file generic_RVD_cell.h.
|
inline |
Updates the cache that stores for each vertex a triangle incident to it.
Definition at line 701 of file generic_RVD_cell.h.
| void GEOGen::ConvexCell::initialize_from_mesh_tetrahedron | ( | const Mesh * | mesh, |
| index_t | t, | ||
| bool | symbolic, | ||
| const GEO::Attribute< double > & | vertex_weight | ||
| ) |
Assigns a mesh tetrahedron to this ConvexCell.
The tetrahedron from the initial mesh is converted into the internal geometric/symbolic representation.
| [in] | mesh | the mesh from which the tetrahedron is copied |
| [in] | t | the index of the tetrahedron in mesh |
| [in] | symbolic | if true, symbolic information is copied |
| [in] | vertex_weight | if bound, an attribute that gives the weight of each vertex in mesh. |
| void GEOGen::ConvexCell::initialize_from_surface_mesh | ( | Mesh * | mesh, |
| bool | symbolic | ||
| ) |
Copies a Mesh into a ConvexCell.
The surface mesh in mesh represents the boundary of the ConvexCell.
| [in] | mesh | a pointer to the input Mesh |
| [in] | symbolic | if true, symbolic information is copied |
|
inline |
Specify that a triangle belongs to the conflict zone.
Definition at line 1282 of file generic_RVD_cell.h.
|
inline |
Specify that a triangle is free.
A free triangle can be reused by subsequent triangle creations.
Definition at line 1273 of file generic_RVD_cell.h.
|
inline |
Specify that a triangle is used.
Definition at line 1291 of file generic_RVD_cell.h.
|
inline |
Gets the maximum valid triangle index plus one.
May be greater than nb_t() if this ConvexCell has some free (unused) triangles.
Definition at line 339 of file generic_RVD_cell.h.
|
inline |
Gets the maximum valid vertex index plus one.
Definition at line 359 of file generic_RVD_cell.h.
|
inline |
Merges a list of triangles into the free list.
| [in] | list_begin | first triangle in the list to be freed |
| [in] | list_end | one position past the last triangle of the list to be freed |
Definition at line 1324 of file generic_RVD_cell.h.
|
inline |
Replaces a corner by the next corner obtained by turing around the vertex.
| [in,out] | c | the corner |
Definition at line 690 of file generic_RVD_cell.h.
|
inline |
Gets the number of used triangles.
Definition at line 346 of file generic_RVD_cell.h.
|
inline |
Gets the successor of a triangle.
Triangles are linked, for instance to represent the conflict zone.
Definition at line 1249 of file generic_RVD_cell.h.
|
inline |
Computes the conflict list by propagation from a conflict triangle.
| [in] | mesh | the input mesh |
| [in] | delaunay | the Delaunay triangulation |
| [in] | first_t | a triangle in the conflict zone |
| [in] | i | index of the first extremity of the bisector in delaunay |
| [in] | j | index of the second extremity of the bisector in delaunay |
| [in] | exact | if true, exact predicates are used |
| [out] | conflict_begin | index of the first triangle in conflict list |
| [out] | conflict_end | one position past index of the last triangle in conflict list |
Definition at line 1105 of file generic_RVD_cell.h.
|
inline |
Sets the id of this ConvexCell.
The id can be used to maintain the correspondence with a tetrahedron in the Mesh.
| [in] | i | the id of this ConvexCell. Can be a negative number. |
Definition at line 586 of file generic_RVD_cell.h.
|
inline |
Sets the successor of a triangle.
Triangles are linked, for instance to represent the conflict zone.
| [in] | t | index of the triangle |
| [in] | t2 | index of the successor |
Definition at line 1262 of file generic_RVD_cell.h.
|
inline |
Specifies that symbolic information is relative to surfacic mesh (rather than volumetric mesh).
Affects the behavior of side_exact().
| [in] | x | true if symbolic information is relative to surfacic mesh (triangles), false if symbolic information is relative to volumetric mesh (tetrahedra). |
Definition at line 217 of file generic_RVD_cell.h.
|
inline |
Sets the vertices and adjacent triangles of a triangle.
| [in] | t | index of the triangle |
| [in] | v0 | index of first vertex |
| [in] | v1 | index of second vertex |
| [in] | v2 | index of third vertex |
| [in] | t0 | index of adjacent triangle opposite to v0 |
| [in] | t1 | index of adjacent triangle opposite to v1 |
| [in] | t2 | index of adjacent triangle opposite to v2 |
Definition at line 784 of file generic_RVD_cell.h.
|
inline |
Sets a triangle adjacency.
| [in] | t | the triangle index |
| [in] | e | local edge index (0,1 or 2) |
| [in] | t2 | global triangle index |
Definition at line 452 of file generic_RVD_cell.h.
|
inline |
Sets the id of a triangle.
Each triangle of a ConvexCell has an id, that can be used to maintain the correspondence with a vertex in the Mesh.
Definition at line 606 of file generic_RVD_cell.h.
|
inline |
Sets a vertex of a triangle.
| [in] | t | the triangle index |
| [in] | iv | local vertex index (0,1 or 2) in t |
| [in] | v | global vertex index |
Definition at line 438 of file generic_RVD_cell.h.
|
inline |
Sets the id of a vertex.
Each vertex of a ConvexCell has an id, that can be used to maintain the correspondence with a facet in the Mesh.
Definition at line 627 of file generic_RVD_cell.h.
|
inline |
Stores in a vertex the index of one the triangles incident to it.
| [in] | v | index of the vertex |
| [in] | t | index of one of the triangles incident to v |
Definition at line 534 of file generic_RVD_cell.h.
| std::ostream & GEOGen::ConvexCell::show_stats | ( | std::ostream & | os | ) | const |
Displays the number of free,used,conflict triangles.
For debugging purposes.
|
inline |
Tests on which side a vertex is relative to a bisector.
| [in] | mesh | the input mesh |
| [in] | delaunay | the Delaunay triangulation |
| [in] | v | the query vertex |
| [in] | i | index of the first extremity of the bisector in delaunay |
| [in] | j | index of the second extremity of the bisector in delaunay |
| [in] | exact | if true, exact predicates are used |
v is on vertex i's side, NEGATIVE otherwise. ZERO is never returned since globally coherent symbolic perturbations are used in exact mode. | DIM | dimension, specified as a template parameter for efficiency considerations. |
Definition at line 1165 of file generic_RVD_cell.h.
| Sign GEOGen::ConvexCell::side_exact | ( | const Mesh * | mesh, |
| const Delaunay * | delaunay, | ||
| const GEOGen::Vertex & | v, | ||
| const double * | pi, | ||
| const double * | pj, | ||
| coord_index_t | dim, | ||
| bool | symbolic_is_surface = false |
||
| ) | const |
Tests on which side a vertex is relative to a bisector using exact predicates.
| [in] | mesh | the input mesh |
| [in] | delaunay | the Delaunay triangulation |
| [in] | v | the query vertex |
| [in] | pi | first extremity of the bisector |
| [in] | pj | second extremity of the bisector |
| [in] | dim | dimension of the points |
| [in] | symbolic_is_surface | if true, then symbolic information is relative to a surface mesh (facets) rather than volumetric mesh (tetrahedra). |
v is on vertex i's side, NEGATIVE otherwise. ZERO is never returned since globally coherent symbolic perturbations are used in exact mode.
|
inlinestatic |
Evaluates the equation of a bisector at a given point.
Positive side corresponds to vertex i and negative side to vertex j.
| [in] | delaunay | the Delaunay triangulation |
| [in] | i | index of the first extremity of the bisector in delaunay |
| [in] | j | index of the second extremity of the bisector in delaunay |
| [in] | q | the query point |
Definition at line 1075 of file generic_RVD_cell.h.
|
inline |
Gets the index of a triangle adjacent to another one.
| [in] | t | the triangle index |
| [in] | e | local edge index (0,1 or 2) in t |
t on edge e Definition at line 426 of file generic_RVD_cell.h.
|
inline |
Finds the edge along which two triangles are adjacent.
| [in] | t1 | first triangle |
| [in] | t2 | second triangle |
t1 along which t2 is adjacent to t1 t1 and t2 are adjacent Definition at line 492 of file generic_RVD_cell.h.
|
inline |
Gets the dual vertex that corresponds to a triangle.
Each triangle corresponds to a vertex of the ConvexCell (combinatorics are stored in dual form).
| [in] | t | index of the triangle |
Definition at line 563 of file generic_RVD_cell.h.
|
inline |
Gets the dual vertex that corresponds to a triangle.
Each triangle corresponds to a vertex of the ConvexCell (combinatorics are stored in dual form).
| [in] | t | index of the triangle |
Definition at line 549 of file generic_RVD_cell.h.
|
inline |
Gets the id of a triangle.
Each triangle of a ConvexCell has an id, that can be used to maintain the correspondence with a vertex in the Mesh.
t. Definition at line 596 of file generic_RVD_cell.h.
|
inline |
Tests whether a given triangle belongs to the conflict zone.
| [in] | t | index of the triangle |
Definition at line 401 of file generic_RVD_cell.h.
|
inline |
Tests whether a given triangle is free.
Definition at line 366 of file generic_RVD_cell.h.
|
inline |
Tests whether a given triangle is used.
| [in] | t | index of the triangle |
Definition at line 389 of file generic_RVD_cell.h.
|
inline |
Tests whether a given triangle is valid.
A "valid" triangle is a triangle from which we can query information (vertices, adjacent triangles, embedding), therefore it is a "used" or "conflict" triangle.
| [in] | t | index of the triangle |
Definition at line 380 of file generic_RVD_cell.h.
|
inline |
Gets the index of a triangle vertex.
| [in] | t | the triangle index |
| [in] | iv | local vertex index (0,1 or 2) in t |
iv th vertex Definition at line 414 of file generic_RVD_cell.h.
|
inline |
Triangulates the conflict zone.
Creates the triangles radiating from new_v and attached to the border of the conflict zone, indicated by t and e.
| [in] | delaunay | the Delaunay triangulation |
| [in] | i | index of the first extremity of the bisector in delaunay. |
| [in] | j | index of the first extremity of the bisector in delaunay. |
| [in] | symbolic | if true, symbolic representation of the vertices is generated. |
| [in] | t1 | a triangle adjacent to the border of the conflict zone from inside. |
| [in] | t1ebord | the edge along which t is adjacent to the border of the conflict zone. |
| [in] | v_in | index of the new vertex |
Definition at line 887 of file generic_RVD_cell.h.
|
inline |
Gets the id of a vertex.
Each vertex of a ConvexCell has an id, that can be used to maintain the correspondence with a facet in the Mesh.
Definition at line 616 of file generic_RVD_cell.h.
|
inline |
Gets one of the triangles incident to a vertex.
The information is cached and reconstructed whenever the v_to_t_dirty_ flag is positioned.
| [in] | v | index of the vertex |
v Definition at line 519 of file generic_RVD_cell.h.
|
staticconstexpr |
Definition at line 78 of file generic_RVD_cell.h.
|
staticconstexpr |
Definition at line 76 of file generic_RVD_cell.h.
|
staticconstexpr |
Definition at line 77 of file generic_RVD_cell.h.