// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "UObject/NameTypes.h" #include "Types/AttributeStorage.h" #include "InterchangeMeshDefinitions.generated.h" UENUM(BlueprintType) enum class EInterchangeMeshCollision : uint8 { /** Generates a new box collision mesh encompassing the static mesh*/ Box, /** Generates a new sphere collision mesh encompassing the static mesh*/ Sphere, /** Generates a new capsule collision mesh encompassing the static mesh*/ Capsule, /** Generates a new axis-aligned box collision mesh with the 4 X-axis aligned edges beveled (10 total sides) encompassing the static mesh*/ Convex10DOP_X UMETA(DisplayName="10DOP-X Simplified"), /** Generates a new axis-aligned box collision mesh with the 4 Y-axis aligned edges beveled (10 total sides) encompassing the static mesh*/ Convex10DOP_Y UMETA(DisplayName = "10DOP-Y Simplified"), /** Generates a new axis-aligned box collision mesh with the 4 Z-axis aligned edges beveled (10 total sides) encompassing the static mesh*/ Convex10DOP_Z UMETA(DisplayName = "10DOP-Z Simplified"), /** Generates a new axis-aligned box collision mesh with all edges beveled (18 total sides) encompassing the static mesh*/ Convex18DOP UMETA(DisplayName = "18DOP Simplified"), /** Generates a new axis-aligned box collision mesh with all edges and corners beveled (26 total sides) encompassing the static mesh*/ Convex26DOP UMETA(DisplayName = "26DOP Simplified"), /** Generates no collisions, but continue to import custom collisions if the file has ones*/ None = 0xFF }; UENUM(BlueprintType) enum class EInterchangeMotionVectorsHandling : uint8 { /** No motion vectors will be present in the geometry cache. */ NoMotionVectors, /** Imports the velocities and converts them to motion vectors. This will increase file size as the motion vectors will be stored on disc. */ ImportVelocitiesAsMotionVectors, /** Force calculation of motion vectors during import. This will increase file size as the motion vectors will be stored on disc. */ CalculateMotionVectorsDuringImport }; namespace UE { namespace Interchange { template<> struct TAttributeTypeTraits { static constexpr EAttributeTypes GetType() { return EAttributeTypes::UInt8; } static FString ToString(const uint16& Value) { int32 ValueConv = Value; FStringFormatOrderedArguments OrderedArguments; OrderedArguments.Add(FStringFormatArg(ValueConv)); return FString::Format(TEXT("{0}"), OrderedArguments); } }; namespace MeshPayload { namespace Attributes { const FString RootJointGlobalTransform = TEXT("__Payload__RootJointGlobalTransform"); const FString MeshGlobalTransform = TEXT("__Payload__MeshGlobalTransform"); const FString BakeMeshes = TEXT("__Payload__BakeMeshes"); } } } }