UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FastTriWinding Namespace Reference

Typedefs

using FTriangle3d = UE::Geometry::FTriangle3d
 
using FMatrix3d = UE::Geometry::FMatrix3d
 

Functions

template<class TriangleMeshType , class IterableTriangleIndices >
void ComputeCoeffsSerial (const TriangleMeshType &Mesh, const IterableTriangleIndices &Triangles, const FMeshTriInfoCache &TriCache, FVector3d &P, double &R, FVector3d &Order1, FMatrix3d &Order2)
 
template<class TriangleMeshType >
void ComputeCoeffs (const TriangleMeshType &Mesh, const TArray< int > &TriangleArray, const FMeshTriInfoCache &TriCache, FVector3d &P, double &R, FVector3d &Order1, FMatrix3d &Order2, int NumTasks=16)
 
template<class TriangleMeshType >
void ComputeCoeffs (const TriangleMeshType &Mesh, const TSet< int > &TriangleSet, const FMeshTriInfoCache &TriCache, FVector3d &P, double &R, FVector3d &Order1, FMatrix3d &Order2, int NumTasks=16)
 
double EvaluateOrder1Approx (const FVector3d &Center, const FVector3d &Order1Coeff, const FVector3d &Q)
 
double EvaluateOrder2Approx (const FVector3d &Center, const FVector3d &Order1Coeff, const FMatrix3d &Order2Coeff, const FVector3d &Q)
 
double Order1Approx (const FTriangle3d &T, const FVector3d &P, const FVector3d &XN, double XA, const FVector3d &Q)
 
double Order2Approx (const FTriangle3d &T, const FVector3d &P, const FVector3d &XN, double XA, const FVector3d &Q)
 

Detailed Description

Formulas for triangle winding number approximation

Typedef Documentation

◆ FMatrix3d

◆ FTriangle3d

Function Documentation

◆ ComputeCoeffs() [1/2]

template<class TriangleMeshType >
void FastTriWinding::ComputeCoeffs ( const TriangleMeshType Mesh,
const TArray< int > &  TriangleArray,
const FMeshTriInfoCache TriCache,
FVector3d P,
double R,
FVector3d Order1,
FMatrix3d Order2,
int  NumTasks = 16 
)

precompute constant coefficients of triangle winding number approximation (evaluated in parallel for large sets of triangles) P: 'Center' of expansion for Triangles (area-weighted centroid avg) R: max distance from P to Triangles Order1: first-order vector coeff Order2: second-order matrix coeff TriCache: precomputed triangle centroid/normal/area

◆ ComputeCoeffs() [2/2]

template<class TriangleMeshType >
void FastTriWinding::ComputeCoeffs ( const TriangleMeshType Mesh,
const TSet< int > &  TriangleSet,
const FMeshTriInfoCache TriCache,
FVector3d P,
double R,
FVector3d Order1,
FMatrix3d Order2,
int  NumTasks = 16 
)

precompute constant coefficients of triangle winding number approximation (evaluated in parallel for large sets of triangles) P: 'Center' of expansion for Triangles (area-weighted centroid avg) R: max distance from P to Triangles Order1: first-order vector coeff Order2: second-order matrix coeff TriCache: precomputed triangle centroid/normal/area

◆ ComputeCoeffsSerial()

template<class TriangleMeshType , class IterableTriangleIndices >
void FastTriWinding::ComputeCoeffsSerial ( const TriangleMeshType Mesh,
const IterableTriangleIndices Triangles,
const FMeshTriInfoCache TriCache,
FVector3d P,
double R,
FVector3d Order1,
FMatrix3d Order2 
)

precompute constant coefficients of triangle winding number approximation (serial implementation) P: 'Center' of expansion for Triangles (area-weighted centroid avg) R: max distance from P to Triangles Order1: first-order vector coeff Order2: second-order matrix coeff TriCache: precomputed triangle centroid/normal/area

◆ EvaluateOrder1Approx()

double FastTriWinding::EvaluateOrder1Approx ( const FVector3d Center,
const FVector3d Order1Coeff,
const FVector3d Q 
)
inline

Evaluate first-order FWN approximation at point Q, relative to Center c

◆ EvaluateOrder2Approx()

double FastTriWinding::EvaluateOrder2Approx ( const FVector3d Center,
const FVector3d Order1Coeff,
const FMatrix3d Order2Coeff,
const FVector3d Q 
)
inline

Evaluate second-order FWN approximation at point Q, relative to Center c

◆ Order1Approx()

double FastTriWinding::Order1Approx ( const FTriangle3d T,
const FVector3d P,
const FVector3d XN,
double  XA,
const FVector3d Q 
)
inline

◆ Order2Approx()

double FastTriWinding::Order2Approx ( const FTriangle3d T,
const FVector3d P,
const FVector3d XN,
double  XA,
const FVector3d Q 
)
inline