|
| AZ_CLASS_ALLOCATOR (Node, AZ::SystemAllocator) |
|
| AZ_RTTI (Node, "{274B4495-FDBF-45A9-9BAD-9E90269F2B73}", GraphElement) |
|
| Node (GraphPtr graph) |
|
virtual void | PostLoadSetup (GraphPtr graph, NodeId id) |
|
virtual void | PostLoadSetup () |
|
virtual const char * | GetTitle () const =0 |
| Returns the name that will be displayed as the title of the Node in the UI.
|
|
virtual const char * | GetSubTitle () const |
| Returns the name that will be displayed as the sub-title of the Node in the UI.
|
|
virtual NodeType | GetNodeType () const |
|
NodeId | GetId () const |
| Return the unique ID for this node in the containing graph.
|
|
uint32_t | GetMaxInputDepth () const |
| Return the greatest distance, number of connected nodes, between this node and other root nodes.
|
|
uint32_t | GetMaxOutputDepth () const |
| Return the greatest distance, number of connected nodes, between this node and other leaf nodes.
|
|
bool | HasSlots () const |
| Return true if this node contains any slots.
|
|
bool | HasInputSlots () const |
| Return true if this node contains any input slots.
|
|
bool | HasOutputSlots () const |
| Return true if this node contains any output slots.
|
|
bool | HasConnections () const |
| Returns true if the graph contains any connections referencing this node.
|
|
bool | HasInputConnections () const |
| Returns true if the graph has any connections to input slots on this node.
|
|
bool | HasOutputConnections () const |
| Returns true if the graph has any connections to output slots on this node.
|
|
bool | HasInputConnectionFromNode (ConstNodePtr node) const |
| Returns true if any of the input slots on this node have direct or indirect connections to output slots on the specified node.
|
|
bool | HasOutputConnectionToNode (ConstNodePtr node) const |
| Returns true if any of the output slots on this node have direct or indirect connections to input slots on the specified node.
|
|
bool | Contains (ConstSlotPtr slot) const |
| Returns true if this node contains the specified slot.
|
|
const SlotDefinitionList & | GetSlotDefinitions () const |
| Returns SlotDefinitions for all available Slots.
|
|
const SlotMap & | GetSlots () |
|
ConstSlotMap | GetSlots () const |
|
SlotPtr | GetSlot (const SlotId &slotId) |
| Returns the slot with the given slotId, or nullptr if it doesn't exist.
|
|
ConstSlotPtr | GetSlot (const SlotId &slotId) const |
|
SlotPtr | GetSlot (const SlotName &name) |
|
ConstSlotPtr | GetSlot (const SlotName &name) const |
|
const ExtendableSlotSet & | GetExtendableSlots (const SlotName &name) |
| Returns an ordered set of the extendable slots for a given SlotName, or an empty set if there are none.
|
|
int | GetExtendableSlotCount (const SlotName &name) const |
|
void | DeleteSlot (SlotPtr slot) |
|
virtual bool | CanDeleteSlot (ConstSlotPtr slot) const |
|
virtual SlotPtr | AddExtendedSlot (const SlotName &slotName) |
|
void | ClearCachedData () |
| Clear any data that was cached for this node.
|
|
| AZ_CLASS_ALLOCATOR (GraphElement, AZ::SystemAllocator) |
|
| AZ_RTTI (GraphElement, "{FD83C7CA-556B-49F1-BACE-6E9C7A4D6347}") |
|
| GraphElement (GraphPtr graph) |
|
GraphPtr | GetGraph () const |
| Returns the Graph that owns this GraphElement.
|
|
GraphContextPtr | GetGraphContext () const |
| Returns the GraphContext for this GraphElement.
|
|
The abstract base class for every type of node in a Graph. It consists primarily of a set of Slots. There is no functionality here beyond managing the Slots and finding Connections. Any useful functionality must be provided by subclasses in the client context where the GraphModel framework is used.
Slots are divided into two main objects: a SlotDefinition and the actual Slot. The SlotDefinition contains the predefined description of each slot that the Node contains. This information is not saved with the Node data in the Graph because it is provided by the Node subclass itself (either hard-coded or reflected from some other source). The Slot is the functional part, and contains any data related to specific instance of the Node (for example, the default value of an Input Data Slot). This data is serialized with the Node. Whenever a Node is created, either directly or by serializing in, the Node class ensures that Slots are created for each SlotDefinition defined by the Node subclass.
Every Slot in the Node has a SlotId, which is unique within the context of the Node. A specific Slot in a spectific Node is called an Endpoint and is identified by a pairing of NodeId and SlotId.
Subclasses must call RegisterSlot() to define the Node's inputs and outputs, but it shouldn't need to serialize any of its own data. This base class's Slot lists are reflected for serialization, and that's all that should be needed in most cases.