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

#include <DynamicMeshAttributeSet.h>

+ Inheritance diagram for UE::Geometry::FDynamicMeshAttributeSet:

Public Member Functions

GEOMETRYCORE_API FDynamicMeshAttributeSet (FDynamicMesh3 *Mesh)
 
GEOMETRYCORE_API FDynamicMeshAttributeSet (FDynamicMesh3 *Mesh, int32 NumUVLayers, int32 NumNormalLayers)
 
virtual GEOMETRYCORE_API ~FDynamicMeshAttributeSet () override
 
GEOMETRYCORE_API void Copy (const FDynamicMeshAttributeSet &Copy)
 
GEOMETRYCORE_API bool IsCompact ()
 
GEOMETRYCORE_API void CompactCopy (const FCompactMaps &CompactMaps, const FDynamicMeshAttributeSet &Copy)
 
GEOMETRYCORE_API void CompactInPlace (const FCompactMaps &CompactMaps)
 
GEOMETRYCORE_API void SplitAllBowties (bool bParallel=true)
 
GEOMETRYCORE_API void EnableMatchingAttributes (const FDynamicMeshAttributeSet &ToMatch, bool bClearExisting=true, bool bDiscardExtraAttributes=false)
 
const FDynamicMesh3GetParentMesh () const
 
FDynamicMesh3GetParentMesh ()
 
virtual GEOMETRYCORE_API bool IsSeamEdge (int EdgeID) const
 
virtual GEOMETRYCORE_API bool IsSeamEndEdge (int EdgeID) const
 
virtual GEOMETRYCORE_API bool IsSeamEdge (int EdgeID, bool &bIsUVSeamOut, bool &bIsNormalSeamOut, bool &bIsColorSeamOut) const
 
virtual GEOMETRYCORE_API bool IsSeamEdge (int EdgeID, bool &bIsUVSeamOut, bool &bIsNormalSeamOut, bool &bIsColorSeamOut, bool &bIsTangentSeamOut) const
 
virtual GEOMETRYCORE_API bool IsSeamVertex (int VertexID, bool bBoundaryIsSeam=true) const
 
virtual GEOMETRYCORE_API bool IsSeamIntersectionVertex (int32 VertexID) const
 
virtual GEOMETRYCORE_API bool IsMaterialBoundaryEdge (int EdgeID) const
 
virtual int NumUVLayers () const
 
virtual GEOMETRYCORE_API void SetNumUVLayers (int Num)
 
FDynamicMeshUVOverlayGetUVLayer (int Index)
 
const FDynamicMeshUVOverlayGetUVLayer (int Index) const
 
FDynamicMeshUVOverlayPrimaryUV ()
 
const FDynamicMeshUVOverlayPrimaryUV () const
 
virtual int NumNormalLayers () const
 
virtual GEOMETRYCORE_API void SetNumNormalLayers (int Num)
 
GEOMETRYCORE_API void EnableTangents ()
 
GEOMETRYCORE_API void DisableTangents ()
 
FDynamicMeshNormalOverlayGetNormalLayer (int Index)
 
const FDynamicMeshNormalOverlayGetNormalLayer (int Index) const
 
FDynamicMeshNormalOverlayPrimaryNormals ()
 
const FDynamicMeshNormalOverlayPrimaryNormals () const
 
FDynamicMeshNormalOverlayPrimaryTangents ()
 
const FDynamicMeshNormalOverlayPrimaryTangents () const
 
FDynamicMeshNormalOverlayPrimaryBiTangents ()
 
const FDynamicMeshNormalOverlayPrimaryBiTangents () const
 
bool HasTangentSpace () const
 
bool HasPrimaryColors () const
 
FDynamicMeshColorOverlayPrimaryColors ()
 
const FDynamicMeshColorOverlayPrimaryColors () const
 
GEOMETRYCORE_API void EnablePrimaryColors ()
 
GEOMETRYCORE_API void DisablePrimaryColors ()
 
virtual GEOMETRYCORE_API int32 NumPolygroupLayers () const
 
virtual GEOMETRYCORE_API void SetNumPolygroupLayers (int32 Num)
 
GEOMETRYCORE_API FDynamicMeshPolygroupAttributeGetPolygroupLayer (int Index)
 
GEOMETRYCORE_API const FDynamicMeshPolygroupAttributeGetPolygroupLayer (int Index) const
 
virtual GEOMETRYCORE_API int32 NumWeightLayers () const
 
virtual GEOMETRYCORE_API void SetNumWeightLayers (int32 Num)
 
virtual GEOMETRYCORE_API void RemoveWeightLayer (int32 Index)
 
GEOMETRYCORE_API FDynamicMeshWeightAttributeGetWeightLayer (int Index)
 
GEOMETRYCORE_API const FDynamicMeshWeightAttributeGetWeightLayer (int Index) const
 
GEOMETRYCORE_API void EnableMatchingWeightLayersByNames (const FDynamicMeshAttributeSet *ToMatch, bool bDiscardUnmatched)
 
bool HasMaterialID () const
 
GEOMETRYCORE_API void EnableMaterialID ()
 
GEOMETRYCORE_API void DisableMaterialID ()
 
FDynamicMeshMaterialAttributeGetMaterialID ()
 
const FDynamicMeshMaterialAttributeGetMaterialID () const
 
GEOMETRYCORE_API void AttachSkinWeightsAttribute (FName InProfileName, FDynamicMeshVertexSkinWeightsAttribute *InAttribute)
 
GEOMETRYCORE_API void RemoveSkinWeightsAttribute (FName InProfileName)
 Remove a skin weights attribute matching the given profile name.
 
GEOMETRYCORE_API void RemoveAllSkinWeightsAttributes ()
 Remove all skin weights attributes.
 
bool HasSkinWeightsAttribute (FName InProfileName) const
 Returns true if the list of skin weight attributes includes the given profile name.
 
FDynamicMeshVertexSkinWeightsAttributeGetSkinWeightsAttribute (FName InProfileName) const
 
const TMap< FName, TUniquePtr< FDynamicMeshVertexSkinWeightsAttribute > > & GetSkinWeightsAttributes () const
 Returns a map of all skin weight attributes.
 
GEOMETRYCORE_API void AttachMorphTargetAttribute (FName InMorphTargetName, FDynamicMeshMorphTargetAttribute *InAttribute)
 
GEOMETRYCORE_API void RemoveMorphTargetAttribute (FName InMorphTargetName)
 Remove a morph target attribute matching the given name.
 
GEOMETRYCORE_API void RemoveAllMorphTargetAttributes ()
 Remove all morph target attributes.
 
bool HasMorphTargetAttribute (FName InMorphTargetName) const
 Returns true if the morph target attribute exists.
 
FDynamicMeshMorphTargetAttributeGetMorphTargetAttribute (FName InMorphTargetName) const
 
const TMap< FName, TUniquePtr< FDynamicMeshMorphTargetAttribute > > & GetMorphTargetAttributes () const
 Returns a map of all morph target attributes.
 
GEOMETRYCORE_API void CopyBoneAttributes (const FDynamicMeshAttributeSet &Copy)
 
GEOMETRYCORE_API void CopyBoneAttributesWithRemapping (const FDynamicMeshAttributeSet &Copy, const TMap< FName, FName > &BoneHierarchy)
 
GEOMETRYCORE_API void EnableMatchingBoneAttributes (const FDynamicMeshAttributeSet &ToMatch, bool bClearExisting, bool bDiscardExtraAttributes)
 
GEOMETRYCORE_API bool IsSameBoneAttributesAs (const FDynamicMeshAttributeSet &Other) const
 
GEOMETRYCORE_API bool CheckBoneValidity (EValidityCheckFailMode FailMode) const
 
GEOMETRYCORE_API bool AppendBonesUnique (const FDynamicMeshAttributeSet &Other)
 
GEOMETRYCORE_API void EnableBones (const int InBonesNum)
 
GEOMETRYCORE_API void DisableBones ()
 
GEOMETRYCORE_API int32 GetNumBones () const
 
bool HasBones () const
 
FDynamicMeshBoneNameAttributeGetBoneNames ()
 
const FDynamicMeshBoneNameAttributeGetBoneNames () const
 
FDynamicMeshBoneParentIndexAttributeGetBoneParentIndices ()
 
const FDynamicMeshBoneParentIndexAttributeGetBoneParentIndices () const
 
FDynamicMeshBonePoseAttributeGetBonePoses ()
 
const FDynamicMeshBonePoseAttributeGetBonePoses () const
 
FDynamicMeshBoneColorAttributeGetBoneColors ()
 
const FDynamicMeshBoneColorAttributeGetBoneColors () const
 
const FDynamicMeshSculptLayersGetSculptLayers () const
 
FDynamicMeshSculptLayersGetSculptLayers ()
 
int32 NumSculptLayers () const
 
GEOMETRYCORE_API void EnableSculptLayers (int32 MinLayers)
 
GEOMETRYCORE_API void DiscardSculptLayers ()
 
void AttachAttribute (FName AttribName, FDynamicMeshAttributeBase *Attribute)
 
void RemoveAttribute (FName AttribName)
 
FDynamicMeshAttributeBaseGetAttachedAttribute (FName AttribName)
 
const FDynamicMeshAttributeBaseGetAttachedAttribute (FName AttribName) const
 
int NumAttachedAttributes () const
 
bool HasAttachedAttribute (FName AttribName) const
 
const TMap< FName, TUniquePtr< FDynamicMeshAttributeBase > > & GetAttachedAttributes () const
 
GEOMETRYCORE_API bool IsSameAs (const FDynamicMeshAttributeSet &Other, bool bIgnoreDataLayout) const
 
GEOMETRYCORE_API void Serialize (FArchive &Ar, const FCompactMaps *CompactMaps, bool bUseCompression)
 
GEOMETRYCORE_API SIZE_T GetByteCount () const
 
- Public Member Functions inherited from UE::Geometry::TDynamicAttributeSetBase< ParentType >
virtual ~TDynamicAttributeSetBase ()
 
int NumRegisteredAttributes () const
 
TDynamicAttributeBase< ParentType > * GetRegisteredAttribute (int Idx) const
 

Protected Types

using SkinWeightAttributesMap = TMap< FName, TUniquePtr< FDynamicMeshVertexSkinWeightsAttribute > >
 
using MorphTargetAttributesMap = TMap< FName, TUniquePtr< FDynamicMeshMorphTargetAttribute > >
 
using GenericAttributesMap = TMap< FName, TUniquePtr< FDynamicMeshAttributeBase > >
 

Protected Member Functions

void Initialize (int MaxVertexID, int MaxTriangleID)
 
virtual GEOMETRYCORE_API void OnNewTriangle (int TriangleID, bool bInserted)
 
virtual GEOMETRYCORE_API void OnNewVertex (int VertexID, bool bInserted)
 
virtual GEOMETRYCORE_API void OnRemoveTriangle (int TriangleID)
 
virtual GEOMETRYCORE_API void OnRemoveVertex (int VertexID)
 
virtual GEOMETRYCORE_API void OnReverseTriOrientation (int TriangleID)
 
virtual GEOMETRYCORE_API void OnSplitEdge (const DynamicMeshInfo::FEdgeSplitInfo &splitInfo)
 
virtual GEOMETRYCORE_API void OnFlipEdge (const DynamicMeshInfo::FEdgeFlipInfo &flipInfo)
 
virtual GEOMETRYCORE_API void OnCollapseEdge (const DynamicMeshInfo::FEdgeCollapseInfo &collapseInfo)
 
virtual GEOMETRYCORE_API void OnPokeTriangle (const DynamicMeshInfo::FPokeTriangleInfo &pokeInfo)
 
virtual GEOMETRYCORE_API void OnMergeEdges (const DynamicMeshInfo::FMergeEdgesInfo &mergeInfo)
 
virtual GEOMETRYCORE_API void OnMergeVertices (const DynamicMeshInfo::FMergeVerticesInfo &mergeInfo)
 
virtual GEOMETRYCORE_API void OnSplitVertex (const DynamicMeshInfo::FVertexSplitInfo &SplitInfo, const TArrayView< const int > &TrianglesToUpdate)
 
virtual GEOMETRYCORE_API bool CheckValidity (bool bAllowNonmanifold, EValidityCheckFailMode FailMode) const
 
- Protected Member Functions inherited from UE::Geometry::TDynamicAttributeSetBase< ParentType >
void RegisterExternalAttribute (TDynamicAttributeBase< ParentType > *Attribute)
 
void UnregisterExternalAttribute (TDynamicAttributeBase< ParentType > *Attribute)
 
void ResetRegisteredAttributes ()
 

Protected Attributes

FDynamicMesh3ParentMesh
 
TIndirectArray< FDynamicMeshUVOverlayUVLayers
 
TIndirectArray< FDynamicMeshNormalOverlayNormalLayers
 
TUniquePtr< FDynamicMeshColorOverlayColorLayer
 
TUniquePtr< FDynamicMeshMaterialAttributeMaterialIDAttrib
 
TIndirectArray< FDynamicMeshWeightAttributeWeightLayers
 
TIndirectArray< FDynamicMeshPolygroupAttributePolygroupLayers
 
SkinWeightAttributesMap SkinWeightAttributes
 
MorphTargetAttributesMap MorphTargetAttributes
 
TUniquePtr< FDynamicMeshBoneNameAttributeBoneNameAttrib
 
TUniquePtr< FDynamicMeshBoneParentIndexAttributeBoneParentIndexAttrib
 
TUniquePtr< FDynamicMeshBonePoseAttributeBonePoseAttrib
 
TUniquePtr< FDynamicMeshBoneColorAttributeBoneColorAttrib
 
GenericAttributesMap GenericAttributes
 
- Protected Attributes inherited from UE::Geometry::TDynamicAttributeSetBase< ParentType >
TArray< TDynamicAttributeBase< ParentType > * > RegisteredAttributes
 

Friends

class FDynamicMeshSculptLayers
 
class FDynamicMesh3
 
FArchiveoperator<< (FArchive &Ar, FDynamicMeshAttributeSet &Set)
 

Detailed Description

FDynamicMeshAttributeSet manages a set of extended attributes for a FDynamicMesh3. This includes UV and Normal overlays, etc.

Currently the default is to always have one UV layer and one Normal layer, but the number of layers can be requested on construction.

Member Typedef Documentation

◆ GenericAttributesMap

◆ MorphTargetAttributesMap

◆ SkinWeightAttributesMap

Constructor & Destructor Documentation

◆ FDynamicMeshAttributeSet() [1/2]

FDynamicMeshAttributeSet::FDynamicMeshAttributeSet ( FDynamicMesh3 Mesh)

◆ FDynamicMeshAttributeSet() [2/2]

FDynamicMeshAttributeSet::FDynamicMeshAttributeSet ( FDynamicMesh3 Mesh,
int32  NumUVLayers,
int32  NumNormalLayers 
)

◆ ~FDynamicMeshAttributeSet()

FDynamicMeshAttributeSet::~FDynamicMeshAttributeSet ( )
overridevirtual

Member Function Documentation

◆ AppendBonesUnique()

bool FDynamicMeshAttributeSet::AppendBonesUnique ( const FDynamicMeshAttributeSet Other)

Append bone attributes from another set. When appending, the bone attributes in the Other set will only be appended if a bone with the same name does not exist in the current bone name attribute. Hence, the order of the bones in this set is preserved.

Returns
true, if append was successful

◆ AttachAttribute()

void UE::Geometry::FDynamicMeshAttributeSet::AttachAttribute ( FName  AttribName,
FDynamicMeshAttributeBase Attribute 
)
inline

◆ AttachMorphTargetAttribute()

void FDynamicMeshAttributeSet::AttachMorphTargetAttribute ( FName  InMorphTargetName,
FDynamicMeshMorphTargetAttribute InAttribute 
)

Morph Targets Create a new morph target attribute with a given name. If an attribute already exists with that name, that existing attribute will be deleted.

◆ AttachSkinWeightsAttribute()

void FDynamicMeshAttributeSet::AttachSkinWeightsAttribute ( FName  InProfileName,
FDynamicMeshVertexSkinWeightsAttribute InAttribute 
)

Skin weights Create a new skin weights attribute with a given skin weights profile name. If an attribute already exists with that name, that existing attribute will be deleted.

◆ CheckBoneValidity()

bool FDynamicMeshAttributeSet::CheckBoneValidity ( EValidityCheckFailMode  FailMode) const

The attribute is valid if either all attributes are empty or if the bone name attribute is not empty then all the other attributes must be either empty or their size is equal to the bone name attribute size.

◆ CheckValidity()

bool FDynamicMeshAttributeSet::CheckValidity ( bool  bAllowNonmanifold,
EValidityCheckFailMode  FailMode 
) const
protectedvirtual

Check validity of attributes

Parameters
bAllowNonmanifoldAccept non-manifold topology as valid. Note that this should almost always be true for attributes; non-manifold overlays are generally valid.
FailModeDesired behavior if mesh is found invalid

Reimplemented from UE::Geometry::TDynamicAttributeSetBase< ParentType >.

◆ CompactCopy()

void FDynamicMeshAttributeSet::CompactCopy ( const FCompactMaps CompactMaps,
const FDynamicMeshAttributeSet Copy 
)

Performs a CompactCopy of the attached overlays/attributes. Called by the parent mesh CompactCopy function.

Parameters
CompactMapsMaps indicating how vertices and triangles were changes in the parent
CopyThe attribute set to be copied

◆ CompactInPlace()

void FDynamicMeshAttributeSet::CompactInPlace ( const FCompactMaps CompactMaps)

Compacts the attribute set in place Called by the parent mesh CompactInPlace function

Parameters
CompactMapsMaps of how the vertices and triangles were compacted in the parent

◆ Copy()

void FDynamicMeshAttributeSet::Copy ( const FDynamicMeshAttributeSet Copy)

◆ CopyBoneAttributes()

void FDynamicMeshAttributeSet::CopyBoneAttributes ( const FDynamicMeshAttributeSet Copy)

Copy all bone attributes from the given attribute set to this attribute set, removing any values that were there before.

Parameters
CopyThe attribute set to copy from.

◆ CopyBoneAttributesWithRemapping()

void FDynamicMeshAttributeSet::CopyBoneAttributesWithRemapping ( const FDynamicMeshAttributeSet Copy,
const TMap< FName, FName > &  BoneHierarchy 
)

Copy bone attributes from the given attribute set to this attribute set, removing any values that were there before, using the given bone hierarchy map to control which bones are copied, and how parent bone indices should be remapped.

Parameters
CopyThe attribute set to copy from.
BoneHierarchyThe hierarchy to use to copy. The key is the bone name to copy and value is the new parent name to assign to it upon copy. The order of the resulting values is the same as in the Copy. A parent name of NAME_None indicates that the bone is a root bone and will have a parent index of INDEX_NONE. If a parent name is not in the list of bones to copy, then that bone's parent index will also be set to INDEX_NONE.

◆ DisableBones()

void FDynamicMeshAttributeSet::DisableBones ( )

Disable all bone attributes.

◆ DisableMaterialID()

void FDynamicMeshAttributeSet::DisableMaterialID ( )

◆ DisablePrimaryColors()

void FDynamicMeshAttributeSet::DisablePrimaryColors ( )

◆ DisableTangents()

void FDynamicMeshAttributeSet::DisableTangents ( )

Disable Tangents overlays

◆ DiscardSculptLayers()

void FDynamicMeshAttributeSet::DiscardSculptLayers ( )

◆ EnableBones()

void FDynamicMeshAttributeSet::EnableBones ( const int  InBonesNum)

Enable all bone attributes and intialize their size to the given bone number.

◆ EnableMatchingAttributes()

void FDynamicMeshAttributeSet::EnableMatchingAttributes ( const FDynamicMeshAttributeSet ToMatch,
bool  bClearExisting = true,
bool  bDiscardExtraAttributes = false 
)

Enable the matching attributes and overlay layers as the ToMatch set, but do not copy any data across. If bClearExisting=true, all existing attributes are cleared, so after the function there is an exact match but any existing attribute data is lost (!) If bClearExisting=false, new attributes are added, but existing attributes and data are preserved If bDiscardExtraAttributes=true and bClearExisting=false, then attributes in the current set but not in ToMatch are discarded, but existing attributes are not cleared/reset

◆ EnableMatchingBoneAttributes()

void FDynamicMeshAttributeSet::EnableMatchingBoneAttributes ( const FDynamicMeshAttributeSet ToMatch,
bool  bClearExisting,
bool  bDiscardExtraAttributes 
)

◆ EnableMatchingWeightLayersByNames()

void FDynamicMeshAttributeSet::EnableMatchingWeightLayersByNames ( const FDynamicMeshAttributeSet ToMatch,
bool  bDiscardUnmatched 
)

Make the weight layers 1:1 with those of the ToMatch attribute set, adding any missing layers and re-ordering existing layers to match the reference name ordering

Parameters
ToMatchReference attribute set whose weight layer names / ordering we must match
bDiscardUnmatchedWhether to remove unmatched weight layers. Otherwise, they will be left at the end of the weight attribute array.

◆ EnableMaterialID()

void FDynamicMeshAttributeSet::EnableMaterialID ( )

◆ EnablePrimaryColors()

void FDynamicMeshAttributeSet::EnablePrimaryColors ( )

◆ EnableSculptLayers()

void FDynamicMeshAttributeSet::EnableSculptLayers ( int32  MinLayers)

◆ EnableTangents()

void FDynamicMeshAttributeSet::EnableTangents ( )

Enable Tangents overlays (Tangent = Normal layer 1, Bitangent = Normal layer 2)

◆ GetAttachedAttribute() [1/2]

FDynamicMeshAttributeBase * UE::Geometry::FDynamicMeshAttributeSet::GetAttachedAttribute ( FName  AttribName)
inline

◆ GetAttachedAttribute() [2/2]

const FDynamicMeshAttributeBase * UE::Geometry::FDynamicMeshAttributeSet::GetAttachedAttribute ( FName  AttribName) const
inline

◆ GetAttachedAttributes()

const TMap< FName, TUniquePtr< FDynamicMeshAttributeBase > > & UE::Geometry::FDynamicMeshAttributeSet::GetAttachedAttributes ( ) const
inline

◆ GetBoneColors() [1/2]

FDynamicMeshBoneColorAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBoneColors ( )
inline

◆ GetBoneColors() [2/2]

const FDynamicMeshBoneColorAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBoneColors ( ) const
inline

◆ GetBoneNames() [1/2]

FDynamicMeshBoneNameAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBoneNames ( )
inline

◆ GetBoneNames() [2/2]

const FDynamicMeshBoneNameAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBoneNames ( ) const
inline

◆ GetBoneParentIndices() [1/2]

FDynamicMeshBoneParentIndexAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBoneParentIndices ( )
inline

◆ GetBoneParentIndices() [2/2]

const FDynamicMeshBoneParentIndexAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBoneParentIndices ( ) const
inline

◆ GetBonePoses() [1/2]

FDynamicMeshBonePoseAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBonePoses ( )
inline

◆ GetBonePoses() [2/2]

const FDynamicMeshBonePoseAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetBonePoses ( ) const
inline

◆ GetByteCount()

SIZE_T FDynamicMeshAttributeSet::GetByteCount ( ) const

◆ GetMaterialID() [1/2]

FDynamicMeshMaterialAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetMaterialID ( )
inline

◆ GetMaterialID() [2/2]

const FDynamicMeshMaterialAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetMaterialID ( ) const
inline

◆ GetMorphTargetAttribute()

FDynamicMeshMorphTargetAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetMorphTargetAttribute ( FName  InMorphTargetName) const
inline

Returns a pointer to a morph target attribute of the given name. If the attribute does not exist, a nullptr is returned.

◆ GetMorphTargetAttributes()

const TMap< FName, TUniquePtr< FDynamicMeshMorphTargetAttribute > > & UE::Geometry::FDynamicMeshAttributeSet::GetMorphTargetAttributes ( ) const
inline

Returns a map of all morph target attributes.

◆ GetNormalLayer() [1/2]

FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::GetNormalLayer ( int  Index)
inline
Returns
the Normal layer at the given Index if exists, else nullptr

◆ GetNormalLayer() [2/2]

const FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::GetNormalLayer ( int  Index) const
inline
Returns
the Normal layer at the given Index if exists, else nullptr

◆ GetNumBones()

int32 FDynamicMeshAttributeSet::GetNumBones ( ) const

Get number of bones.

◆ GetParentMesh() [1/2]

FDynamicMesh3 * UE::Geometry::FDynamicMeshAttributeSet::GetParentMesh ( )
inline
Returns
the parent mesh for this overlay

◆ GetParentMesh() [2/2]

const FDynamicMesh3 * UE::Geometry::FDynamicMeshAttributeSet::GetParentMesh ( ) const
inline
Returns
the parent mesh for this overlay

◆ GetPolygroupLayer() [1/2]

FDynamicMeshPolygroupAttribute * FDynamicMeshAttributeSet::GetPolygroupLayer ( int  Index)
Returns
the Polygroup layer at the given Index

◆ GetPolygroupLayer() [2/2]

const FDynamicMeshPolygroupAttribute * FDynamicMeshAttributeSet::GetPolygroupLayer ( int  Index) const
Returns
the Polygroup layer at the given Index

◆ GetSculptLayers() [1/2]

FDynamicMeshSculptLayers * UE::Geometry::FDynamicMeshAttributeSet::GetSculptLayers ( )
inline

◆ GetSculptLayers() [2/2]

const FDynamicMeshSculptLayers * UE::Geometry::FDynamicMeshAttributeSet::GetSculptLayers ( ) const
inline

◆ GetSkinWeightsAttribute()

FDynamicMeshVertexSkinWeightsAttribute * UE::Geometry::FDynamicMeshAttributeSet::GetSkinWeightsAttribute ( FName  InProfileName) const
inline

Returns a pointer to a skin weight attribute of the given profile name. If the attribute does not exist, a nullptr is returned.

◆ GetSkinWeightsAttributes()

const TMap< FName, TUniquePtr< FDynamicMeshVertexSkinWeightsAttribute > > & UE::Geometry::FDynamicMeshAttributeSet::GetSkinWeightsAttributes ( ) const
inline

Returns a map of all skin weight attributes.

◆ GetUVLayer() [1/2]

FDynamicMeshUVOverlay * UE::Geometry::FDynamicMeshAttributeSet::GetUVLayer ( int  Index)
inline
Returns
the UV layer at the given Index if exists, else nullptr

◆ GetUVLayer() [2/2]

const FDynamicMeshUVOverlay * UE::Geometry::FDynamicMeshAttributeSet::GetUVLayer ( int  Index) const
inline
Returns
the UV layer at the given Index if exists, else nullptr

◆ GetWeightLayer() [1/2]

FDynamicMeshWeightAttribute * FDynamicMeshAttributeSet::GetWeightLayer ( int  Index)
Returns
the weight layer at the given Index

◆ GetWeightLayer() [2/2]

const FDynamicMeshWeightAttribute * FDynamicMeshAttributeSet::GetWeightLayer ( int  Index) const
Returns
the weight layer at the given Index

◆ HasAttachedAttribute()

bool UE::Geometry::FDynamicMeshAttributeSet::HasAttachedAttribute ( FName  AttribName) const
inline

◆ HasBones()

bool UE::Geometry::FDynamicMeshAttributeSet::HasBones ( ) const
inline

◆ HasMaterialID()

bool UE::Geometry::FDynamicMeshAttributeSet::HasMaterialID ( ) const
inline

◆ HasMorphTargetAttribute()

bool UE::Geometry::FDynamicMeshAttributeSet::HasMorphTargetAttribute ( FName  InMorphTargetName) const
inline

Returns true if the morph target attribute exists.

◆ HasPrimaryColors()

bool UE::Geometry::FDynamicMeshAttributeSet::HasPrimaryColors ( ) const
inline

◆ HasSkinWeightsAttribute()

bool UE::Geometry::FDynamicMeshAttributeSet::HasSkinWeightsAttribute ( FName  InProfileName) const
inline

Returns true if the list of skin weight attributes includes the given profile name.

◆ HasTangentSpace()

bool UE::Geometry::FDynamicMeshAttributeSet::HasTangentSpace ( ) const
inline
Returns
true if normal layers exist for the normal, tangent, and bitangent

◆ Initialize()

void UE::Geometry::FDynamicMeshAttributeSet::Initialize ( int  MaxVertexID,
int  MaxTriangleID 
)
inlineprotected

Initialize the existing attribute layers with the given vertex and triangle sizes

◆ IsCompact()

bool FDynamicMeshAttributeSet::IsCompact ( )

returns true if the attached overlays/attributes are compact

◆ IsMaterialBoundaryEdge()

bool FDynamicMeshAttributeSet::IsMaterialBoundaryEdge ( int  EdgeID) const
virtual
Returns
true if the given edge is a material ID boundary

◆ IsSameAs()

bool FDynamicMeshAttributeSet::IsSameAs ( const FDynamicMeshAttributeSet Other,
bool  bIgnoreDataLayout 
) const

Returns true if this AttributeSet is the same as Other.

◆ IsSameBoneAttributesAs()

bool FDynamicMeshAttributeSet::IsSameBoneAttributesAs ( const FDynamicMeshAttributeSet Other) const
Note
Only compares bone names and parent indices.

◆ IsSeamEdge() [1/3]

bool FDynamicMeshAttributeSet::IsSeamEdge ( int  EdgeID) const
virtual
Returns
true if the given edge is a seam edge in any overlay

◆ IsSeamEdge() [2/3]

bool FDynamicMeshAttributeSet::IsSeamEdge ( int  EdgeID,
bool bIsUVSeamOut,
bool bIsNormalSeamOut,
bool bIsColorSeamOut 
) const
virtual
Returns
true if the given edge is a seam edge in any overlay. This version considers tangent seams as a type of normal seam; to consider tangent seams separately, call the 4-argument IsSeamEdge instead.

◆ IsSeamEdge() [3/3]

bool FDynamicMeshAttributeSet::IsSeamEdge ( int  EdgeID,
bool bIsUVSeamOut,
bool bIsNormalSeamOut,
bool bIsColorSeamOut,
bool bIsTangentSeamOut 
) const
virtual
Returns
true if the given edge is a seam edge in any overlay

◆ IsSeamEndEdge()

bool FDynamicMeshAttributeSet::IsSeamEndEdge ( int  EdgeID) const
virtual
Returns
true if the given edge is the termination of a seam in any overlay

◆ IsSeamIntersectionVertex()

bool FDynamicMeshAttributeSet::IsSeamIntersectionVertex ( int32  VertexID) const
virtual
Returns
true if the given vertex is a seam intersection vertex in any overlay

◆ IsSeamVertex()

bool FDynamicMeshAttributeSet::IsSeamVertex ( int  VertexID,
bool  bBoundaryIsSeam = true 
) const
virtual
Returns
true if the given vertex is a seam vertex in any overlay

◆ NumAttachedAttributes()

int UE::Geometry::FDynamicMeshAttributeSet::NumAttachedAttributes ( ) const
inline

◆ NumNormalLayers()

virtual int UE::Geometry::FDynamicMeshAttributeSet::NumNormalLayers ( ) const
inlinevirtual
Returns
number of Normals layers

◆ NumPolygroupLayers()

int32 FDynamicMeshAttributeSet::NumPolygroupLayers ( ) const
virtual
Returns
number of Polygroup layers

◆ NumSculptLayers()

int32 UE::Geometry::FDynamicMeshAttributeSet::NumSculptLayers ( ) const
inline

◆ NumUVLayers()

virtual int UE::Geometry::FDynamicMeshAttributeSet::NumUVLayers ( ) const
inlinevirtual
Returns
number of UV layers

◆ NumWeightLayers()

int32 FDynamicMeshAttributeSet::NumWeightLayers ( ) const
virtual
Returns
number of weight layers

◆ OnCollapseEdge()

void FDynamicMeshAttributeSet::OnCollapseEdge ( const DynamicMeshInfo::FEdgeCollapseInfo collapseInfo)
protectedvirtual

◆ OnFlipEdge()

void FDynamicMeshAttributeSet::OnFlipEdge ( const DynamicMeshInfo::FEdgeFlipInfo flipInfo)
protectedvirtual

◆ OnMergeEdges()

void FDynamicMeshAttributeSet::OnMergeEdges ( const DynamicMeshInfo::FMergeEdgesInfo mergeInfo)
protectedvirtual

◆ OnMergeVertices()

void FDynamicMeshAttributeSet::OnMergeVertices ( const DynamicMeshInfo::FMergeVerticesInfo mergeInfo)
protectedvirtual

◆ OnNewTriangle()

void FDynamicMeshAttributeSet::OnNewTriangle ( int  TriangleID,
bool  bInserted 
)
protectedvirtual

◆ OnNewVertex()

void FDynamicMeshAttributeSet::OnNewVertex ( int  VertexID,
bool  bInserted 
)
protectedvirtual

◆ OnPokeTriangle()

void FDynamicMeshAttributeSet::OnPokeTriangle ( const DynamicMeshInfo::FPokeTriangleInfo pokeInfo)
protectedvirtual

◆ OnRemoveTriangle()

void FDynamicMeshAttributeSet::OnRemoveTriangle ( int  TriangleID)
protectedvirtual

◆ OnRemoveVertex()

void FDynamicMeshAttributeSet::OnRemoveVertex ( int  VertexID)
protectedvirtual

◆ OnReverseTriOrientation()

void FDynamicMeshAttributeSet::OnReverseTriOrientation ( int  TriangleID)
protectedvirtual

◆ OnSplitEdge()

void FDynamicMeshAttributeSet::OnSplitEdge ( const DynamicMeshInfo::FEdgeSplitInfo splitInfo)
protectedvirtual

◆ OnSplitVertex()

void FDynamicMeshAttributeSet::OnSplitVertex ( const DynamicMeshInfo::FVertexSplitInfo SplitInfo,
const TArrayView< const int > &  TrianglesToUpdate 
)
protectedvirtual

◆ PrimaryBiTangents() [1/2]

FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryBiTangents ( )
inline
Returns
the primary biTangent layer ( normal layer 2) if exists, else nullptr

◆ PrimaryBiTangents() [2/2]

const FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryBiTangents ( ) const
inline
Returns
the primary biTangent layer ( normal layer 2) if exists, else nullptr

◆ PrimaryColors() [1/2]

FDynamicMeshColorOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryColors ( )
inline

◆ PrimaryColors() [2/2]

const FDynamicMeshColorOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryColors ( ) const
inline

◆ PrimaryNormals() [1/2]

FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryNormals ( )
inline
Returns
the primary Normal layer (normal layer 0) if exists, else nullptr

◆ PrimaryNormals() [2/2]

const FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryNormals ( ) const
inline
Returns
the primary Normal layer (normal layer 0) if exists, else nullptr

◆ PrimaryTangents() [1/2]

FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryTangents ( )
inline
Returns
the primary tangent layer ( normal layer 1) if exists, else nullptr

◆ PrimaryTangents() [2/2]

const FDynamicMeshNormalOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryTangents ( ) const
inline
Returns
the primary tangent layer ( normal layer 1) if exists, else nullptr

◆ PrimaryUV() [1/2]

FDynamicMeshUVOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryUV ( )
inline
Returns
the primary UV layer (layer 0)

◆ PrimaryUV() [2/2]

const FDynamicMeshUVOverlay * UE::Geometry::FDynamicMeshAttributeSet::PrimaryUV ( ) const
inline
Returns
the primary UV layer (layer 0)

◆ RemoveAllMorphTargetAttributes()

void FDynamicMeshAttributeSet::RemoveAllMorphTargetAttributes ( )

Remove all morph target attributes.

◆ RemoveAllSkinWeightsAttributes()

void FDynamicMeshAttributeSet::RemoveAllSkinWeightsAttributes ( )

Remove all skin weights attributes.

◆ RemoveAttribute()

void UE::Geometry::FDynamicMeshAttributeSet::RemoveAttribute ( FName  AttribName)
inline

◆ RemoveMorphTargetAttribute()

void FDynamicMeshAttributeSet::RemoveMorphTargetAttribute ( FName  InMorphTargetName)

Remove a morph target attribute matching the given name.

◆ RemoveSkinWeightsAttribute()

void FDynamicMeshAttributeSet::RemoveSkinWeightsAttribute ( FName  InProfileName)

Remove a skin weights attribute matching the given profile name.

◆ RemoveWeightLayer()

void FDynamicMeshAttributeSet::RemoveWeightLayer ( int32  Index)
virtual

Remove a weight layer at the specified index

◆ Serialize()

void FDynamicMeshAttributeSet::Serialize ( FArchive Ar,
const FCompactMaps CompactMaps,
bool  bUseCompression 
)

Serialize to and from an archive.

Parameters
ArArchive to serialize with.
CompactMapsIf this is not a null pointer, the mesh serialization compacted the vertex and/or triangle data using the provided mapping.
bUseCompressionUse compression for serializing bulk data.

◆ SetNumNormalLayers()

void FDynamicMeshAttributeSet::SetNumNormalLayers ( int  Num)
virtual

Set number of Normals (3-vector float overlay) layers

◆ SetNumPolygroupLayers()

void FDynamicMeshAttributeSet::SetNumPolygroupLayers ( int32  Num)
virtual

Set the number of Polygroup layers

◆ SetNumUVLayers()

void FDynamicMeshAttributeSet::SetNumUVLayers ( int  Num)
virtual

Set number of UV (2-vector float overlay) layers

◆ SetNumWeightLayers()

void FDynamicMeshAttributeSet::SetNumWeightLayers ( int32  Num)
virtual

Set the number of weight layers

◆ SplitAllBowties()

void FDynamicMeshAttributeSet::SplitAllBowties ( bool  bParallel = true)

Split all bowtie vertices in all layers

Parameters
bParallelif true, layers are processed in parallel

Friends And Related Symbol Documentation

◆ FDynamicMesh3

friend class FDynamicMesh3
friend

◆ FDynamicMeshSculptLayers

◆ operator<<

FArchive & operator<< ( FArchive Ar,
FDynamicMeshAttributeSet Set 
)
friend

Serialization operator for FDynamicMeshAttributeSet.

Parameters
ArArchive to serialize with.
SetAttribute set to serialize.
Returns
Passing down serializing archive.

Member Data Documentation

◆ BoneColorAttrib

TUniquePtr<FDynamicMeshBoneColorAttribute> UE::Geometry::FDynamicMeshAttributeSet::BoneColorAttrib
protected

◆ BoneNameAttrib

TUniquePtr<FDynamicMeshBoneNameAttribute> UE::Geometry::FDynamicMeshAttributeSet::BoneNameAttrib
protected

◆ BoneParentIndexAttrib

TUniquePtr<FDynamicMeshBoneParentIndexAttribute> UE::Geometry::FDynamicMeshAttributeSet::BoneParentIndexAttrib
protected

◆ BonePoseAttrib

TUniquePtr<FDynamicMeshBonePoseAttribute> UE::Geometry::FDynamicMeshAttributeSet::BonePoseAttrib
protected

◆ ColorLayer

TUniquePtr<FDynamicMeshColorOverlay> UE::Geometry::FDynamicMeshAttributeSet::ColorLayer
protected

◆ GenericAttributes

GenericAttributesMap UE::Geometry::FDynamicMeshAttributeSet::GenericAttributes
protected

◆ MaterialIDAttrib

TUniquePtr<FDynamicMeshMaterialAttribute> UE::Geometry::FDynamicMeshAttributeSet::MaterialIDAttrib
protected

◆ MorphTargetAttributes

MorphTargetAttributesMap UE::Geometry::FDynamicMeshAttributeSet::MorphTargetAttributes
protected

◆ NormalLayers

TIndirectArray<FDynamicMeshNormalOverlay> UE::Geometry::FDynamicMeshAttributeSet::NormalLayers
protected

◆ ParentMesh

FDynamicMesh3* UE::Geometry::FDynamicMeshAttributeSet::ParentMesh
protected

Parent mesh of this attribute set

◆ PolygroupLayers

TIndirectArray<FDynamicMeshPolygroupAttribute> UE::Geometry::FDynamicMeshAttributeSet::PolygroupLayers
protected

◆ SkinWeightAttributes

SkinWeightAttributesMap UE::Geometry::FDynamicMeshAttributeSet::SkinWeightAttributes
protected

◆ UVLayers

TIndirectArray<FDynamicMeshUVOverlay> UE::Geometry::FDynamicMeshAttributeSet::UVLayers
protected

◆ WeightLayers

TIndirectArray<FDynamicMeshWeightAttribute> UE::Geometry::FDynamicMeshAttributeSet::WeightLayers
protected

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