Open 3D Engine ScriptCanvas Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
ScriptCanvas::NodeFunctionGenericMultiReturnImpl< Function, t_Traits > Class Template Reference

Inherits ScriptCanvas::Node.

Public Types

using t_Func = decltype(Function)
 
- Public Types inherited from ScriptCanvas::Node
enum class  OutputStorage { Optional , Required }
 
using SlotList = AZStd::list< Slot >
 
using SlotIterator = SlotList::iterator
 
using DatumList = AZStd::list< Datum >
 
using DatumIterator = DatumList::iterator
 
using DatumVector = AZStd::vector< const Datum * >
 
using ExploredDynamicGroupCache = AZStd::unordered_map< AZ::EntityId, AZStd::unordered_set< AZ::Crc32 > >
 

Public Member Functions

 AZ_PUSH_DISABLE_WARNING (5046, "-Wunknown-warning-option")
 
 AZ_RTTI_NO_TYPE_INFO_DECL ()
 
 AZ_COMPONENT_INTRUSIVE_DESCRIPTOR_TYPE (NodeFunctionGenericMultiReturnImpl)
 
 AZ_COMPONENT_BASE (NodeFunctionGenericMultiReturnImpl, Node)
 
AZ::Outcome< DependencyReport, void > GetDependencies () const override
 
AZ::Outcome< AZStd::string, void > GetFunctionCallName (const Slot *) const override
 
AZ::Outcome< Grammar::LexicalScope, void > GetFunctionCallLexicalScope (const Slot *) const override
 
bool IsDeprecated () const override
 
ScriptCanvas::NodeReplacementConfiguration GetReplacementNodeConfiguration () const override
 
- Public Member Functions inherited from ScriptCanvas::Node
 AZ_COMPONENT (Node, "{52B454AE-FA7E-4FE9-87D3-A1CAB235C691}", SerializationListener)
 
 Node (const Node &)
 
Nodeoperator= (const Node &)
 
virtual bool CanAcceptNullInput (const Slot &executionSlot, const Slot &inputSlot) const
 
virtual void CollectVariableReferences (AZStd::unordered_set< ScriptCanvas::VariableId > &variableIds) const
 
virtual bool ContainsReferencesToVariables (const AZStd::unordered_set< ScriptCanvas::VariableId > &variableIds) const
 
GraphGetGraph () const
 
AZ::EntityId GetGraphEntityId () const
 
AZ::Data::AssetId GetGraphAssetId () const
 
AZStd::string GetGraphAssetName () const
 
GraphIdentifier GetGraphIdentifier () const
 
bool IsSanityCheckRequired () const
 
void SanityCheckDynamicDisplay ()
 
void SanityCheckDynamicDisplay (ExploredDynamicGroupCache &exploredGroupCache)
 
bool ConvertSlotToReference (const SlotId &slotId, bool isNewSlot=false)
 
bool ConvertSlotToValue (const SlotId &slotId)
 
NamedEndpoint CreateNamedEndpoint (SlotId slotId) const
 
void SignalReconfigurationBegin ()
 
void SignalReconfigurationEnd ()
 
virtual bool IsEntryPoint () const
 
virtual bool RequiresDynamicSlotOrdering () const
 
void Init () final
 Node internal initialization, for custom init, use OnInit.
 
void Activate () final
 Node internal activation and housekeeping, for custom activation configuration use OnActivate.
 
void Deactivate () final
 Node internal deactivation and housekeeping, for custom deactivation configuration use OnDeactivate.
 
void PostActivate ()
 
void SignalDeserialized ()
 
virtual AZStd::string GetNodeTypeName () const
 
virtual AZStd::string GetDebugName () const
 
virtual AZStd::string GetNodeName () const
 
virtual const AZStd::string & GetNodeToolTip () const
 
virtual const AZStd::string & GetNodeStyle () const
 
virtual void SetNodeName (const AZStd::string &name)
 
virtual void SetNodeToolTip (const AZStd::string &toolTip)
 
virtual void SetNodeStyle (const AZStd::string &nodeStyle)
 
virtual void SetNodeLexicalId (const AZ::Crc32 &nodeLexicalId)
 
AZStd::string GetSlotName (const SlotId &slotId) const
 
SlotList & GetSlots ()
 returns a list of all slots, regardless of type
 
const SlotList & GetSlots () const
 
ConstSlotsOutcome GetSlots (const AZStd::vector< SlotId > &slotIds) const
 
SlotsOutcome GetSlots (const AZStd::vector< SlotId > &slotIds)
 
AZStd::vector< Slot * > GetSlotsWithDisplayGroup (AZStd::string_view displayGroup) const
 
AZStd::vector< Slot * > GetSlotsWithDynamicGroup (const AZ::Crc32 &dynamicGroup) const
 
AZStd::vector< const Slot * > GetAllSlotsByDescriptor (const SlotDescriptor &slotDescriptor, bool allowLatentSlots=false) const
 
NodePtrConstList FindConnectedNodesByDescriptor (const SlotDescriptor &slotType, bool followLatentConnections=false) const
 returns a const list of nodes connected to slot(s) of the specified type
 
AZStd::vector< AZStd::pair< const Node *, SlotId > > FindConnectedNodesAndSlotsByDescriptor (const SlotDescriptor &slotType, bool followLatentConnections=false) const
 
AZStd::vector< const Slot * > GetSlotsByType (CombinedSlotType slotType) const
 
bool IsConnected (const Slot &slot) const
 
bool IsConnected (const SlotId &slotId) const
 
bool HasConnectionForDescriptor (const SlotDescriptor &slotDescriptor) const
 
bool IsPureData () const
 
bool IsActivated () const
 
SlotGetSlot (const SlotId &slotId) const override
 
size_t GetSlotIndex (const SlotId &slotId) const override
 
AZStd::vector< const Slot * > GetAllSlots () const override
 
AZStd::vector< Slot * > ModAllSlots () override
 
SlotId GetSlotId (AZStd::string_view slotName) const override
 
SlotId FindSlotIdForDescriptor (AZStd::string_view slotName, const SlotDescriptor &descriptor) const override
 
const DatumFindDatum (const SlotId &slotId) const override
 
bool FindModifiableDatumView (const SlotId &slotId, ModifiableDatumView &datumView) override
 
AZStd::vector< SlotIdGetSlotIds (AZStd::string_view slotName) const override
 
const ScriptCanvasId & GetOwningScriptCanvasId () const override
 
AZ::Outcome< void, AZStd::string > SlotAcceptsType (const SlotId &, const Data::Type &) const override
 
Data::Type GetSlotDataType (const SlotId &slotId) const override
 
Data::Type GetUnderlyingSlotDataType (const SlotId &slotId) const
 
VariableId GetSlotVariableId (const SlotId &slotId) const override
 
void SetSlotVariableId (const SlotId &slotId, const VariableId &variableId) override
 
void ClearSlotVariableId (const SlotId &slotId) override
 
int FindSlotIndex (const SlotId &slotId) const override
 
bool IsOnPureDataThread (const SlotId &slotId) const override
 
AZ::Outcome< void, AZStd::string > IsValidTypeForSlot (const SlotId &slotId, const Data::Type &dataType) const override
 
AZ::Outcome< void, AZStd::string > IsValidTypeForGroup (const AZ::Crc32 &dynamicGroup, const Data::Type &dataType) const override
 
void SignalBatchedConnectionManipulationBegin () override
 
void SignalBatchedConnectionManipulationEnd () override
 
void AddNodeDisabledFlag (NodeDisabledFlag disabledFlag) override
 
void RemoveNodeDisabledFlag (NodeDisabledFlag disabledFlag) override
 
bool IsNodeEnabled () const override
 
bool HasNodeDisabledFlag (NodeDisabledFlag disabledFlag) const override
 
NodeDisabledFlag GetNodeDisabledFlag () const
 
void SetNodeDisabledFlag (NodeDisabledFlag disabledFlag)
 
bool RemoveVariableReferences (const AZStd::unordered_set< ScriptCanvas::VariableId > &variableIds) override
 
SlotGetSlotByName (AZStd::string_view slotName) const
 
SlotGetSlotByTransientId (TransientSlotIdentifier transientSlotId) const
 
const SlotGetSlotByNameAndType (AZStd::string_view slotName, CombinedSlotType slotType) const
 
void OnDatumEdited (const Datum *datum) override
 
void OnEndpointConnected (const Endpoint &endpoint) override
 
void OnEndpointDisconnected (const Endpoint &endpoint) override
 
bool IsTargetInDataFlowPath (const Node *targetNode) const
 
bool IsInEventHandlingScope (const ID &possibleEventHandler) const
 
virtual void MarkDefaultableInput ()
 
AZStd::string CreateInputMapString (const SlotDataMap &map) const
 
bool IsNodeType (const NodeTypeIdentifier &nodeIdentifier) const
 
NodeTypeIdentifier GetNodeType () const
 
void ResetSlotToDefaultValue (const SlotId &slotId)
 
void ResetProperty (const AZ::Crc32 &propertyId)
 
void DeleteSlot (const SlotId &slotId)
 
bool HasExtensions () const
 
void RegisterExtension (const VisualExtensionSlotConfiguration &configuration)
 
const AZStd::vector< VisualExtensionSlotConfiguration > & GetVisualExtensions () const
 
virtual bool CanDeleteSlot (const SlotId &slotId) const
 
virtual SlotId HandleExtension (AZ::Crc32 extensionId)
 
virtual void ExtensionCancelled (AZ::Crc32 extensionId)
 
virtual void FinalizeExtension (AZ::Crc32 extensionId)
 
virtual NodePropertyInterfaceGetPropertyInterface (AZ::Crc32 propertyInterface)
 
virtual NodeTypeIdentifier GetOutputNodeType (const SlotId &slotId) const
 
virtual NodeTypeIdentifier GetInputNodeType (const SlotId &slotId) const
 
virtual bool IsDeprecated () const
 
virtual size_t GenerateFingerprint () const
 
virtual NodeReplacementConfiguration GetReplacementNodeConfiguration () const
 
virtual AZStd::unordered_map< AZStd::string, AZStd::vector< AZStd::string > > GetReplacementSlotsMap () const
 
virtual void CustomizeReplacementNode (Node *, AZStd::unordered_map< SlotId, AZStd::vector< SlotId > > &) const
 
void RefreshInput ()
 
GraphVariableFindGraphVariable (const VariableId &variableId) const
 
EndpointsResolved GetConnectedNodes (const Slot &slot) const
 
AZStd::vector< const Slot * > GetEventSlots () const
 
bool ValidateNode (ValidationResults &validationResults)
 
void OnSlotConvertedToValue (const SlotId &slotId)
 
void OnSlotConvertedToReference (const SlotId &slotId)
 
virtual bool IsOutOfDate (const VersionData &graphVersion) const
 
UpdateResult UpdateNode ()
 
virtual AZStd::string GetUpdateString () const
 
virtual bool ConvertsInputToStrings () const
 
virtual AZ::Outcome< DependencyReport, void > GetDependencies () const
 
virtual AZ::Outcome< AZStd::string, void > GetFunctionCallName (const Slot *) const
 
virtual EventType GetFunctionEventType (const Slot *slot) const
 
virtual AZ::Outcome< Grammar::FunctionPrototypeGetSimpleSignature () const
 
virtual AZ::Outcome< Grammar::FunctionPrototypeGetSignatureOfEexcutionIn (const Slot &executionSlot) const
 
virtual AZ::Outcome< Grammar::LexicalScope, void > GetFunctionCallLexicalScope (const Slot *) const
 
ConstSlotsOutcome GetSlotsInExecutionThreadByType (const Slot &executionSlot, CombinedSlotType targetSlotType, const Slot *executionChildSlot=nullptr) const
 
size_t GetOutIndex (const Slot &slot) const
 
virtual AZ::Outcome< AZStd::string > GetLatentOutKey (const Slot &slot) const
 
virtual SlotId GetLoopFinishSlotId () const
 
virtual SlotId GetLoopSlotId () const
 
virtual PropertyFields GetPropertyFields () const
 
virtual Grammar::MultipleFunctionCallFromSingleSlotInfo GetMultipleFunctionCallFromSingleSlotInfo (const Slot &slot) const
 
virtual VariableId GetVariableIdRead (const Slot *) const
 
virtual VariableId GetVariableIdWritten (const Slot *) const
 
virtual const SlotGetVariableInputSlot () const
 
virtual const SlotGetVariableOutputSlot () const
 
virtual bool IsFormalLoop () const
 
virtual bool IsIfBranchPrefacedWithBooleanExpression () const
 
virtual bool IsIfBranch () const
 
virtual const SlotGetIfBranchFalseOutSlot () const
 
virtual const SlotGetIfBranchTrueOutSlot () const
 
virtual bool IsLogicalAND () const
 
virtual bool IsLogicalNOT () const
 
virtual bool IsLogicalOR () const
 
virtual bool IsNoOp () const
 
virtual bool IsNodeableNode () const
 
virtual bool IsSwitchStatement () const
 
virtual bool IsEventHandler () const
 
virtual const SlotGetEBusConnectSlot () const
 
virtual const SlotGetEBusConnectAddressSlot () const
 
virtual const SlotGetEBusDisconnectSlot () const
 
virtual AZStd::string GetEBusName () const
 
virtual AZStd::optional< size_t > GetEventIndex (AZStd::string eventName) const
 
virtual AZStd::vector< SlotIdGetEventSlotIds () const
 
virtual AZStd::vector< SlotIdGetNonEventSlotIds () const
 
virtual AZStd::vector< const Slot * > GetOnVariableHandlingDataSlots () const
 
virtual AZStd::vector< const Slot * > GetOnVariableHandlingExecutionSlots () const
 
virtual bool IsAutoConnected () const
 
virtual bool IsEBusAddressed () const
 
virtual bool IsVariableWriteHandler () const
 
virtual const DatumGetHandlerStartAddress () const
 
virtual const SlotExecution::MapGetSlotExecutionMap () const
 
virtual const Grammar::SubgraphInterfaceGetSubgraphInterface () const
 
virtual ExecutionNameMap GetExecutionNameMap () const
 
virtual ConstSlotsOutcome GetSlotsInExecutionThreadByTypeImpl (const Slot &executionSlot, CombinedSlotType targetSlotType, const Slot *executionChildSlot) const
 
ConstSlotsOutcome GetSlotsFromMap (const SlotExecution::Map &map, const Slot &executionSlot, CombinedSlotType targetSlotType, const Slot *executionChildSlot) const
 
ConstSlotsOutcome GetDataInSlotsByExecutionIn (const SlotExecution::Map &map, const Slot &executionInSlot) const
 
ConstSlotsOutcome GetDataInSlotsByExecutionOut (const SlotExecution::Map &map, const Slot &executionOutSlot) const
 
ConstSlotsOutcome GetDataOutSlotsByExecutionIn (const SlotExecution::Map &map, const Slot &executionInSlot) const
 
ConstSlotsOutcome GetDataOutSlotsByExecutionOut (const SlotExecution::Map &map, const Slot &executionOutSlot) const
 
ConstSlotsOutcome GetExecutionOutSlotsByExecutionIn (const SlotExecution::Map &map, const Slot &executionInSlot) const
 
AZ::Outcome< AZStd::string > GetLatentOutKey (const SlotExecution::Map &map, const Slot &slot) const
 
const SlotGetCorrespondingExecutionSlot (const Slot *slot) const
 
AZStd::vector< const Slot * > GetCorrespondingDataSlots (const Slot *slot) const
 
void ClearDisplayType (const SlotId &slotId)
 
void SetDisplayType (const SlotId &slotId, const Data::Type &dataType)
 
void SetDisplayType (const AZ::Crc32 &dynamicGroup, const Data::Type &dataType, bool forceDisplaySet=false)
 
Data::Type GetDisplayType (const AZ::Crc32 &dynamicGroup) const
 
SlotId AddSlot (const SlotConfiguration &slotConfiguration, bool signalAddition=true)
 
void Configure ()
 
- Public Member Functions inherited from ScriptCanvas::SerializationListener
 AZ_RTTI (SerializationListener, "{CA4EE281-30B3-4928-BCD8-9305CE75E463}")
 
virtual void OnSerialize ()
 
virtual void OnDeserialize ()
 

Static Public Member Functions

static constexpr void DeprecatedTypeNameVisitor (const AZ::DeprecatedTypeNameCallback &visitCallback)
 
static const char * GetNodeFunctionName ()
 
static t_Func GetFunction ()
 
static void Reflect (AZ::ReflectContext *reflectContext)
 
- Static Public Member Functions inherited from ScriptCanvas::Node
static void Reflect (AZ::ReflectContext *reflection)
 
static int GetNodeVersion ()
 

Public Attributes

 AZ_POP_DISABLE_WARNING
 

Additional Inherited Members

- Protected Member Functions inherited from ScriptCanvas::Node
void OnDeserialize () override
 
virtual void OnReconfigurationBegin ()
 
virtual void OnReconfigurationEnd ()
 
virtual void OnSanityCheckDisplay ()
 
virtual bool OnValidateNode (ValidationResults &validationResults)
 
bool IsUpdating () const
 
virtual UpdateResult OnUpdateNode ()
 
void ConfigureSlotDisplayType (Slot *slot, const Data::Type &dataType)
 
void ConfigureSlotDisplayType (Slot *slot, const Data::Type &dataType, ExploredDynamicGroupCache &exploredGroupCache)
 
void SignalSlotsReordered ()
 
void ModifyUnderlyingSlotDatum (const SlotId &id, ModifiableDatumView &datumView)
 
bool HasSlots () const
 
SlotList & ModSlots ()
 returns a list of all slots, regardless of type
 
const DatumFindDatumByIndex (size_t index) const
 
void FindModifiableDatumViewByIndex (size_t index, ModifiableDatumView &controller)
 
const SlotGetSlotByIndex (size_t index) const
 
SlotId InsertSlot (AZ::s64 index, const SlotConfiguration &slotConfiguration, bool isNewSlot=true)
 
bool RemoveSlot (const SlotId &slotId, bool signalRemoval=true, const bool warnOnMissingSlots=true)
 
void RemoveConnectionsForSlot (const SlotId &slotId, bool slotDeleted=false)
 
void SignalSlotRemoved (const SlotId &slotId)
 
void InitializeVariableReference (Slot &slot, const AZStd::unordered_set< VariableId > &excludedVariableIds)
 
void RenameSlot (Slot &slot, const AZStd::string &slotName)
 
virtual void OnResetDatumToDefaultValue (ModifiableDatumView &datum)
 
TransientSlotIdentifier ConstructTransientIdentifier (const Slot &slot) const
 
DatumVector GatherDatumsForDescriptor (SlotDescriptor descriptor) const
 
SlotDataMap CreateInputMap () const
 
SlotDataMap CreateOutputMap () const
 
void ClearDisplayType (const AZ::Crc32 &dynamicGroup)
 
void ClearDisplayType (const AZ::Crc32 &dynamicGroup, ExploredDynamicGroupCache &exploredCache)
 
void SetDisplayType (const AZ::Crc32 &dynamicGroup, const Data::Type &dataType, ExploredDynamicGroupCache &exploredCache, bool forceDisplaySet=false)
 
Data::Type FindConcreteDisplayType (const AZ::Crc32 &dynamicGroup) const
 
Data::Type FindConcreteDisplayType (const AZ::Crc32 &dynamicGroup, ExploredDynamicGroupCache &exploredCache) const
 
bool HasDynamicGroup (const AZ::Crc32 &dynamicGroup) const
 
void SetDynamicGroup (const SlotId &slotId, const AZ::Crc32 &dynamicGroup)
 
Data::Type FindConnectedConcreteDisplayType (const Slot &slot) const
 
Data::Type FindConnectedConcreteDisplayType (const Slot &slot, ExploredDynamicGroupCache &exploredGroupCache) const
 
virtual void ConfigureSlots ()
 This is a used by CodeGen to configure slots just prior to OnInit.
 
virtual void OnInit ()
 Entity level initialization, perform any resource allocation here that should be available throughout the node's existence.
 
virtual void ConfigureVisualExtensions ()
 Hook for populating the list of visual extensions to the node.
 
virtual void OnConfigured ()
 Entity level configuration, perform any post configuration actions on slots here.
 
virtual void OnDeserialized ()
 Signaled when this entity is deserialized(like from an undo or a redo)
 
virtual void OnActivate ()
 Entity level activation, perform entity lifetime setup here, i.e. connect to EBuses.
 
virtual void OnDeactivate ()
 Entity level deactivation, perform any entity lifetime release here, i.e disconnect from EBuses.
 
virtual void OnPostActivate ()
 
virtual void OnGraphSet ()
 Signal sent once the OwningScriptCanvasId is set.
 
void SignalSlotDisplayTypeChanged (const SlotId &slotId, const Data::Type &dataType)
 Signal sent when a Dynamic Group Display type is changed.
 
virtual void OnSlotDisplayTypeChanged (const SlotId &, const Data::Type &)
 
virtual void OnDynamicGroupTypeChangeBegin (const AZ::Crc32 &)
 
virtual void OnDynamicGroupDisplayTypeChanged (const AZ::Crc32 &, const Data::Type &)
 
virtual Data::Type FindFixedDataTypeForSlot (const Slot &) const
 
virtual void OnSlotRemoved (const SlotId &)
 Signal when.
 
void ForEachConnectedNode (const Slot &slot, AZStd::function< void(Node &, const SlotId &)> callable) const
 
AZStd::vector< EndpointGetAllEndpointsByDescriptor (const SlotDescriptor &slotDescriptor, bool allowLatentEndpoints=false) const
 
AZStd::vector< AZStd::pair< Node *, const SlotId > > ModConnectedNodes (const Slot &slot) const
 
void ModConnectedNodes (const Slot &slot, AZStd::vector< AZStd::pair< Node *, const SlotId > > &) const
 
bool HasConnectedNodes (const Slot &slot) const
 
void SetOwningScriptCanvasId (ScriptCanvasId scriptCanvasId)
 
void SetGraphEntityId (AZ::EntityId graphEntityId)
 
bool SlotExists (AZStd::string_view name, const SlotDescriptor &slotDescriptor) const
 
bool IsTargetInDataFlowPath (const ID &targetNodeId, AZStd::unordered_set< ID > &path) const
 
bool IsInEventHandlingScope (const ID &eventHandler, const AZStd::vector< SlotId > &eventSlots, const SlotId &connectionSlot, AZStd::unordered_set< ID > &path) const
 
bool IsOnPureDataThreadHelper (AZStd::unordered_set< ID > &path) const
 
void PopulateNodeType ()
 
GraphScopedNodeId GetScopedNodeId () const
 

Member Function Documentation

◆ GetDependencies()

template<auto Function, typename t_Traits >
AZ::Outcome< DependencyReport, void > ScriptCanvas::NodeFunctionGenericMultiReturnImpl< Function, t_Traits >::GetDependencies ( ) const
inlineoverridevirtual

Reimplemented from ScriptCanvas::Node.

◆ GetFunctionCallLexicalScope()

template<auto Function, typename t_Traits >
AZ::Outcome< Grammar::LexicalScope, void > ScriptCanvas::NodeFunctionGenericMultiReturnImpl< Function, t_Traits >::GetFunctionCallLexicalScope ( const Slot ) const
inlineoverridevirtual

Reimplemented from ScriptCanvas::Node.

◆ GetFunctionCallName()

template<auto Function, typename t_Traits >
AZ::Outcome< AZStd::string, void > ScriptCanvas::NodeFunctionGenericMultiReturnImpl< Function, t_Traits >::GetFunctionCallName ( const Slot ) const
inlineoverridevirtual

Reimplemented from ScriptCanvas::Node.

◆ GetReplacementNodeConfiguration()

template<auto Function, typename t_Traits >
ScriptCanvas::NodeReplacementConfiguration ScriptCanvas::NodeFunctionGenericMultiReturnImpl< Function, t_Traits >::GetReplacementNodeConfiguration ( ) const
inlineoverridevirtual

Reimplemented from ScriptCanvas::Node.

◆ IsDeprecated()

template<auto Function, typename t_Traits >
bool ScriptCanvas::NodeFunctionGenericMultiReturnImpl< Function, t_Traits >::IsDeprecated ( ) const
inlineoverridevirtual

Reimplemented from ScriptCanvas::Node.


The documentation for this class was generated from the following file: