4#include "Containers/Array.h"
6#include "Containers/Map.h"
7#include "Containers/Set.h"
21#define UE_API DATASMITHCORE_API
79 template<
typename VecType>
82 switch (ModelCoordSys)
118 template<
typename VecType>
121 switch (ModelCoordSys)
124 return VecType(V[2], V[0], V[1]);
127 return VecType(-V[2], V[0], V[1]);
130 return VecType(-V[0], V[1], V[2]);
133 return VecType(V[0], -V[1], V[2]);
137 return VecType(V[0], V[1], V[2]);
143 template<
typename Type>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
EDatasmithTransformType
Definition DatasmithDefinitions.h:390
EDatasmithTransformChannels
Definition DatasmithDefinitions.h:110
EDSTextureUtilsError
Definition DatasmithUtils.h:225
#define UE_API
Definition DatasmithUtils.h:21
EDSResizeTextureMode
Definition DatasmithUtils.h:243
ETransformChannelComponents
Definition DatasmithUtils.h:262
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
Definition DatasmithUtils.h:272
static UE_API ETransformChannelComponents GetChannelTypeComponents(EDatasmithTransformChannels Channels, EDatasmithTransformType TransformType)
Definition DatasmithUtils.cpp:500
static UE_API EDatasmithTransformChannels SetChannelTypeComponents(ETransformChannelComponents Components, EDatasmithTransformType TransformType)
Definition DatasmithUtils.cpp:532
Definition DatasmithUtils.h:188
static UE_API void ExtractVertexPositions(const FMeshDescription &Mesh, TArray< FVector3f > &OutPositions)
Definition DatasmithUtils.cpp:461
static UE_API bool ToMeshDescription(FDatasmithMesh &DsMesh, FMeshDescription &MeshDescription, EUvGenerationPolicy UvGen=EUvGenerationPolicy::Ignore)
Definition DatasmithUtils.cpp:298
static UE_API void CreateDefaultUVsWithLOD(FDatasmithMesh &Mesh)
Definition DatasmithUtils.cpp:448
EUvGenerationPolicy
Definition DatasmithUtils.h:197
@ GenerateBox
Definition DatasmithUtils.h:199
@ Ignore
Definition DatasmithUtils.h:198
static UE_API bool IsUVChannelValid(const FDatasmithMesh &DsMesh, const int32 Channel)
Definition DatasmithUtils.cpp:369
Definition DatasmithMesh.h:14
Definition DatasmithUtils.h:282
static UE_API TArray< TSharedPtr< class IDatasmithCustomActorElement > > GetAllCustomActorsFromScene(const TSharedPtr< class IDatasmithScene > &Scene)
Definition DatasmithUtils.cpp:618
static UE_API bool IsMaterialIDUsedInScene(const TSharedPtr< class IDatasmithScene > &Scene, const TSharedPtr< class IDatasmithMaterialIDElement > &MaterialElement)
Definition DatasmithUtils.cpp:680
static UE_API TArray< TSharedPtr< class IDatasmithCameraActorElement > > GetAllCameraActorsFromScene(const TSharedPtr< class IDatasmithScene > &Scene)
Definition DatasmithUtils.cpp:582
static UE_API TArray< TSharedPtr< class IDatasmithMeshActorElement > > GetAllMeshActorsFromScene(const TSharedPtr< class IDatasmithScene > &Scene)
Definition DatasmithUtils.cpp:606
static UE_API TArray< TSharedPtr< class IDatasmithLightActorElement > > GetAllLightActorsFromScene(const TSharedPtr< class IDatasmithScene > &Scene)
Definition DatasmithUtils.cpp:594
static UE_API bool IsPostProcessUsedInScene(const TSharedPtr< class IDatasmithScene > &Scene, const TSharedPtr< class IDatasmithPostProcessElement > &PostProcessElement)
Definition DatasmithUtils.cpp:711
static UE_API bool FindActorHierarchy(const IDatasmithScene *Scene, const TSharedPtr< IDatasmithActorElement > &ToFind, TActorHierarchy &OutHierarchy)
Definition DatasmithUtils.cpp:654
static UE_API void CleanUpScene(TSharedRef< class IDatasmithScene > Scene, bool bRemoveUnused=false)
Definition DatasmithUtils.cpp:1570
Definition DatasmithUtils.h:251
static UE_API bool CalculateTextureHash(const TSharedPtr< class IDatasmithTextureElement > &TextureElement)
Definition DatasmithUtils.cpp:475
static UE_API void CalculateTextureHashes(const TSharedPtr< class IDatasmithScene > &Scene)
Definition DatasmithUtils.cpp:489
Definition DatasmithUtils.h:310
virtual UE_API void Clear()
Definition DatasmithUtils.cpp:1695
virtual ~FDatasmithUniqueNameProviderBase()=default
virtual bool Contains(const FString &Name)=0
virtual void RemoveExistingName(const FString &Name)=0
FDatasmithUniqueNameProviderBase()=default
UE_API FDatasmithUniqueNameProviderBase * operator=(const FDatasmithUniqueNameProviderBase &Other)
Definition DatasmithUtils.cpp:1606
UE_API FString GenerateUniqueName(const FString &BaseName, int32 CharBudget=INT32_MAX)
Definition DatasmithUtils.cpp:1640
virtual void AddExistingName(const FString &Name)=0
Definition DatasmithUtils.h:365
virtual void RemoveExistingName(const FString &Name) override
Definition DatasmithUtils.h:372
virtual void Clear() override
Definition DatasmithUtils.h:374
virtual bool Contains(const FString &Name) override
Definition DatasmithUtils.h:377
virtual void AddExistingName(const FString &Name) override
Definition DatasmithUtils.h:371
void Reserve(int32 NumberOfName)
Definition DatasmithUtils.h:369
Definition DatasmithUtils.h:30
static UE_API void SanitizeStringInplace(FString &InString)
Definition DatasmithUtils.cpp:57
static UE_API float GetDatasmithFormatVersionAsFloat()
Definition DatasmithUtils.cpp:184
static UE_API int32 GetEnterpriseVersionAsInt()
Definition DatasmithUtils.cpp:166
static UE_API void GetCleanFilenameAndExtension(const FString &InFilePath, FString &OutFilename, FString &OutExtension)
Definition DatasmithUtils.cpp:147
static UE_API FString GetEnterpriseVersionAsString(bool bWithChangelist=false)
Definition DatasmithUtils.cpp:178
UE_API static FTransform ConvertTransform(EModelCoordSystem SourceCoordSystem, const FTransform &LocalTransform)
Definition DatasmithUtils.cpp:1701
static UE_API const TCHAR * GetLongAppName()
Definition DatasmithUtils.cpp:204
static UE_API FString GetDatasmithFormatVersionAsString()
Definition DatasmithUtils.cpp:194
static UE_API FString SanitizeObjectName(FString InString)
Definition DatasmithUtils.cpp:74
static UE_API float AreaTriangle3D(const FVector3f &v0, const FVector3f &v1, const FVector3f &v2)
Definition DatasmithUtils.cpp:214
static UE::Math::TMatrix< Type > GetSymmetricMatrix(const UE::Math::TVector< Type > &Origin, const UE::Math::TVector< Type > &Normal)
Definition DatasmithUtils.h:144
static UE_API const TCHAR * GetShortAppName()
Definition DatasmithUtils.cpp:209
static UE_API FString SanitizeName(FString InString)
Definition DatasmithUtils.cpp:68
static UE_API int32 GetDatasmithFormatVersionAsInt()
Definition DatasmithUtils.cpp:189
static UE_API void SanitizeNameInplace(FString &InString)
Definition DatasmithUtils.cpp:39
static UE_API const TCHAR * GetFileExtension()
Definition DatasmithUtils.cpp:199
static void ConvertVectorArray(EModelCoordSystem ModelCoordSys, TArray< VecType > &Array)
Definition DatasmithUtils.h:80
static VecType ConvertVector(EModelCoordSystem ModelCoordSys, const VecType &V)
Definition DatasmithUtils.h:119
EModelCoordSystem
Definition DatasmithUtils.h:71
@ ZUp_RightHanded_FBXLegacy
static UE_API FString SanitizeFileName(FString InString)
Definition DatasmithUtils.cpp:136
Definition IDatasmithSceneElements.h:73
Definition IDatasmithSceneElements.h:1466
Definition RawMesh.Build.cs:6
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition ContainerAllocationPolicies.h:894
Definition MeshDescription.h:94
void SetIdentity()
Definition Matrix.inl:48