5#include "Containers/Array.h"
17#include "Misc/Optional.h"
55template<
typename RealType,
int ElementSize>
240 UE_DEPRECATED(5.6,
"Use the version of this method that takes a TSet instead")
263 template<
typename AttribOverlayType,
typename AttribChangeType>
266 if (ElementID < State.MaxElementID && State.ChangedElements[ElementID] ==
false && State.StartElements[ElementID] ==
true)
269 State.ChangedElements[ElementID] =
true;
313 template<
typename EnumerableType>
317 template<
typename EnumerableType>
324 template<
typename EnumerableType>
342 template<
typename EnumerableType>
376template<
typename EnumerableType>
379 for (
int32 VertexID : VertexIDs)
385template<
typename EnumerableType>
388 for (
int32 TriangleID : TriangleIDs)
395template<
typename EnumerableType>
398 for (
int32 TriangleID : TriangleIDs)
403 for (
int32 j = 0; j < 3; ++j)
422template<
typename EnumerableType>
425 for (
int32 VertexID : VertexIDs)
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition UniquePtr.h:107
Definition DynamicMesh3.h:108
GEOMETRYCORE_API FIndex3i GetTriNeighbourTris(int TriangleID) const
Definition DynamicMesh3.cpp:750
FEdge GetEdge(int EdgeID) const
Definition DynamicMesh3.h:848
GEOMETRYCORE_API void EnumerateVertexTriangles(int32 VertexID, TFunctionRef< void(int32)> ApplyFunc) const
Definition DynamicMesh3.cpp:769
static constexpr int InvalidID
Definition DynamicMesh3.h:158
Definition DynamicMeshChangeTracker.h:112
TArray< FDynamicMeshTriGroupChange > PolygroupChanges
Definition DynamicMeshChangeTracker.h:121
TArray< FDynamicMeshNormalChange > NormalChanges
Definition DynamicMeshChangeTracker.h:118
TOptional< FDynamicMeshTriGroupChange > MaterialIDAttribChange
Definition DynamicMeshChangeTracker.h:120
UE_NONCOPYABLE(FDynamicMeshAttributeChangeSet)
GEOMETRYCORE_API bool Apply(FDynamicMeshAttributeSet *Attributes, bool bRevert) const
Definition DynamicMeshChangeTracker.cpp:653
FDynamicMeshAttributeChangeSet()=default
TArray< FDynamicMeshUVChange > UVChanges
Definition DynamicMeshChangeTracker.h:117
TArray< TUniquePtr< FDynamicMeshAttributeChangeBase > > RegisteredAttributeChanges
Definition DynamicMeshChangeTracker.h:124
TOptional< FDynamicMeshColorChange > ColorChange
Definition DynamicMeshChangeTracker.h:119
TArray< TUniquePtr< FDynamicMeshAttributeChangeBase > > WeightChanges
Definition DynamicMeshChangeTracker.h:123
Definition DynamicMeshChangeTracker.h:221
GEOMETRYCORE_API TUniquePtr< FDynamicMeshAttributeChangeSet > EndChange()
Definition DynamicMeshChangeTracker.cpp:440
GEOMETRYCORE_API void BeginChange()
Definition DynamicMeshChangeTracker.cpp:357
TArray< FElementState > NormalStates
Definition DynamicMeshChangeTracker.h:260
GEOMETRYCORE_API void StoreAllFinalTriangles(const TArray< int > &TriangleIDs)
Definition DynamicMeshChangeTracker.cpp:534
FElementState ColorState
Definition DynamicMeshChangeTracker.h:261
GEOMETRYCORE_API void SaveInitialVertex(int VertexID)
Definition DynamicMeshChangeTracker.cpp:518
const FDynamicMeshAttributeSet * Attribs
Definition DynamicMeshChangeTracker.h:249
FDynamicMeshAttributeChangeSet * Change
Definition DynamicMeshChangeTracker.h:251
void StoreAllFinalVertices(const TArray< int > &VertexIDs)
Definition DynamicMeshChangeTracker.h:241
GEOMETRYCORE_API void SaveInitialTriangle(int TriangleID)
Definition DynamicMeshChangeTracker.cpp:448
void SaveElement(int ElementID, FElementState &State, const AttribOverlayType *Overlay, AttribChangeType &ChangeIn)
Definition DynamicMeshChangeTracker.h:264
TArray< FElementState > UVStates
Definition DynamicMeshChangeTracker.h:259
Definition DynamicMeshAttributeSet.h:84
Definition DynamicMeshChangeTracker.h:296
FDynamicMeshChange * Change
Definition DynamicMeshChangeTracker.h:353
TBitArray StartVertices
Definition DynamicMeshChangeTracker.h:360
TBitArray StartTriangles
Definition DynamicMeshChangeTracker.h:356
GEOMETRYCORE_API ~FDynamicMeshChangeTracker()
Definition DynamicMeshChangeTracker.cpp:726
const FDynamicMesh3 * Mesh
Definition DynamicMeshChangeTracker.h:347
GEOMETRYCORE_API void SaveVertex(int32 VertexID)
Definition DynamicMeshChangeTracker.cpp:774
void SaveVertices(EnumerableType VertexIDs)
Definition DynamicMeshChangeTracker.h:377
int32 MaxTriangleID
Definition DynamicMeshChangeTracker.h:355
void SaveTrianglesAndNeighbourTris(EnumerableType TriangleIDs, bool bSaveVertices)
Definition DynamicMeshChangeTracker.h:396
void SaveTriangles(EnumerableType TriangleIDs, bool bSaveVertices)
Definition DynamicMeshChangeTracker.h:386
void SaveVertexOneRingTriangles(int32 VertexID, bool bSaveVertices)
Definition DynamicMeshChangeTracker.h:414
int32 MaxVertexID
Definition DynamicMeshChangeTracker.h:359
TBitArray ChangedTriangles
Definition DynamicMeshChangeTracker.h:357
GEOMETRYCORE_API void BeginChange()
Definition DynamicMeshChangeTracker.cpp:736
TBitArray ChangedVertices
Definition DynamicMeshChangeTracker.h:361
void SaveEdge(int32 EdgeID, bool bVertices)
Definition DynamicMeshChangeTracker.h:366
FDynamicMeshAttributeSetChangeTracker * AttribChangeTracker
Definition DynamicMeshChangeTracker.h:350
GEOMETRYCORE_API TUniquePtr< FDynamicMeshChange > EndChange()
Definition DynamicMeshChangeTracker.cpp:822
GEOMETRYCORE_API void VerifySaveState()
Definition DynamicMeshChangeTracker.cpp:863
GEOMETRYCORE_API void SaveTriangle(int32 TriangleID, bool bSaveVertices)
Definition DynamicMeshChangeTracker.cpp:794
Definition DynamicMeshChangeTracker.h:140
GEOMETRYCORE_API void ApplyReplaceChange(FDynamicMesh3 *Mesh, const TArray< FChangeTriangle > &RemoveTris, const TArray< FChangeVertex > &InsertVerts, const TArray< FChangeTriangle > &InsertTris) const
Definition DynamicMeshChangeTracker.cpp:242
GEOMETRYCORE_API void GetSavedTriangleList(TArray< int > &TrianglesOut, bool bInitial) const
Definition DynamicMeshChangeTracker.cpp:870
GEOMETRYCORE_API void SaveInitialTriangle(const FDynamicMesh3 *Mesh, int TriangleID)
Definition DynamicMeshChangeTracker.cpp:188
TArray< FChangeVertex > OldVertices
Definition DynamicMeshChangeTracker.h:194
GEOMETRYCORE_API bool Apply(FDynamicMesh3 *Mesh, bool bRevert) const
Definition DynamicMeshChangeTracker.cpp:218
TArray< FChangeTriangle > OldTriangles
Definition DynamicMeshChangeTracker.h:195
GEOMETRYCORE_API void VerifySaveState() const
Definition DynamicMeshChangeTracker.cpp:323
GEOMETRYCORE_API ~FDynamicMeshChange()
Definition DynamicMeshChangeTracker.cpp:175
TArray< FChangeVertex > NewVertices
Definition DynamicMeshChangeTracker.h:197
GEOMETRYCORE_API void GetAffectedVertices(TArray< int > &VerticesOut, bool bRevert) const
Definition DynamicMeshChangeTracker.cpp:881
GEOMETRYCORE_API bool HasSavedVertex(int VertexID)
Definition DynamicMeshChangeTracker.cpp:312
TUniquePtr< FDynamicMeshAttributeChangeSet > AttributeChanges
Definition DynamicMeshChangeTracker.h:200
TArray< FChangeTriangle > NewTriangles
Definition DynamicMeshChangeTracker.h:198
GEOMETRYCORE_API void StoreFinalTriangle(const FDynamicMesh3 *Mesh, int TriangleID)
Definition DynamicMeshChangeTracker.cpp:207
GEOMETRYCORE_API void StoreFinalVertex(const FDynamicMesh3 *Mesh, int VertexID)
Definition DynamicMeshChangeTracker.cpp:199
GEOMETRYCORE_API void SaveInitialVertex(const FDynamicMesh3 *Mesh, int VertexID)
Definition DynamicMeshChangeTracker.cpp:180
GEOMETRYCORE_API void CheckValidity(EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check) const
Definition DynamicMeshChangeTracker.cpp:901
void AttachAttributeChanges(TUniquePtr< FDynamicMeshAttributeChangeSet > AttribChanges)
Definition DynamicMeshChangeTracker.h:155
Definition DynamicMeshTriangleAttribute.h:19
Definition DynamicMeshChangeTracker.h:57
GEOMETRYCORE_API void StoreFinalElement(const TDynamicMeshOverlay< RealType, ElementSize > *Overlay, int ElementID)
Definition DynamicMeshChangeTracker.cpp:41
TArray< RealType > NewElementData
Definition DynamicMeshChangeTracker.h:86
TArray< FChangeTriangle > NewTriangles
Definition DynamicMeshChangeTracker.h:87
GEOMETRYCORE_API bool Apply(TDynamicMeshOverlay< RealType, ElementSize > *Overlay, bool bRevert) const
Definition DynamicMeshChangeTracker.cpp:66
GEOMETRYCORE_API void SaveInitialTriangle(const TDynamicMeshOverlay< RealType, ElementSize > *Overlay, int TriangleID)
Definition DynamicMeshChangeTracker.cpp:32
GEOMETRYCORE_API void SaveInitialElement(const TDynamicMeshOverlay< RealType, ElementSize > *Overlay, int ElementID)
Definition DynamicMeshChangeTracker.cpp:16
TArray< RealType > OldElementData
Definition DynamicMeshChangeTracker.h:82
TArray< FChangeElement > OldElements
Definition DynamicMeshChangeTracker.h:81
TArray< FChangeTriangle > OldTriangles
Definition DynamicMeshChangeTracker.h:83
TArray< FChangeElement > NewElements
Definition DynamicMeshChangeTracker.h:85
GEOMETRYCORE_API void StoreFinalTriangle(const TDynamicMeshOverlay< RealType, ElementSize > *Overlay, int TriangleID)
Definition DynamicMeshChangeTracker.cpp:57
GEOMETRYCORE_API void ApplyReplaceChange(TDynamicMeshOverlay< RealType, ElementSize > *Overlay, const TArray< FChangeTriangle > &RemoveTris, const TArray< FChangeElement > &InsertElements, const TArray< RealType > &InsertElementData, const TArray< FChangeTriangle > &InsertTris) const
Definition DynamicMeshChangeTracker.cpp:82
Definition DynamicMeshOverlay.h:68
TDynamicMeshAttributeChange< float, 2 > FDynamicMeshUVChange
Definition DynamicMeshChangeTracker.h:97
TDynamicMeshAttributeChange< float, 1 > FDynamicMeshWeightChange
Definition DynamicMeshChangeTracker.h:106
TDynamicMeshAttributeChange< float, 4 > FDynamicMeshColorChange
Definition DynamicMeshChangeTracker.h:101
FDynamicMeshTriangleAttributeChange< int32, 1 > FDynamicMeshTriGroupChange
Definition DynamicMeshChangeTracker.h:103
TDynamicMeshAttributeChange< float, 3 > FDynamicMeshNormalChange
Definition DynamicMeshChangeTracker.h:99
EValidityCheckFailMode
Definition GeometryTypes.h:72
Definition AdvancedWidgetsModule.cpp:13
Definition Optional.h:131
Definition DynamicMesh3.h:129
Definition DynamicMeshChangeTracker.h:254
int MaxElementID
Definition DynamicMeshChangeTracker.h:255
TBitArray ChangedElements
Definition DynamicMeshChangeTracker.h:257
TBitArray StartElements
Definition DynamicMeshChangeTracker.h:256
Definition DynamicMeshChangeTracker.h:187
FIndex3i Edges
Definition DynamicMeshChangeTracker.h:190
int TriangleID
Definition DynamicMeshChangeTracker.h:188
FIndex3i Vertices
Definition DynamicMeshChangeTracker.h:189
int GroupID
Definition DynamicMeshChangeTracker.h:191
Definition DynamicMeshChangeTracker.h:181
FVertexInfo Info
Definition DynamicMeshChangeTracker.h:183
int VertexID
Definition DynamicMeshChangeTracker.h:182
Definition IndexTypes.h:158
Definition InfoTypes.h:17
Definition DynamicMeshChangeTracker.h:69
int ParentVertexID
Definition DynamicMeshChangeTracker.h:72
int ElementID
Definition DynamicMeshChangeTracker.h:70
int DataIndex
Definition DynamicMeshChangeTracker.h:71
Definition DynamicMeshChangeTracker.h:76
FIndex3i Elements
Definition DynamicMeshChangeTracker.h:78
int TriangleID
Definition DynamicMeshChangeTracker.h:77