Navigation
API > API/Runtime > API/Runtime/GeometryCore > API/Runtime/GeometryCore/DynamicMesh
Warnings * Currently only vertices that are part of saved triangles will be stored in the emitted FMeshChange!
References
| Module | GeometryCore |
| Header | /Engine/Source/Runtime/GeometryCore/Public/DynamicMesh/DynamicMeshChangeTracker.h |
| Include | #include "DynamicMesh/DynamicMeshChangeTracker.h" |
Syntax
class FDynamicMeshChangeTracker
Remarks
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.
Currently only vertices that are part of saved triangles will be stored in the emitted FMeshChange!
Variables
| Type | Name | Description | |
|---|---|---|---|
| FDynamicMeshAttributeSetChangeTracker * | AttribChangeTracker | Active attribute tracker, if Mesh has attribute overlays | |
| FDynamicMeshChange * | Change | Active change that is being constructed | |
| TBitArray | ChangedTriangles | ||
| TBitArray | ChangedVertices | ||
| int32 | MaxTriangleID | ||
| int32 | MaxVertexID | ||
| const FDynamicMesh3 * | Mesh | ||
| TBitArray | StartTriangles | ||
| TBitArray | StartVertices |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FDynamicMeshChangeTracker
(
const FDynamicMesh3* Mesh |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | BeginChange () |
Initialize the change-tracking process | |
| TUniquePtr< FDynamicMeshChange > | EndChange () |
Construct a change object that represents the delta between the Begin and End states | |
| void | SaveEdge
(
int32 EdgeID, |
Save necessary information about an edge before it is modified | |
| void | SaveTriangle
(
int32 TriangleID, |
Save necessary information about a triangle before it is modified | |
| void | SaveTriangles
(
EnumerableType TriangleIDs, |
Save necessary information about a set of triangles before they are modified | |
| void | SaveTrianglesAndNeighbourTris
(
EnumerableType TriangleIDs, |
Save necessary information about a set of triangles before they are modified, and also include any direct triangle neighbours | |
| void | SaveVertex
(
int32 VertexID |
Currently EndChange() only stores vertices that are part of modified triangles. | |
| void | SaveVertexOneRingTriangles
(
int32 VertexID, |
Save necessary information about a set of triangles in one-ring of a vertex | |
| void | SaveVertexOneRingTriangles
(
EnumerableType VertexIDs, |
Save necessary information about a set of triangles in one-rings of a set of vertices | |
| void | SaveVertices
(
EnumerableType VertexIDs |
Save necessary information about a set of vertices before they are modified | |
| void | Do (limited) sanity checking to make sure that the change is well-formed |