UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WorldPartitionUtils.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#if WITH_EDITOR
6
9#include "Misc/ArchiveMD5.h"
11#include "Memory/MemoryView.h"
12
13class UWorld;
14class UWorldPartition;
18class AActor;
20
21struct FWorldPartitionUtils
22{
24 {
26 };
27
29 {
30 public:
31
34
35 bool IsValid() const { return !!CookContext; }
36 ENGINE_API bool ForEachStreamingCells(TFunctionRef<void(const IWorldPartitionCell*)> Func);
38
39 private:
41
45 };
46};
47
49{
50 // Hash helpers
51 template<class T, class HashBuilder> void UpdateHash(HashBuilder& Builder, const T& Value);
52
53 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, const FGuid& Value)
54 {
55 static_assert(sizeof(FGuid) == 4 * sizeof(uint32));
56 Builder.Update(&Value, sizeof(FGuid));
57 }
58
59 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, const FName& Value)
60 {
62 uint32 Length = Value.ToStringTruncate(NameBuffer);
63 Builder.Update(MakeMemoryView(NameBuffer, Length * sizeof(TCHAR)));
64 }
65
66 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, const FString& Value)
67 {
68 Builder.Update(*Value, Value.Len() * sizeof(FString::ElementType));
69 }
70
71
72 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, const FTopLevelAssetPath& Value)
73 {
74 UpdateHash(Builder, Value.GetPackageName());
75 UpdateHash(Builder, Value.GetAssetName());
76 }
77
78 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, const FTransform& Value)
79 {
80 Builder.Update(&Value, sizeof(FTransform));
81 }
82
83 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, bool Value)
84 {
85 Builder.Update(&Value, sizeof(bool));
86 }
87
88
89 template<class HashBuilder> void UpdateHash(HashBuilder& Builder, const FActorContainerID& Value)
90 {
91 static_assert(sizeof(FActorContainerID) == sizeof(FGuid));
92 Builder.Update(&Value, sizeof(FGuid));
93 }
94
95 template<class T, class HashBuilder> void UpdateHash(HashBuilder& Builder, const TArray<T>& Values)
96 {
97 for (const T& Val : Values)
98 {
99 UpdateHash(Builder, Val);
100 }
101 }
102}
103
104#endif
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr TMemoryView< void > MakeMemoryView(void *Data, uint64 Size)
Definition MemoryView.h:257
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition NameTypes.h:617
static constexpr uint32 StringBufferSize
Definition NameTypes.h:708
Definition WorldPartitionRuntimeCellInterface.h:19
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition WorldPartitionRuntimeHash.h:61
Definition WorldPartition.h:142
Definition World.h:918
Definition RuntimePartitionLHGrid.h:12
Definition WorldPartition.cpp:74
Definition WorldPartitionActorContainerID.h:44
Definition Guid.h:109
Definition TopLevelAssetPath.h:38
Definition WorldPartitionStreamingSource.h:240
Definition WeakObjectPtrTemplates.h:25