UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ARFilter.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "UObject/Class.h"
9
10#include "ARFilter.generated.h"
11
12class FCbField;
13class FCbWriter;
14struct FAssetData;
15
21USTRUCT(BlueprintType, meta = (HasNativeMake = "/Script/Engine.KismetSystemLibrary.MakeARFilter", HasNativeBreak = "/Script/Engine.KismetSystemLibrary.BreakARFilter"))
23{
25public:
26PRAGMA_DISABLE_DEPRECATION_WARNINGS // Compilers can complain about deprecated members in compiler generated code
27 FARFilter() = default;
28 FARFilter(FARFilter&&) = default;
29 FARFilter(const FARFilter&) = default;
31 FARFilter& operator=(const FARFilter&) = default;
33
35 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
36 TArray<FName> PackageNames;
37
39 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
40 TArray<FName> PackagePaths;
41
42#if WITH_EDITORONLY_DATA
44 UE_DEPRECATED(5.1, "Asset path FNames have been deprecated, use FSoftObjectPath instead.")
45 UPROPERTY()
46 TArray<FName> ObjectPaths;
47#endif
48
54 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
55 TArray<FSoftObjectPath> SoftObjectPaths;
56
58 UE_DEPRECATED(5.1, "Class names are now represented by path names. Please use ClassPaths.")
59 UPROPERTY(BlueprintReadWrite, Category = AssetRegistry, meta=(DeprecatedProperty, DeprecationMessage="Short asset class names must be converted to full asset pathnames. Use ClassPaths instead."))
60 TArray<FName> ClassNames;
61
63 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
65
67 TMultiMap<FName, TOptional<FString>> TagsAndValues;
68
70 UE_DEPRECATED(5.1, "Class names are now represented by path names. Please use RecursiveClassPathsExclusionSet.")
71 UPROPERTY(BlueprintReadWrite, Category = AssetRegistry, meta=(DeprecatedProperty, DeprecationMessage="Short asset class names must be converted to full asset pathnames. Use RecursiveClassPathsExclusionSet instead."))
72 TSet<FName> RecursiveClassesExclusionSet;
73
75 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
76 TSet<FTopLevelAssetPath> RecursiveClassPathsExclusionSet;
77
79 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
80 bool bRecursivePaths = false;
81
83 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
84 bool bRecursiveClasses = false;
85
90 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = AssetRegistry)
91 bool bIncludeOnlyOnDiskAssets = false;
92
94 uint32 WithoutPackageFlags = 0;
95
97 uint32 WithPackageFlags = 0;
98
100 void Append(const FARFilter& Other)
101 {
102 PackageNames.Append(Other.PackageNames);
103 PackagePaths.Append(Other.PackagePaths);
104 SoftObjectPaths.Append(Other.SoftObjectPaths);
105 ClassPaths.Append(Other.ClassPaths);
106
107 for (auto TagIt = Other.TagsAndValues.CreateConstIterator(); TagIt; ++TagIt)
108 {
109 TagsAndValues.Add(TagIt.Key(), TagIt.Value());
110 }
111
112 RecursiveClassPathsExclusionSet.Append(Other.RecursiveClassPathsExclusionSet);
113
114 bRecursivePaths |= Other.bRecursivePaths;
115 bRecursiveClasses |= Other.bRecursiveClasses;
116 bIncludeOnlyOnDiskAssets |= Other.bIncludeOnlyOnDiskAssets;
117 WithoutPackageFlags |= Other.WithoutPackageFlags;
118 WithPackageFlags |= Other.WithPackageFlags;
119 }
120
122 bool IsEmpty() const
123 {
124 return (PackageNames.Num() | PackagePaths.Num() | SoftObjectPaths.Num() | ClassPaths.Num() | TagsAndValues.Num() | WithoutPackageFlags | WithPackageFlags) == 0;
125 }
126
128 bool IsRecursive() const
129 {
130 return bRecursivePaths || bRecursiveClasses;
131 }
132
134 void Clear()
135 {
136 PackageNames.Empty();
137 PackagePaths.Empty();
138 SoftObjectPaths.Empty();
139 ClassPaths.Empty();
140 TagsAndValues.Empty();
141 RecursiveClassPathsExclusionSet.Empty();
142
143 bRecursivePaths = false;
144 bRecursiveClasses = false;
145 bIncludeOnlyOnDiskAssets = false;
146 WithoutPackageFlags = 0;
147 WithPackageFlags = 0;
148
149 ensure(IsEmpty());
150 }
151
152 void PostSerialize(const FArchive& Ar);
153
158 COREUOBJECT_API void SortForSaving();
159 COREUOBJECT_API bool operator==(const FARFilter& Other) const;
160 COREUOBJECT_API bool operator<(const FARFilter& Other) const;
161
162private:
163 COREUOBJECT_API void Save(FCbWriter& Writer) const;
164 COREUOBJECT_API bool TryLoad(const FCbFieldView& Field);
165
166 // Hidden friends for our argument-dependent lookup functions
168 {
169 Filter.Save(Writer);
170 return Writer;
171 }
173 {
174 return Filter.TryLoad(Field);
175 }
176};
177
178template<>
180{
181 enum
182 {
184 };
185};
186
193{
194PRAGMA_DISABLE_DEPRECATION_WARNINGS // Compilers can complain about deprecated members in compiler generated code
195 FARCompiledFilter() = default;
201
204
207
209 UE_DEPRECATED(5.1, "Object path FNames have been deprecated, use FSoftObjectPath instead.")
211
214
216 UE_DEPRECATED(5.1, "Class names are now represented by path names. Please use ClassPaths.")
218
221
223 TMultiMap<FName, TOptional<FString>> TagsAndValues;
224
227
230
233
235 bool IsEmpty() const
236 {
237 return (PackageNames.Num() | PackagePaths.Num() | SoftObjectPaths.Num() | ClassPaths.Num() | TagsAndValues.Num() | WithoutPackageFlags | WithPackageFlags) == 0;
238 }
239
241 void Clear()
242 {
243 PackageNames.Empty();
244 PackagePaths.Empty();
245 SoftObjectPaths.Empty();
246 ClassPaths.Empty();
247 TagsAndValues.Empty();
248
252
253 ensure(IsEmpty());
254 }
255};
256
257namespace UE::AssetRegistry
258{
260
262}
EGLSurface EGLint const EGLint * names
Definition AndroidOpenGLFunctions.h:11
#define ensure( InExpression)
Definition AssertionMacros.h:464
#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
bool operator<(const FTextFormatString &LHS, const FTextFormatString &RHS)
Definition ITextFormatArgumentModifier.h:147
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AssetRegistry.Build.cs:6
Definition Archive.h:1208
int32 Num() const
Definition AssetDataTagMap.h:376
Definition CompactBinary.h:610
Definition CompactBinary.h:1252
Definition CompactBinaryWriter.h:68
CORE_API FCbFieldIterator Save() const
Definition CompactBinaryWriter.cpp:98
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition Array.h:670
Definition FieldSystemNoiseAlgo.cpp:6
Definition PackageReader.h:15
uint32 GetTypeHash(const FARFilter &Filter)
Definition ARFilter.cpp:432
FARFilter ConvertToNonCompiledFilter(const FARCompiledFilter &CompiledFilter)
Definition ARFilter.cpp:465
@ false
Definition radaudio_common.h:23
Definition ARFilter.h:193
FARCompiledFilter(FARCompiledFilter &&)=default
bool bIncludeOnlyOnDiskAssets
Definition ARFilter.h:232
TSet< FName > ObjectPaths
Definition ARFilter.h:210
TSet< FSoftObjectPath > SoftObjectPaths
Definition ARFilter.h:213
FARCompiledFilter(const FARCompiledFilter &)=default
uint32 WithoutPackageFlags
Definition ARFilter.h:226
PRAGMA_ENABLE_DEPRECATION_WARNINGS TSet< FName > PackageNames
Definition ARFilter.h:203
FARCompiledFilter & operator=(const FARCompiledFilter &)=default
void Clear()
Definition ARFilter.h:241
uint32 WithPackageFlags
Definition ARFilter.h:229
TSet< FTopLevelAssetPath > ClassPaths
Definition ARFilter.h:220
bool IsEmpty() const
Definition ARFilter.h:235
FARCompiledFilter & operator=(FARCompiledFilter &&)=default
TMultiMap< FName, TOptional< FString > > TagsAndValues
Definition ARFilter.h:223
TSet< FName > ClassNames
Definition ARFilter.h:217
TSet< FName > PackagePaths
Definition ARFilter.h:206
PRAGMA_DISABLE_DEPRECATION_WARNINGS FARCompiledFilter()=default
Definition ARFilter.h:23
FARFilter & operator=(FARFilter &&)=default
FARFilter & operator=(const FARFilter &)=default
void Clear()
Definition ARFilter.h:134
FARFilter(FARFilter &&)=default
bool IsEmpty() const
Definition ARFilter.h:122
bool IsRecursive() const
Definition ARFilter.h:128
friend bool LoadFromCompactBinary(const FCbFieldView &Field, FARFilter &Filter)
Definition ARFilter.h:172
FARFilter(const FARFilter &)=default
friend FCbWriter & operator<<(FCbWriter &Writer, const FARFilter &Filter)
Definition ARFilter.h:167
PRAGMA_DISABLE_DEPRECATION_WARNINGS FARFilter()=default
Definition AssetData.h:162
bool operator==(const FAssetData &Other) const
Definition AssetData.h:287
FAssetDataTagMapSharedView TagsAndValues
Definition AssetData.h:225
Definition SoftObjectPath.h:56
Definition TopLevelAssetPath.h:38
Definition Optional.h:131
Definition StructOpsTypeTraits.h:11
@ WithPostSerialize
Definition StructOpsTypeTraits.h:25
Definition StructOpsTypeTraits.h:46