Files
UnrealEngineUWP/Engine/Source/Developer/MeshBuilder/Public/IMeshBuilderModule.h
tiago costa c5cbdd1d2c Build Mesh DDC key based on whether mesh is static or skeletal.
#rb luke.thatcher
#preflight 61f1408e7266f4e79bced734

#ROBOMERGE-AUTHOR: tiago.costa
#ROBOMERGE-SOURCE: CL 18734509 in //UE5/Release-5.0/... via CL 18734519 via CL 18734590
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18734602 by tiago costa in ue5-main branch]
2022-01-26 08:33:22 -05:00

40 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
#include "Interfaces/ITargetPlatform.h"
#include "Interfaces/ITargetPlatformManagerModule.h"
struct FStaticMeshBuildVertex;
struct FStaticMeshSection;
class FStaticMeshSectionArray;
class IMeshBuilderModule : public IModuleInterface
{
public:
static inline IMeshBuilderModule& GetForPlatform(const ITargetPlatform* TargetPlatform)
{
check(TargetPlatform);
return FModuleManager::LoadModuleChecked<IMeshBuilderModule>(TargetPlatform->GetMeshBuilderModuleName());
}
static inline IMeshBuilderModule& GetForRunningPlatform()
{
const ITargetPlatform* TargetPlatform = GetTargetPlatformManagerRef().GetRunningTargetPlatform();
return GetForPlatform(TargetPlatform);
}
virtual void AppendToDDCKey(FString& DDCKey, bool bSkeletal) { }
virtual bool BuildMesh(class FStaticMeshRenderData& OutRenderData, class UObject* Mesh, const class FStaticMeshLODGroup& LODGroup, bool bGenerateCoarseMeshStreamingLODs) = 0;
virtual bool BuildMeshVertexPositions(class UObject* StaticMesh, TArray<uint32>& Indices, TArray<FVector3f>& Vertices) = 0;
virtual bool BuildSkeletalMesh(const struct FSkeletalMeshBuildParameters& SkeletalMeshBuildParameters) = 0;
virtual void PostBuildSkeletalMesh(class FSkeletalMeshRenderData* SkeletalMeshRenderData, class USkeletalMesh* SkeletalMesh) { }
};