CDT  2.0.1
C++ library for constrained Delaunay triangulation
Loading...
Searching...
No Matches
CDTUtils.hpp File Reference

Utilities and helpers - implementation. More...

Go to the source code of this file.

Namespaces

namespace  CDT
 Namespace containing triangulation functionality.
 

Functions

CDT_EXPORT Index CDT::ccw (Index i)
 Advance vertex or neighbor index counter-clockwise.
 
CDT_EXPORT Index CDT::cw (Index i)
 Advance vertex or neighbor index clockwise.
 
CDT_EXPORT bool CDT::isOnEdge (PtTriLocation::Enum location)
 Check if location is classified as on any of three edges.
 
CDT_EXPORT Index CDT::edgeNeighbor (PtTriLocation::Enum location)
 Neighbor index from a on-edge location.
 
template<typename T>
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.
 
template<typename T>
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.
 
template<typename T>
PtLineLocation::Enum CDT::classifyOrientation (const T orientation, const T orientationTolerance)
 Classify value of orient2d predicate.
 
template<typename T>
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.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index CDT::opoNbr (Index vertIndex)
 Opposed neighbor index from vertex index.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index CDT::opoVrt (Index neighborIndex)
 Opposed vertex index from neighbor index.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index CDT::opposedTriangleInd (const VerticesArr3 &vv, VertInd iVert)
 Index of triangle's neighbor opposed to a vertex.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index CDT::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 CDT::opposedVertexInd (const NeighborsArr3 &nn, TriInd iTopo)
 Index of triangle's vertex opposed to a triangle.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY Index CDT::vertexInd (const VerticesArr3 &vv, VertInd iV)
 If triangle has a given vertex return vertex-index.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY TriInd CDT::opposedTriangle (const Triangle &tri, VertInd iVert)
 Given triangle and a vertex find opposed triangle.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY VertInd CDT::opposedVertex (const Triangle &tri, TriInd iTopo)
 Given two triangles, return vertex of first triangle opposed to the second.
 
CDT_EXPORT 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.
 
template<typename T>
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.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY bool CDT::verticesShareEdge (const TriIndVec &aTris, const TriIndVec &bTris)
 Test if two vertices share at least one common triangle.
 
template<typename T>
T CDT::distanceSquared (const T ax, const T ay, const T bx, const T by)
 
template<typename T>
T CDT::distance (const T ax, const T ay, const T bx, const T by)
 
template<typename T>
T CDT::distance (const V2d< T > &a, const V2d< T > &b)
 Distance between two 2D points.
 
template<typename T>
T CDT::distanceSquared (const V2d< T > &a, const V2d< T > &b)
 Squared distance between two 2D points.
 
CDT_EXPORT CDT_INLINE_IF_HEADER_ONLY bool CDT::touchesSuperTriangle (const Triangle &t)
 Check if any of triangle's vertices belongs to a super-triangle.
 
template<typename T>
bool CDT::detail::isEncroachingOnEdge (const V2d< T > &v, const V2d< T > &edgeStart, const V2d< T > &edgeEnd)
 Check if vertex V is encroaching on diametral circle of an edge.
 
template<typename T>
T CDT::detail::doubledArea (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c)
 Doubled surface area of a triangle ABC.
 
template<typename T>
T CDT::detail::sineOfSmallestAngle (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c)
 Sine of smallest angle of triangle ABC.
 
template<typename T>
T CDT::area (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c)
 Surface area of a triangle ABC.
 
template<typename T>
V2d< T > CDT::circumcenter (V2d< T > a, V2d< T > b, V2d< T > c)
 Position of ABC triangle circumcenter.
 
template<typename T>
T CDT::smallestAngle (const V2d< T > &a, const V2d< T > &b, const V2d< T > &c)
 Smallest angle of triangle ABC in radians.
 
template<typename T>
T CDT::degToRad (const T degrees)
 Convert an angle from degrees to radians.
 

Detailed Description

Utilities and helpers - implementation.

Definition in file CDTUtils.hpp.

Function Documentation

◆ doubledArea()

template<typename T>
T CDT::detail::doubledArea ( const V2d< T > & a,
const V2d< T > & b,
const V2d< T > & c )

Doubled surface area of a triangle ABC.

Definition at line 284 of file CDTUtils.hpp.

◆ isEncroachingOnEdge()

template<typename T>
bool CDT::detail::isEncroachingOnEdge ( const V2d< T > & v,
const V2d< T > & edgeStart,
const V2d< T > & edgeEnd )

Check if vertex V is encroaching on diametral circle of an edge.

Definition at line 272 of file CDTUtils.hpp.

◆ sineOfSmallestAngle()

template<typename T>
T CDT::detail::sineOfSmallestAngle ( const V2d< T > & a,
const V2d< T > & b,
const V2d< T > & c )

Sine of smallest angle of triangle ABC.

Definition at line 290 of file CDTUtils.hpp.