DynamicMesh

Choose your operating system:

Windows

macOS

Linux

Filters

Classes

Name

Description

Public class

FColliderMesh

FColliderMesh is a minimal representation of an Indexed Triangle Mesh suitable to use with a TMeshAABBTree3.

Public struct

FComputeTangentsOptions

Options used by TMeshTangents for tangents computation

Public class

FDynamicMesh3

FDynamicMesh3 is a dynamic triangle mesh class.

Public class

FDynamicMeshAttributeChangeSet

FDynamicMeshAttributeChangeSet stores a set of UV and Normal changes for a FDynamicMesh3

Public class

FDynamicMeshAttributeSet

FDynamicMeshAttributeSet manages a set of extended attributes for a FDynamicMesh3.

Public class

FDynamicMeshAttributeSetChangeTracker

FDynamicMeshAttributeSetChangeTracker constructs a well-formed set of TDynamicMeshAttributeChange objects (stored in a FDynamicMeshAttributeChangeSet).

Public class

FDynamicMeshChange

FDynamicMeshChange stores a "change" in a FDynamicMesh3, which in this context means the replacement of one set of triangles with a second set, that may have different vertices/attributes.

Public class

FDynamicMeshChangeTracker

FDynamicMeshChangeTracker tracks changes to a FDynamicMesh and returns a FDynamicMeshChange instance that represents this change and allows it to be reverted/reapplied.

Public class

FDynamicMeshOctree3

FDynamicMeshOctree3 is an extension of FSparseDynamicOctree3 for the triangles of a FDynamicMesh3 instance.

Public class

FDynamicMeshTangents

FDynamicMeshTangents is a helper object for accessing tangents stored in the AttributeSet of a FDynamicMesh3.

Public class

FDynamicMeshTriangleAttributeChange

Public struct

FEdgeCollapseInfo

Information about mesh elements modified/removed by CollapseEdge()

Public struct

FEdgeFlipInfo

Information about the mesh elements modified by a call to FlipEdge()

Public struct

FEdgeSplitInfo

Information about the mesh elements created by a call to SplitEdge()

Public struct

FMergeEdgesInfo

Information about mesh elements modified by MergeEdges()

Public struct

FMeshIndexMappings

FMeshIndexMappings stores a set of integer IndexMaps for a mesh This is a convenient object to have, to avoid passing around large numbers of separate maps.

Public class

FMeshNormals

FMeshNormals is a utility class that can calculate and store various types of normal vectors for a FDynamicMesh.

Public struct

FPokeTriangleInfo

Information about mesh elements modified/created by PokeTriangle()

Public struct

FVertexInfo

FVertexInfo stores information about vertex attributes - position, normal, color, UV

Public struct

FVertexSplitInfo

Information about mesh elements modified/created by SplitVertex()

Public class

TDynamicAttributeBase

Base class for attributes that live on a dynamic mesh (or similar dynamic object)

Public class

TDynamicAttributeChangeBase

Generic base class for change tracking of an attribute layer

Public class

TDynamicAttributeSetBase

Generic base class for managing a set of registered attributes that must all be kept up to date

Public class

TDynamicMeshAttributeChange

TDynamicMeshAttributeChange represents a change to an attribute overlay of a FDynamicMesh3.

Public class

TDynamicMeshOverlay

TDynamicMeshOverlay is an add-on to a FDynamicMesh3 that allows for per-triangle storage of an "element" (eg like a per-triangle UV or normal).

Public class

TDynamicMeshScalarTriangleAttribute

TDynamicMeshScalarTriangleAttribute is an extension of TDynamicMeshTriangleAttribute for scalar-valued attributes.

Public class

TDynamicMeshTriangleAttribute

TDynamicMeshTriangleAttribute is an add-on to a FDynamicMesh3 that allows for per-triangle storage of an attribute value.

Public class

TDynamicMeshVectorOverlay

TDynamicMeshVectorOverlay is an convenient extension of TDynamicMeshOverlay that adds a specific N-element Vector type to the template, and adds accessor functions that convert between that N-element vector type and the N-element arrays used by TDynamicMeshOverlay.

Public class

TDynamicPointSet3

TDynamicPointSet3 implements a dynamic 3D point set, templated on real-value type (float or double).

Public class

TDynamicVertexAttribute

TDynamicVertexAttribute provides per-vertex storage of an attribute value

Public class

TDynamicVertexAttributeChange

Public class

TDynamicVertexSkinWeightsAttribute

Forward declarations

Public class

TDynamicVertexSkinWeightsAttributeChange

Public class

TDynamicVerticesOctree3

TDynamicVerticesOctree3 is an extension of FSparseDynamicPointOctree3 for the vertices of a FDynamicXYZ3 instance (eg FDynamicMesh3, TDynamicPointSet3, FDynamicGraph, etc) This extension does several things: 1) provides a simplified API based on vertex IDs to various Octree functions 2) tracks ModifiedBounds box of modified areas

The template expansion requires that FDynamicXYZ3 has the following API: 1) a function int MaxVertexID() that returns the maximum vertex ID/index 2) a function bool IsVertex(int) that returns true if the index is valid 3) a function FVector3d GetVertex(int index) that returns the position of a vertex 4) a function FAxisAlignedBox3d GetBounds() that returns a bounding-box of the point set

Public class

TMeshTangents

TMeshTangents is a utility class that can calculate and store various types of tangent vectors for a FDynamicMesh.

Typedefs

Name

Description

FDynamicMeshAABBTree3

FDynamicMeshAttributeBase

FDynamicMeshAttributeChangeBase

FDynamicMeshAttributeSetBase

FDynamicMeshColorChange

Standard Color overlay change type - 4-element float

FDynamicMeshColorOverlay

Standard Color overlay type - 4-element float (rbga)

FDynamicMeshMaterialAttribute

Standard per-triangle integer material ID

FDynamicMeshNormalChange

Standard Normal overlay change type - 3-element float

FDynamicMeshNormalOverlay

Standard Normal overlay type - 3-element float

FDynamicMeshPolygroupAttribute

Per-triangle integer polygroup ID

FDynamicMeshTriGroupChange

Standard per-triangle integer attribute change type

FDynamicMeshUVChange

Standard UV overlay change type - 2-element float

FDynamicMeshUVOverlay

Standard UV overlay type - 2-element float

FDynamicMeshVertexSkinWeightsAttribute

FDynamicPointSet3d

FDynamicPointSet3f

FMeshTangentsd

FMeshTangentsf

TDynamicMeshVertexAttribute

Enums

Functions

Name Description

Public function

void

 

MeshTransforms::ApplyTransform

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

Apply given Transform to a Mesh.

Public function

void

 

MeshTransforms::ApplyTransform

(
    FDynamicMesh3& Mesh,
    const FTransform3d& Transform
)

Apply given Transform to a Mesh.

Public function

void

 

MeshTransforms::ApplyTransformInverse

(
    FDynamicMesh3& Mesh,
    const FTransform3d& Transform
)

Apply inverse of given Transform to a Mesh.

Public function

void

 

MeshTransforms::FrameCoordsToWorld

(
    FDynamicMesh3& Mesh,
    const FFrame3d& Frame
)

Transform Mesh out of local coordinates of Frame

Public function

void

 

MeshTransforms::Scale

(
    FDynamicMesh3& Mesh,
    const FVector3d& Scale,
    const FVector3d& Origin
)

Apply Scale to vertex positions of Mesh, relative to given Origin.

Public function

void

 

MeshTransforms::Translate

(
    FDynamicMesh3& Mesh,
    const FVector3d& Translation
)

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

Public function

void

 

MeshTransforms::WorldToFrameCoords

(
    FDynamicMesh3& Mesh,
    const FFrame3d& Frame
)

Transform Mesh into local coordinates of Frame

Public function

void

 

UE::Geometry::CollectVertexPositions

(
    const FDynamicMesh3& Mesh,
    EnumeratorType Enumeration,
    SetType& Output
)

Call SetType.Add(VertexPosition) for all valid vertex indices in for_each(Enumeration)

Public function

bool

 

UE::Geometry::CompactAttributeValues

(
    const FDynamicMesh3& Mesh,
    TDynamicMeshScalarTriangleAttribute...,
    FInterval1i& OldMaxAttributeRangeO...,
    int& NewMaxAttributeValueOut,
    TArray< int32 >& OldToNewMapOut,
    TArray< int32 >& NewToOldMapOut,
    bool& bWasCompactOut
)

Compact the values of an integer Triangle Attribute, ie so that the attribute values are dense in range 0..N.

Public function

bool

 

UE::Geometry::CopyVertexNormalsToOverlay

(
    const FDynamicMesh3& Mesh,
    FDynamicMeshNormalOverlay& NormalO...,
    bool bCompactElements
)

Copies vertex normals to a given overlay (clearing it before use if it has any elements).

Public function

bool

 

UE::Geometry::CopyVertexUVsToOverlay

(
    const FDynamicMesh3& Mesh,
    FDynamicMeshUVOverlay& UVOverlayOu...,
    bool bCompactElements
)

Copies vertex UVs to a given overlay (clearing it before use if it has any elements).

Public function

FIndex3i

 

UE::Geometry::FindNextAdjacentTriangleAroundVtx

(
    const FDynamicMesh3* Mesh,
    int32 VertexID,
    int32 FromTriangleID,
    int32 PrevTriangleID,
    TrisConnectedPredicate TrisConnecte...
)

Walk around VertexID from FromTriangleID to next connected triangle if it exists, walking "away" from PrevTriangleID.

Public function

int32

 

UE::Geometry::FindSharedEdgeInTriangles

(
    const FDynamicMesh3& Mesh,
    int32 Triangle0,
    int32 Triangle1
)

Public function

FIndex2i

 

UE::Geometry::FindVertexEdgesInTriangle

(
    const FDynamicMesh3& Mesh,
    int32 TriangleID,
    int32 VertexID
)

Find the two edges in a Triangle that are connected to a given Vertex of the triangle

Public function

FPointSetAda...

 

UE::Geometry::MakeBoundaryEdgeMidpointsAdapter

(
    const FDynamicMesh3* Mesh
)

Public function

FTriangleMes...

 

UE::Geometry::MakeDynamicMeshAdapter

(
    const FDynamicMesh3* Mesh
)

Public function

FPointSetAda...

 

UE::Geometry::MakeEdgeMidpointsAdapter

(
    const FDynamicMesh3* Mesh
)

Public function

FPointSetAda...

 

UE::Geometry::MakePointsAdapter

(
    const FDynamicPointSet3d* Poin...
)

Public function

FTriangleMes...

 

UE::Geometry::MakeTransformedDynamicMeshAdapter

(
    const FDynamicMesh3* Mesh,
    FTransform Transform
)

Public function

FPointSetAda...

 

UE::Geometry::MakeTriCentroidsAdapter

(
    const FDynamicMesh3* Mesh
)

Public function

FPointSetAda...

 

UE::Geometry::MakeVerticesAdapter

(
    const FDynamicMesh3* Mesh
)

Public function

bool

 

UE::Geometry::SplitBoundaryVertexTrianglesIntoSubsets

(
    const FDynamicMesh3* Mesh,
    int32 VertexID,
    int32 SplitEdgeID,
    TArray< int32 >& TriangleSet0,
    TArray< int32 >& TriangleSet1
)

Split the triangle one-ring at VertexID into two triangle sets by "cutting" it with edge SplitEdgeID that is connected to VertexID.

Public function

bool

 

UE::Geometry::SplitInteriorVertexTrianglesIntoSubsets

(
    const FDynamicMesh3* Mesh,
    int32 VertexID,
    int32 SplitEdgeID0,
    int32 SplitEdgeID1,
    TArray< int32 >& TriangleSet0,
    TArray< int32 >& TriangleSet1
)

Split the triangle one-ring at VertexID into two triangle sets by "cutting" it with two edges SplitEdgeID0 and SplitEdgeID1 that are both connected to VertexID.

Public function

void

 

UE::Geometry::TriangleToVertexIDs

(
    const FDynamicMesh3* Mesh,
    const TArray< int >& TriangleIDs,
    TArray< int >& VertexIDsOut
)

Find list of unique vertices that are contained in one or more triangles

Public function

void

 

UE::Geometry::VertexToTriangleOneRing

(
    const FDynamicMesh3* Mesh,
    const TArray< int >& VertexIDs,
    TSet< int >& TriangleIDsOut
)

Find all the triangles in all the one rings of a set of vertices