UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMeshAttributeArraySetBase Class Referenceabstract

#include <MeshAttributeArray.h>

+ Inheritance diagram for FMeshAttributeArraySetBase:

Public Member Functions

 FMeshAttributeArraySetBase (const uint32 InType, const EMeshAttributeFlags InFlags, const int32 InNumberOfElements, const uint32 InExtent)
 
virtual ~FMeshAttributeArraySetBase ()=default
 
virtual TUniquePtr< FMeshAttributeArraySetBaseClone () const =0
 
virtual void Insert (const int32 Index)=0
 
virtual void Remove (const int32 Index)=0
 
virtual void Initialize (const int32 Count)=0
 
virtual void SetNumElements (const int32 Count)=0
 
virtual uint32 GetHash () const =0
 
virtual void Serialize (FArchive &Ar)=0
 
virtual void Remap (const TSparseArray< int32 > &IndexRemap)=0
 
virtual int32 GetNumIndices () const =0
 
virtual void SetNumIndices (const int32 NumIndices)=0
 
virtual void InsertIndex (const int32 Index)=0
 
virtual void RemoveIndex (const int32 Index)=0
 
virtual int32 GetNumChannels () const =0
 
virtual void SetNumChannels (const int32 NumChannels)=0
 
virtual void InsertChannel (const int32 Index)=0
 
virtual void RemoveChannel (const int32 Index)=0
 
template<typename T >
bool HasType () const
 
uint32 GetType () const
 
uint32 GetExtent () const
 
EMeshAttributeFlags GetFlags () const
 
void SetFlags (const EMeshAttributeFlags InFlags)
 
int32 GetNumElements () const
 

Protected Attributes

uint32 Type
 
uint32 Extent
 
int32 NumElements
 
EMeshAttributeFlags Flags
 

Detailed Description

This is the base class for an attribute array set. An attribute array set is a container which holds attribute arrays, one per attribute index. Many attributes have only one index, while others (such as texture coordinates) may want to define many.

All attribute array set instances will be of derived types; this type exists for polymorphism purposes, so that they can be managed by a generic TUniquePtr<FMeshAttributeArraySetBase>.

In general, we avoid accessing them via virtual dispatch by insisting that their type be passed as a template parameter in the accessor. This can be checked against the Type field to ensure that we are accessing an instance by its correct type.

Constructor & Destructor Documentation

◆ FMeshAttributeArraySetBase()

FMeshAttributeArraySetBase::FMeshAttributeArraySetBase ( const uint32  InType,
const EMeshAttributeFlags  InFlags,
const int32  InNumberOfElements,
const uint32  InExtent 
)
inline

Constructor

◆ ~FMeshAttributeArraySetBase()

virtual FMeshAttributeArraySetBase::~FMeshAttributeArraySetBase ( )
virtualdefault

Virtual interface

Member Function Documentation

◆ Clone()

virtual TUniquePtr< FMeshAttributeArraySetBase > FMeshAttributeArraySetBase::Clone ( ) const
pure virtual

◆ GetExtent()

uint32 FMeshAttributeArraySetBase::GetExtent ( ) const
inline

Get the type extent of this attribute array set

◆ GetFlags()

EMeshAttributeFlags FMeshAttributeArraySetBase::GetFlags ( ) const
inline

Get the flags for this attribute array set

◆ GetHash()

virtual uint32 FMeshAttributeArraySetBase::GetHash ( ) const
pure virtual

◆ GetNumChannels()

virtual int32 FMeshAttributeArraySetBase::GetNumChannels ( ) const
pure virtual

◆ GetNumElements()

int32 FMeshAttributeArraySetBase::GetNumElements ( ) const
inline

Return number of elements each attribute index has

◆ GetNumIndices()

virtual int32 FMeshAttributeArraySetBase::GetNumIndices ( ) const
pure virtual

◆ GetType()

uint32 FMeshAttributeArraySetBase::GetType ( ) const
inline

Get the type index of this attribute array set

◆ HasType()

template<typename T >
bool FMeshAttributeArraySetBase::HasType ( ) const
inline

Determine whether this attribute array set is of the given type

◆ Initialize()

virtual void FMeshAttributeArraySetBase::Initialize ( const int32  Count)
pure virtual

◆ Insert()

virtual void FMeshAttributeArraySetBase::Insert ( const int32  Index)
pure virtual

◆ InsertChannel()

virtual void FMeshAttributeArraySetBase::InsertChannel ( const int32  Index)
pure virtual

◆ InsertIndex()

virtual void FMeshAttributeArraySetBase::InsertIndex ( const int32  Index)
pure virtual

◆ Remap()

virtual void FMeshAttributeArraySetBase::Remap ( const TSparseArray< int32 > &  IndexRemap)
pure virtual

◆ Remove()

virtual void FMeshAttributeArraySetBase::Remove ( const int32  Index)
pure virtual

◆ RemoveChannel()

virtual void FMeshAttributeArraySetBase::RemoveChannel ( const int32  Index)
pure virtual

◆ RemoveIndex()

virtual void FMeshAttributeArraySetBase::RemoveIndex ( const int32  Index)
pure virtual

◆ Serialize()

virtual void FMeshAttributeArraySetBase::Serialize ( FArchive Ar)
pure virtual

◆ SetFlags()

void FMeshAttributeArraySetBase::SetFlags ( const EMeshAttributeFlags  InFlags)
inline

Set the flags for this attribute array set

◆ SetNumChannels()

virtual void FMeshAttributeArraySetBase::SetNumChannels ( const int32  NumChannels)
pure virtual

◆ SetNumElements()

virtual void FMeshAttributeArraySetBase::SetNumElements ( const int32  Count)
pure virtual

◆ SetNumIndices()

virtual void FMeshAttributeArraySetBase::SetNumIndices ( const int32  NumIndices)
pure virtual

Member Data Documentation

◆ Extent

uint32 FMeshAttributeArraySetBase::Extent
protected

Extent of the type, i.e. the number of array elements it consists of

◆ Flags

EMeshAttributeFlags FMeshAttributeArraySetBase::Flags
protected

Implementation-defined attribute name flags

◆ NumElements

int32 FMeshAttributeArraySetBase::NumElements
protected

Number of elements in each index

◆ Type

uint32 FMeshAttributeArraySetBase::Type
protected

Type of the attribute array (based on the tuple element index from AttributeTypes)


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