UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DynamicMeshAttributeSet.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "Containers/Array.h"
9#include "Containers/Map.h"
15#include "GeometryTypes.h"
16#include "HAL/PlatformCrt.h"
17#include "InfoTypes.h"
18#include "Math/UnrealMathSSE.h"
19#include "Math/Vector2D.h"
20#include "Math/Vector4.h"
21#include "Templates/UniquePtr.h"
22#include "UObject/NameTypes.h"
23#include "Util/DynamicVector.h"
24
25class FArchive;
27namespace DynamicMeshInfo { struct FEdgeFlipInfo; }
28namespace DynamicMeshInfo { struct FEdgeSplitInfo; }
29namespace DynamicMeshInfo { struct FMergeEdgesInfo; }
30namespace DynamicMeshInfo { struct FPokeTriangleInfo; }
31namespace DynamicMeshInfo { struct FVertexSplitInfo; }
32
33namespace UE
34{
35namespace Geometry
36{
37class FCompactMaps;
38class FDynamicMesh3;
39
48
51
54
57
59template<typename ParentType>
61
63
65template<typename ParentType, typename AttribValueType>
67
72
73
84{
85public:
87
89
91
93
96
105
113
114
119 GEOMETRYCORE_API void SplitAllBowties(bool bParallel = true);
120
121
129 GEOMETRYCORE_API void EnableMatchingAttributes(const FDynamicMeshAttributeSet& ToMatch, bool bClearExisting = true, bool bDiscardExtraAttributes = false);
130
132 const FDynamicMesh3* GetParentMesh() const { return ParentMesh; }
135
136private:
139
140public:
141
143 GEOMETRYCORE_API virtual bool IsSeamEdge(int EdgeID) const;
144
146 GEOMETRYCORE_API virtual bool IsSeamEndEdge(int EdgeID) const;
147
149 UE_DEPRECATED(5.3, "Please instead call the 4 argument version of IsSeamEdge, which distinguishes between tangent and normal seam edges.")
150 GEOMETRYCORE_API virtual bool IsSeamEdge(int EdgeID, bool& bIsUVSeamOut, bool& bIsNormalSeamOut, bool& bIsColorSeamOut) const;
151
153 GEOMETRYCORE_API virtual bool IsSeamEdge(int EdgeID, bool& bIsUVSeamOut, bool& bIsNormalSeamOut, bool& bIsColorSeamOut, bool& bIsTangentSeamOut) const;
154
156 GEOMETRYCORE_API virtual bool IsSeamVertex(int VertexID, bool bBoundaryIsSeam = true) const;
157
160
162 GEOMETRYCORE_API virtual bool IsMaterialBoundaryEdge(int EdgeID) const;
163
164 //
165 // UV Layers
166 //
167
170 {
171 return UVLayers.Num();
172 }
173
175 GEOMETRYCORE_API virtual void SetNumUVLayers(int Num);
176
179 {
180 if (Index < UVLayers.Num() && Index > -1)
181 {
182 return &UVLayers[Index];
183 }
184 return nullptr;
185 }
186
189 {
190 if (Index < UVLayers.Num() && Index > -1)
191 {
192 return &UVLayers[Index];
193 }
194 return nullptr;
195 }
196
199 {
200 return GetUVLayer(0);
201 }
204 {
205 return GetUVLayer(0);
206 }
207
208
209 //
210 // Normal Layers
211 //
212
214 virtual int NumNormalLayers() const
215 {
216 return NormalLayers.Num();
217 }
218
220 GEOMETRYCORE_API virtual void SetNumNormalLayers(int Num);
221
224
227
230 {
231 if (Index < NormalLayers.Num() && Index > -1)
232 {
233 return &NormalLayers[Index];
234 }
235 return nullptr;
236 }
237
240 {
241 if (Index < NormalLayers.Num() && Index > -1)
242 {
243 return &NormalLayers[Index];
244 }
245 return nullptr;
246 }
247
248
256 {
257 return GetNormalLayer(0);
258 }
266 {
267 return GetNormalLayer(1);
268 }
276 {
277 return GetNormalLayer(2);
278 }
279
281 bool HasTangentSpace() const
282 {
283 return (PrimaryNormals() != nullptr && PrimaryTangents() != nullptr && PrimaryBiTangents() != nullptr);
284 }
285
286 bool HasPrimaryColors() const
287 {
288 return !!ColorLayer;
289 }
290
292 {
293 return ColorLayer.Get();
294 }
295
297 {
298 return ColorLayer.Get();
299 }
300
302
304
305 //
306 // Polygroup layers
307 //
308
311
314
317
320
321 //
322 // Weight layers
323 //
324
326 GEOMETRYCORE_API virtual int32 NumWeightLayers() const;
327
330
333
336
339
347
348
349
350 //
351 // Per-Triangle Material ID
352 //
353
354 bool HasMaterialID() const
355 {
356 return !!MaterialIDAttrib;
357 }
358
359
361
363
368
370 {
371 return MaterialIDAttrib.Get();
372 }
373
379
382
385
388 {
389 return SkinWeightAttributes.Contains(InProfileName);
390 }
391
395 {
397 {
399 }
400 else
401 {
402 return nullptr;
403 }
404 }
405
411
417
420
423
429
433 {
435 {
436 return AttributePtr->Get();
437 }
438 else
439 {
440 return nullptr;
441 }
442 }
443
449
450 //
451 // Bone Attributes
452 //
453
458
468
470
473
479
480
489
492
495
498
499 bool HasBones() const
500 {
501 return !!BoneNameAttrib;
502 }
503
508
510 {
511 return BoneNameAttrib.Get();
512 }
513
518
523
528
530 {
531 return BonePoseAttrib.Get();
532 }
533
538
540 {
541 return BoneColorAttrib.Get();
542 }
543
545 {
546 return &SculptLayers;
547 }
548
550 {
551 return &SculptLayers;
552 }
553
554 // Number of sculpt layers enabled on the mesh
555 inline int32 NumSculptLayers() const
556 {
557 return SculptLayers.Layers.Num();
558 }
559
560 // Enable sculpt layers on the mesh, if they are not already enabled.
561 // @param MinLayers Number of layers to enabled. If more layers already exist, no layers will be removed.
563
564 // Discard sculpt layer data from the mesh.
566
567
568 // Attach a new attribute (and transfer ownership of it to the attribute set)
578
587
592
598 {
599 return GenericAttributes.Num();
600 }
601
603 {
604 return GenericAttributes.Contains(AttribName);
605 }
606
611
615 GEOMETRYCORE_API bool IsSameAs(const FDynamicMeshAttributeSet& Other, bool bIgnoreDataLayout) const;
616
625 {
626 Set.Serialize(Ar, nullptr, false);
627 return Ar;
628 }
629
637 GEOMETRYCORE_API void Serialize(FArchive& Ar, const FCompactMaps* CompactMaps, bool bUseCompression);
638
640
641protected:
644
645
649
651
654
657
660
661 // Bone attributes
666
669
670private:
671
672 // Class to manage sculpt layer data, separated out mainly for clearer organization
673 FDynamicMeshSculptLayers SculptLayers;
675
676
677protected:
678 friend class FDynamicMesh3;
679
683 void Initialize(int MaxVertexID, int MaxTriangleID)
684 {
686 {
687 UVLayer.InitializeTriangles(MaxTriangleID);
688 }
690 {
691 NormalLayer.InitializeTriangles(MaxTriangleID);
692 }
693 }
694
695 // These functions are called by the FDynamicMesh3 to update the various
696 // attributes when the parent mesh topology has been modified.
697 // TODO: would it be better to register all the overlays and attributes with the base set and not overload these? maybe!
698 GEOMETRYCORE_API virtual void OnNewTriangle(int TriangleID, bool bInserted);
699 GEOMETRYCORE_API virtual void OnNewVertex(int VertexID, bool bInserted);
700 GEOMETRYCORE_API virtual void OnRemoveTriangle(int TriangleID);
701 GEOMETRYCORE_API virtual void OnRemoveVertex(int VertexID);
702 GEOMETRYCORE_API virtual void OnReverseTriOrientation(int TriangleID);
710
718
719private:
720
721 // Called by FDynamicMesh3 during a mesh append, to append a corresponding attribute set
723 // Called by FDynamicMesh3 during a mesh append, to defaulted attributes when the ToAppend mesh did not have an attribute set
724 void AppendDefaulted(const FDynamicMesh3::FAppendInfo& AppendInfo);
725};
726
727
728
729} // end namespace UE::Geometry
730} // end namespace UE
731
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
@ Num
Definition MetalRHIPrivate.h:234
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition IndirectArray.h:20
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition CompactMaps.h:20
Definition DynamicMesh3.h:108
Definition DynamicMeshAttributeSet.h:84
int NumAttachedAttributes() const
Definition DynamicMeshAttributeSet.h:597
virtual GEOMETRYCORE_API void OnFlipEdge(const DynamicMeshInfo::FEdgeFlipInfo &flipInfo)
Definition DynamicMeshAttributeSet.cpp:1236
const FDynamicMeshBoneColorAttribute * GetBoneColors() const
Definition DynamicMeshAttributeSet.h:539
virtual GEOMETRYCORE_API bool IsSeamEndEdge(int EdgeID) const
Definition DynamicMeshAttributeSet.cpp:965
GEOMETRYCORE_API bool CheckBoneValidity(EValidityCheckFailMode FailMode) const
Definition DynamicMeshAttributeSet.cpp:2237
GEOMETRYCORE_API void DiscardSculptLayers()
Definition DynamicMeshAttributeSet.cpp:1947
virtual GEOMETRYCORE_API void RemoveWeightLayer(int32 Index)
Definition DynamicMeshAttributeSet.cpp:792
virtual GEOMETRYCORE_API ~FDynamicMeshAttributeSet() override
Definition DynamicMeshAttributeSet.cpp:31
TIndirectArray< FDynamicMeshNormalOverlay > NormalLayers
Definition DynamicMeshAttributeSet.h:647
FDynamicMeshSculptLayers * GetSculptLayers()
Definition DynamicMeshAttributeSet.h:549
virtual GEOMETRYCORE_API int32 NumWeightLayers() const
Definition DynamicMeshAttributeSet.cpp:767
const FDynamicMeshSculptLayers * GetSculptLayers() const
Definition DynamicMeshAttributeSet.h:544
virtual GEOMETRYCORE_API void OnReverseTriOrientation(int TriangleID)
Definition DynamicMeshAttributeSet.cpp:1186
GEOMETRYCORE_API void RemoveAllMorphTargetAttributes()
Remove all morph target attributes.
Definition DynamicMeshAttributeSet.cpp:928
TUniquePtr< FDynamicMeshColorOverlay > ColorLayer
Definition DynamicMeshAttributeSet.h:648
FDynamicMeshVertexSkinWeightsAttribute * GetSkinWeightsAttribute(FName InProfileName) const
Definition DynamicMeshAttributeSet.h:394
const FDynamicMeshUVOverlay * GetUVLayer(int Index) const
Definition DynamicMeshAttributeSet.h:188
const FDynamicMeshColorOverlay * PrimaryColors() const
Definition DynamicMeshAttributeSet.h:296
virtual GEOMETRYCORE_API void OnMergeEdges(const DynamicMeshInfo::FMergeEdgesInfo &mergeInfo)
Definition DynamicMeshAttributeSet.cpp:1333
FDynamicMesh3 * ParentMesh
Definition DynamicMeshAttributeSet.h:643
FDynamicMeshBonePoseAttribute * GetBonePoses()
Definition DynamicMeshAttributeSet.h:524
FDynamicMeshNormalOverlay * GetNormalLayer(int Index)
Definition DynamicMeshAttributeSet.h:229
GEOMETRYCORE_API bool IsCompact()
Definition DynamicMeshAttributeSet.cpp:108
virtual GEOMETRYCORE_API void SetNumUVLayers(int Num)
Definition DynamicMeshAttributeSet.cpp:659
virtual GEOMETRYCORE_API void OnRemoveVertex(int VertexID)
Definition DynamicMeshAttributeSet.cpp:1124
bool HasTangentSpace() const
Definition DynamicMeshAttributeSet.h:281
const FDynamicMeshBoneNameAttribute * GetBoneNames() const
Definition DynamicMeshAttributeSet.h:509
virtual GEOMETRYCORE_API void OnMergeVertices(const DynamicMeshInfo::FMergeVerticesInfo &mergeInfo)
Definition DynamicMeshAttributeSet.cpp:1365
GEOMETRYCORE_API void CopyBoneAttributesWithRemapping(const FDynamicMeshAttributeSet &Copy, const TMap< FName, FName > &BoneHierarchy)
Definition DynamicMeshAttributeSet.cpp:2101
virtual GEOMETRYCORE_API bool IsSeamEdge(int EdgeID) const
Definition DynamicMeshAttributeSet.cpp:939
TUniquePtr< FDynamicMeshMaterialAttribute > MaterialIDAttrib
Definition DynamicMeshAttributeSet.h:650
virtual GEOMETRYCORE_API bool IsSeamIntersectionVertex(int32 VertexID) const
Definition DynamicMeshAttributeSet.cpp:1052
const FDynamicMeshAttributeBase * GetAttachedAttribute(FName AttribName) const
Definition DynamicMeshAttributeSet.h:593
virtual GEOMETRYCORE_API void OnPokeTriangle(const DynamicMeshInfo::FPokeTriangleInfo &pokeInfo)
Definition DynamicMeshAttributeSet.cpp:1301
bool HasPrimaryColors() const
Definition DynamicMeshAttributeSet.h:286
const FDynamicMeshUVOverlay * PrimaryUV() const
Definition DynamicMeshAttributeSet.h:203
TIndirectArray< FDynamicMeshWeightAttribute > WeightLayers
Definition DynamicMeshAttributeSet.h:652
GEOMETRYCORE_API bool IsSameBoneAttributesAs(const FDynamicMeshAttributeSet &Other) const
Definition DynamicMeshAttributeSet.cpp:2176
void Initialize(int MaxVertexID, int MaxTriangleID)
Definition DynamicMeshAttributeSet.h:683
TUniquePtr< FDynamicMeshBoneColorAttribute > BoneColorAttrib
Definition DynamicMeshAttributeSet.h:665
GEOMETRYCORE_API void EnableMatchingBoneAttributes(const FDynamicMeshAttributeSet &ToMatch, bool bClearExisting, bool bDiscardExtraAttributes)
Definition DynamicMeshAttributeSet.cpp:2149
const FDynamicMeshNormalOverlay * PrimaryNormals() const
Definition DynamicMeshAttributeSet.h:255
GEOMETRYCORE_API void EnableBones(const int InBonesNum)
Definition DynamicMeshAttributeSet.cpp:2157
GEOMETRYCORE_API void EnableMatchingWeightLayersByNames(const FDynamicMeshAttributeSet *ToMatch, bool bDiscardUnmatched)
Definition DynamicMeshAttributeSet.cpp:807
virtual GEOMETRYCORE_API bool IsMaterialBoundaryEdge(int EdgeID) const
Definition DynamicMeshAttributeSet.cpp:1075
GEOMETRYCORE_API void DisablePrimaryColors()
Definition DynamicMeshAttributeSet.cpp:725
FDynamicMeshNormalOverlay * PrimaryNormals()
Definition DynamicMeshAttributeSet.h:250
FDynamicMeshNormalOverlay * PrimaryBiTangents()
Definition DynamicMeshAttributeSet.h:270
GEOMETRYCORE_API void DisableTangents()
Definition DynamicMeshAttributeSet.cpp:688
virtual int NumNormalLayers() const
Definition DynamicMeshAttributeSet.h:214
GEOMETRYCORE_API bool AppendBonesUnique(const FDynamicMeshAttributeSet &Other)
Definition DynamicMeshAttributeSet.cpp:2199
GEOMETRYCORE_API void EnableMaterialID()
Definition DynamicMeshAttributeSet.cpp:864
bool HasSkinWeightsAttribute(FName InProfileName) const
Returns true if the list of skin weight attributes includes the given profile name.
Definition DynamicMeshAttributeSet.h:387
GEOMETRYCORE_API void EnablePrimaryColors()
Definition DynamicMeshAttributeSet.cpp:716
const TMap< FName, TUniquePtr< FDynamicMeshVertexSkinWeightsAttribute > > & GetSkinWeightsAttributes() const
Returns a map of all skin weight attributes.
Definition DynamicMeshAttributeSet.h:407
virtual GEOMETRYCORE_API int32 NumPolygroupLayers() const
Definition DynamicMeshAttributeSet.cpp:730
TUniquePtr< FDynamicMeshBonePoseAttribute > BonePoseAttrib
Definition DynamicMeshAttributeSet.h:664
virtual GEOMETRYCORE_API bool CheckValidity(bool bAllowNonmanifold, EValidityCheckFailMode FailMode) const
Definition DynamicMeshAttributeSet.cpp:1953
GEOMETRYCORE_API void AttachMorphTargetAttribute(FName InMorphTargetName, FDynamicMeshMorphTargetAttribute *InAttribute)
Definition DynamicMeshAttributeSet.cpp:908
virtual GEOMETRYCORE_API void OnNewVertex(int VertexID, bool bInserted)
Definition DynamicMeshAttributeSet.cpp:1098
GEOMETRYCORE_API void RemoveMorphTargetAttribute(FName InMorphTargetName)
Remove a morph target attribute matching the given name.
Definition DynamicMeshAttributeSet.cpp:919
virtual GEOMETRYCORE_API void SetNumNormalLayers(int Num)
Definition DynamicMeshAttributeSet.cpp:694
bool HasAttachedAttribute(FName AttribName) const
Definition DynamicMeshAttributeSet.h:602
bool HasMaterialID() const
Definition DynamicMeshAttributeSet.h:354
GEOMETRYCORE_API void DisableMaterialID()
Definition DynamicMeshAttributeSet.cpp:873
bool HasBones() const
Definition DynamicMeshAttributeSet.h:499
GEOMETRYCORE_API FDynamicMeshPolygroupAttribute * GetPolygroupLayer(int Index)
Definition DynamicMeshAttributeSet.cpp:756
GEOMETRYCORE_API bool IsSameAs(const FDynamicMeshAttributeSet &Other, bool bIgnoreDataLayout) const
Definition DynamicMeshAttributeSet.cpp:1429
FDynamicMeshUVOverlay * GetUVLayer(int Index)
Definition DynamicMeshAttributeSet.h:178
GEOMETRYCORE_API void CompactCopy(const FCompactMaps &CompactMaps, const FDynamicMeshAttributeSet &Copy)
Definition DynamicMeshAttributeSet.cpp:138
GEOMETRYCORE_API void EnableMatchingAttributes(const FDynamicMeshAttributeSet &ToMatch, bool bClearExisting=true, bool bDiscardExtraAttributes=false)
Definition DynamicMeshAttributeSet.cpp:445
FDynamicMeshAttributeBase * GetAttachedAttribute(FName AttribName)
Definition DynamicMeshAttributeSet.h:588
GEOMETRYCORE_API void RemoveAllSkinWeightsAttributes()
Remove all skin weights attributes.
Definition DynamicMeshAttributeSet.cpp:898
GEOMETRYCORE_API SIZE_T GetByteCount() const
Definition DynamicMeshAttributeSet.cpp:1855
GenericAttributesMap GenericAttributes
Definition DynamicMeshAttributeSet.h:668
virtual int NumUVLayers() const
Definition DynamicMeshAttributeSet.h:169
FDynamicMeshBoneColorAttribute * GetBoneColors()
Definition DynamicMeshAttributeSet.h:534
void RemoveAttribute(FName AttribName)
Definition DynamicMeshAttributeSet.h:579
FDynamicMeshUVOverlay * PrimaryUV()
Definition DynamicMeshAttributeSet.h:198
GEOMETRYCORE_API FDynamicMeshWeightAttribute * GetWeightLayer(int Index)
Definition DynamicMeshAttributeSet.cpp:797
const FDynamicMeshMaterialAttribute * GetMaterialID() const
Definition DynamicMeshAttributeSet.h:369
const FDynamicMeshNormalOverlay * GetNormalLayer(int Index) const
Definition DynamicMeshAttributeSet.h:239
GEOMETRYCORE_API int32 GetNumBones() const
Definition DynamicMeshAttributeSet.cpp:2088
TUniquePtr< FDynamicMeshBoneNameAttribute > BoneNameAttrib
Definition DynamicMeshAttributeSet.h:662
FDynamicMeshBoneParentIndexAttribute * GetBoneParentIndices()
Definition DynamicMeshAttributeSet.h:514
int32 NumSculptLayers() const
Definition DynamicMeshAttributeSet.h:555
virtual GEOMETRYCORE_API void OnSplitVertex(const DynamicMeshInfo::FVertexSplitInfo &SplitInfo, const TArrayView< const int > &TrianglesToUpdate)
Definition DynamicMeshAttributeSet.cpp:1397
const FDynamicMeshBonePoseAttribute * GetBonePoses() const
Definition DynamicMeshAttributeSet.h:529
GEOMETRYCORE_API void RemoveSkinWeightsAttribute(FName InProfileName)
Remove a skin weights attribute matching the given profile name.
Definition DynamicMeshAttributeSet.cpp:889
virtual GEOMETRYCORE_API void OnCollapseEdge(const DynamicMeshInfo::FEdgeCollapseInfo &collapseInfo)
Definition DynamicMeshAttributeSet.cpp:1269
TIndirectArray< FDynamicMeshUVOverlay > UVLayers
Definition DynamicMeshAttributeSet.h:646
FDynamicMeshMaterialAttribute * GetMaterialID()
Definition DynamicMeshAttributeSet.h:364
GEOMETRYCORE_API void DisableBones()
Definition DynamicMeshAttributeSet.cpp:2168
GEOMETRYCORE_API void SplitAllBowties(bool bParallel=true)
Definition DynamicMeshAttributeSet.cpp:401
void AttachAttribute(FName AttribName, FDynamicMeshAttributeBase *Attribute)
Definition DynamicMeshAttributeSet.h:569
GEOMETRYCORE_API void CompactInPlace(const FCompactMaps &CompactMaps)
Definition DynamicMeshAttributeSet.cpp:364
virtual GEOMETRYCORE_API void OnSplitEdge(const DynamicMeshInfo::FEdgeSplitInfo &splitInfo)
Definition DynamicMeshAttributeSet.cpp:1204
virtual GEOMETRYCORE_API void OnRemoveTriangle(int TriangleID)
Definition DynamicMeshAttributeSet.cpp:1167
const TMap< FName, TUniquePtr< FDynamicMeshMorphTargetAttribute > > & GetMorphTargetAttributes() const
Returns a map of all morph target attributes.
Definition DynamicMeshAttributeSet.h:445
bool HasMorphTargetAttribute(FName InMorphTargetName) const
Returns true if the morph target attribute exists.
Definition DynamicMeshAttributeSet.h:425
TUniquePtr< FDynamicMeshBoneParentIndexAttribute > BoneParentIndexAttrib
Definition DynamicMeshAttributeSet.h:663
const TMap< FName, TUniquePtr< FDynamicMeshAttributeBase > > & GetAttachedAttributes() const
Definition DynamicMeshAttributeSet.h:607
const FDynamicMeshNormalOverlay * PrimaryTangents() const
Definition DynamicMeshAttributeSet.h:265
FDynamicMeshBoneNameAttribute * GetBoneNames()
Definition DynamicMeshAttributeSet.h:504
FDynamicMesh3 * GetParentMesh()
Definition DynamicMeshAttributeSet.h:134
GEOMETRYCORE_API void EnableSculptLayers(int32 MinLayers)
Definition DynamicMeshAttributeSet.cpp:1937
virtual GEOMETRYCORE_API void SetNumWeightLayers(int32 Num)
Definition DynamicMeshAttributeSet.cpp:772
const FDynamicMeshNormalOverlay * PrimaryBiTangents() const
Definition DynamicMeshAttributeSet.h:275
MorphTargetAttributesMap MorphTargetAttributes
Definition DynamicMeshAttributeSet.h:659
const FDynamicMeshBoneParentIndexAttribute * GetBoneParentIndices() const
Definition DynamicMeshAttributeSet.h:519
GEOMETRYCORE_API void CopyBoneAttributes(const FDynamicMeshAttributeSet &Copy)
Definition DynamicMeshAttributeSet.cpp:2093
SkinWeightAttributesMap SkinWeightAttributes
Definition DynamicMeshAttributeSet.h:656
TIndirectArray< FDynamicMeshPolygroupAttribute > PolygroupLayers
Definition DynamicMeshAttributeSet.h:653
GEOMETRYCORE_API void AttachSkinWeightsAttribute(FName InProfileName, FDynamicMeshVertexSkinWeightsAttribute *InAttribute)
Definition DynamicMeshAttributeSet.cpp:878
virtual GEOMETRYCORE_API void OnNewTriangle(int TriangleID, bool bInserted)
Definition DynamicMeshAttributeSet.cpp:1137
virtual GEOMETRYCORE_API bool IsSeamVertex(int VertexID, bool bBoundaryIsSeam=true) const
Definition DynamicMeshAttributeSet.cpp:1029
FDynamicMeshMorphTargetAttribute * GetMorphTargetAttribute(FName InMorphTargetName) const
Definition DynamicMeshAttributeSet.h:432
virtual GEOMETRYCORE_API void SetNumPolygroupLayers(int32 Num)
Definition DynamicMeshAttributeSet.cpp:736
GEOMETRYCORE_API void EnableTangents()
Definition DynamicMeshAttributeSet.cpp:683
FDynamicMeshNormalOverlay * PrimaryTangents()
Definition DynamicMeshAttributeSet.h:260
FDynamicMeshColorOverlay * PrimaryColors()
Definition DynamicMeshAttributeSet.h:291
const FDynamicMesh3 * GetParentMesh() const
Definition DynamicMeshAttributeSet.h:132
friend FArchive & operator<<(FArchive &Ar, FDynamicMeshAttributeSet &Set)
Definition DynamicMeshAttributeSet.h:624
Definition DynamicMeshSculptLayers.h:22
Definition DynamicAttribute.h:67
Definition DynamicAttribute.h:264
void UnregisterExternalAttribute(TDynamicAttributeBase< ParentType > *Attribute)
Definition DynamicAttribute.h:277
void RegisterExternalAttribute(TDynamicAttributeBase< ParentType > *Attribute)
Definition DynamicAttribute.h:272
Definition DynamicBoneAttribute.h:25
Definition DynamicMeshTriangleAttribute.h:604
Definition DynamicMeshOverlay.h:714
Definition DynamicVertexAttribute.h:49
Definition DynamicVertexSkinWeightsAttribute.h:48
Definition DynamicMeshAttributeSet.h:26
TDynamicMeshVectorOverlay< float, 3, FVector3f > FDynamicMeshNormalOverlay
Definition DynamicMeshAttributeSet.h:43
TDynamicMeshVertexAttribute< float, 1 > FDynamicMeshWeightAttribute
Definition DynamicMeshAttributeSet.h:53
TDynamicMeshScalarTriangleAttribute< int32 > FDynamicMeshPolygroupAttribute
Definition DynamicMeshAttributeSet.h:50
TDynamicMeshVertexAttribute< float, 3 > FDynamicMeshMorphTargetAttribute
Definition DynamicMeshAttributeSet.h:56
EValidityCheckFailMode
Definition GeometryTypes.h:72
TDynamicMeshScalarTriangleAttribute< int32 > FDynamicMeshMaterialAttribute
Definition DynamicMeshAttributeSet.h:47
TDynamicMeshVectorOverlay< float, 2, FVector2f > FDynamicMeshUVOverlay
Definition DynamicMeshAttributeSet.h:41
TDynamicMeshVectorOverlay< float, 4, FVector4f > FDynamicMeshColorOverlay
Definition DynamicMeshAttributeSet.h:45
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition InfoTypes.h:181
Definition InfoTypes.h:171
Definition InfoTypes.h:155
Definition InfoTypes.h:197
Definition InfoTypes.h:216
Definition InfoTypes.h:229
Definition InfoTypes.h:242
Definition DynamicMesh3.h:309