Files
UnrealEngine/Engine/Plugins/Interchange/Runtime/Source/Nodes/Public/InterchangeMeshDefinitions.h
2025-05-18 13:04:45 +08:00

81 lines
2.8 KiB
C++

// 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<EInterchangeMeshCollision>
{
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");
}
}
}
}