UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WorldPartitionStreamingGeneration.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#if WITH_EDITOR
5#include "CoreMinimal.h"
11
12// deprecated
14
16
17class FStreamingGenerationActorDescView : public FWorldPartitionActorDescInstanceView
18{
20
23
24protected:
25 // Used for invalid reference error reporting
26 FStreamingGenerationActorDescView(const FWorldPartitionActorDescInstance* InActorDescInstance)
28 , ActorDescViewMap(nullptr)
29 , ParentView(nullptr)
36 {}
37
38public:
40 {
41 FName ActorPackage;
43 FTopLevelAssetPath BaseClass;
44 FTopLevelAssetPath NativeClass;
45 };
46
48 : FStreamingGenerationActorDescView(InActorDescInstance)
49 {
52 }
53
55
56 //~ Begin FWorldPartitionActorDescInstanceView interface
57 ENGINE_API virtual FName GetRuntimeGrid() const override;
58 ENGINE_API virtual bool GetIsSpatiallyLoaded() const override;
59 ENGINE_API virtual FSoftObjectPath GetHLODLayer() const override;
60 ENGINE_API virtual bool GetActorIsHLODRelevant() const override;
61 ENGINE_API virtual const TArray<FGuid>& GetReferences() const override;
62 ENGINE_API virtual const FDataLayerInstanceNames& GetDataLayerInstanceNames() const override;
63 ENGINE_API virtual bool IsEditorOnlyReference(const FGuid& ReferenceGuid) const override;
64 ENGINE_API virtual FString ToString(FWorldPartitionActorDesc::EToStringMode Mode) const override;
65 //~ End FWorldPartitionActorDescInstanceView interface
66
67 bool IsUnsaved() const { return bIsUnsaved; }
69
72
73 ENGINE_API void AddForcedInvalidReference(const FStreamingGenerationActorDescView* ReferenceView);
83 ENGINE_API void SetParentView(const FStreamingGenerationActorDescView* InParentView);
86
90
91 bool operator==(const FStreamingGenerationActorDescView& Other) const
92 {
93 return GetGuid() == Other.GetGuid();
94 }
95
96 friend uint32 GetTypeHash(const FStreamingGenerationActorDescView& Key)
97 {
98 return GetTypeHash(Key.GetGuid());
99 }
100
101private:
103 const FStreamingGenerationActorDescView* ParentView;
104
110 bool bIsUnsaved;
111
112 // Stores invalid actor references
114
115 // Used by GetDataLayerInstanceNames() to avoid returning a copy
117
125};
126
128{
130
131private:
132 template <class Func>
134 {
136
138 {
139 if (!Invoker(*ActorDescView))
140 {
141 return;
142 }
143 }
144 }
145
146 FStreamingGenerationActorDescView* FindByGuid(const FGuid& InGuid)
147 {
148 if (FStreamingGenerationActorDescView** ActorDescViewPtr = ActorDescViewsByGuid.Find(InGuid))
149 {
150 return *ActorDescViewPtr;
151 }
152 return nullptr;
153 }
154
155 FStreamingGenerationActorDescView& FindByGuidChecked(const FGuid& InGuid)
156 {
157 return *ActorDescViewsByGuid.FindChecked(InGuid);
158 }
159
160public:
162
163 // Non-copyable but movable
166
169
170 ENGINE_API FStreamingGenerationActorDescView* Emplace(const FGuid& InActorGuid, FStreamingGenerationActorDescView&& InActorDescView);
171 ENGINE_API FStreamingGenerationActorDescView* Emplace(const FWorldPartitionActorDescInstance* InActorDescInstance);
172
174
175 UE_DEPRECATED(5.4, "Use FStreamingGenerationActorDescView version instead")
177
178 UE_DEPRECATED(5.4, "Use FWorldPartitionActorDescInstance version instead")
179 class FWorldPartitionActorDescView* Emplace(const FWorldPartitionActorDesc* InActorDesc) { return nullptr; }
180
182
183 inline int32 Num() const
184 {
185 return ActorDescViewList.Num();
186 }
187
188 template <class Func>
189 void ForEachActorDescView(Func InFunc) const
190 {
192
194 {
195 if (!Invoker(*ActorDescView))
196 {
197 return;
198 }
199 }
200 }
201
202 const FStreamingGenerationActorDescView* FindByGuid(const FGuid& InGuid) const
203 {
204 if (const FStreamingGenerationActorDescView* const* ActorDescViewPtr = ActorDescViewsByGuid.Find(InGuid))
205 {
206 return *ActorDescViewPtr;
207 }
208 return nullptr;
209 }
210
211 const FStreamingGenerationActorDescView& FindByGuidChecked(const FGuid& InGuid) const
212 {
213 return *ActorDescViewsByGuid.FindChecked(InGuid);
214 }
215
216 template <class ClassType>
218 {
219 return FindByExactNativeClass(ClassType::StaticClass());
220 }
221
223
225
226protected:
228
231};
232
233class FStreamingGenerationContainerInstanceCollection : public TActorDescContainerInstanceCollection<TObjectPtr<const UActorDescContainerInstance>>
234{
235public:
236 enum class ECollectionType
237 {
238 Invalid,
239 BaseAsContentBundle, // Collection contains only one content bundle container
240 BaseAndEDLs, // Collection contains the base container and optionally EDL containers
241 BaseAndAny // Collection contains the base container and any type of container (base,EDL,CB)
242 };
243
247
248 ENGINE_API UWorld* GetWorld() const;
251 ENGINE_API FGuid GetContentBundleGuid() const; // @todo_ow : Remove once conversion to ExternalDataLayer is complete.
252
253private:
254 void SetCollectionType(const ECollectionType& InCollectionType) { check(CollectionType == ECollectionType::Invalid); CollectionType = InCollectionType; }
255 ECollectionType GetCollectionType() const { return CollectionType; }
260 ENGINE_API virtual void OnCollectionChanged() override;
261 virtual bool ShouldRegisterDelegates() const override { return false; }
262
263 ECollectionType CollectionType;
266 static constexpr int BaseContainerIdx = 0;
267
268 friend class UWorldPartition;
270 friend struct FGenerateStreamingParams;
271};
272
273class UE_DEPRECATED(5.4, "Use FStreamingGenerationContainerInstanceCollection instead") FStreamingGenerationActorDescCollection : public TActorDescContainerCollection<TObjectPtr<const UActorDescContainer>>
274{
275public:
279
280 UWorld* GetWorld() const { return nullptr; }
281 FGuid GetContentBundleGuid() const { return FGuid(); }
282 const UActorDescContainer* GetMainActorDescContainer() const { return nullptr; }
285 virtual void OnCollectionChanged() override {}
286};
287
288using FActorDescViewMap UE_DEPRECATED(5.4, "Use FStreamingGenerationActorDescViewMap instead") = FStreamingGenerationActorDescViewMap;
289
294{
295 TOptional<bool> bIsSpatiallyLoaded;
296 TOptional<FName> RuntimeGrid;
297};
298
300{
302 FGuid ActorGuid;
303
306};
307
308#endif // WITH_EDITOR
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
@ Num
Definition MetalRHIPrivate.h:234
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition WorldPartitionActorDescInstance.h:18
Definition WorldPartitionActorDesc.h:282
Definition ActorDescContainerCollection.h:14
Definition ActorDescContainerInstanceCollection.h:15
Definition ArrayView.h:139
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition UniquePtr.h:107
Definition ActorDescContainerInstance.h:23
Definition ActorDescContainer.h:40
Definition Class.h:3793
Definition WorldPartition.h:142
Definition World.h:918
uint32 GetTypeHash(const FKey &Key)
Definition BlackboardKey.h:35
FString ToString(uint16 Value)
Definition PathFollowingComponent.cpp:82
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
@ false
Definition radaudio_common.h:23
Definition WorldPartitionActorContainerID.h:44
Definition DataLayerInstanceNames.h:10
Definition Guid.h:109
Definition SoftObjectPath.h:56
Definition TopLevelAssetPath.h:38
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition OverrideVoidReturnInvoker.h:16
static CORE_API const TTransform< double > Identity
Definition TransformNonVectorized.h:58