Weaponry Assembly System
WAS
Loading...
Searching...
No Matches
UWeaponMathRuntimeNode Class Reference

Base class for binary arithmetic operations on numeric values. More...

#include <WeaponMathRuntimeNode.h>

+ Inheritance diagram for UWeaponMathRuntimeNode:
+ Collaboration diagram for UWeaponMathRuntimeNode:

Public Member Functions

virtual void ExecuteNode () override final
 
virtual FORCEINLINE FNumericHolder Operate (const FNumericHolder &A, const FNumericHolder &B) const
 
- Public Member Functions inherited from UWeaponRuntimeNode
template<typename Fmt , typename ... Args>
void AbortExecution (Fmt &&Format, Args &&... args) const
 
void AbortExecution (FString &&Reason="") const
 
virtual void ClearCache () const
 
FORCEINLINE void Execute ()
 
FORCEINLINE_DEBUGGABLE TArray< UWeaponRuntimePin * > GetAllPins () const
 
class UWeaponAssetCharacteristicsGetCharacteristics () const
 
const class UWeaponAssetCharacteristicsGetCharacteristicsCDO () const
 
const class UWeaponAssetCharacteristicsGetDefaultCharacteristics () const
 
TSubclassOf< UWeaponAssetCharacteristicsGetDefaultCharacteristicsClass () const
 
const struct FWeaponExecutionContextGetDefaultExecutionContext () const
 
const struct FWeaponExecutionContextGetExecutionContext () const
 
class UWeaponRuntimeGraphGetGraph () const
 
class UWeaponRuntimeGraphGetGraphAnyContext () const
 
virtual FORCEINLINE UWeaponRuntimePinGetInput (int32 Index=0) const
 
FORCEINLINE UWeaponRuntimePinGetLastInput () const
 
virtual FORCEINLINE UWeaponRuntimePinGetMainInput () const
 
virtual FORCEINLINE UWeaponRuntimePinGetMainOutput () const
 
FORCEINLINE UWeaponRuntimeNodeGetNodeFromInput (int32 InputIndex) const
 
FORCEINLINE void GetNodeFromInput (int32 InputIndex, TArray< UWeaponRuntimeNode * > &ConnectedNodes) const
 
UWeaponRuntimeNodeGetNodeFromInput (UWeaponRuntimePin *FromPin) const
 
void GetNodeFromInput (UWeaponRuntimePin *FromPin, TArray< UWeaponRuntimeNode * > &ConnectedNodes) const
 
virtual FORCEINLINE UWeaponRuntimePinGetOutput (int32 Index=0) const
 
UWeaponRuntimePinGetPinByName (const FName &PinName, const TOptional< bool > &OptionalInputOnly) const
 
UWeaponRuntimePinGetPinConnection (const UWeaponRuntimePin *Pin, int32 ConnectionIndex=0) const
 
FORCEINLINE UWeaponRuntimePinGetPinConnection (int32 Pin, int32 ConnectionIndex=0) const
 
FORCEINLINE const TArray< UWeaponRuntimePin * > & GetPinConnections (const int32 Pin=0) const
 
const TArray< UWeaponRuntimePin * > & GetPinConnections (const UWeaponRuntimePin *Pin) const
 
virtual void GetValidPin (TArray< UWeaponRuntimePin * > &Pins)
 
UObject * GetWorldContext () const
 
FORCEINLINE bool HasInput () const
 
FORCEINLINE bool HasOutput () const
 
virtual void Init ()
 
bool IsAborting () const
 
void Reset ()
 

Additional Inherited Members

- Public Attributes inherited from UWeaponRuntimeNode
TArray< UWeaponRuntimePin * > InputPins
 
TArray< UWeaponRuntimePin * > OutputPins
 
- Protected Member Functions inherited from UWeaponRuntimeNode
void FixInvalidPinsConnections ()
 
virtual void GetNodeDebugString (TArray< FString > &Strings) const
 
virtual void PostExecuteNode ()
 
virtual void PreExecuteNode ()
 
void RemoveDuplicatedConections ()
 
void UpdateNodeFlowDebugString ()
 
- Protected Attributes inherited from UWeaponRuntimeNode
FString NodeFlowDebugString
 

Detailed Description

Base class for binary arithmetic operations on numeric values.

Note
This node is designed to operate on any numeric type, and will perform the operation according to the type of the first input pin. The actual operation is defined in derived classes by overriding the Operate method.
The node order execution is determined by the order of the input nodes from top to bottom, and the operation will be applied sequentially to all connected input pins. For example, if there are three input pins A, B, and C, the node will compute Operate(Operate(A, B), C) for addition and multiplication, or Operate(A, Operate(B, C)) for subtraction and division.
Warning
The node implicitly converts all inputs to the type of the first input pin, so it is important to ensure that all connected pins are of compatible types to avoid unexpected results. For example, if the first input pin is an integer and the second input pin is a float, the float will be truncated to an integer before the operation is performed.

Member Function Documentation

◆ ExecuteNode()

void UWeaponMathRuntimeNode::ExecuteNode ( )
finaloverridevirtual

Reimplemented from UWeaponRuntimeNode.

◆ Operate()

virtual FORCEINLINE FNumericHolder UWeaponMathRuntimeNode::Operate ( const FNumericHolder & A,
const FNumericHolder & B ) const
inlinevirtual