UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::TDynamicAttributeBase< ParentType > Class Template Referenceabstract

#include <DynamicAttribute.h>

+ Inheritance diagram for UE::Geometry::TDynamicAttributeBase< ParentType >:

Public Member Functions

virtual ~TDynamicAttributeBase ()
 
FName GetName () const
 
void SetName (FName NameIn)
 
virtual TDynamicAttributeBaseMakeCopy (ParentType *ParentIn) const =0
 
virtual TDynamicAttributeBaseMakeNew (ParentType *ParentIn) const =0
 
virtual TDynamicAttributeBaseMakeCompactCopy (const FCompactMaps &CompactMaps, ParentType *ParentIn) const
 
virtual void CompactInPlace (const FCompactMaps &CompactMaps)=0
 
virtual void Reparent (ParentType *NewParent)=0
 
virtual bool CopyThroughMapping (const TDynamicAttributeBase *Source, const FMeshIndexMappings &Mapping)=0
 
virtual bool Append (const TDynamicAttributeBase &Source, const FDynamicMesh3::FAppendInfo &AppendInfo)=0
 
virtual void AppendDefaulted (const FDynamicMesh3::FAppendInfo &AppendInfo)=0
 
virtual bool CopyOut (int RawID, void *Buffer, int BufferSize) const =0
 
virtual bool CopyIn (int RawID, void *Buffer, int BufferSize)=0
 
virtual void OnNewVertex (int VertexID, bool bInserted)
 
virtual void OnRemoveVertex (int VertexID)
 
virtual void OnNewTriangle (int TriangleID, bool bInserted)
 
virtual void OnRemoveTriangle (int TriangleID)
 
virtual void OnReverseTriOrientation (int TriangleID)
 
virtual bool CheckValidity (bool bAllowNonmanifold, EValidityCheckFailMode FailMode) const
 
virtual TUniquePtr< TDynamicAttributeChangeBase< ParentType > > NewBlankChange () const =0
 
virtual void OnSplitEdge (const DynamicMeshInfo::FEdgeSplitInfo &SplitInfo)
 
virtual void OnFlipEdge (const DynamicMeshInfo::FEdgeFlipInfo &FlipInfo)
 
virtual void OnCollapseEdge (const DynamicMeshInfo::FEdgeCollapseInfo &CollapseInfo)
 
virtual void OnPokeTriangle (const DynamicMeshInfo::FPokeTriangleInfo &PokeInfo)
 
virtual void OnMergeEdges (const DynamicMeshInfo::FMergeEdgesInfo &MergeInfo)
 
virtual void OnMergeVertices (const DynamicMeshInfo::FMergeVerticesInfo &MergeInfo)
 
virtual void OnSplitVertex (const DynamicMeshInfo::FVertexSplitInfo &SplitInfo, const TArrayView< const int > &TrianglesToUpdate)
 
void Serialize (FArchive &Ar)
 
virtual SIZE_T GetByteCount () const
 

Protected Member Functions

virtual void CopyParentClassData (const TDynamicAttributeBase< ParentType > &Other)
 

Protected Attributes

FName Name = FName()
 

Friends

FArchiveoperator<< (FArchive &Ar, TDynamicAttributeBase< ParentType > &Attr)
 

Detailed Description

template<typename ParentType>
class UE::Geometry::TDynamicAttributeBase< ParentType >

Base class for attributes that live on a dynamic mesh (or similar dynamic object)

Subclasses can override the On* functions to ensure the attribute remains up to date through changes to the dynamic object

Constructor & Destructor Documentation

◆ ~TDynamicAttributeBase()

template<typename ParentType >
virtual UE::Geometry::TDynamicAttributeBase< ParentType >::~TDynamicAttributeBase ( )
inlinevirtual

Member Function Documentation

◆ Append()

template<typename ParentType >
virtual bool UE::Geometry::TDynamicAttributeBase< ParentType >::Append ( const TDynamicAttributeBase< ParentType > &  Source,
const FDynamicMesh3::FAppendInfo AppendInfo 
)
pure virtual

Add elements from the Source attribute, using the AppendInfo to determine the range to copy.

Returns
true if the append succeeded, false otherwise (e.g. false if the data from the source attribute was not compatible and the CopyOut failed to copy across)

Implemented in UE::Geometry::TDynamicMeshTriangleAttribute< AttribValueType, AttribDimension >, UE::Geometry::TDynamicMeshTriangleAttribute< RealType, 1 >, UE::Geometry::TDynamicBoneAttributeBase< ParentType, AttribValueType >, UE::Geometry::TDynamicVertexAttribute< AttribValueType, AttribDimension, ParentType >, and UE::Geometry::TDynamicVertexSkinWeightsAttribute< ParentType >.

◆ AppendDefaulted()

◆ CheckValidity()

template<typename ParentType >
virtual bool UE::Geometry::TDynamicAttributeBase< ParentType >::CheckValidity ( bool  bAllowNonmanifold,
EValidityCheckFailMode  FailMode 
) const
inlinevirtual

Check validity of attribute

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 in UE::Geometry::TDynamicVertexAttribute< AttribValueType, AttribDimension, ParentType >, and UE::Geometry::TDynamicVertexSkinWeightsAttribute< ParentType >.

◆ CompactInPlace()

◆ CopyIn()

◆ CopyOut()

◆ CopyParentClassData()

template<typename ParentType >
virtual void UE::Geometry::TDynamicAttributeBase< ParentType >::CopyParentClassData ( const TDynamicAttributeBase< ParentType > &  Other)
inlineprotectedvirtual

Implementation of parent-class copy. MakeCopy() and MakeCompactCopy() implementations should call this to transfer any custom data added by parent attribute set class.

◆ CopyThroughMapping()

template<typename ParentType >
virtual bool UE::Geometry::TDynamicAttributeBase< ParentType >::CopyThroughMapping ( const TDynamicAttributeBase< ParentType > *  Source,
const FMeshIndexMappings Mapping 
)
pure virtual

Copy data from a different attribute to this one, using the mesh index mapping to determine the correspondence

Parameters
Sourcecopy attribute data from this source
Mappingthe correspondence from Source's parent to this attribute's parent
Returns
true if the copy succeeded, false otherwise (e.g. false if the data from the source attribute was not compatible and the CopyOut failed to copy across)

Implemented in UE::Geometry::TDynamicBoneAttributeBase< ParentType, AttribValueType >, UE::Geometry::TDynamicVertexAttribute< AttribValueType, AttribDimension, ParentType >, and UE::Geometry::TDynamicVertexSkinWeightsAttribute< ParentType >.

◆ GetByteCount()

◆ GetName()

template<typename ParentType >
FName UE::Geometry::TDynamicAttributeBase< ParentType >::GetName ( ) const
inline

Get optional identifier for this attribute set.

◆ MakeCompactCopy()

template<typename ParentType >
virtual TDynamicAttributeBase * UE::Geometry::TDynamicAttributeBase< ParentType >::MakeCompactCopy ( const FCompactMaps CompactMaps,
ParentType *  ParentIn 
) const
inlinevirtual

Allocate a new compact copy of the attribute layer, optionally with a different parent. Default implementation does a full copy and then compacts it, usually derived class will want to override this with a more efficient direct compact copy implementation

Reimplemented in UE::Geometry::TDynamicVertexAttribute< AttribValueType, AttribDimension, ParentType >, and UE::Geometry::TDynamicVertexSkinWeightsAttribute< ParentType >.

◆ MakeCopy()

template<typename ParentType >
virtual TDynamicAttributeBase * UE::Geometry::TDynamicAttributeBase< ParentType >::MakeCopy ( ParentType *  ParentIn) const
pure virtual

◆ MakeNew()

◆ NewBlankChange()

◆ OnCollapseEdge()

◆ OnFlipEdge()

◆ OnMergeEdges()

◆ OnMergeVertices()

◆ OnNewTriangle()

template<typename ParentType >
virtual void UE::Geometry::TDynamicAttributeBase< ParentType >::OnNewTriangle ( int  TriangleID,
bool  bInserted 
)
inlinevirtual

◆ OnNewVertex()

◆ OnPokeTriangle()

◆ OnRemoveTriangle()

template<typename ParentType >
virtual void UE::Geometry::TDynamicAttributeBase< ParentType >::OnRemoveTriangle ( int  TriangleID)
inlinevirtual

◆ OnRemoveVertex()

template<typename ParentType >
virtual void UE::Geometry::TDynamicAttributeBase< ParentType >::OnRemoveVertex ( int  VertexID)
inlinevirtual

◆ OnReverseTriOrientation()

template<typename ParentType >
virtual void UE::Geometry::TDynamicAttributeBase< ParentType >::OnReverseTriOrientation ( int  TriangleID)
inlinevirtual

◆ OnSplitEdge()

◆ OnSplitVertex()

◆ Reparent()

template<typename ParentType >
virtual void UE::Geometry::TDynamicAttributeBase< ParentType >::Reparent ( ParentType *  NewParent)
pure virtual

Update any held pointer to the parent

Implemented in UE::Geometry::TDynamicBoneAttributeBase< ParentType, AttribValueType >.

◆ Serialize()

template<typename ParentType >
void UE::Geometry::TDynamicAttributeBase< ParentType >::Serialize ( FArchive Ar)
inline

Serialize to and from an archive.

Parameters
ArArchive to serialize with.

◆ SetName()

template<typename ParentType >
void UE::Geometry::TDynamicAttributeBase< ParentType >::SetName ( FName  NameIn)
inline

Set optional identifier for this attribute set.

Friends And Related Symbol Documentation

◆ operator<<

template<typename ParentType >
FArchive & operator<< ( FArchive Ar,
TDynamicAttributeBase< ParentType > &  Attr 
)
friend

Serialization operator for TDynamicAttributeBase.

Parameters
ArArchive to serialize with.
AttrMesh attribute to serialize.
Returns
Passing down serializing archive.

Member Data Documentation

◆ Name

template<typename ParentType >
FName UE::Geometry::TDynamicAttributeBase< ParentType >::Name = FName()
protected

Optional FName identifier for this attribute set. Not guaranteed to be unique.


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