11class IAnimNotifyEventContextDataInterface;
16#define DECLARE_ANIMGRAPH_MESSAGE(ClassName) \
18 static FName GetStaticTypeName() { return ClassName::TypeName; } \
19 virtual FName GetTypeName() const final { return ClassName::GetStaticTypeName(); } \
21 static const FName TypeName;
23#define DECLARE_ANIMGRAPH_MESSAGE_API(ClassName, ModuleApi) \
25 static FName GetStaticTypeName() { return ClassName::TypeName; } \
26 virtual FName GetTypeName() const final { return ClassName::GetStaticTypeName(); } \
28 ModuleApi static const FName TypeName;
31#define IMPLEMENT_ANIMGRAPH_MESSAGE(ClassName) \
32 const FName ClassName::TypeName = TEXT(#ClassName);
34#define IMPLEMENT_NOTIFY_CONTEXT_INTERFACE(ClassName) \
35 IMPLEMENT_ANIMGRAPH_MESSAGE(ClassName);
37#define DECLARE_NOTIFY_CONTEXT_INTERFACE(ClassName) \
38 DECLARE_ANIMGRAPH_MESSAGE(ClassName)
40#define DECLARE_NOTIFY_CONTEXT_INTERFACE_API(ClassName, ModuleApi) \
41 DECLARE_ANIMGRAPH_MESSAGE_API(ClassName, ModuleApi)
43namespace UE {
namespace Anim {
57 template<
typename Type>
63 template<
typename Type>
64 const Type&
As()
const
66 return *
static_cast<const Type*
>(
this);
69 template<
typename Type>
72 return *
static_cast<Type*
>(
this);
94 template<
typename Type>
100 template<
typename Type>
101 const Type&
As()
const
103 return *
static_cast<const Type*
>(
this);
106 template<
typename Type>
109 return *
static_cast<Type*
>(
this);
112 UE_DEPRECATED(5.0,
"No longer in use, please use MakeUniqueEventContextData")
160template<
typename TGraphMessageType>
163 template<
typename...
TArgs>
168 static_assert(!std::is_same_v<TGraphMessageType, IGraphMessage>,
"Argument TGraphMessageType must not be IGraphMessage");
181template<
typename TGraphMessageType>
184 template<
typename...
TArgs>
190 static_assert(!std::is_same_v<TGraphMessageType, IGraphMessage>,
"Argument TGraphMessageType must not be IGraphMessage");
244 template<
typename TGraphMessageType>
248 static_assert(!std::is_same_v<TGraphMessageType, IGraphMessage>,
"Argument TGraphMessageType must not be IGraphMessage");
258 template<
typename TGraphMessageType>
262 static_assert(!std::is_same_v<TGraphMessageType, IGraphMessage>,
"Argument TGraphMessageType must not be IGraphMessage");
272 template<
typename TGraphMessageType>
276 static_assert(!std::is_same_v<TGraphMessageType, IGraphMessage>,
"Argument TGraphMessageType must not be IGraphMessage");
287 template<
typename TGraphMessageType>
291 static_assert(!std::is_same_v<TGraphMessageType, IGraphMessage>,
"Argument TGraphMessageType must not be IGraphMessage");
293 return HasMessage(TGraphMessageType::GetStaticTypeName());
356 FMessageMap MessageStacks;
#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
Definition NameTypes.h:617
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
Definition AnimNodeMessages.h:46
bool Is() const
Definition AnimNodeMessages.h:58
static FName GetStaticTypeName()
Definition AnimNodeMessages.h:50
const Type & As() const
Definition AnimNodeMessages.h:64
Type & As()
Definition AnimNodeMessages.h:70
virtual FName GetTypeName() const =0
virtual ~IAnimNotifyEventContextDataInterface()=default
Definition AnimNodeMessages.h:81
virtual ~IGraphMessage()=default
virtual TSharedPtr< const IAnimNotifyEventContextDataInterface > MakeEventContextData() const
Definition AnimNodeMessages.h:113
static FName GetStaticTypeName()
Definition AnimNodeMessages.h:87
Type & As()
Definition AnimNodeMessages.h:107
virtual TUniquePtr< const IAnimNotifyEventContextDataInterface > MakeUniqueEventContextData() const
Definition AnimNodeMessages.h:119
bool Is() const
Definition AnimNodeMessages.h:95
const Type & As() const
Definition AnimNodeMessages.h:101
virtual FName GetTypeName() const =0
Definition AdvancedWidgetsModule.cpp:13
Definition AnimNodeBase.h:853
Definition AnimNodeBase.h:159
Definition AnimNodeBase.h:131
Definition UnrealTypeTraits.h:40
Definition AnimNodeMessages.h:237
FAnimNode_Base * Node
Definition AnimNodeMessages.h:238
const UScriptStruct * NodeStruct
Definition AnimNodeMessages.h:239
Definition AnimNodeMessages.h:214
bool HasMessage() const
Definition AnimNodeMessages.h:288
void ForEachMessage(TFunctionRef< EEnumerate(TGraphMessageType &)> InFunction) const
Definition AnimNodeMessages.h:245
FMessageStack(FMessageStack &&InMessageStack)=default
FMessageStack & operator=(const FMessageStack &)=delete
FMessageStack(FMessageStack &)=delete
EEnumerate
Definition AnimNodeMessages.h:230
ENGINE_API void ForEachTag(FName InTagId, TFunctionRef< EEnumerate(FNodeInfo)> InFunction) const
Definition AnimNodeMessages.cpp:171
FMessageStack & operator=(FMessageStack &&)=default
ENGINE_API void MakeEventContextData(TArray< TUniquePtr< const IAnimNotifyEventContextDataInterface > > &ContextData) const
Definition AnimNodeMessages.cpp:213
void TopMessage(TFunctionRef< void(TGraphMessageType &)> InFunction) const
Definition AnimNodeMessages.h:259
void TopMessageWeakPtr(TFunctionRef< void(TWeakPtr< TGraphMessageType > &)> InFunction)
Definition AnimNodeMessages.h:273
ENGINE_API void CopyForCachedUpdate(const FMessageStack &InStack)
Definition AnimNodeMessages.cpp:188
Definition AnimNodeMessages.h:144
ENGINE_API void PopMessage()
Definition AnimNodeMessages.cpp:67
ENGINE_API void PushMessage(const FAnimationBaseContext &InContext, TSharedRef< IGraphMessage > InMessage, FName InMessageType)
Definition AnimNodeMessages.cpp:45
FName MessageType
Definition AnimNodeMessages.h:156
FAnimationUpdateSharedContext * SharedContext
Definition AnimNodeMessages.h:153
Definition AnimNodeMessages.h:130
ENGINE_API ~FScopedGraphTag()
Definition AnimNodeMessages.cpp:34
Definition AnimNodeMessages.h:183
TOptionalScopedGraphMessage(bool bInCondition, const FAnimationBaseContext &InContext, TArgs &&... Args)
Definition AnimNodeMessages.h:185
~TOptionalScopedGraphMessage()
Definition AnimNodeMessages.h:199
Definition AnimNodeMessages.h:162
TScopedGraphMessage(const FAnimationBaseContext &InContext, TArgs &&... Args)
Definition AnimNodeMessages.h:164
~TScopedGraphMessage()
Definition AnimNodeMessages.h:174