Navigation
API > API/Plugins > API/Plugins/UAFAnimNode
An anim node instance
| Name | FUAFAnimNode |
| Type | class |
| Header File | /Engine/Plugins/Experimental/UAF/UAFAnimNode/Source/UAFAnimNode/Public/UAF/AnimNodeCore/UAFAnimNode.h |
| Include Path | #include "UAF/AnimNodeCore/UAFAnimNode.h" |
Syntax
class FUAFAnimNode
Derived Classes
FUAFAnimNode derived class hierarchy
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FUAFAnimNode
(
FUAFAnimNode&& |
UAF/AnimNodeCore/UAFAnimNode.h | ||
FUAFAnimNode
(
FUAFAnimGraphUpdateContext& UpdateContext |
Only derived types can construct an anim node. | UAF/AnimNodeCore/UAFAnimNode.h | |
FUAFAnimNode () |
We prohibit creating an anim node without an update context. | UAF/AnimNodeCore/UAFAnimNode.h | |
FUAFAnimNode
(
const FUAFAnimNode& |
UAF/AnimNodeCore/UAFAnimNode.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FUAFAnimNode() |
Only a friend or derived type can call the destructor to ensure FUAFAnimNodePtr is used for lifetime management. | UAF/AnimNodeCore/UAFAnimNode.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bHasAddReferencedObjects | bool | Whether or not this node implements AddReferencedObjects(..) | UAF/AnimNodeCore/UAFAnimNode.h | |
| bIsBlendingOut | bool | Whether or not we are blending out Nodes with a single child will automatically propagate this value | UAF/AnimNodeCore/UAFAnimNode.h | |
| bIsInitialized | bool | Whether or not InitializeAs |
UAF/AnimNodeCore/UAFAnimNode.h | |
| bIsNewlyRelevant | bool | Whether or not we are newly relevant Nodes with a single child will automatically propagate this value | UAF/AnimNodeCore/UAFAnimNode.h | |
| bIsPendingDestroy | bool | Whether or not the last reference was released and we have been queued for destruction. | UAF/AnimNodeCore/UAFAnimNode.h | |
| Children | TArray< FUAFAnimNodePtr, TInlineAllocator< 2 > > | An array of children owned by this node Note that children can be nullptr | UAF/AnimNodeCore/UAFAnimNode.h | |
| FUAFAnimGraphUpdateContext | friend | UAF/AnimNodeCore/UAFAnimNode.h | ||
| FUAFAnimNodePtr | friend | UAF/AnimNodeCore/UAFAnimNode.h | ||
| Parent | FUAFAnimNode * | A pointer to this node's parent This pointer is valid if the node is attached to a parent - do not modify directly, always call SetParent/ClearParent | UAF/AnimNodeCore/UAFAnimNode.h | |
| PostAnimOp | FUAFAnimOp * | UAF/AnimNodeCore/UAFAnimNode.h | ||
| PostUpdateCounter | uint32 | UAF/AnimNodeCore/UAFAnimNode.h | ||
| PreAnimOp | FUAFAnimOp * | The AnimOps to perform before and after our children evaluate theirs. | UAF/AnimNodeCore/UAFAnimNode.h | |
| PreUpdateCounter | uint32 | Debug counters used to enforce invariants. | UAF/AnimNodeCore/UAFAnimNode.h | |
| ReferenceCount | uint8 | The number of references currently held on this node We only use 8-bits because we don't expect shared ownership semantics over a high number of nodes We are always created with one reference | UAF/AnimNodeCore/UAFAnimNode.h | |
| TotalWeight | float | The current total weight factoring in all inherited blend weights Nodes with a single child will automatically propagate this value | UAF/AnimNodeCore/UAFAnimNode.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
const FUAFAnimNodePtr & GetChildAt
(
int32 ChildIndex |
Returns the child at the specified index. | UAF/AnimNodeCore/UAFAnimNode.h | |
const TArray< FUAFAnimNodePtr, TInlineAllocator< 2 > > & GetChildren() |
Returns the list of children held by this node. | UAF/AnimNodeCore/UAFAnimNode.h | |
const FUAFAnimNodePtr & GetFirstChild() |
Returns the first child. | UAF/AnimNodeCore/UAFAnimNode.h | |
void * GetInterface
(
FUAFAnimNodeInterfaceId Id |
UAF/AnimNodeCore/UAFAnimNode.h | ||
const InterfaceType * GetInterface () |
UAF/AnimNodeCore/UAFAnimNode.h | ||
InterfaceType * GetInterface () |
Returns a pointer to the specified interface or nullptr if the interface is not supported by the current node data. | UAF/AnimNodeCore/UAFAnimNode.h | |
int32 GetNumChildren() |
Returns the number of children held by this node. | UAF/AnimNodeCore/UAFAnimNode.h | |
FUAFAnimNode * GetParent() |
Returns the node's parent. | UAF/AnimNodeCore/UAFAnimNode.h | |
const FUAFAnimOp * GetPostAnimOp () |
UAF/AnimNodeCore/UAFAnimNode.h | ||
FUAFAnimOp * GetPostAnimOp () |
Returns the AnimOp to perform after our children evaluate theirs. | UAF/AnimNodeCore/UAFAnimNode.h | |
const FUAFAnimOp * GetPreAnimOp () |
UAF/AnimNodeCore/UAFAnimNode.h | ||
FUAFAnimOp * GetPreAnimOp () |
Returns the AnimOp to perform before our children evaluate theirs. | UAF/AnimNodeCore/UAFAnimNode.h | |
float GetTotalWeight() |
Returns the current total weight factoring in all inherited blend weights. | UAF/AnimNodeCore/UAFAnimNode.h | |
bool HasChildren() |
Returns whether or not this node holds children. | UAF/AnimNodeCore/UAFAnimNode.h | |
bool HasPostUpdated() |
UAF/AnimNodeCore/UAFAnimNode.h | ||
bool HasPreUpdated() |
Tests the debug update counters to determine if Pre/PostUpdate has been called or not yet. | UAF/AnimNodeCore/UAFAnimNode.h | |
void HintNewlyRelevant
(
bool bIsNewlyRelevant |
Hints that this node is newly relevant This should be used when nodes are manually cached and re-used to hint when they become relevant again Note that if the node is already relevant, it cannot be made irrelevant until it updates | UAF/AnimNodeCore/UAFAnimNode.h | |
bool IsBlendingOut() |
Returns whether or not we are blending out. | UAF/AnimNodeCore/UAFAnimNode.h | |
bool IsNewlyRelevant() |
Returns whether or not we are newly relevant A node is newly relevant the first time it updates If you wish to re-use a node after it has fully blended out, you must first reset it | UAF/AnimNodeCore/UAFAnimNode.h | |
void Reset() |
Resets this node to its initial state This must be called when a node is re-used Cannot be called if the node is attached to a parent | UAF/AnimNodeCore/UAFAnimNode.h | |
void SetIsBlendingOut
(
bool bIsBlendingOut |
Sets whether or not we are blending out. | UAF/AnimNodeCore/UAFAnimNode.h | |
void SetTotalWeight
(
float Weight |
Sets the total weight. | UAF/AnimNodeCore/UAFAnimNode.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
int32 AddChild
(
const FUAFAnimNodePtr& Child |
UAF/AnimNodeCore/UAFAnimNode.h | ||
int32 AddChild
(
FUAFAnimNodePtr&& Child |
Adds a new child to this node and returns its index. | UAF/AnimNodeCore/UAFAnimNode.h | |
void InitializeAs
(
FUAFAnimGraphUpdateContext& UpdateContext |
Initialization function should be called within the constructor of derived types. | UAF/AnimNodeCore/UAFAnimNode.h | |
bool RemoveChild
(
const FUAFAnimNodePtr& Child |
Removes the specified child Returns true on success if the child was found, false otherwise | UAF/AnimNodeCore/UAFAnimNode.h | |
void RemoveChildAt
(
int32 ChildIndex |
Removes the child at the specified index. | UAF/AnimNodeCore/UAFAnimNode.h | |
void SetChildAt
(
int32 ChildIndex, |
Sets the child at the specified index. | UAF/AnimNodeCore/UAFAnimNode.h | |
void SetPostAnimOp
(
FUAFAnimOp* AnimOp |
Sets the AnimOp to perform after our children evaluate theirs When choosing whether to use PreAnimOp or PostAnimOp, favor the latter when possible Must be used by leaf nodes to produce an output | UAF/AnimNodeCore/UAFAnimNode.h | |
void SetPreAnimOp
(
FUAFAnimOp* AnimOp |
Sets the AnimOp to perform before our children evaluate theirs When choosing whether to use PreAnimOp or PostAnimOp, favor the latter when possible | UAF/AnimNodeCore/UAFAnimNode.h |
Protected Virtual
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostUpdate
(
FUAFAnimGraphUpdateContext& GraphContext |
Main update entry point for node instances This function is responsible for updating topology (e.g. managing children) and advancing time/phase Called during the update pass after children have been queued and traversed Note that it is not possible to change the PreAnimOp while in PostUpdate as it has already been queued When choosing whether to use PreUpdate or PostUpdate, favor the former when possible This is 'protected' to ensure that no one attempts to manually update untyped nodes. | UAF/AnimNodeCore/UAFAnimNode.h | |
virtual void PreUpdate
(
FUAFAnimGraphUpdateContext& GraphContext |
Main update entry point for node instances This function is responsible for updating topology (e.g. managing children) and advancing time/phase Called during the update pass before children have been queued and traversed When choosing whether to use PreUpdate or PostUpdate, favor the former when possible This is 'protected' to ensure that no one attempts to manually update untyped nodes. | UAF/AnimNodeCore/UAFAnimNode.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void AddReferencedObjects
(
FUAFAnimNode* This, |
Called when garbage collection requests hard/strong object references | UAF/AnimNodeCore/UAFAnimNode.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FUAFAnimNode & operator=
(
FUAFAnimNode&& |
UAF/AnimNodeCore/UAFAnimNode.h | ||
FUAFAnimNode & operator=
(
const FUAFAnimNode& |
UAF/AnimNodeCore/UAFAnimNode.h |