UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AttributeStorage.cpp File Reference
#include "Types/AttributeStorage.h"
#include "InterchangeLogPrivate.h"
#include "CoreMinimal.h"
#include "HAL/UnrealMemory.h"
#include "Math/Box.h"
#include "Math/Box2D.h"
#include "Math/BoxSphereBounds.h"
#include "Math/Color.h"
#include "Math/Float16.h"
#include "Math/IntPoint.h"
#include "Math/IntRect.h"
#include "Math/IntVector.h"
#include "Math/Matrix.h"
#include "Math/Plane.h"
#include "Math/OrientedBox.h"
#include "Math/Quat.h"
#include "Math/RandomStream.h"
#include "Math/Rotator.h"
#include "Math/Sphere.h"
#include "Math/TwoVectors.h"
#include "Math/UnrealMathUtility.h"
#include "Math/Vector.h"
#include "Math/Vector2D.h"
#include "Math/Vector2DHalf.h"
#include "Math/Vector4.h"
#include "Misc/FrameRate.h"
#include "Misc/ScopeLock.h"
#include "Misc/SecureHash.h"
#include "UObject/SoftObjectPath.h"
#include <type_traits>

Classes

struct  UE::Interchange::TAttributeTypeTraitsInternal< T >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< bool >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FColor >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FDateTime >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< double >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< float >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FGuid >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< int8 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< int16 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< int32 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< int64 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FIntRect >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FLinearColor >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FName >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FRandomStream >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FString >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FTimespan >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FTwoVectors >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< uint8 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< uint16 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< uint32 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< uint64 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector2D >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FIntPoint >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FIntVector >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector2DHalf >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FFloat16 >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FOrientedBox >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FFrameNumber >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FFrameRate >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FFrameTime >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FSoftObjectPath >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FMatrix44f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FMatrix44d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FPlane4f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FPlane4d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FQuat4f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FQuat4d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FRotator3f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FRotator3d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FTransform3f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FTransform3d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector3f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector3d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector2f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector4f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FVector4d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FBox2f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FBox2D >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FBox3f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FBox3d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FBoxSphereBounds3f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FBoxSphereBounds3d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FSphere3f >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< FSphere3d >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< bool > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FColor > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FDateTime > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< double > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< float > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FGuid > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< int8 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< int16 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< int32 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< int64 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FIntRect > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FLinearColor > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FName > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FRandomStream > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FString > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FTimespan > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FTwoVectors > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< uint8 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray64< uint8 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< uint16 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< uint32 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< uint64 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector2D > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FIntPoint > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FIntVector > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector2DHalf > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FFloat16 > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FOrientedBox > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FFrameNumber > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FFrameRate > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FFrameTime > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FSoftObjectPath > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FMatrix44f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FMatrix44d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FPlane4f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FPlane4d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FQuat4f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FQuat4d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FRotator3f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FRotator3d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FTransform3f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FTransform3d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector3f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector3d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector2f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector4f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FVector4d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FBox2f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FBox2D > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FBox3f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FBox3d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FBoxSphereBounds3f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FBoxSphereBounds3d > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FSphere3f > >
 
struct  UE::Interchange::TAttributeTypeTraitsInternal< TArray< FSphere3d > >
 

Namespaces

namespace  UE
 
namespace  UE::Interchange
 

Macros

#define COMPARE_MATH_STRUCTS(MathType)
 
#define COMPARE_MATH_ARRAY(MathType)
 
#define DECLARE_LOCAL_VARIABLES(ValueType)
 
#define DECLARE_LOCAL_ARRAY_VARIABLES(ValueType)
 
#define SPECIALIZE(X)
 

Functions

template<typename T >
FString UE::Interchange::StringifyArrayAttribute (const T &Array)
 
FString UE::Interchange::AttributeTypeToString (EAttributeTypes AttributeType)
 
EAttributeTypes UE::Interchange::StringToAttributeType (const FString &AttributeTypeString)
 
template<typename ValueType >
FString UE::Interchange::AttributeValueToString (const ValueType &Value)
 
template<typename T >
uint64 UE::Interchange::GetValueSizeInternal (const T &Value)
 
void UE::Interchange::LogAttributeStorageErrors (const EAttributeStorageResult Result, const FString OperationName, const FAttributeKey AttributeKey)
 
template<typename T >
void UE::Interchange::CopyStorageAttributesInternal (const FAttributeStorage &SourceStorage, FAttributeStorage &DestinationStorage, const TArray< T > &AttributeKeys)
 
 UE::Interchange::SPECIALIZE (bool)
 
 UE::Interchange::SPECIALIZE (FColor)
 
 UE::Interchange::SPECIALIZE (FDateTime)
 
 UE::Interchange::SPECIALIZE (double)
 
 UE::Interchange::SPECIALIZE (float)
 
 UE::Interchange::SPECIALIZE (FGuid)
 
 UE::Interchange::SPECIALIZE (int8)
 
 UE::Interchange::SPECIALIZE (int16)
 
 UE::Interchange::SPECIALIZE (int32)
 
 UE::Interchange::SPECIALIZE (int64)
 
 UE::Interchange::SPECIALIZE (FIntRect)
 
 UE::Interchange::SPECIALIZE (FLinearColor)
 
 UE::Interchange::SPECIALIZE (FName)
 
 UE::Interchange::SPECIALIZE (FRandomStream)
 
 UE::Interchange::SPECIALIZE (FTimespan)
 
 UE::Interchange::SPECIALIZE (FString)
 
 UE::Interchange::SPECIALIZE (FTwoVectors)
 
 UE::Interchange::SPECIALIZE (uint8)
 
 UE::Interchange::SPECIALIZE (uint16)
 
 UE::Interchange::SPECIALIZE (uint32)
 
 UE::Interchange::SPECIALIZE (uint64)
 
 UE::Interchange::SPECIALIZE (FVector2D)
 
 UE::Interchange::SPECIALIZE (FIntPoint)
 
 UE::Interchange::SPECIALIZE (FIntVector)
 
 UE::Interchange::SPECIALIZE (FVector2DHalf)
 
 UE::Interchange::SPECIALIZE (FFloat16)
 
 UE::Interchange::SPECIALIZE (FOrientedBox)
 
 UE::Interchange::SPECIALIZE (FFrameNumber)
 
 UE::Interchange::SPECIALIZE (FFrameRate)
 
 UE::Interchange::SPECIALIZE (FFrameTime)
 
 UE::Interchange::SPECIALIZE (FSoftObjectPath)
 
 UE::Interchange::SPECIALIZE (FMatrix44f)
 
 UE::Interchange::SPECIALIZE (FMatrix44d)
 
 UE::Interchange::SPECIALIZE (FPlane4f)
 
 UE::Interchange::SPECIALIZE (FPlane4d)
 
 UE::Interchange::SPECIALIZE (FQuat4f)
 
 UE::Interchange::SPECIALIZE (FQuat4d)
 
 UE::Interchange::SPECIALIZE (FRotator3f)
 
 UE::Interchange::SPECIALIZE (FRotator3d)
 
 UE::Interchange::SPECIALIZE (FTransform3f)
 
 UE::Interchange::SPECIALIZE (FTransform3d)
 
 UE::Interchange::SPECIALIZE (FVector3f)
 
 UE::Interchange::SPECIALIZE (FVector3d)
 
 UE::Interchange::SPECIALIZE (FVector2f)
 
 UE::Interchange::SPECIALIZE (FVector4f)
 
 UE::Interchange::SPECIALIZE (FVector4d)
 
 UE::Interchange::SPECIALIZE (FBox2f)
 
 UE::Interchange::SPECIALIZE (FBox2D)
 
 UE::Interchange::SPECIALIZE (FBox3f)
 
 UE::Interchange::SPECIALIZE (FBox3d)
 
 UE::Interchange::SPECIALIZE (FBoxSphereBounds3f)
 
 UE::Interchange::SPECIALIZE (FBoxSphereBounds3d)
 
 UE::Interchange::SPECIALIZE (FSphere3f)
 
 UE::Interchange::SPECIALIZE (FSphere3d)
 
 UE::Interchange::SPECIALIZE (TArray< bool >)
 
 UE::Interchange::SPECIALIZE (TArray< FColor >)
 
 UE::Interchange::SPECIALIZE (TArray< FDateTime >)
 
 UE::Interchange::SPECIALIZE (TArray< double >)
 
 UE::Interchange::SPECIALIZE (TArray< float >)
 
 UE::Interchange::SPECIALIZE (TArray< FGuid >)
 
 UE::Interchange::SPECIALIZE (TArray< int8 >)
 
 UE::Interchange::SPECIALIZE (TArray< int16 >)
 
 UE::Interchange::SPECIALIZE (TArray< int32 >)
 
 UE::Interchange::SPECIALIZE (TArray< int64 >)
 
 UE::Interchange::SPECIALIZE (TArray< FIntRect >)
 
 UE::Interchange::SPECIALIZE (TArray< FLinearColor >)
 
 UE::Interchange::SPECIALIZE (TArray< FName >)
 
 UE::Interchange::SPECIALIZE (TArray< FRandomStream >)
 
 UE::Interchange::SPECIALIZE (TArray< FTimespan >)
 
 UE::Interchange::SPECIALIZE (TArray< FString >)
 
 UE::Interchange::SPECIALIZE (TArray< FTwoVectors >)
 
 UE::Interchange::SPECIALIZE (TArray< uint8 >)
 
 UE::Interchange::SPECIALIZE (TArray64< uint8 >)
 
 UE::Interchange::SPECIALIZE (TArray< uint16 >)
 
 UE::Interchange::SPECIALIZE (TArray< uint32 >)
 
 UE::Interchange::SPECIALIZE (TArray< uint64 >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector2D >)
 
 UE::Interchange::SPECIALIZE (TArray< FIntPoint >)
 
 UE::Interchange::SPECIALIZE (TArray< FIntVector >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector2DHalf >)
 
 UE::Interchange::SPECIALIZE (TArray< FFloat16 >)
 
 UE::Interchange::SPECIALIZE (TArray< FOrientedBox >)
 
 UE::Interchange::SPECIALIZE (TArray< FFrameNumber >)
 
 UE::Interchange::SPECIALIZE (TArray< FFrameRate >)
 
 UE::Interchange::SPECIALIZE (TArray< FFrameTime >)
 
 UE::Interchange::SPECIALIZE (TArray< FSoftObjectPath >)
 
 UE::Interchange::SPECIALIZE (TArray< FMatrix44f >)
 
 UE::Interchange::SPECIALIZE (TArray< FMatrix44d >)
 
 UE::Interchange::SPECIALIZE (TArray< FPlane4f >)
 
 UE::Interchange::SPECIALIZE (TArray< FPlane4d >)
 
 UE::Interchange::SPECIALIZE (TArray< FQuat4f >)
 
 UE::Interchange::SPECIALIZE (TArray< FQuat4d >)
 
 UE::Interchange::SPECIALIZE (TArray< FRotator3f >)
 
 UE::Interchange::SPECIALIZE (TArray< FRotator3d >)
 
 UE::Interchange::SPECIALIZE (TArray< FTransform3f >)
 
 UE::Interchange::SPECIALIZE (TArray< FTransform3d >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector3f >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector3d >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector2f >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector4f >)
 
 UE::Interchange::SPECIALIZE (TArray< FVector4d >)
 
 UE::Interchange::SPECIALIZE (TArray< FBox2f >)
 
 UE::Interchange::SPECIALIZE (TArray< FBox2D >)
 
 UE::Interchange::SPECIALIZE (TArray< FBox3f >)
 
 UE::Interchange::SPECIALIZE (TArray< FBox3d >)
 
 UE::Interchange::SPECIALIZE (TArray< FBoxSphereBounds3f >)
 
 UE::Interchange::SPECIALIZE (TArray< FBoxSphereBounds3d >)
 
 UE::Interchange::SPECIALIZE (TArray< FSphere3f >)
 
 UE::Interchange::SPECIALIZE (TArray< FSphere3d >)
 

Macro Definition Documentation

◆ COMPARE_MATH_ARRAY

#define COMPARE_MATH_ARRAY (   MathType)
Value:
case EAttributeTypes::MathType##Array: \
{ \
ensure(GetAttributeValue(*this, BaseArray)); \
ensure(GetAttributeValue(VersionStorage, VersionArray)); \
for(int32 Index = 0; Index < BaseArray.Num(); ++Index) \
{ \
{ \
return false; \
} \
} \
return true; \
}
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
Definition Array.h:670
U16 Index
Definition radfft.cpp:71

◆ COMPARE_MATH_STRUCTS

#define COMPARE_MATH_STRUCTS (   MathType)
Value:
case EAttributeTypes::MathType: \
{ \
ensure(GetAttributeValue(*this, BaseTypeValue)); \
ensure(GetAttributeValue(VersionStorage, VersionTypeValue)); \
return BaseTypeValue.Equals(VersionTypeValue); \
}

◆ DECLARE_LOCAL_ARRAY_VARIABLES

#define DECLARE_LOCAL_ARRAY_VARIABLES (   ValueType)
Value:
TArray<F##ValueType> Base##ValueType##s; \
ensure(GetAttributeValue(*this, Base##ValueType##s)); \
TArray<F##ValueType> Version##ValueType##s; \
ensure(GetAttributeValue(VersionStorage, Version##ValueType##s));

◆ DECLARE_LOCAL_VARIABLES

#define DECLARE_LOCAL_VARIABLES (   ValueType)
Value:
F##ValueType Base##ValueType; \
ensure(GetAttributeValue(*this, Base##ValueType)); \
F##ValueType Version##ValueType; \
ensure(GetAttributeValue(VersionStorage, Version##ValueType));

◆ SPECIALIZE

#define SPECIALIZE (   X)
Value:
template INTERCHANGECORE_API EAttributeStorageResult FAttributeStorage::RegisterAttribute<X>(const FAttributeKey&, const X&, EAttributeProperty);\
template INTERCHANGECORE_API EAttributeStorageResult FAttributeStorage::GetAttribute<X>(const FAttributeKey&, X&) const;\
template INTERCHANGECORE_API FAttributeStorage::TAttributeHandle<X>::TAttributeHandle();\
template INTERCHANGECORE_API FAttributeStorage::TAttributeHandle<X>::TAttributeHandle(const FAttributeKey& InKey, const FAttributeStorage* InAttributeStorage);\
template INTERCHANGECORE_API bool FAttributeStorage::TAttributeHandle<X>::IsValid() const;\
template INTERCHANGECORE_API EAttributeStorageResult FAttributeStorage::TAttributeHandle<X>::Get(X& Value) const;\
template INTERCHANGECORE_API EAttributeStorageResult FAttributeStorage::TAttributeHandle<X>::Set(const X& Value);\
template INTERCHANGECORE_API const FAttributeKey& FAttributeStorage::TAttributeHandle<X>::GetKey() const;\
template INTERCHANGECORE_API FAttributeStorage::TAttributeHandle<X> FAttributeStorage::GetAttributeHandle<X>(const FAttributeKey&) const;\
#define X(Name, Desc)
Definition FormatStringSan.h:47
FString AttributeValueToString(const ValueType &Value)
Definition AttributeStorage.cpp:1001
Definition AttributeCurve.h:23