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

#include <DynamicMeshChangeTracker.h>

Public Member Functions

GEOMETRYCORE_API FDynamicMeshChangeTracker (const FDynamicMesh3 *Mesh)
 
GEOMETRYCORE_API ~FDynamicMeshChangeTracker ()
 
GEOMETRYCORE_API void BeginChange ()
 
GEOMETRYCORE_API TUniquePtr< FDynamicMeshChangeEndChange ()
 
GEOMETRYCORE_API void SaveTriangle (int32 TriangleID, bool bSaveVertices)
 
void SaveEdge (int32 EdgeID, bool bVertices)
 
template<typename EnumerableType >
void SaveTriangles (EnumerableType TriangleIDs, bool bSaveVertices)
 
template<typename EnumerableType >
void SaveTrianglesAndNeighbourTris (EnumerableType TriangleIDs, bool bSaveVertices)
 
void SaveVertexOneRingTriangles (int32 VertexID, bool bSaveVertices)
 
template<typename EnumerableType >
void SaveVertexOneRingTriangles (EnumerableType VertexIDs, bool bSaveVertices)
 
GEOMETRYCORE_API void VerifySaveState ()
 

Protected Member Functions

GEOMETRYCORE_API void SaveVertex (int32 VertexID)
 
template<typename EnumerableType >
void SaveVertices (EnumerableType VertexIDs)
 

Protected Attributes

const FDynamicMesh3Mesh = nullptr
 
FDynamicMeshAttributeSetChangeTrackerAttribChangeTracker = nullptr
 
FDynamicMeshChangeChange = nullptr
 
int32 MaxTriangleID
 
TBitArray StartTriangles
 
TBitArray ChangedTriangles
 
int32 MaxVertexID
 
TBitArray StartVertices
 
TBitArray ChangedVertices
 

Detailed Description

FDynamicMeshChangeTracker tracks changes to a FDynamicMesh and returns a FDynamicMeshChange instance that represents this change and allows it to be reverted/reapplied. This is the top-level class you likely want to use to track mesh changes.

Call BeginChange() before making any changes to the mesh, then call SaveVertex() and SaveTriangle() before modifying the respective elements. Then call EndChange() to construct a FDynamicMeshChange that represents the mesh delta.

Warning
Currently only vertices that are part of saved triangles will be stored in the emitted FMeshChange!

Constructor & Destructor Documentation

◆ FDynamicMeshChangeTracker()

FDynamicMeshChangeTracker::FDynamicMeshChangeTracker ( const FDynamicMesh3 Mesh)
explicit

◆ ~FDynamicMeshChangeTracker()

FDynamicMeshChangeTracker::~FDynamicMeshChangeTracker ( )

Member Function Documentation

◆ BeginChange()

void FDynamicMeshChangeTracker::BeginChange ( )

Initialize the change-tracking process

◆ EndChange()

TUniquePtr< FDynamicMeshChange > FDynamicMeshChangeTracker::EndChange ( )

Construct a change object that represents the delta between the Begin and End states

◆ SaveEdge()

void UE::Geometry::FDynamicMeshChangeTracker::SaveEdge ( int32  EdgeID,
bool  bVertices 
)
inline

Save necessary information about an edge before it is modified

◆ SaveTriangle()

void FDynamicMeshChangeTracker::SaveTriangle ( int32  TriangleID,
bool  bSaveVertices 
)

Save necessary information about a triangle before it is modified

◆ SaveTriangles()

void UE::Geometry::FDynamicMeshChangeTracker::SaveTriangles ( EnumerableType  TriangleIDs,
bool  bSaveVertices 
)

Save necessary information about a set of triangles before they are modified

◆ SaveTrianglesAndNeighbourTris()

void UE::Geometry::FDynamicMeshChangeTracker::SaveTrianglesAndNeighbourTris ( EnumerableType  TriangleIDs,
bool  bSaveVertices 
)

Save necessary information about a set of triangles before they are modified, and also include any direct triangle neighbours

◆ SaveVertex()

void FDynamicMeshChangeTracker::SaveVertex ( int32  VertexID)
protected

Save necessary information about a vertex before it is modified

◆ SaveVertexOneRingTriangles() [1/2]

void UE::Geometry::FDynamicMeshChangeTracker::SaveVertexOneRingTriangles ( EnumerableType  VertexIDs,
bool  bSaveVertices 
)

Save necessary information about a set of triangles in one-rings of a set of vertices

◆ SaveVertexOneRingTriangles() [2/2]

void UE::Geometry::FDynamicMeshChangeTracker::SaveVertexOneRingTriangles ( int32  VertexID,
bool  bSaveVertices 
)
inline

Save necessary information about a set of triangles in one-ring of a vertex

◆ SaveVertices()

void UE::Geometry::FDynamicMeshChangeTracker::SaveVertices ( EnumerableType  VertexIDs)
protected

Save necessary information about a set of vertices before they are modified

◆ VerifySaveState()

void FDynamicMeshChangeTracker::VerifySaveState ( )

Do (limited) sanity checking to make sure that the change is well-formed

Member Data Documentation

◆ AttribChangeTracker

FDynamicMeshAttributeSetChangeTracker* UE::Geometry::FDynamicMeshChangeTracker::AttribChangeTracker = nullptr
protected

Active attribute tracker, if Mesh has attribute overlays

◆ Change

FDynamicMeshChange* UE::Geometry::FDynamicMeshChangeTracker::Change = nullptr
protected

Active change that is being constructed

◆ ChangedTriangles

TBitArray UE::Geometry::FDynamicMeshChangeTracker::ChangedTriangles
protected

◆ ChangedVertices

TBitArray UE::Geometry::FDynamicMeshChangeTracker::ChangedVertices
protected

◆ MaxTriangleID

int32 UE::Geometry::FDynamicMeshChangeTracker::MaxTriangleID
protected

◆ MaxVertexID

int32 UE::Geometry::FDynamicMeshChangeTracker::MaxVertexID
protected

◆ Mesh

const FDynamicMesh3* UE::Geometry::FDynamicMeshChangeTracker::Mesh = nullptr
protected

◆ StartTriangles

TBitArray UE::Geometry::FDynamicMeshChangeTracker::StartTriangles
protected

◆ StartVertices

TBitArray UE::Geometry::FDynamicMeshChangeTracker::StartVertices
protected

The documentation for this class was generated from the following files: