GraphNodeDelegateRouter

class omni.kit.widget.graph.GraphNodeDelegateRouter

Bases: AbstractGraphNodeDelegate

The delegate that keeps multiple delegates and pick them depending on the routing conditions.

It’s possible to add the routing conditions with `add_route`, and conditions could be a type or a lambda expression.

The latest added routing is stronger than previously added. Routing added without conditions is the default.

We use type routing to make the specific kind of nodes unique, and also we can use the lambda function to make the particular state of nodes unique (ex. full/collapsed).

It’s possible to use type and lambda routing at the same time.

Usage examples:

delegate.add_route(TextureDelegate(), type=”Texture2d”) delegate.add_route(CollapsedDelegate(), expressipon=is_collapsed)

Methods

__init__()

add_route(delegate[, type, expression])

Add delegate to the routing tablle

connection(model, source, target[, foreground])

Called to create the connection between ports

destroy()

get_node_layout(model, node_desc)

Called to determine the node layout

node_background(model, node_desc)

Called to create widgets of the node background

node_footer(model, node_desc)

Called to create widgets of the bottom of the node

node_header(model, node_desc)

Called to create widgets of the top of the node

node_header_input(model, node_desc)

Called to create the left part of the header that will be used as input when the node is collapsed

node_header_output(model, node_desc)

Called to create the right part of the header that will be used as output when the node is collapsed

port(model, node_desc, port_desc)

Called to create the middle part of the port

port_input(model, node_desc, port_desc)

Called to create the left part of the port that will be used as input

port_output(model, node_desc, port_desc)

Called to create the right part of the port that will be used as output

__init__()
add_route(delegate: AbstractGraphNodeDelegate, type=None, expression=None)

Add delegate to the routing tablle

connection(model, source: GraphConnectionDescription, target: GraphConnectionDescription, foreground: bool = False)

Called to create the connection between ports

get_node_layout(model, node_desc: GraphNodeDescription)

Called to determine the node layout

node_background(model, node_desc: GraphNodeDescription)

Called to create widgets of the node background

Called to create widgets of the bottom of the node

node_header(model, node_desc: GraphNodeDescription)

Called to create widgets of the top of the node

node_header_input(model, node_desc: GraphNodeDescription)

Called to create the left part of the header that will be used as input when the node is collapsed

node_header_output(model, node_desc: GraphNodeDescription)

Called to create the right part of the header that will be used as output when the node is collapsed

port(model, node_desc: GraphNodeDescription, port_desc: GraphPortDescription)

Called to create the middle part of the port

port_input(model, node_desc: GraphNodeDescription, port_desc: GraphPortDescription)

Called to create the left part of the port that will be used as input

port_output(model, node_desc: GraphNodeDescription, port_desc: GraphPortDescription)

Called to create the right part of the port that will be used as output