UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::ExactPredicates Namespace Reference

Functions

void GlobalInit ()
 
double Orient2DInexact (const double *pa, const double *pb, const double *pc)
 
double Orient2D (const double *pa, const double *pb, const double *pc)
 
double Orient2DOrigin (double ax, double ay, double bx, double by)
 
double Orient3DInexact (const double *PA, const double *PB, const double *PC, const double *PD)
 
double Orient3D (const double *PA, const double *PB, const double *PC, const double *PD)
 
double Facing3D (const double *PA, const double *PB, const double *PC, const double *Direction)
 
double Facing2D (const double *PA, const double *PB, const double *Direction)
 
double InCircleInexact (const double *PA, const double *PB, const double *PC, const double *PD)
 
double InCircle (const double *PA, const double *PB, const double *PC, const double *PD)
 
double InSphereInexact (const double *PA, const double *PB, const double *PC, const double *PD, const double *PE)
 
double InSphere (const double *PA, const double *PB, const double *PC, const double *PD, const double *PE)
 
float Orient2DInexact (const float *pa, const float *pb, const float *pc)
 
float Orient2D (const float *pa, const float *pb, const float *pc)
 
float Orient2DOrigin (float ax, float ay, float bx, float by)
 
float Orient3DInexact (const float *PA, const float *PB, const float *PC, const float *PD)
 
float Orient3D (const float *PA, const float *PB, const float *PC, const float *PD)
 
float Facing3D (const float *PA, const float *PB, const float *PC, const float *Direction)
 
float Facing2D (const float *PA, const float *PB, const float *Direction)
 
float InCircleInexact (const float *PA, const float *PB, const float *PC, const float *PD)
 
float InCircle (const float *PA, const float *PB, const float *PC, const float *PD)
 
template<typename RealType >
RealType Orient2 (const TVector2< RealType > &A, const TVector2< RealType > &B, const TVector2< RealType > &C)
 
template<typename RealType >
RealType Orient2Origin (const TVector2< RealType > &A, const TVector2< RealType > &B)
 
template<typename RealType >
RealType Orient3 (const TVector< RealType > &A, const TVector< RealType > &B, const TVector< RealType > &C, const TVector< RealType > &D)
 
template<typename RealType >
RealType Facing2 (const TVector2< RealType > &A, const TVector2< RealType > &B, const TVector2< RealType > &Direction)
 
template<typename RealType >
RealType Facing3 (const TVector< RealType > &A, const TVector< RealType > &B, const TVector< RealType > &C, const TVector< RealType > &Direction)
 
template<typename RealType >
RealType InCircle2 (const TVector2< RealType > &A, const TVector2< RealType > &B, const TVector2< RealType > &C, const TVector2< RealType > &D)
 
template<typename RealType >
RealType InSphere3 (const TVector< RealType > &A, const TVector< RealType > &B, const TVector< RealType > &C, const TVector< RealType > &D, const TVector< RealType > &E)
 

Function Documentation

◆ Facing2()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::Facing2 ( const TVector2< RealType > &  A,
const TVector2< RealType > &  B,
const TVector2< RealType > &  Direction 
)
Returns
value w/ sign indicating whether the normal of line AB is facing Direction (and 0 if parallel) (i.e. the sign of -PerpCW(B-A) dot Dir)

◆ Facing2D() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Facing2D ( const double PA,
const double PB,
const double Direction 
)

◆ Facing2D() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Facing2D ( const float PA,
const float PB,
const float Direction 
)

◆ Facing3()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::Facing3 ( const TVector< RealType > &  A,
const TVector< RealType > &  B,
const TVector< RealType > &  C,
const TVector< RealType > &  Direction 
)

TVector-only version that can run in float or double

Returns
value w/ sign indicating whether triangle ABC is facing Direction, or 0 if it is parallel to Direction

◆ Facing3D() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Facing3D ( const double PA,
const double PB,
const double PC,
const double Direction 
)

◆ Facing3D() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Facing3D ( const float PA,
const float PB,
const float PC,
const float Direction 
)

◆ GlobalInit()

void GEOMETRYCORE_API UE::Geometry::ExactPredicates::GlobalInit ( )

Must be called once for exact predicates to work. Will be called by GeometryAlgorithmsModule startup, so you don't need to manually call this.

◆ InCircle() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::InCircle ( const double PA,
const double PB,
const double PC,
const double PD 
)

◆ InCircle() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::InCircle ( const float PA,
const float PB,
const float PC,
const float PD 
)

◆ InCircle2()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::InCircle2 ( const TVector2< RealType > &  A,
const TVector2< RealType > &  B,
const TVector2< RealType > &  C,
const TVector2< RealType > &  D 
)

TVector2-only version that can run in float or double

Returns
value indicating whether point D is inside, outside, or exactly on the circle passing through ABC Note: Sign of the result depends on the orientation of triangle ABC – Counterclockwise: Inside is positive Clockwise: Inside is negative

◆ InCircleInexact() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::InCircleInexact ( const double PA,
const double PB,
const double PC,
const double PD 
)

◆ InCircleInexact() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::InCircleInexact ( const float PA,
const float PB,
const float PC,
const float PD 
)

◆ InSphere()

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::InSphere ( const double PA,
const double PB,
const double PC,
const double PD,
const double PE 
)

◆ InSphere3()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::InSphere3 ( const TVector< RealType > &  A,
const TVector< RealType > &  B,
const TVector< RealType > &  C,
const TVector< RealType > &  D,
const TVector< RealType > &  E 
)

TVector-only version that can run in float or double

Returns
value indicating whether point E is inside, outside, or exactly on the sphere passing through ABCD Note: Sign of the result depends on the orientation of tetrahedron ABCD

◆ InSphereInexact()

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::InSphereInexact ( const double PA,
const double PB,
const double PC,
const double PD,
const double PE 
)

◆ Orient2()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::Orient2 ( const TVector2< RealType > &  A,
const TVector2< RealType > &  B,
const TVector2< RealType > &  C 
)

TVector2-only version that can run in float or double

Returns
value indicating which side of line AB point C is on, or 0 if ABC are collinear

◆ Orient2D() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient2D ( const double pa,
const double pb,
const double pc 
)

◆ Orient2D() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient2D ( const float pa,
const float pb,
const float pc 
)

◆ Orient2DInexact() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient2DInexact ( const double pa,
const double pb,
const double pc 
)

◆ Orient2DInexact() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient2DInexact ( const float pa,
const float pb,
const float pc 
)

◆ Orient2DOrigin() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient2DOrigin ( double  ax,
double  ay,
double  bx,
double  by 
)

◆ Orient2DOrigin() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient2DOrigin ( float  ax,
float  ay,
float  bx,
float  by 
)

◆ Orient2Origin()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::Orient2Origin ( const TVector2< RealType > &  A,
const TVector2< RealType > &  B 
)
inline

◆ Orient3()

template<typename RealType >
RealType UE::Geometry::ExactPredicates::Orient3 ( const TVector< RealType > &  A,
const TVector< RealType > &  B,
const TVector< RealType > &  C,
const TVector< RealType > &  D 
)

TVector-only version that can run in float or double

Returns
value indicating which side of triangle ABC point D is on, or 0 if ABCD are coplanar

◆ Orient3D() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient3D ( const double PA,
const double PB,
const double PC,
const double PD 
)

◆ Orient3D() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient3D ( const float PA,
const float PB,
const float PC,
const float PD 
)

◆ Orient3DInexact() [1/2]

double GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient3DInexact ( const double PA,
const double PB,
const double PC,
const double PD 
)

◆ Orient3DInexact() [2/2]

float GEOMETRYCORE_API UE::Geometry::ExactPredicates::Orient3DInexact ( const float PA,
const float PB,
const float PC,
const float PD 
)