Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportOptionsStaticMesh.cpp
2025-05-18 13:04:45 +08:00

64 lines
2.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Factories/FbxSceneImportOptionsStaticMesh.h"
#include "Containers/EnumAsByte.h"
#include "Factories/FbxMeshImportData.h"
#include "Factories/FbxSceneImportOptions.h"
#include "Factories/FbxStaticMeshImportData.h"
#include "Math/MathFwd.h"
#include "Math/Rotator.h"
#include "Math/Vector.h"
#include "Misc/AssertionMacros.h"
#include "UObject/UnrealNames.h"
UFbxSceneImportOptionsStaticMesh::UFbxSceneImportOptionsStaticMesh(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
, StaticMeshLODGroup(NAME_None)
, bAutoGenerateCollision(true)
, bRemoveDegenerates(true)
, bBuildReversedIndexBuffer(true)
, bGenerateLightmapUVs(true)
, bOneConvexHullPerUCX(true)
{
VertexOverrideColor = FColor(255, 255, 255, 255);
NormalImportMethod = EFBXSceneNormalImportMethod::FBXSceneNIM_ComputeNormals;
NormalGenerationMethod = EFBXSceneNormalGenerationMethod::MikkTSpace;
}
void UFbxSceneImportOptionsStaticMesh::FillStaticMeshInmportData(UFbxStaticMeshImportData* StaticMeshImportData, UFbxSceneImportOptions* SceneImportOptions)
{
check(StaticMeshImportData != nullptr);
check(SceneImportOptions != nullptr);
StaticMeshImportData->bAutoGenerateCollision = bAutoGenerateCollision;
StaticMeshImportData->bBuildReversedIndexBuffer = bBuildReversedIndexBuffer;
StaticMeshImportData->bGenerateLightmapUVs = bGenerateLightmapUVs;
StaticMeshImportData->bOneConvexHullPerUCX = bOneConvexHullPerUCX;
StaticMeshImportData->bRemoveDegenerates = bRemoveDegenerates;
StaticMeshImportData->StaticMeshLODGroup = StaticMeshLODGroup;
switch (VertexColorImportOption)
{
case EFbxSceneVertexColorImportOption::Ignore:
StaticMeshImportData->VertexColorImportOption = EVertexColorImportOption::Ignore;
break;
case EFbxSceneVertexColorImportOption::Override:
StaticMeshImportData->VertexColorImportOption = EVertexColorImportOption::Override;
break;
case EFbxSceneVertexColorImportOption::Replace:
StaticMeshImportData->VertexColorImportOption = EVertexColorImportOption::Replace;
break;
}
StaticMeshImportData->VertexOverrideColor = VertexOverrideColor;
//Scene general options
StaticMeshImportData->bImportMeshLODs = SceneImportOptions->bImportStaticMeshLODs;
StaticMeshImportData->ImportTranslation = SceneImportOptions->ImportTranslation;
StaticMeshImportData->ImportRotation = SceneImportOptions->ImportRotation;
StaticMeshImportData->ImportUniformScale = SceneImportOptions->ImportUniformScale;
StaticMeshImportData->bTransformVertexToAbsolute = SceneImportOptions->bTransformVertexToAbsolute;
StaticMeshImportData->bBakePivotInVertex = SceneImportOptions->bBakePivotInVertex;
StaticMeshImportData->bImportAsScene = true;
}