|
CDT
2.0.1
C++ library for constrained Delaunay triangulation
|
Namespace containing triangulation functionality. More...
Classes | |
| class | AccessingInvalidIndex |
| struct | AddVertexType |
| What type of vertex is added to the triangulation. More... | |
| struct | Box2d |
| 2D bounding box More... | |
| struct | DuplicatesInfo |
| Information about removed duplicated vertices. More... | |
| class | DuplicateVertexError |
| Error thrown when duplicate vertex is detected during vertex insertion. More... | |
| struct | Edge |
| Edge connecting two vertices: vertex with smaller index is always first. More... | |
| class | Error |
| Base class for errors. More... | |
| class | FinalizedError |
| Error thrown when triangulation modification is attempted after it was finalized. More... | |
| class | ICallbackHandler |
| Interface for the callback handler that user can derive from and inject into the triangulation to monitor certain events or order aborting the calculation. More... | |
| struct | IntersectingConstraintEdges |
| Enum of strategies for treating intersecting constraint edges. More... | |
| class | IntersectingConstraintsError |
| Error thrown when intersecting constraint edges are detected, but triangulation is not configured to attempt to resolve them. More... | |
| class | InvalidEdgeSplitVertex |
| Error thrown when resolving intersecting constraints fails: floating-point rounding places the computed split vertex outside the edge's adjacent triangles, so it can not be inserted. More... | |
| class | LocatorKDTree |
| KD-tree holding points. More... | |
| class | OptionalIndex |
| struct | PtLineLocation |
| Relative location of point to a line. More... | |
| struct | PtTriLocation |
| Location of point on a triangle. More... | |
| struct | RefinementCriterion |
| Enum of strategies for triangles refinement. More... | |
| class | SourceLocation |
| Contains source location info: file, function, line. More... | |
| struct | Triangle |
| Triangulation triangle (counter-clockwise winding) More... | |
| struct | TriangleChangeType |
| What type of triangle change happened. More... | |
| class | Triangulation |
| Data structure representing a 2D constrained Delaunay triangulation. More... | |
| struct | Unrefined |
| Counts of the refinements that Triangulation::refineTriangles was not able to perform. More... | |
| struct | V2d |
| 2D vector More... | |
| struct | VertexInsertionOrder |
| Enum of strategies specifying order in which a range of vertices is inserted. More... | |
Typedefs | |
| typedef unsigned short | LayerDepth |
| Type used for storing layer depths for triangles. | |
| typedef LayerDepth | BoundaryOverlapCount |
| typedef std::vector< TriIndVec > | VerticesTriangles |
| Triangles by vertex index. | |
| typedef unsigned long long | IndexSizeType |
| typedef unsigned char | Index |
| Index in triangle. | |
| typedef IndexSizeType | VertInd |
| Vertex index. | |
| typedef IndexSizeType | TriInd |
| Triangle index. | |
| typedef std::vector< TriInd > | TriIndVec |
| Vector of triangle indices. | |
| typedef array< VertInd, 3 > | VerticesArr3 |
| array of three vertex indices | |
| typedef array< TriInd, 3 > | NeighborsArr3 |
| array of three neighbors | |
| typedef std::vector< Edge > | EdgeVec |
| Vector of edges. | |
| typedef std::queue< Edge > | EdgeQueue |
| Queue of edges. | |
| typedef std::queue< TriInd > | TriIndQueue |
| Queue of triangles. | |
| typedef unordered_set< Edge > | EdgeUSet |
| Hash table of edges. | |
| typedef unordered_set< TriInd > | TriIndUSet |
| Hash table of triangles. | |
| typedef unordered_map< TriInd, TriInd > | TriIndUMap |
| Triangle hash map. | |
| typedef std::vector< Triangle > | TriangleVec |
| Vector of triangles. | |
| typedef OptionalIndex< VertInd > | OptionalVertInd |
| Optional vertex index. | |
| typedef OptionalIndex< TriInd > | OptionalTriInd |
| Optional triangle index. | |
| typedef std::deque< TriInd > | TriDeque |
Functions | |
| template<typename T, typename TNearPointLocator> | |
| bool | verifyTopology (const CDT::Triangulation< T, TNearPointLocator > &cdt) |
| Verify that triangulation topology is consistent. | |
| template<typename T, typename TNearPointLocator> | |
| bool | verifyWinding (const CDT::Triangulation< T, TNearPointLocator > &cdt) |
| Check that every triangle is wound counter-clockwise: degenerate and inverted triangles are topologically consistent, so verifyTopology misses them. | |
| template<typename T, typename TNearPointLocator> | |
| bool | eachVertexHasNeighborTriangle (const CDT::Triangulation< T, TNearPointLocator > &cdt) |
| Check that each vertex has a neighbor triangle. | |
| CDT_EXPORT VerticesTriangles | calculateTrianglesByVertex (const TriangleVec &triangles, VertInd verticesSize) |
| Calculate triangles adjacent to vertices (triangles by vertex index) | |
| template<typename T, typename TVertexIter, typename TGetVertexCoordX, typename TGetVertexCoordY> | |
| DuplicatesInfo | FindDuplicates (TVertexIter first, TVertexIter last, TGetVertexCoordX getX, TGetVertexCoordY getY) |
| Find duplicates in given custom point-type range. | |
| template<typename TVertex, typename TAllocator> | |
| void | RemoveDuplicates (std::vector< TVertex, TAllocator > &vertices, const std::vector< std::size_t > &duplicates) |
| Remove duplicates in-place from vector of custom points. | |
| template<typename T> | |
| CDT_EXPORT DuplicatesInfo | RemoveDuplicates (std::vector< V2d< T > > &vertices) |
| Remove duplicated points in-place. | |
| template<typename TEdgeIter, typename TGetEdgeVertexStart, typename TGetEdgeVertexEnd, typename TMakeEdgeFromStartAndEnd> | |
| void | RemapEdges (TEdgeIter first, TEdgeIter last, const std::vector< std::size_t > &mapping, TGetEdgeVertexStart getStart, TGetEdgeVertexEnd getEnd, TMakeEdgeFromStartAndEnd makeEdge) |
| Remap vertex indices in edges (in-place) using given vertex-index mapping. | |
| CDT_EXPORT void | RemapEdges (std::vector< Edge > &edges, const std::vector< std::size_t > &mapping) |
| Remap vertex indices in edges (in-place) using given vertex-index mapping. | |
| template<typename T, typename TVertex, typename TGetVertexCoordX, typename TGetVertexCoordY, typename TVertexAllocator, typename TEdgeIter, typename TGetEdgeVertexStart, typename TGetEdgeVertexEnd, typename TMakeEdgeFromStartAndEnd> | |
| DuplicatesInfo | RemoveDuplicatesAndRemapEdges (std::vector< TVertex, TVertexAllocator > &vertices, TGetVertexCoordX getX, TGetVertexCoordY getY, TEdgeIter edgesFirst, TEdgeIter edgesLast, TGetEdgeVertexStart getStart, TGetEdgeVertexEnd getEnd, TMakeEdgeFromStartAndEnd makeEdge) |
| Find point duplicates, remove them from vector (in-place) and remap edges (in-place) | |
| template<typename T> | |
| CDT_EXPORT DuplicatesInfo | RemoveDuplicatesAndRemapEdges (std::vector< V2d< T > > &vertices, std::vector< Edge > &edges) |
| Same as a chained call of CDT::RemoveDuplicates + CDT::RemapEdges. | |
| CDT_EXPORT EdgeUSet | extractEdgesFromTriangles (const TriangleVec &triangles) |
| Extract all edges of triangles. | |
| CDT_EXPORT unordered_map< Edge, EdgeVec > | EdgeToPiecesMapping (const unordered_map< Edge, EdgeVec > &pieceToOriginals) |
| template<typename T> | |
| unordered_map< Edge, std::vector< VertInd > > | EdgeToSplitVertices (const unordered_map< Edge, EdgeVec > &edgeToPieces, const std::vector< V2d< T > > &vertices) |
| template<typename T> | |
| DuplicatesInfo | RemoveDuplicates (std::vector< V2d< T > > &vertices) |
| Remove duplicated points in-place. | |
| template<typename T> | |
| DuplicatesInfo | RemoveDuplicatesAndRemapEdges (std::vector< V2d< T > > &vertices, std::vector< Edge > &edges) |
| Same as a chained call of CDT::RemoveDuplicates + CDT::RemapEdges. | |
| template<typename T> | |
| std::string | to_string (const T &value) |
| template<typename T> | |
| void | handleException (const T &error) |
| template<typename T> | |
| array< T, 3 > | arr3 (const T &v0, const T &v1, const T &v2) |
| Needed for c++03 compatibility (no uniform initialization available) | |
| template<typename T> | |
| array< T, 3 > | arr3 (const T &v) |
| Needed for c++03 compatibility (no uniform initialization available) | |
| template<typename T> | |
| const T & | getX_V2d (const V2d< T > &v) |
| X- coordinate getter for V2d. | |
| template<typename T> | |
| const T & | getY_V2d (const V2d< T > &v) |
| Y-coordinate getter for V2d. | |
| template<typename T> | |
| bool | operator== (const CDT::V2d< T > &lhs, const CDT::V2d< T > &rhs) |
| If two 2D vectors are exactly equal. | |
| template<typename T> | |
| bool | operator!= (const CDT::V2d< T > &lhs, const CDT::V2d< T > &rhs) |
| If two 2D vectors are not exactly equal. | |
| BOOST_STRONG_TYPEDEF (unsigned char, Index) | |
| Index in triangle. | |
| BOOST_STRONG_TYPEDEF (IndexSizeType, VertInd) | |
| Vertex index. | |
| VertInd | edge_get_v1 (const Edge &e) |
| Get edge first vertex. | |
| VertInd | edge_get_v2 (const Edge &e) |
| Get edge second vertex. | |
| Edge | edge_make (VertInd iV1, VertInd iV2) |
| Get edge second vertex. | |
| CDT_EXPORT Index | ccw (Index i) |
| Advance vertex or neighbor index counter-clockwise. | |
| CDT_EXPORT Index | cw (Index i) |
| Advance vertex or neighbor index clockwise. | |
| CDT_EXPORT bool | isOnEdge (PtTriLocation::Enum location) |
| Check if location is classified as on any of three edges. | |
| CDT_EXPORT Index | edgeNeighbor (PtTriLocation::Enum location) |
| Neighbor index from a on-edge location. | |
| template<typename T> | |
| CDT_EXPORT T | orient2D (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2) |
| Orient p against line v1-v2 2D: robust geometric predicate. | |
| template<typename T> | |
| CDT_EXPORT PtLineLocation::Enum | locatePointLine (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2, T orientationTolerance=T(0)) |
| Check if point lies to the left of, to the right of, or on a line. | |
| template<typename T> | |
| CDT_EXPORT PtLineLocation::Enum | classifyOrientation (T orientation, T orientationTolerance=T(0)) |
| Classify value of orient2d predicate. | |
| template<typename T> | |
| CDT_EXPORT PtTriLocation::Enum | locatePointTriangle (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2, const V2d< T > &v3) |
| Check if point a lies inside of, outside of, or on an edge of a triangle. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index | opoNbr (Index vertIndex) |
| Opposed neighbor index from vertex index. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index | opoVrt (Index neighborIndex) |
| Opposed vertex index from neighbor index. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index | opposedTriangleInd (const VerticesArr3 &vv, VertInd iVert) |
| Index of triangle's neighbor opposed to a vertex. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index | edgeNeighborInd (const VerticesArr3 &vv, VertInd iVedge1, VertInd iVedge2) |
| Index of triangle's neighbor opposed to an edge. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index | opposedVertexInd (const NeighborsArr3 &nn, TriInd iTopo) |
| Index of triangle's vertex opposed to a triangle. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index | vertexInd (const VerticesArr3 &vv, VertInd iV) |
| If triangle has a given vertex return vertex-index. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY TriInd | opposedTriangle (const Triangle &tri, VertInd iVert) |
| Given triangle and a vertex find opposed triangle. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY TriInd | edgeNeighbor (const Triangle &tri, VertInd iVedge1, VertInd iVedge2) |
| Given triangle and an edge find neighbor sharing the edge. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY VertInd | opposedVertex (const Triangle &tri, TriInd iTopo) |
| Given two triangles, return vertex of first triangle opposed to the second. | |
| template<typename T> | |
| CDT_EXPORT bool | isInCircumcircle (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2, const V2d< T > &v3) |
| Test if point lies in a circumscribed circle of a triangle. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY bool | verticesShareEdge (const TriIndVec &aTris, const TriIndVec &bTris) |
| Test if two vertices share at least one common triangle. | |
| template<typename T> | |
| CDT_EXPORT T | distance (const V2d< T > &a, const V2d< T > &b) |
| Distance between two 2D points. | |
| template<typename T> | |
| CDT_EXPORT T | distanceSquared (const V2d< T > &a, const V2d< T > &b) |
| Squared distance between two 2D points. | |
| CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY bool | touchesSuperTriangle (const Triangle &t) |
| Check if any of triangle's vertices belongs to a super-triangle. | |
| template<typename T> | |
| CDT_EXPORT T | area (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c) |
| Surface area of a triangle ABC. | |
| template<typename T> | |
| CDT_EXPORT V2d< T > | circumcenter (V2d< T > a, V2d< T > b, V2d< T > c) |
| Position of ABC triangle circumcenter. | |
| template<typename T> | |
| CDT_EXPORT T | smallestAngle (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c) |
| Smallest angle of triangle ABC in radians. | |
| template<typename T> | |
| CDT_EXPORT T | degToRad (T degrees) |
| Convert an angle from degrees to radians. | |
| template<typename T> | |
| T | orient2D (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2) |
| Orient p against line v1-v2 2D: robust geometric predicate. | |
| template<typename T> | |
| PtLineLocation::Enum | locatePointLine (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2, const T orientationTolerance) |
| Check if point lies to the left of, to the right of, or on a line. | |
| template<typename T> | |
| PtLineLocation::Enum | classifyOrientation (const T orientation, const T orientationTolerance) |
| Classify value of orient2d predicate. | |
| template<typename T> | |
| PtTriLocation::Enum | locatePointTriangle (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2, const V2d< T > &v3) |
| Check if point a lies inside of, outside of, or on an edge of a triangle. | |
| template<typename T> | |
| bool | isInCircumcircle (const V2d< T > &p, const V2d< T > &v1, const V2d< T > &v2, const V2d< T > &v3) |
| Test if point lies in a circumscribed circle of a triangle. | |
| template<typename T> | |
| T | distanceSquared (const T ax, const T ay, const T bx, const T by) |
| template<typename T> | |
| T | distance (const T ax, const T ay, const T bx, const T by) |
| template<typename T> | |
| T | distance (const V2d< T > &a, const V2d< T > &b) |
| Distance between two 2D points. | |
| template<typename T> | |
| T | distanceSquared (const V2d< T > &a, const V2d< T > &b) |
| Squared distance between two 2D points. | |
| template<typename T> | |
| T | area (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c) |
| Surface area of a triangle ABC. | |
| template<typename T> | |
| V2d< T > | circumcenter (V2d< T > a, V2d< T > b, V2d< T > c) |
| Position of ABC triangle circumcenter. | |
| template<typename T> | |
| T | smallestAngle (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c) |
| Smallest angle of triangle ABC in radians. | |
| template<typename T> | |
| T | degToRad (const T degrees) |
| Convert an angle from degrees to radians. | |
| Edge | RemapNoSuperTriangle (const Edge &e) |
| Remap removing super-triangle: subtract 3 from vertices. | |
| template CDT_EXPORT DuplicatesInfo | RemoveDuplicates< float > (std::vector< V2d< float > > &) |
| template CDT_EXPORT DuplicatesInfo | RemoveDuplicates< double > (std::vector< V2d< double > > &) |
| template CDT_EXPORT DuplicatesInfo | RemoveDuplicatesAndRemapEdges< float > (std::vector< V2d< float > > &, std::vector< Edge > &) |
| template CDT_EXPORT DuplicatesInfo | RemoveDuplicatesAndRemapEdges< double > (std::vector< V2d< double > > &, std::vector< Edge > &) |
| template CDT_EXPORT float | degToRad< float > (float) |
| template CDT_EXPORT double | degToRad< double > (double) |
| template CDT_EXPORT float | orient2D< float > (const V2d< float > &, const V2d< float > &, const V2d< float > &) |
| template CDT_EXPORT double | orient2D< double > (const V2d< double > &, const V2d< double > &, const V2d< double > &) |
| template CDT_EXPORT float | area< float > (const V2d< float > &, const V2d< float > &, const V2d< float > &) |
| template CDT_EXPORT double | area< double > (const V2d< double > &, const V2d< double > &, const V2d< double > &) |
| template CDT_EXPORT V2d< float > | circumcenter< float > (V2d< float >, V2d< float >, V2d< float >) |
| template CDT_EXPORT V2d< double > | circumcenter< double > (V2d< double >, V2d< double >, V2d< double >) |
| template CDT_EXPORT float | smallestAngle< float > (const V2d< float > &, const V2d< float > &, const V2d< float > &) |
| template CDT_EXPORT double | smallestAngle< double > (const V2d< double > &, const V2d< double > &, const V2d< double > &) |
| template CDT_EXPORT bool | verifyTopology< float > (const CDT::Triangulation< float > &) |
| template CDT_EXPORT bool | verifyTopology< double > (const CDT::Triangulation< double > &) |
| template CDT_EXPORT bool | verifyWinding< float > (const CDT::Triangulation< float > &) |
| template CDT_EXPORT bool | verifyWinding< double > (const CDT::Triangulation< double > &) |
| template CDT_EXPORT float | distance (const V2d< float > &a, const V2d< float > &b) |
| template CDT_EXPORT double | distance (const V2d< double > &a, const V2d< double > &b) |
| template CDT_EXPORT float | distanceSquared (const V2d< float > &a, const V2d< float > &b) |
| template CDT_EXPORT double | distanceSquared (const V2d< double > &a, const V2d< double > &b) |
Variables | |
| template struct CDT_EXPORT | V2d< float > |
| template struct CDT_EXPORT | V2d< double > |
| template struct CDT_EXPORT | Box2d< float > |
| template struct CDT_EXPORT | Box2d< double > |
| template class CDT_EXPORT | Triangulation< float > |
| template class CDT_EXPORT | Triangulation< double > |
Namespace containing triangulation functionality.
| typedef std::queue<Edge> CDT::EdgeQueue |
Queue of edges.
Definition at line 401 of file CDTUtils.h.
| typedef unordered_set<Edge> CDT::EdgeUSet |
Hash table of edges.
Definition at line 403 of file CDTUtils.h.
| typedef std::vector<Edge> CDT::EdgeVec |
Vector of edges.
Definition at line 400 of file CDTUtils.h.
| typedef unsigned char CDT::Index |
Index in triangle.
Definition at line 252 of file CDTUtils.h.
| typedef unsigned int CDT::IndexSizeType |
Definition at line 238 of file CDTUtils.h.
| typedef array<TriInd, 3> CDT::NeighborsArr3 |
array of three neighbors
Definition at line 274 of file CDTUtils.h.
| typedef std::vector<Triangle> CDT::TriangleVec |
Vector of triangles.
Definition at line 467 of file CDTUtils.h.
| typedef std::deque<TriInd> CDT::TriDeque |
Definition at line 26 of file Triangulation.hpp.
| typedef IndexSizeType CDT::TriInd |
Triangle index.
Definition at line 256 of file CDTUtils.h.
| typedef std::queue<TriInd> CDT::TriIndQueue |
Queue of triangles.
Definition at line 402 of file CDTUtils.h.
| typedef unordered_map<TriInd, TriInd> CDT::TriIndUMap |
Triangle hash map.
Definition at line 405 of file CDTUtils.h.
| typedef unordered_set<TriInd> CDT::TriIndUSet |
Hash table of triangles.
Definition at line 404 of file CDTUtils.h.
| typedef std::vector<TriInd> CDT::TriIndVec |
Vector of triangle indices.
Definition at line 272 of file CDTUtils.h.
| typedef array<VertInd, 3> CDT::VerticesArr3 |
array of three vertex indices
Definition at line 273 of file CDTUtils.h.
| typedef IndexSizeType CDT::VertInd |
Vertex index.
Definition at line 254 of file CDTUtils.h.
| CDT_EXPORT T CDT::area | ( | const V2d< T > & | a, |
| const V2d< T > & | b, | ||
| const V2d< T > & | c ) |
Surface area of a triangle ABC.
Definition at line 303 of file CDTUtils.hpp.
Surface area of a triangle ABC.
Definition at line 303 of file CDTUtils.hpp.
| array< T, 3 > CDT::arr3 | ( | const T & | v | ) |
Needed for c++03 compatibility (no uniform initialization available)
Definition at line 183 of file CDTUtils.h.
| array< T, 3 > CDT::arr3 | ( | const T & | v0, |
| const T & | v1, | ||
| const T & | v2 ) |
Needed for c++03 compatibility (no uniform initialization available)
Definition at line 175 of file CDTUtils.h.
Advance vertex or neighbor index counter-clockwise.
Definition at line 23 of file CDTUtils.hpp.
Position of ABC triangle circumcenter.
Definition at line 309 of file CDTUtils.hpp.
Position of ABC triangle circumcenter.
Definition at line 309 of file CDTUtils.hpp.
| PtLineLocation::Enum CDT::classifyOrientation | ( | const T | orientation, |
| const T | orientationTolerance ) |
Classify value of orient2d predicate.
Definition at line 64 of file CDTUtils.hpp.
| CDT_EXPORT PtLineLocation::Enum CDT::classifyOrientation | ( | T | orientation, |
| T | orientationTolerance = T(0) ) |
Classify value of orient2d predicate.
Definition at line 64 of file CDTUtils.hpp.
Advance vertex or neighbor index clockwise.
Definition at line 28 of file CDTUtils.hpp.
| T CDT::degToRad | ( | const T | degrees | ) |
Convert an angle from degrees to radians.
Definition at line 330 of file CDTUtils.hpp.
| CDT_EXPORT T CDT::degToRad | ( | T | degrees | ) |
Convert an angle from degrees to radians.
Definition at line 330 of file CDTUtils.hpp.
| T CDT::distance | ( | const T | ax, |
| const T | ay, | ||
| const T | bx, | ||
| const T | by ) |
Definition at line 245 of file CDTUtils.hpp.
Distance between two 2D points.
Definition at line 251 of file CDTUtils.hpp.
Distance between two 2D points.
Definition at line 251 of file CDTUtils.hpp.
| T CDT::distanceSquared | ( | const T | ax, |
| const T | ay, | ||
| const T | bx, | ||
| const T | by ) |
Definition at line 237 of file CDTUtils.hpp.
Squared distance between two 2D points.
Definition at line 257 of file CDTUtils.hpp.
Squared distance between two 2D points.
Definition at line 257 of file CDTUtils.hpp.
|
inline |
Check that each vertex has a neighbor triangle.
Definition at line 99 of file VerifyTopology.h.
Get edge first vertex.
Definition at line 383 of file CDTUtils.h.
Get edge second vertex.
Definition at line 389 of file CDTUtils.h.
Get edge second vertex.
Definition at line 395 of file CDTUtils.h.
| CDT_INLINE_IF_HEADER_ONLY TriInd CDT::edgeNeighbor | ( | const Triangle & | tri, |
| VertInd | iVedge1, | ||
| VertInd | iVedge2 ) |
Given triangle and an edge find neighbor sharing the edge.
Definition at line 211 of file CDTUtils.hpp.
| CDT_INLINE_IF_HEADER_ONLY Index CDT::edgeNeighbor | ( | PtTriLocation::Enum | location | ) |
Neighbor index from a on-edge location.
Definition at line 40 of file CDTUtils.hpp.
| CDT_INLINE_IF_HEADER_ONLY Index CDT::edgeNeighborInd | ( | const VerticesArr3 & | vv, |
| VertInd | iVedge1, | ||
| VertInd | iVedge2 ) |
Index of triangle's neighbor opposed to an edge.
Definition at line 142 of file CDTUtils.hpp.
| const T & CDT::getX_V2d | ( | const V2d< T > & | v | ) |
X- coordinate getter for V2d.
Definition at line 211 of file CDTUtils.h.
| const T & CDT::getY_V2d | ( | const V2d< T > & | v | ) |
Y-coordinate getter for V2d.
Definition at line 218 of file CDTUtils.h.
| void CDT::handleException | ( | const T & | error | ) |
Definition at line 164 of file CDTUtils.h.
| CDT_EXPORT bool CDT::isInCircumcircle | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2, | ||
| const V2d< T > & | v3 ) |
Test if point lies in a circumscribed circle of a triangle.
Definition at line 217 of file CDTUtils.hpp.
| bool CDT::isInCircumcircle | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2, | ||
| const V2d< T > & | v3 ) |
Test if point lies in a circumscribed circle of a triangle.
Definition at line 217 of file CDTUtils.hpp.
| CDT_INLINE_IF_HEADER_ONLY bool CDT::isOnEdge | ( | PtTriLocation::Enum | location | ) |
Check if location is classified as on any of three edges.
Definition at line 33 of file CDTUtils.hpp.
| PtLineLocation::Enum CDT::locatePointLine | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2, | ||
| const T | orientationTolerance ) |
Check if point lies to the left of, to the right of, or on a line.
Definition at line 53 of file CDTUtils.hpp.
| CDT_EXPORT PtLineLocation::Enum CDT::locatePointLine | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2, | ||
| T | orientationTolerance = T(0) ) |
Check if point lies to the left of, to the right of, or on a line.
Definition at line 53 of file CDTUtils.hpp.
| CDT_EXPORT PtTriLocation::Enum CDT::locatePointTriangle | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2, | ||
| const V2d< T > & | v3 ) |
Check if point a lies inside of, outside of, or on an edge of a triangle.
Definition at line 74 of file CDTUtils.hpp.
| PtTriLocation::Enum CDT::locatePointTriangle | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2, | ||
| const V2d< T > & | v3 ) |
Check if point a lies inside of, outside of, or on an edge of a triangle.
Definition at line 74 of file CDTUtils.hpp.
If two 2D vectors are not exactly equal.
Definition at line 232 of file CDTUtils.h.
If two 2D vectors are exactly equal.
Definition at line 225 of file CDTUtils.h.
Opposed neighbor index from vertex index.
Definition at line 105 of file CDTUtils.hpp.
Opposed vertex index from neighbor index.
Definition at line 118 of file CDTUtils.hpp.
Given triangle and a vertex find opposed triangle.
Definition at line 198 of file CDTUtils.hpp.
| CDT_INLINE_IF_HEADER_ONLY Index CDT::opposedTriangleInd | ( | const VerticesArr3 & | vv, |
| VertInd | iVert ) |
Index of triangle's neighbor opposed to a vertex.
Definition at line 132 of file CDTUtils.hpp.
Given two triangles, return vertex of first triangle opposed to the second.
Definition at line 204 of file CDTUtils.hpp.
| CDT_INLINE_IF_HEADER_ONLY Index CDT::opposedVertexInd | ( | const NeighborsArr3 & | nn, |
| TriInd | iTopo ) |
Index of triangle's vertex opposed to a triangle.
Definition at line 176 of file CDTUtils.hpp.
| CDT_EXPORT T CDT::orient2D | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2 ) |
Orient p against line v1-v2 2D: robust geometric predicate.
Definition at line 47 of file CDTUtils.hpp.
| T CDT::orient2D | ( | const V2d< T > & | p, |
| const V2d< T > & | v1, | ||
| const V2d< T > & | v2 ) |
Orient p against line v1-v2 2D: robust geometric predicate.
Definition at line 47 of file CDTUtils.hpp.
Remap removing super-triangle: subtract 3 from vertices.
Definition at line 180 of file Triangulation.hpp.
| CDT_EXPORT T CDT::smallestAngle | ( | const V2d< T > & | a, |
| const V2d< T > & | b, | ||
| const V2d< T > & | c ) |
Smallest angle of triangle ABC in radians.
Definition at line 322 of file CDTUtils.hpp.
| T CDT::smallestAngle | ( | const V2d< T > & | a, |
| const V2d< T > & | b, | ||
| const V2d< T > & | c ) |
Smallest angle of triangle ABC in radians.
Definition at line 322 of file CDTUtils.hpp.
| std::string CDT::to_string | ( | const T & | value | ) |
Definition at line 113 of file CDTUtils.h.
| bool CDT::touchesSuperTriangle | ( | const Triangle & | t | ) |
Check if any of triangle's vertices belongs to a super-triangle.
Definition at line 262 of file CDTUtils.hpp.
|
inline |
Verify that triangulation topology is consistent.
Checks:
| T | type of vertex coordinates (e.g., float, double) |
| TNearPointLocator | class providing locating near point for efficiently |
Definition at line 32 of file VerifyTopology.h.
|
inline |
Check that every triangle is wound counter-clockwise: degenerate and inverted triangles are topologically consistent, so verifyTopology misses them.
Definition at line 81 of file VerifyTopology.h.
| CDT_INLINE_IF_HEADER_ONLY Index CDT::vertexInd | ( | const VerticesArr3 & | vv, |
| VertInd | iV ) |
If triangle has a given vertex return vertex-index.
Definition at line 187 of file CDTUtils.hpp.
| CDT_INLINE_IF_HEADER_ONLY bool CDT::verticesShareEdge | ( | const TriIndVec & | aTris, |
| const TriIndVec & | bTris ) |
Test if two vertices share at least one common triangle.
Definition at line 228 of file CDTUtils.hpp.
| template struct CDT_EXPORT CDT::Box2d< double > |
| template struct CDT_EXPORT CDT::Box2d< float > |
| template class CDT_EXPORT CDT::Triangulation< double > |
| template class CDT_EXPORT CDT::Triangulation< float > |