UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HLODBuilder.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Algo/Transform.h"
8
9#include "HLODBuilder.generated.h"
10
11class AActor;
13class UActorComponent;
16
18
22UCLASS(MinimalAPI, DefaultToInstanced)
24{
26
27#if WITH_EDITOR
28public:
34 virtual void ComputeHLODHash(FHLODHashBuilder& InHashBuilder) const {}
35
41 virtual bool IsReusingSourceMaterials() const { return false; }
42
43 UE_DEPRECATED(5.7, "GetCRC() has been replaced by ComputeHLODHash()")
44 virtual uint32 GetCRC() const final { return 0; }
45#endif // WITH_EDITOR
46};
47
48
53{
56
59
62
65
66 // Location of this HLOD actor in the world
68
71};
72
76USTRUCT()
84
88USTRUCT()
96
105
110UCLASS(Abstract, Config = Editor, MinimalAPI)
112{
114
115#if WITH_EDITOR
116public:
121
127
128 UE_DEPRECATED(5.2, "Use Build() method that takes a single FHLODBuildContext parameter.")
130
134 ENGINE_API virtual TSubclassOf<UHLODBuilderSettings> GetSettingsClass() const;
135
142 ENGINE_API virtual bool RequiresWarmup() const;
143
153
158
165
170
175
176protected:
177 virtual bool ShouldIgnoreBatchingPolicy() const { return false; }
178
181
182 template <typename TComponentClass>
183 static inline TArray<TComponentClass*> FilterComponents(const TArray<UActorComponent*>& InSourceComponents)
184 {
187 Algo::TransformIf(InSourceComponents, FilteredComponents, [](UActorComponent* SourceComponent) { return Cast<TComponentClass>(SourceComponent); }, [](UActorComponent* SourceComponent) { return Cast<TComponentClass>(SourceComponent); });
188 if (InSourceComponents.Num() != FilteredComponents.Num())
189 {
190 UE_LOG(LogHLODBuilder, Warning, TEXT("Excluding %d components from the HLOD build."), InSourceComponents.Num() - FilteredComponents.Num());
191 }
192 return FilteredComponents;
193 }
194#endif // WITH_EDITOR
195
196#if WITH_EDITORONLY_DATA
197protected:
198 UPROPERTY()
200
201private:
202 UPROPERTY(Config)
204
205 UPROPERTY(Config)
207#endif
208};
209
210
214UCLASS(HideDropdown, MinimalAPI)
216{
218
219#if WITH_EDITOR
220 virtual bool RequiresWarmup() const { return false; }
221 virtual bool ComputeHLODHash(FHLODHashBuilder& HashBuilder, const UActorComponent* InSourceComponent) const { return false; }
223#endif
224};
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition NameTypes.h:617
Definition Array.h:670
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition ActorComponent.h:152
Definition HLODBuilder.h:24
Definition HLODBuilder.h:112
Definition HLODInstancedSkinnedMeshComponent.h:13
Definition HLODInstancedStaticMeshComponent.h:14
Definition HLODBuilder.h:216
Definition Object.h:95
Definition World.h:918
void TransformIf(const InT &Input, OutT &&Output, PredicateT Predicate, TransformT Trans)
Definition Transform.h:47
Definition HLODBuilder.h:53
TArray< UActorComponent * > SourceComponents
Definition HLODBuilder.h:58
UObject * AssetsOuter
Definition HLODBuilder.h:61
FString AssetsBaseName
Definition HLODBuilder.h:64
double MinVisibleDistance
Definition HLODBuilder.h:70
UWorld * World
Definition HLODBuilder.h:55
FVector WorldPosition
Definition HLODBuilder.h:67
Definition HLODBuilder.h:78
Definition HLODBuilder.h:90
Definition HLODBuilder.h:101
TArray< UActorComponent * > HLODComponents
Definition HLODBuilder.h:103
FHLODBuildInputStats InputStats
Definition HLODBuilder.h:102
Definition TopLevelAssetPath.h:38
Definition ObjectPtr.h:488