UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WorldPartitionStreamingGenerationContext.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5#include "Misc/Optional.h"
8
11class UDataLayerInstance;
14class FStreamingGenerationActorDescView;
18class UDataLayerInstance;
21
22#if WITH_EDITOR
24{
25public:
27 {}
28
32 struct FActorSet
33 {
35 };
36
37 struct UE_DEPRECATED(5.4, "Use FActorSetContainerInstance") FActorSetContainer
38 {
40 : ActorDescViewMap(nullptr)
41 , ActorDescCollection(nullptr)
42 {}
43
44 // Non-copyable
46 FActorSetContainer& operator=(const FActorSetContainer&) = delete;
47
49 const class FStreamingGenerationActorDescCollection* ActorDescCollection; // Only used by UWorldPartitionRuntimeSpatialHash::SetupHLODActors
51 };
52
57 {
59 : ActorDescViewMap(nullptr)
60 , DataLayerResolvers(nullptr)
62 {}
63
64 // Non-copyable
67
70 const FStreamingGenerationContainerInstanceCollection* ContainerInstanceCollection; // Only used by UWorldPartitionRuntimeSpatialHash::SetupHLODActors
72 };
73
78 {
79 FBox Bounds;
80 FName RuntimeGrid;
81 bool bIsSpatiallyLoaded;
83 FGuid ContentBundleID;
84
86
87 UE_DEPRECATED(5.4, "Use ActorSetContainerInstance instead")
89
91
93
94 FActorContainerID ContainerID;
96 const FActorSet* ActorSet;
97 const TSet<FGuid>* FilteredActors;
98
99 template <typename Func>
100 void ForEachActor(Func InFunc) const
101 {
103
104 for (const FGuid& ActorGuid : ActorSet->Actors)
105 {
106 if (!FilteredActors || !FilteredActors->Contains(ActorGuid))
107 {
108 if (!Invoker(ActorGuid))
109 {
110 break;
111 }
112 }
113 }
114 }
115
116 const UExternalDataLayerAsset* GetExternalDataLayerAsset() const;
117 };
118
122 struct FActorInstance
123 {
125 : ActorGuid(InActorGuid)
127 {}
128
129 FGuid ActorGuid;
131
132 ENGINE_API const FStreamingGenerationActorDescView& GetActorDescView() const;
133 ENGINE_API const FActorContainerID& GetContainerID() const;
134 ENGINE_API const FTransform& GetTransform() const;
135 ENGINE_API const FBox GetBounds() const;
136 };
137
138 virtual FBox GetWorldBounds() const = 0;
139 // Returns the ActorSetContainerInstance that contains the BaseActorDescContainerInstance of this context
141 virtual void ForEachActorSetInstance(TFunctionRef<void(const FActorSetInstance&)> Func) const = 0;
142 virtual void ForEachActorSetContainerInstance(TFunctionRef<void(const FActorSetContainerInstance&)> Func) const = 0;
143
145
146 UE_DEPRECATED(5.4, "Implement GetActorSetContainerForContextBaseContainerInstance instead")
147 virtual const FActorSetContainer* GetMainWorldContainer() const { return nullptr; };
148
149 UE_DEPRECATED(5.4, "Implement ForEachActorSetContainerInstance instead")
150 virtual void ForEachActorSetContainer(TFunctionRef<void(const FActorSetContainer&)> Func) const {};
151
153};
154
156{
157public:
159 : SourceContext(InSourceContext)
160 {}
161
162 virtual FBox GetWorldBounds() const override
163 {
164 return SourceContext->GetWorldBounds();
165 }
166
168 {
169 return SourceContext->GetActorSetContainerForContextBaseContainerInstance();
170 }
171
172 virtual void ForEachActorSetInstance(TFunctionRef<void(const FActorSetInstance&)> Func) const override
173 {
174 if (ActorSetInstanceFilterFunc.IsSet())
175 {
176 SourceContext->ForEachActorSetInstance([this, Func](const FActorSetInstance& ActorSetInstance)
177 {
179 {
180 Func(ActorSetInstance);
181 }
182 });
183 }
184 else
185 {
186 SourceContext->ForEachActorSetInstance(Func);
187 }
188 }
189
190 virtual void ForEachActorSetContainerInstance(TFunctionRef<void(const FActorSetContainerInstance&)> Func) const override
191 {
192 SourceContext->ForEachActorSetContainerInstance(Func);
193 }
194
195 void SetActorSetInstanceFilter(const TFunction<bool(const IStreamingGenerationContext::FActorSetInstance&)>& InActorSetInstanceFilterFunc) { ActorSetInstanceFilterFunc = InActorSetInstanceFilterFunc; }
196
197protected:
198 TOptional<TFunction<bool(const IStreamingGenerationContext::FActorSetInstance&)>> ActorSetInstanceFilterFunc;
199
200 const IStreamingGenerationContext* SourceContext;
201};
202#endif
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
const bool
Definition NetworkReplayStreaming.h:178
Definition NameTypes.h:617
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition ActorDescContainer.h:40
Definition ExternalDataLayerAsset.h:16
FRigidTransform3 GetTransform(const TGeometryParticleHandle< FReal, 3 > *Particle)
Definition CollisionResolutionUtil.cpp:30
Definition WorldPartitionActorContainerID.h:44
Definition Guid.h:109
Definition WorldPartitionRuntimeContainerResolving.h:65
Definition Optional.h:131
Definition OverrideVoidReturnInvoker.h:16