6#include "Containers/Array.h"
9#include "Containers/Map.h"
59template<
typename ParentType>
65template<
typename ParentType,
typename AttribValueType>
149 UE_DEPRECATED(5.3,
"Please instead call the 4 argument version of IsSeamEdge, which distinguishes between tangent and normal seam edges.")
546 return &SculptLayers;
551 return &SculptLayers;
557 return SculptLayers.Layers.Num();
687 UVLayer.InitializeTriangles(MaxTriangleID);
#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
return true
Definition ExternalRpcRegistry.cpp:601
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