UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WorldPartitionActorDescInstance.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
7#if WITH_EDITOR
11
12class AActor;
13class UWorldPartition;
15#endif // WITH_EDITOR
16
18{
19#if WITH_EDITOR
20 friend struct FWorldPartitionHandleImpl;
21 friend struct FWorldPartitionReferenceImpl;
23 friend class FWorldPartitionActorDesc;
24 friend class UActorDescContainerInstance;
27 friend class UDataLayerManager;
28 friend class UWorldPartition;
32 friend class ILoaderAdapterSpatial;
33
34protected:
36public:
39
40 virtual const FGuid& GetGuid() const { return ActorDesc->GetGuid(); }
41 virtual FTopLevelAssetPath GetBaseClass() const { return ActorDesc->GetBaseClass(); }
42 virtual FTopLevelAssetPath GetNativeClass() const { return ActorDesc->GetNativeClass(); }
43 virtual UClass* GetActorNativeClass() const { return ActorDesc->GetActorNativeClass(); }
44
45 virtual FName GetRuntimeGrid() const { return ActorDesc->GetRuntimeGrid(); }
46 virtual bool GetIsSpatiallyLoaded() const { return !GetForceNonSpatiallyLoaded() && ActorDesc->GetIsSpatiallyLoaded(); }
47 virtual bool GetActorIsEditorOnly() const { return ActorDesc->GetActorIsEditorOnly(); }
48 virtual bool GetActorIsEditorOnlyLoadedInPIE() const { return ActorDesc->GetActorIsEditorOnlyLoadedInPIE(); }
49 virtual bool GetActorIsRuntimeOnly() const { return ActorDesc->GetActorIsRuntimeOnly(); }
50 ENGINE_API virtual bool IsRuntimeRelevant() const;
51 ENGINE_API virtual bool IsEditorRelevant() const;
52
53 virtual bool IsUsingDataLayerAsset() const { return ActorDesc->IsUsingDataLayerAsset(); }
54 virtual TArray<FName> GetDataLayers() const { return ActorDesc->GetDataLayers(); }
55
56 virtual bool GetActorIsHLODRelevant() const { return ActorDesc->GetActorIsHLODRelevant(); }
57 virtual FSoftObjectPath GetHLODLayer() const { return ActorDesc->GetHLODLayer(); }
58
59 virtual const TArray<FName>& GetTags() const { return ActorDesc->GetTags(); }
60 virtual FName GetActorPackage() const { return ActorDesc->GetActorPackage(); }
62 virtual FName GetActorLabel() const { return ActorDesc->GetActorLabel(); }
63 ENGINE_API virtual FName GetActorName() const;
64 virtual FName GetFolderPath() const { return ActorDesc->GetFolderPath(); }
65 virtual const FGuid& GetFolderGuid() const { return ActorDesc->GetFolderGuid(); }
66 virtual const FTransform& GetActorTransform() const { return ActorDesc->GetActorTransform(); }
67
68 ENGINE_API virtual FBox GetEditorBounds() const;
69 ENGINE_API virtual FBox GetRuntimeBounds() const;
70
71 int32 GetAsyncLoadID() const { return AsyncLoadID; }
72
73 virtual bool GetProperty(FName PropertyName, FName* PropertyValue) const { return ActorDesc->GetProperty(PropertyName, PropertyValue); }
74 virtual bool HasProperty(FName PropertyName) const { return ActorDesc->HasProperty(PropertyName); }
75
76 virtual const TArray<FGuid>& GetReferences() const { return ActorDesc->GetReferences(); }
77 virtual const TArray<FGuid>& GetEditorOnlyReferences() const { return ActorDesc->GetEditorOnlyReferences(); }
78 virtual bool IsEditorOnlyReference(const FGuid& ReferenceGuid) const { return ActorDesc->IsEditorOnlyReference(ReferenceGuid); }
79
80 virtual const FGuid& GetParentActor() const { return ActorDesc->GetParentActor(); }
81
82 virtual FGuid GetContentBundleGuid() const { return ActorDesc->GetContentBundleGuid(); }
83 virtual const FSoftObjectPath& GetExternalDataLayerAsset() const { return ActorDesc->GetExternalDataLayerAsset(); }
84
85 virtual bool IsChildContainerInstance() const { return ChildContainerInstance || ActorDesc->IsChildContainerInstance(); }
86 virtual FName GetChildContainerPackage() const { return ActorDesc->GetChildContainerPackage(); }
87 virtual FString GetChildContainerName() const { return ActorDesc->GetChildContainerName(); }
88 virtual EWorldPartitionActorFilterType GetChildContainerFilterType() const { return ActorDesc->GetChildContainerFilterType(); }
89 virtual const FWorldPartitionActorFilter* GetChildContainerFilter() const { return ActorDesc->GetChildContainerFilter(); }
90 virtual bool GetChildContainerInstance(FWorldPartitionActorDesc::FContainerInstance& OutContainerInstance) const { return ActorDesc->GetChildContainerInstance(this, OutContainerInstance); }
91
92 virtual bool IsMainWorldOnly() const { return ActorDesc->IsMainWorldOnly(); }
93 virtual bool IsListedInSceneOutliner() const { return ActorDesc->IsListedInSceneOutliner(); }
94 virtual const FGuid& GetSceneOutlinerParent() const { return ActorDesc->GetSceneOutlinerParent(); }
95
96 inline const FWorldPartitionActorDesc* GetActorDesc() const { return ActorDesc; }
97
98 virtual bool HasResolvedDataLayerInstanceNames() const { return ResolvedDataLayerInstanceNames.IsSet(); }
99 ENGINE_API virtual const FDataLayerInstanceNames& GetDataLayerInstanceNames() const;
100
101 ENGINE_API virtual bool IsLoaded(bool bEvenIfPendingKill = false) const;
102 ENGINE_API virtual AActor* GetActor(bool bEvenIfPendingKill = true, bool bEvenIfUnreachable = false) const;
103
104 ENGINE_API virtual FString ToString(FWorldPartitionActorDesc::EToStringMode Mode = FWorldPartitionActorDesc::EToStringMode::Compact) const;
105
107
108 inline FName GetActorLabelOrName() const { return GetActorLabel().IsNone() ? GetActorName() : GetActorLabel(); }
109
111
113 ENGINE_API virtual bool IsValid() const;
114
116 inline bool GetForceNonSpatiallyLoaded() const { return bIsForcedNonSpatiallyLoaded; }
117
119
120 FName GetDisplayClassName() const { return ActorDesc->GetDisplayClassName(); }
121
122 ENGINE_API const FText& GetUnloadedReason() const;
123
124 ENGINE_API const FString& GetActorNameString() const;
125 ENGINE_API const FString& GetActorLabelString() const;
126 ENGINE_API const FString& GetDisplayClassNameString() const;
127
128protected:
129 virtual FBox GetLocalEditorBounds() const { return ActorDesc->GetEditorBounds(); }
130
132 ENGINE_API void FlushAsyncLoad() const;
133 void AsyncLoadFinished(const FName& ActorPackage, const FName& PackageName, UPackage* Package, bool bSuccessful) const;
134 ENGINE_API void MarkUnload();
135
136 UWorldPartition* GetLoadedChildWorldPartition() const { return ActorDesc->GetLoadedChildWorldPartition(this); }
138 void Invalidate();
139
140 inline uint32 IncSoftRefCount() const
141 {
142 return ++SoftRefCount;
143 }
144
145 inline uint32 DecSoftRefCount() const
146 {
147 check(SoftRefCount > 0);
148 return --SoftRefCount;
149 }
150
151 inline uint32 IncHardRefCount() const
152 {
153 return ++HardRefCount;
154 }
155
156 inline uint32 DecHardRefCount() const
157 {
158 check(HardRefCount > 0);
159 return --HardRefCount;
160 }
161
162 inline uint32 GetSoftRefCount() const
163 {
164 return SoftRefCount;
165 }
166
167 inline uint32 GetHardRefCount() const
168 {
169 return HardRefCount;
170 }
171
173
177
178protected:
180
181 mutable uint32 SoftRefCount;
182 mutable uint32 HardRefCount;
186 mutable FText* UnloadedReason;
187 mutable int32 AsyncLoadID;
188
189 // Instancing Path if set
191
194
196#endif // WITH_EDITOR
197};
#define check(expr)
Definition AssertionMacros.h:314
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
EWorldPartitionActorFilterType
Definition WorldPartitionActorFilter.h:13
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition NameTypes.h:617
FORCEINLINE bool IsNone() const
Definition NameTypes.h:827
Definition Text.h:385
Definition WorldPartitionActorDescInstance.h:18
Definition WorldPartitionActorDesc.h:282
Definition WorldPartitionActorLoaderInterface.h:19
Definition Array.h:670
Definition ActorDescContainerInstance.h:23
Definition Class.h:3793
Definition DataLayerManager.h:48
Definition Package.h:216
Definition WorldPartitionEditorSpatialHash.h:14
Definition WorldPartition.h:142
Definition DataLayerInstanceNames.h:10
Definition Guid.h:109
Definition SoftObjectPath.h:56
Definition TopLevelAssetPath.h:38
Definition WorldPartitionActorFilter.h:23
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition WeakObjectPtrTemplates.h:25