GeometryCore

Choose your operating system:

Windows

macOS

Linux

Filters

Classes

Name

Description

Public struct

FAxisAlignedBox2i

Public struct

FAxisAlignedBox3i

Public struct

FForceGeometryNamespaceToExist

Public class

FGeometryCoreModule

Public struct

FIndex2i

2-index tuple.

Public struct

FIndex3i

3-index tuple.

Public struct

FIndex4i

4-index tuple.

Public struct

FInterval1i

Public struct

FVector2i

2D 32-bit integer Vector

Public struct

FVector3i

3D 32-bit integer Vector

Public class

TAttrBasedQuadricError

Quadric Error type for use in volume memory-less simplification with volume preservation constraints.

Public struct

TAxisAlignedBox2

Public struct

TAxisAlignedBox3

Public struct

TCapsule3

3D Capsule stored as Line Segment and Radius

Public struct

TCircle2

Public struct

TCircle3

Public struct

TFrame3

TFrame3 is an object that represents an oriented 3D coordinate frame, ie orthogonal X/Y/Z axes at a point in space.

Public struct

THalfspace3

3D Halfspace stored as parameters to Plane Equation (Normal, Normal.Dot(PointOnPlane)) The Normal points "into" the halfspace, ie X is inside if (Normal.Dot(X) - Constant) >= 0

Public class

TIndexedWeightMap

FIndexedWeightMap stores an array of values, the intention is that these are "weights" on indices, for example per-vertex weights.

Public struct

TIndexMap

TIndexMap stores mappings between indices, which are assumed to be an integer type.

Public struct

TIndexMeshArrayAdapter

Faster adapter specifically for the common index mesh case

Public struct

TIndexVectorMeshArrayAdapter

Second version of the above faster adapter for the case where triangle indices are packed into an integer vector type instead of flat

Public struct

TInterval1

Public struct

TLine2

TLine2 is a two-dimensional infinite line.

Public struct

TLine3

TLine3 is a three-dimensional infinite line.

Public class

TMathUtil

Public struct

TMathUtilConstants

Math constants and utility functions, templated on float/double type

Public struct

TMatrix2

Public struct

TMatrix3

Public class

TMeshQueries

Public struct

TOrientedBox3

TOrientedBox3 is a non-axis-aligned 3D box defined by a 3D frame and extents along the axes of that frame The frame is at the center of the box.

Public struct

TPlane3

Public struct

TPointSetAdapter

TPointSetAdapter provides a very generic interface to an indexable list of points.

Public class

TPolygon2

TPolygon2 is a 2D polygon represented as a list of Vertices.

Public class

TPolyline3

TPolyline3 represents a 3D polyline stored as a list of Vertices.

Public struct

TQuadricError

QuadricError represents a quadratic function that evaluates distance to plane.

Public struct

TQuaternion

Public struct

TSegment2

2D Line Segment stored as Center point, normalized Direction vector, and scalar Extent

Public struct

TSegment3

3D Line Segment stored as Center point, normalized Direction vector, and scalar Extent

Public struct

TSphere3

3D Sphere stored as Center point and Radius

Public class

TTransform3

TTransform3 is a double/float templated version of standard UE FTransform.

Public class

TTransformSequence3

TTransformSequence3 represents a sequence of 3D transforms.

Public struct

TTriangle2

Public struct

TTriangle3

Public struct

TTriangleMeshAdapter

Most generic / lazy example of a triangle mesh adapter; possibly useful for prototyping / building on top of (but slower than making a more specific-case adapter)

Public class

TVolPresQuadricError

Quadric Error type for use in memory-less simplification with volume preservation constraints.

Typedefs

Enums

Name

Description

Public enum

EIntersectionResult

Public enum

EIntersectionType

Public enum

UE::Geometry::EMeshResult

EMeshResult is returned by various mesh/graph operations to either indicate success, or communicate which type of error ocurred (some errors are recoverable, and some not).

Public enum

UE::Geometry::EOperationValidationResult

EOperationValidationResult is meant to be returned by Validate() functions of Operation classes (eg like ExtrudeMesh, etc) to indicate whether the operation can be successfully applied.

Public enum

UE::Geometry::EValidityCheckFailMode

EValidityCheckFailMode is passed to CheckValidity() functions of various classes to specify how validity checks should fail.

Functions

Name Description

Public function

void

 

MeshAdapterTransforms::ApplyTransform

(
    TriangleMeshType& Mesh,
    const FTransform3d& Transform
)

Apply given Transform to a Mesh.

Public function

void

 

MeshAdapterTransforms::ApplyTransform

(
    TriangleMeshType& Mesh,
    TFunctionRef< FVector3d...,
    TFunctionRef< FVector3f...
)

Apply given Transform to a Mesh.

Public function

void

 

MeshAdapterTransforms::ApplyTransformInverse

(
    TriangleMeshType& Mesh,
    const FTransform3d& Transform
)

Apply inverse of given Transform to a Mesh.

Public function

void

 

MeshAdapterTransforms::FrameCoordsToWorld

(
    TriangleMeshType& Mesh,
    const FFrame3d& Frame
)

Transform Mesh out of local coordinates of Frame

Public function

void

 

MeshAdapterTransforms::Translate

(
    TriangleMeshType& Mesh,
    const FVector3d& Translation
)

Apply Translation to vertex positions of Mesh. Does not modify any other attributes.

Public function

void

 

MeshAdapterTransforms::WorldToFrameCoords

(
    TriangleMeshType& Mesh,
    const FFrame3d& Frame
)

Transform Mesh into local coordinates of Frame

Public function

T

 

UE::Geometry::AngleD

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Computes the Angle between V1 and V2, assuming they are already normalized

Public function

T

 

UE::Geometry::AngleD

(
    const UE::Math::TVector2< T >& V1,
    const UE::Math::TVector2< T >& V2
)

Angle in Degrees.

Public function

T

 

UE::Geometry::AngleR

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Computes the Angle between V1 and V2, assuming they are already normalized

Public function

T

 

UE::Geometry::AngleR

(
    const UE::Math::TVector2< T >& V1,
    const UE::Math::TVector2< T >& V2
)

Angle in Radians.

Public function

UE::Math::TV...

 

UE::Geometry::Blend3

(
    const UE::Math::TVector< T >& A,
    const UE::Math::TVector< T >& B,
    const UE::Math::TVector< T >& C,
    const T& WeightA,
    const T& WeightB,
    const T& WeightC
)

Public function

TQuadricErro...

 

UE::Geometry::CreateSeamQuadric

(
    const TVector< RealType >& p0,
    const TVector< RealType >& p1,
    const TVector< RealType >& AdjFace...
)

A "Seam Quadric" is a quadric defined with respect to the plane passing through the edge p1-p0, but perpendicular to the adjacent face.

Public function

UE::Math::TV...

 

UE::Geometry::Cross

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Public function Static

TMatrix3< Re...

 

UE::Geometry::CrossProductMatrix

(
    const UE::Math::TVector< RealType >...
)

Skew-Symmetric matrix such that A X B = CrossProductMatrix(A) * B;.

Public function

T

 

UE::Geometry::Distance

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Public function

T

 

UE::Geometry::Distance

(
    const UE::Math::TVector2< T >& V1,
    const UE::Math::TVector2< T >& V2
)

Public function

T

 

UE::Geometry::DistanceSquared

(
    const UE::Math::TVector2< T >& V1,
    const UE::Math::TVector2< T >& V2
)

Public function

T

 

UE::Geometry::DistanceSquared

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Public function

T

 

UE::Geometry::Dot

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Public function

constexpr T

 

UE::Geometry::DotPerp

(
    const UE::Math::TVector2< T >& V1,
    const UE::Math::TVector2< T >& V2
)

Public function

FTriangleMes...

 

UE::Geometry::GetArrayMesh

(
    TArray< FVector >& Vertices,
    TArray< FIntVector >& Triangles
)

Example function to generate a generic mesh adapter from arrays

Public function

uint32

 

UE::Geometry::GetTypeHash

(
    const FIndex2i& Index
)

Public function

uint32

 

UE::Geometry::GetTypeHash

(
    const FIndex3i& Index
)

Public function

uint32

 

UE::Geometry::GetTypeHash

(
    const FIndex4i& Index
)

Public function

uint32

 

UE::Geometry::GetTypeHash

(
    const FVector2i& Vector
)

Public function

uint32

 

UE::Geometry::GetTypeHash

(
    const FVector3i& Vector
)

Public function

constexpr UE...

 

UE::Geometry::GetXY

(
    const UE::Math::TVector< T >& V
)

Public function

constexpr UE...

 

UE::Geometry::GetXZ

(
    const UE::Math::TVector< T >& V
)

Public function

constexpr UE...

 

UE::Geometry::GetYZ

(
    const UE::Math::TVector< T >& V
)

Public function

constexpr bo...

 

UE::Geometry::IsNormalized

(
    const UE::Math::TVector< T >& Vect...,
    const T Tolerance
)

Public function

constexpr bo...

 

UE::Geometry::IsNormalized

(
    const UE::Math::TVector2< T >& Vec...,
    const T Tolerance
)

Public function

T

 

UE::Geometry::Length

(
    const UE::Math::TVector< T >& V
)

Public function

UE::Math::TV...

 

UE::Geometry::Lerp

(
    const UE::Math::TVector< T >& A,
    const UE::Math::TVector< T >& B,
    T Alpha
)

Public function

UE::Math::TV...

 

UE::Geometry::Lerp

(
    const UE::Math::TVector2< T >& A,
    const UE::Math::TVector2< T >& B,
    T Alpha
)

Public function

constexpr UE...

 

UE::Geometry::MakeUnitVector3

(
    int32 Axis
)

Public function

constexpr UE...

 

UE::Geometry::Max

(
    const UE::Math::TVector< T >& V0,
    const UE::Math::TVector< T >& V1
)

Public function

FVector3i

 

UE::Geometry::Max

(
    const FVector3i& V0,
    const FVector3i& V1
)

Public function

constexpr T

 

UE::Geometry::MaxAbsElement

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr in...

 

UE::Geometry::MaxAbsElementIndex

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr T

 

UE::Geometry::MaxElement

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr in...

 

UE::Geometry::MaxElementIndex

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr UE...

 

UE::Geometry::Min

(
    const UE::Math::TVector< T >& V0,
    const UE::Math::TVector< T >& V1
)

Public function

FVector3i

 

UE::Geometry::Min

(
    const FVector3i& V0,
    const FVector3i& V1
)

Public function

constexpr T

 

UE::Geometry::MinAbsElement

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr in...

 

UE::Geometry::MinAbsElementIndex

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr T

 

UE::Geometry::MinElement

(
    const UE::Math::TVector< T >& Vect...
)

Public function

constexpr in...

 

UE::Geometry::MinElementIndex

(
    const UE::Math::TVector< T >& Vect...
)

Public function

T

 

UE::Geometry::Normalize

(
    UE::Math::TVector2< T >& Vector,
    const T Epsilon
)

Public function

T

 

UE::Geometry::Normalize

(
    UE::Math::TVector< T >& Vector,
    const T Epsilon
)

Public function

constexpr UE...

 

UE::Geometry::Normalized

(
    const UE::Math::TVector< T >& Vect...,
    const T Epsilon
)

Public function

UE::Math::TV...

 

UE::Geometry::Normalized

(
    const UE::Math::TVector2< T >& Vec...,
    const T Epsilon
)

Public function

TQuaternion<...

 

UE::Geometry::operator-

(
    const TQuaternion< RealType >& A,
    const TQuaternion< RealType >& B
)

Public function

FVector2i

 

UE::Geometry::operator*

(
    int32 Scalar,
    const FVector2i& V
)

Public function

TMatrix3< Re...

 

UE::Geometry::operator*

(
    RealType Scale,
    const TMatrix3< RealType >& Mat
)

Public function

TMatrix2< Re...

 

UE::Geometry::operator*

(
    RealType Scale,
    const TMatrix2< RealType >& Mat
)

Public function

TQuaternion<...

 

UE::Geometry::operator*

(
    const TQuaternion< RealType >& A,
    const TQuaternion< RealType >& B
)

Public function

TVector< Rea...

 

UE::Geometry::operator*

(
    const TQuaternion< RealType >& Q,
    const UE::Math::TVector< RealType >...
)

Public function

FVector3i

 

UE::Geometry::operator*

(
    int32 Scalar,
    const FVector3i& V
)

Public function

T

 

UE::Geometry::Orient

(
    const UE::Math::TVector2< T >& A,
    const UE::Math::TVector2< T >& B,
    const UE::Math::TVector2< T >& C
)

Public function

constexpr UE...

 

UE::Geometry::PerpCW

(
    const UE::Math::TVector2< T >& V
)

Public function

T

 

UE::Geometry::SignedAngleR

(
    const UE::Math::TVector2< T >& V1,
    const UE::Math::TVector2< T >& V2
)

Angle in Radians.

Public function

T

 

UE::Geometry::SquaredLength

(
    const UE::Math::TVector< T >& V
)

Public function

constexpr FC...

 

UE::Geometry::ToFColor

(
    const UE::Math::TVector4< T >& Vec...
)

Public function

FLinearColor

 

UE::Geometry::ToLinearColor

(
    const UE::Math::TVector4< T >& V
)

Public function

constexpr FL...

 

UE::Geometry::ToLinearColor

(
    const UE::Math::TVector< T >& Vect...
)

Public function

UE::Math::TV...

 

UE::Geometry::ToVector4

(
    const FLinearColor& Color
)

Public function

RealType

 

UE::Geometry::TriangleUtil::EquilateralEdgeLengthForArea

(
    RealType TriArea
)

Public function

UE::Math::TV...

 

UE::Geometry::UnitCross

(
    const UE::Math::TVector< T >& V1,
    const UE::Math::TVector< T >& V2
)

Public function

RealType

 

UE::Geometry::VectorUtil::Area

(
    const TVector2< RealType >& V0,
    const TVector2< RealType >& V1,
    const TVector2< RealType >& V2
)

Public function

RealType

 

UE::Geometry::VectorUtil::Area

(
    const TVector< RealType >& V0,
    const TVector< RealType >& V1,
    const TVector< RealType >& V2
)

Public function

double

 

UE::Geometry::VectorUtil::AspectRatio

(
    const FVector3d& v1,
    const FVector3d& v2,
    const FVector3d& v3
)

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::BarycentricCoords

(
    const TVector< RealType >& Point,
    const TVector< RealType >& V0,
    const TVector< RealType >& V1,
    const TVector< RealType >& V2
)

Compute barycentric coordinates/weights of vPoint inside 3D triangle (V0,V1,V2).

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::BarycentricCoords

(
    const TVector2< RealType >& Point,
    const TVector2< RealType >& V0,
    const TVector2< RealType >& V1,
    const TVector2< RealType >& V2
)

Compute barycentric coordinates/weights of vPoint inside 2D triangle (V0,V1,V2).

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::Bitangent

(
    const TVector< RealType >& NormalI...,
    const TVector< RealType >& Tangent...,
    RealType BitangentSign
)

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::BitangentFromTangent

(
    const TVector< RealType >& NormalI...,
    const TVector< RealType >& Tangent...
)

Public function

RealType

 

UE::Geometry::VectorUtil::BitangentSign

(
    const TVector< RealType >& NormalI...,
    const TVector< RealType >& Tangent...,
    const TVector< RealType >& Bitange...
)

Public function

RealType

 

UE::Geometry::VectorUtil::Clamp

(
    RealType Value,
    RealType MinValue,
    RealType MaxValue
)

Public function

bool

 

UE::Geometry::VectorUtil::EpsilonEqual

(
    const TVector< RealType >& V0,
    const TVector< RealType >& V1,
    RealType Epsilon
)

Public function

bool

 

UE::Geometry::VectorUtil::EpsilonEqual

(
    RealType A,
    RealType B,
    RealType Epsilon
)

Public function

bool

 

UE::Geometry::VectorUtil::EpsilonEqual

(
    const TVector4< RealType >& V0,
    const TVector4< RealType >& V1,
    RealType Epsilon
)

Public function

bool

 

UE::Geometry::VectorUtil::EpsilonEqual

(
    const TVector2< RealType >& V0,
    const TVector2< RealType >& V1,
    RealType Epsilon
)

Public function

bool

 

UE::Geometry::VectorUtil::IsFinite

(
    const TVector< RealType >& V
)

Public function

bool

 

UE::Geometry::VectorUtil::IsFinite

(
    const TVector2< RealType >& V
)

Public function

bool

 

UE::Geometry::VectorUtil::IsObtuse

(
    const TVector< RealType >& V1,
    const TVector< RealType >& V2,
    const TVector< RealType >& V3
)

Public function

void

 

UE::Geometry::VectorUtil::MakePerpVector

(
    const TVector< RealType >& Normal,
    TVector< RealType >& OutPerp1
)

Calculates one vector perpendicular to input Normal, as efficiently as possible.

Public function

void

 

UE::Geometry::VectorUtil::MakePerpVectors

(
    const TVector< RealType >& Normal,
    TVector< RealType >& OutPerp1,
    TVector< RealType >& OutPerp2
)

Calculates two vectors perpendicular to input Normal, as efficiently as possible.

Public function

int

 

UE::Geometry::VectorUtil::Min3Index

(
    const ValueVecType& Vector3
)

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::Normal

(
    const TVector< RealType >& V0,
    const TVector< RealType >& V1,
    const TVector< RealType >& V2
)

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::NormalArea

(
    const TVector< RealType >& V0,
    const TVector< RealType >& V1,
    const TVector< RealType >& V2,
    RealType& AreaOut
)

Calculate Normal and Area of triangle V0,V1,V2

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::NormalDirection

(
    const TVector< RealType >& V0,
    const TVector< RealType >& V1,
    const TVector< RealType >& V2
)

Public function

RealType

 

UE::Geometry::VectorUtil::OpeningAngleD

(
    TVector< RealType > A,
    TVector< RealType > B,
    const TVector< RealType >& P
)

Public function

RealType

 

UE::Geometry::VectorUtil::PlaneAngleSignedD

(
    const TVector< RealType >& VFrom,
    const TVector< RealType >& VTo,
    const TVector< RealType >& PlaneN
)

Calculates angle between VFrom and VTo after projection onto plane with normal defined by PlaneN

Public function

RealType

 

UE::Geometry::VectorUtil::SignedArea

(
    const TVector2< RealType >& V0,
    const TVector2< RealType >& V1,
    const TVector2< RealType >& V2
)

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::TangentFromBitangent

(
    const TVector< RealType >& NormalI...,
    const TVector< RealType >& Bitange...
)

Public function

TVector< Rea...

 

UE::Geometry::VectorUtil::TriGradient

(
    TVector< RealType > Vi,
    TVector< RealType > Vj,
    TVector< RealType > Vk,
    RealType fi,
    RealType fj,
    RealType fk
)

Calculate gradient of scalar field values fi,fj,fk defined at corners of triangle Vi,Vj,Vk and interpolated across triangle using linear basis functions.

Public function

RealType

 

UE::Geometry::VectorUtil::TriSolidAngle

(
    TVector< RealType > A,
    TVector< RealType > B,
    TVector< RealType > C,
    const TVector< RealType >& P
)

Public function

RealType

 

UE::Geometry::VectorUtil::VectorCot

(
    const TVector< RealType >& V1,
    const TVector< RealType >& V2
)

Fast cotangent of angle between two vectors (do not have to be normalized unit vectors).

Public function

RealType

 

UE::Geometry::VectorUtil::VectorTanHalfAngle

(
    const TVector< RealType >& A,
    const TVector< RealType >& B
)

Tan(theta/2) = +/- sqrt( (1-cos(theta)) / (1+cos(theta)) )

Variables

Name Description

Public variable

constexpr int

 

InvalidID