UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataLayerInstanceNames.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
6#include "DataLayerInstanceNames.generated.h"
7
10{
12
14 : bIsFirstDataLayerExternal(false)
15 {
16#if WITH_EDITOR
18#endif
19 }
20
28
33
35 {
36 check(!bIsFirstDataLayerExternal || !DataLayers.IsEmpty());
37 return bIsFirstDataLayerExternal ? DataLayers[0] : NAME_None;
38 }
39
45 TArray<FName>::RangedForConstIteratorType begin() const { return DataLayers.begin(); }
46 TArray<FName>::RangedForIteratorType end() { return DataLayers.end(); }
47 TArray<FName>::RangedForConstIteratorType end() const { return DataLayers.end(); }
52
54 {
55 static TArray<FName> EmptyArray;
56 check(!bIsFirstDataLayerExternal || !DataLayers.IsEmpty());
57 const int32 Offset = bIsFirstDataLayerExternal ? 1 : 0;
58 const int32 NonExternalDataLayersCount = DataLayers.Num() - Offset;
59 return NonExternalDataLayersCount > 0 ? MakeArrayView(&DataLayers[Offset], NonExternalDataLayersCount) : EmptyArray;
60 }
61
62 int32 Num() const { return DataLayers.Num(); }
63 bool IsEmpty() const { return DataLayers.IsEmpty(); }
64 bool Contains(FName InDataLayer) const { return DataLayers.Contains(InDataLayer); }
65 bool HasExternalDataLayer() const { return bIsFirstDataLayerExternal; }
66 const TArray<FName>& ToArray() const { return DataLayers; }
67
68private:
69
71 {
72#if WITH_EDITOR
74#endif
75 bIsFirstDataLayerExternal = !InExternalDataLayer.IsNone();
76
77 DataLayers.Reserve(InNonExternalDataLayers.Num() + (bIsFirstDataLayerExternal ? 1 : 0));
78 if (bIsFirstDataLayerExternal)
79 {
80 DataLayers.Add(InExternalDataLayer);
81 }
82 for (FName DataLayer : InNonExternalDataLayers)
83 {
84 if (DataLayer != InExternalDataLayer)
85 {
86 DataLayers.AddUnique(DataLayer);
87 }
88 }
89 }
90
91#if WITH_EDITOR
94 {
96 if (bIsFirstDataLayerExternal)
97 {
98 DataLayers = { DataLayers[0] };
99 }
100 else
101 {
102 DataLayers.Empty();
103 }
104 }
106#endif
107
108 UPROPERTY()
109 bool bIsFirstDataLayerExternal;
110
111 UPROPERTY()
112 TArray<FName> DataLayers;
113
114 friend class FStreamingGenerationActorDescView;
115};
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#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
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT RangedForIteratorType end()
Definition Array.h:3391
UE_NODEBUG UE_FORCEINLINE_HINT RangedForIteratorType begin()
Definition Array.h:3389
UE_NODEBUG UE_FORCEINLINE_HINT RangedForReverseIteratorType rbegin()
Definition Array.h:3393
UE_NODEBUG UE_FORCEINLINE_HINT RangedForReverseIteratorType rend()
Definition Array.h:3395
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
@ false
Definition radaudio_common.h:23
Definition DataLayerInstanceNames.h:10
TArray< FName >::RangedForConstReverseIteratorType rend() const
Definition DataLayerInstanceNames.h:51
bool IsEmpty() const
Definition DataLayerInstanceNames.h:63
TArray< FName >::RangedForReverseIteratorType rend()
Definition DataLayerInstanceNames.h:50
bool Contains(FName InDataLayer) const
Definition DataLayerInstanceNames.h:64
FDataLayerInstanceNames(const TArray< FName > &InNonExternalDataLayers, FName InExternalDataLayer)
Definition DataLayerInstanceNames.h:29
TArrayView< const FName > GetNonExternalDataLayers() const
Definition DataLayerInstanceNames.h:53
TArray< FName >::RangedForConstIteratorType end() const
Definition DataLayerInstanceNames.h:47
TArray< FName >::RangedForIteratorType begin()
Definition DataLayerInstanceNames.h:44
FDataLayerInstanceNames(const TArray< FName > &InDataLayers, bool bInIsFirstDataLayerExternal)
Definition DataLayerInstanceNames.h:21
TArray< FName >::RangedForReverseIteratorType rbegin()
Definition DataLayerInstanceNames.h:48
TArray< FName >::RangedForConstIteratorType begin() const
Definition DataLayerInstanceNames.h:45
TArray< FName >::RangedForIteratorType end()
Definition DataLayerInstanceNames.h:46
int32 Num() const
Definition DataLayerInstanceNames.h:62
const FName GetExternalDataLayer() const
Definition DataLayerInstanceNames.h:34
TArray< FName >::RangedForConstReverseIteratorType rbegin() const
Definition DataLayerInstanceNames.h:49
const TArray< FName > & ToArray() const
Definition DataLayerInstanceNames.h:66
bool HasExternalDataLayer() const
Definition DataLayerInstanceNames.h:65
Definition Array.h:206