Files
UnrealEngineUWP/Engine/Source/Developer/MeshBuilder/Public/MeshBuilder.h
tiago costa abca6b5a6c Resubmit CL26160360, 26146080, 26137852, 26126752
Only leaving CL 26157603 reverted since accessing GenerateSource in FDistanceFieldVolumeData::CacheDerivedData is not safe due to async mesh compilation.

#prelight 64948190a26e02126bc0a64f
#rb Krzysztof.Narkowicz

[CL 26206875 by tiago costa in ue5-main branch]
2023-06-23 04:28:57 -04:00

52 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "CoreMinimal.h"
#include "Math/UnrealMathSSE.h"
class FStaticMeshLODGroup;
class FStaticMeshRenderData;
class FStaticMeshSectionArray;
class USkeletalMesh;
class UStaticMesh;
struct FSkeletalMeshBuildParameters;
struct FStaticMeshBuildVertex;
struct FStaticMeshSection;
struct FMeshBuildVertexData;
/**
* Abstract class which is the base class of all builder.
* All share code to build some render data should be found inside this class
*/
class MESHBUILDER_API FMeshBuilder
{
public:
FMeshBuilder();
/**
* Build function should be override and is the starting point for static mesh builders
*/
virtual bool Build(
FStaticMeshRenderData& OutRenderData,
UStaticMesh* StaticMesh,
const FStaticMeshLODGroup& LODGroup,
bool bGenerateCoarseMeshStreamingLODs,
bool bAllowNanite) = 0;
virtual bool BuildMeshVertexPositions(
UStaticMesh* StaticMesh,
TArray<uint32>& Indices,
TArray<FVector3f>& Vertices,
FStaticMeshSectionArray& Sections) = 0;
/**
* Build function should be override and is the starting point for skeletal mesh builders
*/
virtual bool Build(const FSkeletalMeshBuildParameters& SkeletalMeshBuildParameters) = 0;
private:
};