UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Interchange Namespace Reference

Namespaces

namespace  InterchangeReset
 
namespace  PipelinePrivate
 
namespace  Private
 
namespace  SourceNode
 
namespace  TranslatorPrivate
 

Classes

struct  FAnalyticsHelper
 
struct  FAttributeKey
 
class  FAttributeStorage
 
struct  FBaseNodeStaticData
 
struct  FFactoryBaseNodeStaticData
 
class  FFactoryCommon
 
class  FImportAsyncHelper
 
struct  FImportAsyncHelperData
 
class  FImportResult
 
class  FInterchangeTaskBase
 
class  FInterchangeTaskLambda
 
class  FInterchangeTaskSystem
 
class  FPackageUtils
 
class  FScopedBaseNodeContainer
 
class  FScopedInterchangeImportEnableState
 
class  FScopedLambda
 
class  FScopedSourceData
 
class  FScopedTranslator
 
struct  FSourceNodeExtraInfoStaticData
 
class  FTaskCompletion_GameThread
 
class  FTaskCreateSceneObjects_GameThread
 
class  FTaskImportObject_Async
 
class  FTaskImportObject_GameThread
 
class  FTaskImportObjectFinalize_GameThread
 
class  FTaskParsing
 
class  FTaskPipeline
 
class  FTaskPostImport_GameThread
 
class  FTaskPreCompletion_GameThread
 
class  FTaskTranslator
 
class  FTaskWaitAssetCompilation_GameThread
 
class  TArrayAttributeHelper
 
struct  TAttributeStorageTypeTraits
 
struct  TAttributeStorageTypeTraits< TArray< T > >
 
struct  TAttributeTypeTraitsInternal
 
struct  TAttributeTypeTraitsInternal< bool >
 
struct  TAttributeTypeTraitsInternal< double >
 
struct  TAttributeTypeTraitsInternal< FBox2D >
 
struct  TAttributeTypeTraitsInternal< FBox2f >
 
struct  TAttributeTypeTraitsInternal< FBox3d >
 
struct  TAttributeTypeTraitsInternal< FBox3f >
 
struct  TAttributeTypeTraitsInternal< FBoxSphereBounds3d >
 
struct  TAttributeTypeTraitsInternal< FBoxSphereBounds3f >
 
struct  TAttributeTypeTraitsInternal< FColor >
 
struct  TAttributeTypeTraitsInternal< FDateTime >
 
struct  TAttributeTypeTraitsInternal< FFloat16 >
 
struct  TAttributeTypeTraitsInternal< FFrameNumber >
 
struct  TAttributeTypeTraitsInternal< FFrameRate >
 
struct  TAttributeTypeTraitsInternal< FFrameTime >
 
struct  TAttributeTypeTraitsInternal< FGuid >
 
struct  TAttributeTypeTraitsInternal< FIntPoint >
 
struct  TAttributeTypeTraitsInternal< FIntRect >
 
struct  TAttributeTypeTraitsInternal< FIntVector >
 
struct  TAttributeTypeTraitsInternal< FLinearColor >
 
struct  TAttributeTypeTraitsInternal< float >
 
struct  TAttributeTypeTraitsInternal< FMatrix44d >
 
struct  TAttributeTypeTraitsInternal< FMatrix44f >
 
struct  TAttributeTypeTraitsInternal< FName >
 
struct  TAttributeTypeTraitsInternal< FOrientedBox >
 
struct  TAttributeTypeTraitsInternal< FPlane4d >
 
struct  TAttributeTypeTraitsInternal< FPlane4f >
 
struct  TAttributeTypeTraitsInternal< FQuat4d >
 
struct  TAttributeTypeTraitsInternal< FQuat4f >
 
struct  TAttributeTypeTraitsInternal< FRandomStream >
 
struct  TAttributeTypeTraitsInternal< FRotator3d >
 
struct  TAttributeTypeTraitsInternal< FRotator3f >
 
struct  TAttributeTypeTraitsInternal< FSoftObjectPath >
 
struct  TAttributeTypeTraitsInternal< FSphere3d >
 
struct  TAttributeTypeTraitsInternal< FSphere3f >
 
struct  TAttributeTypeTraitsInternal< FString >
 
struct  TAttributeTypeTraitsInternal< FTimespan >
 
struct  TAttributeTypeTraitsInternal< FTransform3d >
 
struct  TAttributeTypeTraitsInternal< FTransform3f >
 
struct  TAttributeTypeTraitsInternal< FTwoVectors >
 
struct  TAttributeTypeTraitsInternal< FVector2D >
 
struct  TAttributeTypeTraitsInternal< FVector2DHalf >
 
struct  TAttributeTypeTraitsInternal< FVector2f >
 
struct  TAttributeTypeTraitsInternal< FVector3d >
 
struct  TAttributeTypeTraitsInternal< FVector3f >
 
struct  TAttributeTypeTraitsInternal< FVector4d >
 
struct  TAttributeTypeTraitsInternal< FVector4f >
 
struct  TAttributeTypeTraitsInternal< int16 >
 
struct  TAttributeTypeTraitsInternal< int32 >
 
struct  TAttributeTypeTraitsInternal< int64 >
 
struct  TAttributeTypeTraitsInternal< int8 >
 
struct  TAttributeTypeTraitsInternal< TArray64< uint8 > >
 
struct  TAttributeTypeTraitsInternal< TArray< bool > >
 
struct  TAttributeTypeTraitsInternal< TArray< double > >
 
struct  TAttributeTypeTraitsInternal< TArray< FBox2D > >
 
struct  TAttributeTypeTraitsInternal< TArray< FBox2f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FBox3d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FBox3f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FBoxSphereBounds3d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FBoxSphereBounds3f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FColor > >
 
struct  TAttributeTypeTraitsInternal< TArray< FDateTime > >
 
struct  TAttributeTypeTraitsInternal< TArray< FFloat16 > >
 
struct  TAttributeTypeTraitsInternal< TArray< FFrameNumber > >
 
struct  TAttributeTypeTraitsInternal< TArray< FFrameRate > >
 
struct  TAttributeTypeTraitsInternal< TArray< FFrameTime > >
 
struct  TAttributeTypeTraitsInternal< TArray< FGuid > >
 
struct  TAttributeTypeTraitsInternal< TArray< FIntPoint > >
 
struct  TAttributeTypeTraitsInternal< TArray< FIntRect > >
 
struct  TAttributeTypeTraitsInternal< TArray< FIntVector > >
 
struct  TAttributeTypeTraitsInternal< TArray< FLinearColor > >
 
struct  TAttributeTypeTraitsInternal< TArray< float > >
 
struct  TAttributeTypeTraitsInternal< TArray< FMatrix44d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FMatrix44f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FName > >
 
struct  TAttributeTypeTraitsInternal< TArray< FOrientedBox > >
 
struct  TAttributeTypeTraitsInternal< TArray< FPlane4d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FPlane4f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FQuat4d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FQuat4f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FRandomStream > >
 
struct  TAttributeTypeTraitsInternal< TArray< FRotator3d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FRotator3f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FSoftObjectPath > >
 
struct  TAttributeTypeTraitsInternal< TArray< FSphere3d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FSphere3f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FString > >
 
struct  TAttributeTypeTraitsInternal< TArray< FTimespan > >
 
struct  TAttributeTypeTraitsInternal< TArray< FTransform3d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FTransform3f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FTwoVectors > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector2D > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector2DHalf > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector2f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector3d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector3f > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector4d > >
 
struct  TAttributeTypeTraitsInternal< TArray< FVector4f > >
 
struct  TAttributeTypeTraitsInternal< TArray< int16 > >
 
struct  TAttributeTypeTraitsInternal< TArray< int32 > >
 
struct  TAttributeTypeTraitsInternal< TArray< int64 > >
 
struct  TAttributeTypeTraitsInternal< TArray< int8 > >
 
struct  TAttributeTypeTraitsInternal< TArray< uint16 > >
 
struct  TAttributeTypeTraitsInternal< TArray< uint32 > >
 
struct  TAttributeTypeTraitsInternal< TArray< uint64 > >
 
struct  TAttributeTypeTraitsInternal< TArray< uint8 > >
 
struct  TAttributeTypeTraitsInternal< uint16 >
 
struct  TAttributeTypeTraitsInternal< uint32 >
 
struct  TAttributeTypeTraitsInternal< uint64 >
 
struct  TAttributeTypeTraitsInternal< uint8 >
 
class  TMapAttributeHelper
 

Typedefs

using FAssetImportResultRef = TSharedRef< FImportResult, ESPMode::ThreadSafe >
 
using FSceneImportResultRef = TSharedRef< FImportResult, ESPMode::ThreadSafe >
 
using FAssetImportResultPtr = TSharedPtr< FImportResult, ESPMode::ThreadSafe >
 
using FSceneImportResultPtr = TSharedPtr< FImportResult, ESPMode::ThreadSafe >
 

Enumerations

enum class  EInterchangeTaskStatus : uint8 { Waiting , Executing , Done }
 
enum class  EInterchangeTaskThread : uint8 { GameThread , AsyncThread }
 
enum class  EAttributeTypes : int32 {
  None = 0 , Bool = 1 , Color = 4 , DateTime = 5 ,
  Double = 6 , Enum = 7 , Float = 8 , Guid = 9 ,
  Int8 = 10 , Int16 = 11 , Int32 = 12 , Int64 = 13 ,
  IntRect = 14 , LinearColor = 15 , Name = 16 , RandomStream = 17 ,
  String = 18 , Timespan = 19 , TwoVectors = 20 , UInt8 = 21 ,
  UInt16 = 22 , UInt32 = 23 , UInt64 = 24 , Vector2d = 25 ,
  IntPoint = 26 , IntVector = 27 , Vector2DHalf = 28 , Float16 = 29 ,
  OrientedBox = 30 , FrameNumber = 31 , FrameRate = 32 , FrameTime = 33 ,
  SoftObjectPath = 34 , Matrix44f = 35 , Matrix44d = 36 , Plane4f = 37 ,
  Plane4d = 38 , Quat4f = 39 , Quat4d = 40 , Rotator3f = 41 ,
  Rotator3d = 42 , Transform3f = 43 , Transform3d = 44 , Vector3f = 45 ,
  Vector3d = 46 , Vector2f = 47 , Vector4f = 48 , Vector4d = 49 ,
  Box2f = 50 , Box2D = 51 , Box3f = 52 , Box3d = 53 ,
  BoxSphereBounds3f = 54 , BoxSphereBounds3d = 55 , Sphere3f = 56 , Sphere3d = 57 ,
  BoolArray = 58 , ColorArray = 59 , DateTimeArray = 60 , DoubleArray = 61 ,
  EnumArray = 62 , FloatArray = 63 , GuidArray = 64 , Int8Array = 65 ,
  Int16Array = 66 , Int32Array = 67 , Int64Array = 68 , IntRectArray = 69 ,
  LinearColorArray = 70 , NameArray = 71 , RandomStreamArray = 72 , StringArray = 73 ,
  TimespanArray = 74 , TwoVectorsArray = 75 , ByteArray = 2 , ByteArray64 = 3 ,
  UInt16Array = 76 , UInt32Array = 77 , UInt64Array = 78 , Vector2dArray = 79 ,
  IntPointArray = 80 , IntVectorArray = 81 , Vector2DHalfArray = 82 , Float16Array = 83 ,
  OrientedBoxArray = 84 , FrameNumberArray = 85 , FrameRateArray = 86 , FrameTimeArray = 87 ,
  SoftObjectPathArray = 88 , Matrix44fArray = 89 , Matrix44dArray = 90 , Plane4fArray = 91 ,
  Plane4dArray = 92 , Quat4fArray = 93 , Quat4dArray = 94 , Rotator3fArray = 95 ,
  Rotator3dArray = 96 , Transform3fArray = 97 , Transform3dArray = 98 , Vector3fArray = 99 ,
  Vector3dArray = 100 , Vector2fArray = 101 , Vector4fArray = 102 , Vector4dArray = 103 ,
  Box2fArray = 104 , Box2DArray = 105 , Box3fArray = 106 , Box3dArray = 107 ,
  BoxSphereBounds3fArray = 108 , BoxSphereBounds3dArray = 109 , Sphere3fArray = 110 , Sphere3dArray = 111 ,
  Max = 112
}
 
enum class  EAttributeStorageResult : uint64 {
  None = 0x0 , Operation_Success = 0x1 , Operation_Error_WrongType = (0x1 << 20) , Operation_Error_WrongSize = (0x1 << 21) ,
  Operation_Error_AttributeAllocationCorrupted = (0x1 << 22) , Operation_Error_CannotFoundKey = (0x1 << 23) , Operation_Error_CannotRemoveAttribute = (0x1 << 24) , Operation_Error_CannotOverrideAttribute = (0x1 << 25) ,
  Operation_Error_InvalidStorage = (0x1 << 26) , Operation_Error_InvalidMultiSizeValueData = (0x1 << 27)
}
 
enum class  EAttributeStorageAddOptions : uint32 { None = 0x0 , Option_Override = 0x1 }
 
enum class  EAttributeProperty : uint32 { None = 0x0 , NoHash = 0x1 }
 
enum class  EImportType : uint8 { ImportType_None , ImportType_Asset , ImportType_Scene }
 

Functions

void SanitizeName (FString &InOutName, bool bIsJoint)
 
FString MakeSanitizedName (const FString &InName, bool bIsJoint)
 
FString MakeName (const FString &InName, bool bIsJoint)
 
int32 GetAssetNameMaxCharCount (const FString &ParentPackage)
 
FString GetAssetNameWBudget (const FString &DesiredAssetName, int32 CharBudget, TCHAR CharReplacement)
 
template<typename T >
FString StringifyArrayAttribute (const T &Array)
 
FString AttributeTypeToString (EAttributeTypes AttributeType)
 
EAttributeTypes StringToAttributeType (const FString &AttributeTypeString)
 
template<typename ValueType >
FString AttributeValueToString (const ValueType &Value)
 
template<typename T >
uint64 GetValueSizeInternal (const T &Value)
 
void LogAttributeStorageErrors (const EAttributeStorageResult Result, const FString OperationName, const FAttributeKey AttributeKey)
 
template<typename T >
void CopyStorageAttributesInternal (const FAttributeStorage &SourceStorage, FAttributeStorage &DestinationStorage, const TArray< T > &AttributeKeys)
 
 SPECIALIZE (bool)
 
 SPECIALIZE (FColor)
 
 SPECIALIZE (FDateTime)
 
 SPECIALIZE (double)
 
 SPECIALIZE (float)
 
 SPECIALIZE (FGuid)
 
 SPECIALIZE (int8)
 
 SPECIALIZE (int16)
 
 SPECIALIZE (int32)
 
 SPECIALIZE (int64)
 
 SPECIALIZE (FIntRect)
 
 SPECIALIZE (FLinearColor)
 
 SPECIALIZE (FName)
 
 SPECIALIZE (FRandomStream)
 
 SPECIALIZE (FTimespan)
 
 SPECIALIZE (FString)
 
 SPECIALIZE (FTwoVectors)
 
 SPECIALIZE (uint8)
 
 SPECIALIZE (uint16)
 
 SPECIALIZE (uint32)
 
 SPECIALIZE (uint64)
 
 SPECIALIZE (FVector2D)
 
 SPECIALIZE (FIntPoint)
 
 SPECIALIZE (FIntVector)
 
 SPECIALIZE (FVector2DHalf)
 
 SPECIALIZE (FFloat16)
 
 SPECIALIZE (FOrientedBox)
 
 SPECIALIZE (FFrameNumber)
 
 SPECIALIZE (FFrameRate)
 
 SPECIALIZE (FFrameTime)
 
 SPECIALIZE (FSoftObjectPath)
 
 SPECIALIZE (FMatrix44f)
 
 SPECIALIZE (FMatrix44d)
 
 SPECIALIZE (FPlane4f)
 
 SPECIALIZE (FPlane4d)
 
 SPECIALIZE (FQuat4f)
 
 SPECIALIZE (FQuat4d)
 
 SPECIALIZE (FRotator3f)
 
 SPECIALIZE (FRotator3d)
 
 SPECIALIZE (FTransform3f)
 
 SPECIALIZE (FTransform3d)
 
 SPECIALIZE (FVector3f)
 
 SPECIALIZE (FVector3d)
 
 SPECIALIZE (FVector2f)
 
 SPECIALIZE (FVector4f)
 
 SPECIALIZE (FVector4d)
 
 SPECIALIZE (FBox2f)
 
 SPECIALIZE (FBox2D)
 
 SPECIALIZE (FBox3f)
 
 SPECIALIZE (FBox3d)
 
 SPECIALIZE (FBoxSphereBounds3f)
 
 SPECIALIZE (FBoxSphereBounds3d)
 
 SPECIALIZE (FSphere3f)
 
 SPECIALIZE (FSphere3d)
 
 SPECIALIZE (TArray< bool >)
 
 SPECIALIZE (TArray< FColor >)
 
 SPECIALIZE (TArray< FDateTime >)
 
 SPECIALIZE (TArray< double >)
 
 SPECIALIZE (TArray< float >)
 
 SPECIALIZE (TArray< FGuid >)
 
 SPECIALIZE (TArray< int8 >)
 
 SPECIALIZE (TArray< int16 >)
 
 SPECIALIZE (TArray< int32 >)
 
 SPECIALIZE (TArray< int64 >)
 
 SPECIALIZE (TArray< FIntRect >)
 
 SPECIALIZE (TArray< FLinearColor >)
 
 SPECIALIZE (TArray< FName >)
 
 SPECIALIZE (TArray< FRandomStream >)
 
 SPECIALIZE (TArray< FTimespan >)
 
 SPECIALIZE (TArray< FString >)
 
 SPECIALIZE (TArray< FTwoVectors >)
 
 SPECIALIZE (TArray< uint8 >)
 
 SPECIALIZE (TArray64< uint8 >)
 
 SPECIALIZE (TArray< uint16 >)
 
 SPECIALIZE (TArray< uint32 >)
 
 SPECIALIZE (TArray< uint64 >)
 
 SPECIALIZE (TArray< FVector2D >)
 
 SPECIALIZE (TArray< FIntPoint >)
 
 SPECIALIZE (TArray< FIntVector >)
 
 SPECIALIZE (TArray< FVector2DHalf >)
 
 SPECIALIZE (TArray< FFloat16 >)
 
 SPECIALIZE (TArray< FOrientedBox >)
 
 SPECIALIZE (TArray< FFrameNumber >)
 
 SPECIALIZE (TArray< FFrameRate >)
 
 SPECIALIZE (TArray< FFrameTime >)
 
 SPECIALIZE (TArray< FSoftObjectPath >)
 
 SPECIALIZE (TArray< FMatrix44f >)
 
 SPECIALIZE (TArray< FMatrix44d >)
 
 SPECIALIZE (TArray< FPlane4f >)
 
 SPECIALIZE (TArray< FPlane4d >)
 
 SPECIALIZE (TArray< FQuat4f >)
 
 SPECIALIZE (TArray< FQuat4d >)
 
 SPECIALIZE (TArray< FRotator3f >)
 
 SPECIALIZE (TArray< FRotator3d >)
 
 SPECIALIZE (TArray< FTransform3f >)
 
 SPECIALIZE (TArray< FTransform3d >)
 
 SPECIALIZE (TArray< FVector3f >)
 
 SPECIALIZE (TArray< FVector3d >)
 
 SPECIALIZE (TArray< FVector2f >)
 
 SPECIALIZE (TArray< FVector4f >)
 
 SPECIALIZE (TArray< FVector4d >)
 
 SPECIALIZE (TArray< FBox2f >)
 
 SPECIALIZE (TArray< FBox2D >)
 
 SPECIALIZE (TArray< FBox3f >)
 
 SPECIALIZE (TArray< FBox3d >)
 
 SPECIALIZE (TArray< FBoxSphereBounds3f >)
 
 SPECIALIZE (TArray< FBoxSphereBounds3d >)
 
 SPECIALIZE (TArray< FSphere3f >)
 
 SPECIALIZE (TArray< FSphere3d >)
 
 DECLARE_DELEGATE_RetVal_OneParam (bool, FApplyAttributeToAsset, UObject *)
 
 DECLARE_DELEGATE_RetVal_OneParam (bool, FFillAttributeToAsset, UObject *)
 
uint32 GetTypeHash (const FAttributeKey &AttributeKey)
 
template<typename T , typename Enable = void>
struct UE_DEPRECATED (5.7, "No longer used: The AttributeStorage handles all supported type traits internally now.") TAttributeTypeTraits
 
template<typename ValueType >
INTERCHANGECORE_API FString AttributeValueToString (const ValueType &Value)
 
bool HasAttributeStorageResult (const EAttributeStorageResult Result, const EAttributeStorageResult RefResult)
 
bool IsAttributeStorageResultSuccess (const EAttributeStorageResult Result)
 
bool HasAttributeStorageAddOption (const EAttributeStorageAddOptions Options, const EAttributeStorageAddOptions RefOptions)
 
bool HasAttributeProperty (const EAttributeProperty PropertyA, const EAttributeProperty PropertyB)
 
template<typename T >
struct UE_DEPRECATED (5.7, "No longer used.") TSpecializeType
 
INTERCHANGEENGINE_API UInterchangePipelineBaseGeneratePipelineInstance (const FSoftObjectPath &PipelineInstance)
 

Variables

template<typename T >
constexpr bool TIsStringType = std::is_same_v<T, FString> || std::is_same_v<T, FName> || std::is_same_v<T, FSoftObjectPath>
 
template<typename T >
constexpr bool TIsArrayOfStringType = TAttributeStorageTypeTraits<T>::bIsArrayOfStringType
 
template<typename T >
constexpr bool TIsArrayOfEnumType = TAttributeStorageTypeTraits<T>::bIsArrayOfEnumType
 
template<typename T >
constexpr bool TIsArrayOfEnumAsByteType = TAttributeStorageTypeTraits<T>::bIsArrayOfEnumAsByteType
 
template<typename T >
constexpr bool TIsNonEnumType = !TIsEnum<T>::Value && !TIsTEnumAsByte<T>::Value && !TIsArrayOfEnumType<T> && !TIsArrayOfEnumAsByteType<T>
 

Typedef Documentation

◆ FAssetImportResultPtr

◆ FAssetImportResultRef

◆ FSceneImportResultPtr

◆ FSceneImportResultRef

Enumeration Type Documentation

◆ EAttributeProperty

Enumerates the attribute properties. Those properties affect how the attribute are stored or what they are used for.

Enumerator
None 
NoHash 

◆ EAttributeStorageAddOptions

Enum to pass options when we add an attribute.

Enumerator
None 
Option_Override 

◆ EAttributeStorageResult

Enum to return complete status of a storage operation. It supports success with additional information. It supports multiple errors.

Enumerator
None 
Operation_Success 
Operation_Error_WrongType 
Operation_Error_WrongSize 
Operation_Error_AttributeAllocationCorrupted 
Operation_Error_CannotFoundKey 
Operation_Error_CannotRemoveAttribute 
Operation_Error_CannotOverrideAttribute 
Operation_Error_InvalidStorage 
Operation_Error_InvalidMultiSizeValueData 

◆ EAttributeTypes

Enumerates the built-in types that can be stored in instances of FAttributeStorage. We cannot change the value of a type to make sure the serialization of old assets is always working.

Enumerator
None 
Bool 
Color 
DateTime 
Double 
Enum 
Float 
Guid 
Int8 
Int16 
Int32 
Int64 
IntRect 
LinearColor 
Name 
RandomStream 
String 
Timespan 
TwoVectors 
UInt8 
UInt16 
UInt32 
UInt64 
Vector2d 
IntPoint 
IntVector 
Vector2DHalf 
Float16 
OrientedBox 
FrameNumber 
FrameRate 
FrameTime 
SoftObjectPath 
Matrix44f 
Matrix44d 
Plane4f 
Plane4d 
Quat4f 
Quat4d 
Rotator3f 
Rotator3d 
Transform3f 
Transform3d 
Vector3f 
Vector3d 
Vector2f 
Vector4f 
Vector4d 
Box2f 
Box2D 
Box3f 
Box3d 
BoxSphereBounds3f 
BoxSphereBounds3d 
Sphere3f 
Sphere3d 
BoolArray 
ColorArray 
DateTimeArray 
DoubleArray 
EnumArray 
FloatArray 
GuidArray 
Int8Array 
Int16Array 
Int32Array 
Int64Array 
IntRectArray 
LinearColorArray 
NameArray 
RandomStreamArray 
StringArray 
TimespanArray 
TwoVectorsArray 
ByteArray 
ByteArray64 
UInt16Array 
UInt32Array 
UInt64Array 
Vector2dArray 
IntPointArray 
IntVectorArray 
Vector2DHalfArray 
Float16Array 
OrientedBoxArray 
FrameNumberArray 
FrameRateArray 
FrameTimeArray 
SoftObjectPathArray 
Matrix44fArray 
Matrix44dArray 
Plane4fArray 
Plane4dArray 
Quat4fArray 
Quat4dArray 
Rotator3fArray 
Rotator3dArray 
Transform3fArray 
Transform3dArray 
Vector3fArray 
Vector3dArray 
Vector2fArray 
Vector4fArray 
Vector4dArray 
Box2fArray 
Box2DArray 
Box3fArray 
Box3dArray 
BoxSphereBounds3fArray 
BoxSphereBounds3dArray 
Sphere3fArray 
Sphere3dArray 
Max 

◆ EImportType

Enumerator
ImportType_None 
ImportType_Asset 
ImportType_Scene 

◆ EInterchangeTaskStatus

Enumerator
Waiting 
Executing 
Done 

◆ EInterchangeTaskThread

Enumerator
GameThread 
AsyncThread 

Function Documentation

◆ AttributeTypeToString()

INTERCHANGECORE_API FString UE::Interchange::AttributeTypeToString ( EAttributeTypes  AttributeType)

Return the FString for the specified AttributeType.

◆ AttributeValueToString() [1/2]

template<typename ValueType >
FString UE::Interchange::AttributeValueToString ( const ValueType &  Value)

◆ AttributeValueToString() [2/2]

template<typename ValueType >
INTERCHANGECORE_API FString UE::Interchange::AttributeValueToString ( const ValueType &  Value)

◆ CopyStorageAttributesInternal()

template<typename T >
void UE::Interchange::CopyStorageAttributesInternal ( const FAttributeStorage SourceStorage,
FAttributeStorage DestinationStorage,
const TArray< T > &  AttributeKeys 
)

◆ DECLARE_DELEGATE_RetVal_OneParam() [1/2]

UE::Interchange::DECLARE_DELEGATE_RetVal_OneParam ( bool  ,
FApplyAttributeToAsset  ,
UObject  
)

◆ DECLARE_DELEGATE_RetVal_OneParam() [2/2]

UE::Interchange::DECLARE_DELEGATE_RetVal_OneParam ( bool  ,
FFillAttributeToAsset  ,
UObject  
)

◆ GeneratePipelineInstance()

UInterchangePipelineBase * UE::Interchange::GeneratePipelineInstance ( const FSoftObjectPath PipelineInstance)

◆ GetAssetNameMaxCharCount()

INTERCHANGECORE_API int32 UE::Interchange::GetAssetNameMaxCharCount ( const FString &  ParentPackage)

Try to compute a char budget for asset names, including FNames constraints, OS constraints, parent package, and user defined limitation.

Parameters
ParentPackagedestination of the asset (Package path consume a part of the budget)
Returns
An estimation of the budget for asset names

◆ GetAssetNameWBudget()

INTERCHANGECORE_API FString UE::Interchange::GetAssetNameWBudget ( const FString &  ParentPackage,
int32  CharBudget,
TCHAR  CharReplacement = TEXT( '_') 
)

Generate a new name for DesiredAssetName based on a character budget. Any characters out of the budget limit will be stripped out

Parameters
DesiredAssetName- the name of the package that needs to fulfill the OS constraints
CharBudget- characters limit for the new generated name (if 0, the string will be returned with a warning, meaning we couldn't generate a new name)
CharReplacement- the character replacement of the trimmed substring
Returns
The new generated name if out of budget, or just the string if it's in the budget limitation

◆ GetTypeHash()

uint32 UE::Interchange::GetTypeHash ( const FAttributeKey AttributeKey)
inline

◆ GetValueSizeInternal()

template<typename T >
uint64 UE::Interchange::GetValueSizeInternal ( const T &  Value)

Return the storage size of the value in bytes

◆ HasAttributeProperty()

bool UE::Interchange::HasAttributeProperty ( const EAttributeProperty  PropertyA,
const EAttributeProperty  PropertyB 
)
inline

Helper function to interpret an attribute property.

◆ HasAttributeStorageAddOption()

bool UE::Interchange::HasAttributeStorageAddOption ( const EAttributeStorageAddOptions  Options,
const EAttributeStorageAddOptions  RefOptions 
)
inline

Helper function to interpret storage add options.

◆ HasAttributeStorageResult()

bool UE::Interchange::HasAttributeStorageResult ( const EAttributeStorageResult  Result,
const EAttributeStorageResult  RefResult 
)
inline

Helper function to interpret storage results.

Returns
true if the result contains at least one of the RefResult flags.

◆ IsAttributeStorageResultSuccess()

bool UE::Interchange::IsAttributeStorageResultSuccess ( const EAttributeStorageResult  Result)
inline

Helper function to determine if the storage result is success.

Returns
true if the result contains Operation_Success.

◆ LogAttributeStorageErrors()

INTERCHANGECORE_API void UE::Interchange::LogAttributeStorageErrors ( const EAttributeStorageResult  Result,
const FString  OperationName,
const FAttributeKey  AttributeKey 
)

Helper function to transform an operation result into a LOG.

Parameters
Result- The result we want to output a log for.
OperationName- The operation name that ended up with the specified result.
AttributeKey- The attribute we applied the operation to.

◆ MakeName()

INTERCHANGECORE_API FString UE::Interchange::MakeName ( const FString &  InName,
bool  bIsJoint 
)

◆ MakeSanitizedName()

INTERCHANGECORE_API FString UE::Interchange::MakeSanitizedName ( const FString &  InName,
bool  bIsJoint = false 
)

Returns a sanitized copy of InName, that is both filename and FName compatible. Returns "Null" if empty or invalid for FName.

◆ SanitizeName()

INTERCHANGECORE_API void UE::Interchange::SanitizeName ( FString &  InOutName,
bool  bIsJoint = false 
)

Sanitize InOutName so it's both filename and FName compatible.

Parameters
InOutNameThe name to sanitize in place, will be replaced by "Null" if empty or invalid for FName.

◆ SPECIALIZE() [1/109]

UE::Interchange::SPECIALIZE ( bool  )

◆ SPECIALIZE() [2/109]

UE::Interchange::SPECIALIZE ( double  )

◆ SPECIALIZE() [3/109]

UE::Interchange::SPECIALIZE ( FBox2D  )

◆ SPECIALIZE() [4/109]

UE::Interchange::SPECIALIZE ( FBox2f  )

◆ SPECIALIZE() [5/109]

UE::Interchange::SPECIALIZE ( FBox3d  )

◆ SPECIALIZE() [6/109]

UE::Interchange::SPECIALIZE ( FBox3f  )

◆ SPECIALIZE() [7/109]

UE::Interchange::SPECIALIZE ( FBoxSphereBounds3d  )

◆ SPECIALIZE() [8/109]

UE::Interchange::SPECIALIZE ( FBoxSphereBounds3f  )

◆ SPECIALIZE() [9/109]

UE::Interchange::SPECIALIZE ( FColor  )

◆ SPECIALIZE() [10/109]

UE::Interchange::SPECIALIZE ( FDateTime  )

◆ SPECIALIZE() [11/109]

UE::Interchange::SPECIALIZE ( FFloat16  )

◆ SPECIALIZE() [12/109]

UE::Interchange::SPECIALIZE ( FFrameNumber  )

◆ SPECIALIZE() [13/109]

UE::Interchange::SPECIALIZE ( FFrameRate  )

◆ SPECIALIZE() [14/109]

UE::Interchange::SPECIALIZE ( FFrameTime  )

◆ SPECIALIZE() [15/109]

UE::Interchange::SPECIALIZE ( FGuid  )

◆ SPECIALIZE() [16/109]

UE::Interchange::SPECIALIZE ( FIntPoint  )

◆ SPECIALIZE() [17/109]

UE::Interchange::SPECIALIZE ( FIntRect  )

◆ SPECIALIZE() [18/109]

UE::Interchange::SPECIALIZE ( FIntVector  )

◆ SPECIALIZE() [19/109]

UE::Interchange::SPECIALIZE ( FLinearColor  )

◆ SPECIALIZE() [20/109]

UE::Interchange::SPECIALIZE ( float  )

◆ SPECIALIZE() [21/109]

UE::Interchange::SPECIALIZE ( FMatrix44d  )

◆ SPECIALIZE() [22/109]

UE::Interchange::SPECIALIZE ( FMatrix44f  )

◆ SPECIALIZE() [23/109]

UE::Interchange::SPECIALIZE ( FName  )

◆ SPECIALIZE() [24/109]

UE::Interchange::SPECIALIZE ( FOrientedBox  )

◆ SPECIALIZE() [25/109]

UE::Interchange::SPECIALIZE ( FPlane4d  )

◆ SPECIALIZE() [26/109]

UE::Interchange::SPECIALIZE ( FPlane4f  )

◆ SPECIALIZE() [27/109]

UE::Interchange::SPECIALIZE ( FQuat4d  )

◆ SPECIALIZE() [28/109]

UE::Interchange::SPECIALIZE ( FQuat4f  )

◆ SPECIALIZE() [29/109]

UE::Interchange::SPECIALIZE ( FRandomStream  )

◆ SPECIALIZE() [30/109]

UE::Interchange::SPECIALIZE ( FRotator3d  )

◆ SPECIALIZE() [31/109]

UE::Interchange::SPECIALIZE ( FRotator3f  )

◆ SPECIALIZE() [32/109]

UE::Interchange::SPECIALIZE ( FSoftObjectPath  )

◆ SPECIALIZE() [33/109]

UE::Interchange::SPECIALIZE ( FSphere3d  )

◆ SPECIALIZE() [34/109]

UE::Interchange::SPECIALIZE ( FSphere3f  )

◆ SPECIALIZE() [35/109]

UE::Interchange::SPECIALIZE ( FString  )

◆ SPECIALIZE() [36/109]

UE::Interchange::SPECIALIZE ( FTimespan  )

◆ SPECIALIZE() [37/109]

UE::Interchange::SPECIALIZE ( FTransform3d  )

◆ SPECIALIZE() [38/109]

UE::Interchange::SPECIALIZE ( FTransform3f  )

◆ SPECIALIZE() [39/109]

UE::Interchange::SPECIALIZE ( FTwoVectors  )

◆ SPECIALIZE() [40/109]

UE::Interchange::SPECIALIZE ( FVector2D  )

◆ SPECIALIZE() [41/109]

UE::Interchange::SPECIALIZE ( FVector2DHalf  )

◆ SPECIALIZE() [42/109]

UE::Interchange::SPECIALIZE ( FVector2f  )

◆ SPECIALIZE() [43/109]

UE::Interchange::SPECIALIZE ( FVector3d  )

◆ SPECIALIZE() [44/109]

UE::Interchange::SPECIALIZE ( FVector3f  )

◆ SPECIALIZE() [45/109]

UE::Interchange::SPECIALIZE ( FVector4d  )

◆ SPECIALIZE() [46/109]

UE::Interchange::SPECIALIZE ( FVector4f  )

◆ SPECIALIZE() [47/109]

UE::Interchange::SPECIALIZE ( int16  )

◆ SPECIALIZE() [48/109]

UE::Interchange::SPECIALIZE ( int32  )

◆ SPECIALIZE() [49/109]

UE::Interchange::SPECIALIZE ( int64  )

◆ SPECIALIZE() [50/109]

UE::Interchange::SPECIALIZE ( int8  )

◆ SPECIALIZE() [51/109]

UE::Interchange::SPECIALIZE ( TArray64< uint8 )

◆ SPECIALIZE() [52/109]

UE::Interchange::SPECIALIZE ( TArray< bool )

◆ SPECIALIZE() [53/109]

UE::Interchange::SPECIALIZE ( TArray< double )

◆ SPECIALIZE() [54/109]

UE::Interchange::SPECIALIZE ( TArray< FBox2D )

◆ SPECIALIZE() [55/109]

UE::Interchange::SPECIALIZE ( TArray< FBox2f )

◆ SPECIALIZE() [56/109]

UE::Interchange::SPECIALIZE ( TArray< FBox3d )

◆ SPECIALIZE() [57/109]

UE::Interchange::SPECIALIZE ( TArray< FBox3f )

◆ SPECIALIZE() [58/109]

UE::Interchange::SPECIALIZE ( TArray< FBoxSphereBounds3d )

◆ SPECIALIZE() [59/109]

UE::Interchange::SPECIALIZE ( TArray< FBoxSphereBounds3f )

◆ SPECIALIZE() [60/109]

UE::Interchange::SPECIALIZE ( TArray< FColor )

◆ SPECIALIZE() [61/109]

UE::Interchange::SPECIALIZE ( TArray< FDateTime )

◆ SPECIALIZE() [62/109]

UE::Interchange::SPECIALIZE ( TArray< FFloat16 )

◆ SPECIALIZE() [63/109]

UE::Interchange::SPECIALIZE ( TArray< FFrameNumber )

◆ SPECIALIZE() [64/109]

UE::Interchange::SPECIALIZE ( TArray< FFrameRate )

◆ SPECIALIZE() [65/109]

UE::Interchange::SPECIALIZE ( TArray< FFrameTime )

◆ SPECIALIZE() [66/109]

UE::Interchange::SPECIALIZE ( TArray< FGuid )

◆ SPECIALIZE() [67/109]

UE::Interchange::SPECIALIZE ( TArray< FIntPoint )

◆ SPECIALIZE() [68/109]

UE::Interchange::SPECIALIZE ( TArray< FIntRect )

◆ SPECIALIZE() [69/109]

UE::Interchange::SPECIALIZE ( TArray< FIntVector )

◆ SPECIALIZE() [70/109]

UE::Interchange::SPECIALIZE ( TArray< FLinearColor )

◆ SPECIALIZE() [71/109]

UE::Interchange::SPECIALIZE ( TArray< float )

◆ SPECIALIZE() [72/109]

UE::Interchange::SPECIALIZE ( TArray< FMatrix44d )

◆ SPECIALIZE() [73/109]

UE::Interchange::SPECIALIZE ( TArray< FMatrix44f )

◆ SPECIALIZE() [74/109]

UE::Interchange::SPECIALIZE ( TArray< FName )

◆ SPECIALIZE() [75/109]

UE::Interchange::SPECIALIZE ( TArray< FOrientedBox )

◆ SPECIALIZE() [76/109]

UE::Interchange::SPECIALIZE ( TArray< FPlane4d )

◆ SPECIALIZE() [77/109]

UE::Interchange::SPECIALIZE ( TArray< FPlane4f )

◆ SPECIALIZE() [78/109]

UE::Interchange::SPECIALIZE ( TArray< FQuat4d )

◆ SPECIALIZE() [79/109]

UE::Interchange::SPECIALIZE ( TArray< FQuat4f )

◆ SPECIALIZE() [80/109]

UE::Interchange::SPECIALIZE ( TArray< FRandomStream )

◆ SPECIALIZE() [81/109]

UE::Interchange::SPECIALIZE ( TArray< FRotator3d )

◆ SPECIALIZE() [82/109]

UE::Interchange::SPECIALIZE ( TArray< FRotator3f )

◆ SPECIALIZE() [83/109]

UE::Interchange::SPECIALIZE ( TArray< FSoftObjectPath )

◆ SPECIALIZE() [84/109]

UE::Interchange::SPECIALIZE ( TArray< FSphere3d )

◆ SPECIALIZE() [85/109]

UE::Interchange::SPECIALIZE ( TArray< FSphere3f )

◆ SPECIALIZE() [86/109]

UE::Interchange::SPECIALIZE ( TArray< FString >  )

◆ SPECIALIZE() [87/109]

UE::Interchange::SPECIALIZE ( TArray< FTimespan )

◆ SPECIALIZE() [88/109]

UE::Interchange::SPECIALIZE ( TArray< FTransform3d )

◆ SPECIALIZE() [89/109]

UE::Interchange::SPECIALIZE ( TArray< FTransform3f )

◆ SPECIALIZE() [90/109]

UE::Interchange::SPECIALIZE ( TArray< FTwoVectors )

◆ SPECIALIZE() [91/109]

UE::Interchange::SPECIALIZE ( TArray< FVector2D )

◆ SPECIALIZE() [92/109]

UE::Interchange::SPECIALIZE ( TArray< FVector2DHalf )

◆ SPECIALIZE() [93/109]

UE::Interchange::SPECIALIZE ( TArray< FVector2f )

◆ SPECIALIZE() [94/109]

UE::Interchange::SPECIALIZE ( TArray< FVector3d )

◆ SPECIALIZE() [95/109]

UE::Interchange::SPECIALIZE ( TArray< FVector3f )

◆ SPECIALIZE() [96/109]

UE::Interchange::SPECIALIZE ( TArray< FVector4d )

◆ SPECIALIZE() [97/109]

UE::Interchange::SPECIALIZE ( TArray< FVector4f )

◆ SPECIALIZE() [98/109]

UE::Interchange::SPECIALIZE ( TArray< int16 )

◆ SPECIALIZE() [99/109]

UE::Interchange::SPECIALIZE ( TArray< int32 )

◆ SPECIALIZE() [100/109]

UE::Interchange::SPECIALIZE ( TArray< int64 )

◆ SPECIALIZE() [101/109]

UE::Interchange::SPECIALIZE ( TArray< int8 )

◆ SPECIALIZE() [102/109]

UE::Interchange::SPECIALIZE ( TArray< uint16 )

◆ SPECIALIZE() [103/109]

UE::Interchange::SPECIALIZE ( TArray< uint32 )

◆ SPECIALIZE() [104/109]

UE::Interchange::SPECIALIZE ( TArray< uint64 )

◆ SPECIALIZE() [105/109]

UE::Interchange::SPECIALIZE ( TArray< uint8 )

◆ SPECIALIZE() [106/109]

UE::Interchange::SPECIALIZE ( uint16  )

◆ SPECIALIZE() [107/109]

UE::Interchange::SPECIALIZE ( uint32  )

◆ SPECIALIZE() [108/109]

UE::Interchange::SPECIALIZE ( uint64  )

◆ SPECIALIZE() [109/109]

UE::Interchange::SPECIALIZE ( uint8  )

◆ StringifyArrayAttribute()

template<typename T >
FString UE::Interchange::StringifyArrayAttribute ( const T &  Array)

◆ StringToAttributeType()

INTERCHANGECORE_API EAttributeTypes UE::Interchange::StringToAttributeType ( const FString &  AttributeTypeString)

Return the AttributeType for the specified FString, or return EAttributeTypes::None if the string does not match any supported attribute type.

◆ UE_DEPRECATED() [1/2]

template<typename T >
struct UE::Interchange::UE_DEPRECATED ( 5.  7,
"No longer used."   
)

◆ UE_DEPRECATED() [2/2]

template<typename T , typename Enable = void>
struct UE::Interchange::UE_DEPRECATED ( 5.  7,
"No longer used: The AttributeStorage handles all supported type traits internally now."   
)

Variable Documentation

◆ TIsArrayOfEnumAsByteType

template<typename T >
constexpr bool UE::Interchange::TIsArrayOfEnumAsByteType = TAttributeStorageTypeTraits<T>::bIsArrayOfEnumAsByteType
inlineconstexpr

◆ TIsArrayOfEnumType

template<typename T >
constexpr bool UE::Interchange::TIsArrayOfEnumType = TAttributeStorageTypeTraits<T>::bIsArrayOfEnumType
inlineconstexpr

◆ TIsArrayOfStringType

template<typename T >
constexpr bool UE::Interchange::TIsArrayOfStringType = TAttributeStorageTypeTraits<T>::bIsArrayOfStringType
inlineconstexpr

◆ TIsNonEnumType

template<typename T >
constexpr bool UE::Interchange::TIsNonEnumType = !TIsEnum<T>::Value && !TIsTEnumAsByte<T>::Value && !TIsArrayOfEnumType<T> && !TIsArrayOfEnumAsByteType<T>
inlineconstexpr

◆ TIsStringType

template<typename T >
constexpr bool UE::Interchange::TIsStringType = std::is_same_v<T, FString> || std::is_same_v<T, FName> || std::is_same_v<T, FSoftObjectPath>
inlineconstexpr