UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TypedElementQueryCapabilities.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include <type_traits>
9#include "UObject/NameTypes.h"
10
11class UScriptStruct;
12
14{
16 {
17 SupportsSingle = 1 << 0,
18 SupportsBatch = 1 << 1
19 };
21
22
30 {
31 virtual ~IContextCapability() = default;
32 };
33
34
35#define ArgTypeName(Type, Name) Type Name
36
37#define Function0(Capability, Return, Function) virtual Return Function() = 0;
38#define Function1(Capability, Return, Function, Arg1) virtual Return Function(ArgTypeName Arg1 ) = 0;
39#define Function2(Capability, Return, Function, Arg1, Arg2) virtual Return Function(ArgTypeName Arg1 , ArgTypeName Arg2 ) = 0;
40#define Function3(Capability, Return, Function, Arg1, Arg2, Arg3) virtual Return Function(ArgTypeName Arg1 , ArgTypeName Arg2 , ArgTypeName Arg3 ) = 0;
41#define Function4(Capability, Return, Function, Arg1, Arg2, Arg3, Arg4) virtual Return Function(ArgTypeName Arg1 , ArgTypeName Arg2 , ArgTypeName Arg3 , ArgTypeName Arg4 ) = 0;
42
43#define ConstFunction0(Capability, Return, Function) virtual Return Function() const = 0;
44#define ConstFunction1(Capability, Return, Function, Arg1) virtual Return Function(ArgTypeName Arg1 ) const = 0;
45#define ConstFunction2(Capability, Return, Function, Arg1, Arg2) virtual Return Function(ArgTypeName Arg1 , ArgTypeName Arg2 ) const = 0;
46#define ConstFunction3(Capability, Return, Function, Arg1, Arg2, Arg3) virtual Return Function(ArgTypeName Arg1 , ArgTypeName Arg2 , ArgTypeName Arg3 ) const = 0;
47#define ConstFunction4(Capability, Return, Function, Arg1, Arg2, Arg3, Arg4) virtual Return Function(ArgTypeName Arg1 , ArgTypeName Arg2 , ArgTypeName Arg3 , ArgTypeName Arg4 ) const = 0;
48
49#define CapabilityStart(InCapability, InFlags) \
50 template<typename Base> \
51 struct I##InCapability : Base \
52 { \
53 inline static const FName Name = #InCapability ; \
54 static constexpr EContextCapabilityFlags Flags = InFlags; \
55 virtual ~I##InCapability () override = default;
56
57#define CapabilityEnd(Capability) \
58 }; \
59 using Capability = I##Capability <IContextCapability>;
60
62
63#undef ArgTypeName
64#undef Function0
65#undef Function1
66#undef Function2
67#undef Function3
68#undef Function4
69#undef ConstFunction0
70#undef ConstFunction1
71#undef ConstFunction2
72#undef ConstFunction3
73#undef ConstFunction4
74#undef CapabilityStart
75#undef CapabilityEnd
76} // namespace UE::Editor::DataStorage::Queries
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
Definition Class.h:1720
Definition Conditions.cpp:11
EContextCapabilityFlags
Definition TypedElementQueryCapabilities.h:16
Definition TypedElementQueryCapabilities.h:30