Database#

class omni.graph.core.Database(node: Node)#

Bases: object

Base class for the generated database class for .ogn nodes (Python and C++ implementations)

Defines some common functionality that is the same for nodes of all types, to help cut down on the amount of redundant generated code.

Like the C++ equivalent, you can access the ABI data types normally passed to the compute as db.abi_node() and db.abi_context()

Derived classes will have these class member variables instantiated, which are manipulated here in order to keep the amount of generated code to a minimum

Methods

__init__(node)

Initialize the helper classes for roles and sizes - attribute values are defined in the derived classes

dynamic_attribute_data(node, port_type)

Gets the dynamic attribute data class stored on each node for a given port type

get_internal_state(node, inst_id)

Returns the internal state information on the node, or None if it does not exist

get_metadata(metadata_key[, attribute])

Get metadata related to this node.

get_variable(name)

Get the value of a variable with a given name.

log_error(message[, add_context])

Log an error message from a compute method, for when the compute data is inconsistent or unexpected

log_info(message)

Log an information message from a compute method, when status information is required about the compute.

log_warn(message)

Log a warning message from a compute method, when the compute is consistent but produced no results.

log_warning(message)

Log a warning message from a compute method, when the compute is consistent but produced no results.

move(dst, src)

Deprecated function.

per_instance_internal_state(node)

Returns the internal state information on the node, or None if it does not exist

per_node_data(node)

Returns the per-node data for the given node

per_node_errors(node)

Returns the compute errors on the node, or [] if it does not exist

per_node_internal_state(node)

set_dynamic_attribute_memory_location(on_gpu)

Set the memory location from which dynamic attribute values will be retrieved

set_variable(name, value)

Set the value of a variable.

shared_internal_state(node)

Returns the internal state information on the node, or None if it does not exist

Attributes

INTERFACE

Attribute interface definition - things that don't change between nodes of the same type

PER_NODE_DATA

Dictionary for data that is different on every node of the same type.

ROLE_BUNDLE

DEPRECATED - use omni.graph.core.AttributeRole.BUNDLE

ROLE_COLOR

DEPRECATED - use omni.graph.core.AttributeRole.COLOR

ROLE_EXECUTION

DEPRECATED - use omni.graph.core.AttributeRole.EXECUTION

ROLE_FRAME

DEPRECATED - use omni.graph.core.AttributeRole.FRAME

ROLE_MATRIX

DEPRECATED - use omni.graph.core.AttributeRole.MATRIX

ROLE_NORMAL

DEPRECATED - use omni.graph.core.AttributeRole.NORMAL

ROLE_OBJECT_ID

DEPRECATED - use omni.graph.core.AttributeRole.OBJECT_ID

ROLE_PATH

DEPRECATED - use omni.graph.core.AttributeRole.PATH

ROLE_POINT

DEPRECATED - use omni.graph.core.AttributeRole.POSITION

ROLE_QUATERNION

DEPRECATED - use omni.graph.core.AttributeRole.QUATERNION

ROLE_TARGET

DEPRECATED - use omni.graph.core.AttributeRole.TARGET

ROLE_TEXCOORD

DEPRECATED - use omni.graph.core.AttributeRole.TEXCOORD

ROLE_TIMECODE

DEPRECATED - use omni.graph.core.AttributeRole.TIMECODE

ROLE_TRANSFORM

DEPRECATED - use omni.graph.core.AttributeRole.FRAME

ROLE_VECTOR

DEPRECATED - use omni.graph.core.AttributeRole.VECTOR

abi_context

The graph context to which this database belongs

abi_node

The node to which this database belongs

internal_state

The internal state data on the node owning this database

per_instance_state

The internal state data on the node owning this database

shared_state

The internal state data on the node owning this database

__init__(node: Node)#

Initialize the helper classes for roles and sizes - attribute values are defined in the derived classes

Parameters:

node – Node to which the database belongs

classmethod dynamic_attribute_data(
node: Node,
port_type: AttributePortType,
) DynamicAttributeInterface#

Gets the dynamic attribute data class stored on each node for a given port type

Parameters:
  • node – Node on which the dynamic attributes should be found

  • port_type – Port type for the dynamic attributes to retrieve

Returns:

Interface to the dynamic attributes on the given node

Return type:

DynamicAttributeInterface

classmethod get_internal_state(
node: Node,
inst_id: str,
)#

Returns the internal state information on the node, or None if it does not exist

Parameters:

node – Node for which the internal state is to be retrieved

Returns:

Internal state object attached to the given node

Return type:

Any

get_metadata(
metadata_key: str,
attribute: Attribute | None = None,
) str | None#

Get metadata related to this node.

To get the metadata on the node type call db.get_metadata(ogn.MetadataKeys.UI_NAME) To get the metadata from a specific attribute call db.get_metadata(ogn.MetadataKeys.UI_NAME, db.attribute.inputs.x)

Parameters:
  • metadata_key – Name of the metadata value to return

  • attribute – Attribute on which the metadata lives. If None then look at the node type’s metadata

Returns:

Metadata value string, or None if the named metadata key did not exist

Return type:

str | None

get_variable(name: str)#

Get the value of a variable with a given name. Returns None if the variable does not exist on the graph.

Parameters:

name – Name of the variable to retrieve

Returns:

Value of the variable, or None if it does not exist on this node’s graph

Return type:

Any

log_error(message: str, add_context: bool = True)#

Log an error message from a compute method, for when the compute data is inconsistent or unexpected

Parameters:
  • message – Text of the message to log

  • add_context – If True then add the stack trace from the location of the log report

log_info(message: str)#

Log an information message from a compute method, when status information is required about the compute. Usually the compute will be successful, the information is for debugging or analysis.

Parameters:

message – Text of the message to log

log_warn(message: str)#

Log a warning message from a compute method, when the compute is consistent but produced no results. This method is identical to log_warning; both exist because there are different conventions in other code about which name to use, so to avoid wasted developer time fixing unimportant incorrect guesses both are implemented.

Parameters:

message – Text of the message to log

log_warning(message: str)#

Log a warning message from a compute method, when the compute is consistent but produced no results. This method is identical to log_warn; both exist because there are different conventions in other code about which name to use, so to avoid wasted developer time fixing unimportant incorrect guesses both are implemented.

Parameters:

message – Text of the message to log

move(
dst: Attribute,
src: Attribute,
)#

Deprecated function. Will perform a copy instead of moving

classmethod per_instance_internal_state(
node: Node,
)#

Returns the internal state information on the node, or None if it does not exist

Parameters:

node – Node for which the internal state is to be retrieved

Returns:

Internal state object attached to the given node

Return type:

Any

classmethod per_node_data(
node: Node,
) Dict[str, Any]#

Returns the per-node data for the given node

Parameters:

node – OmniGraph node for which the data is to be retrieved

Raises:

og.OmniGraphError – If the per-node data is missing, most likely because the node is not initialized

classmethod per_node_errors(node: Node)#

Returns the compute errors on the node, or [] if it does not exist

Parameters:

node – Node for which the errors are to be retrieved

Returns:

List off errors reported on the node

Return type:

list[str]

set_dynamic_attribute_memory_location(
on_gpu: bool,
gpu_ptr_kind: ~omni.graph.core._omni_graph_core.PtrToPtrKind = <PtrToPtrKind.NA: 0>,
)#

Set the memory location from which dynamic attribute values will be retrieved

Parameters:
  • on_gpu – If true the data will be returned from GPU memory, else from CPU memory

  • gpu_ptr_kind – Ignored for CPU memory. For GPU memory specifies whether attribute data will be returned as a GPU pointer to the GPU memory, or a CPU pointer to the GPU memory.

set_variable(name: str, value: Any)#

Set the value of a variable. og.OmniGraphError will be raised if the variable does not exist on the graph, or if there is type mismatch

Parameters:
  • name – Name of the variable to set

  • value – New value for the variable

Raises:

OmniGraphError – If the variable did not exist or could not be set

classmethod shared_internal_state(
node: Node,
)#

Returns the internal state information on the node, or None if it does not exist

Parameters:

node – Node for which the internal state is to be retrieved

Returns:

Internal state object attached to the given node

Return type:

Any

INTERFACE = {}#

Attribute interface definition - things that don’t change between nodes of the same type

PER_NODE_DATA = {}#

Dictionary for data that is different on every node of the same type.

ROLE_BUNDLE#

DEPRECATED - use omni.graph.core.AttributeRole.BUNDLE

ROLE_COLOR#

DEPRECATED - use omni.graph.core.AttributeRole.COLOR

ROLE_EXECUTION#

DEPRECATED - use omni.graph.core.AttributeRole.EXECUTION

ROLE_FRAME#

DEPRECATED - use omni.graph.core.AttributeRole.FRAME

ROLE_MATRIX#

DEPRECATED - use omni.graph.core.AttributeRole.MATRIX

ROLE_NORMAL#

DEPRECATED - use omni.graph.core.AttributeRole.NORMAL

ROLE_OBJECT_ID#

DEPRECATED - use omni.graph.core.AttributeRole.OBJECT_ID

ROLE_PATH#

DEPRECATED - use omni.graph.core.AttributeRole.PATH

ROLE_POINT#

DEPRECATED - use omni.graph.core.AttributeRole.POSITION

ROLE_QUATERNION#

DEPRECATED - use omni.graph.core.AttributeRole.QUATERNION

ROLE_TARGET#

DEPRECATED - use omni.graph.core.AttributeRole.TARGET

ROLE_TEXCOORD#

DEPRECATED - use omni.graph.core.AttributeRole.TEXCOORD

ROLE_TIMECODE#

DEPRECATED - use omni.graph.core.AttributeRole.TIMECODE

ROLE_TRANSFORM#

DEPRECATED - use omni.graph.core.AttributeRole.FRAME

ROLE_VECTOR#

DEPRECATED - use omni.graph.core.AttributeRole.VECTOR

property abi_context: GraphContext#

The graph context to which this database belongs

Type:

GraphContext

property abi_node: Node#

The node to which this database belongs

Type:

Node

property internal_state#

The internal state data on the node owning this database

Type:

Any

property per_instance_state#

The internal state data on the node owning this database

Type:

Any

property shared_state#

The internal state data on the node owning this database

Type:

Any