Node

The data graph contains everything directly or indirectly added by the user through SAMSON’s user interface, plugins, etc. A data graph node has basic pre-defined data and functionalities to manage the data (models, apps, etc.).

All nodes in SAMSON’s data graph, e.g. atoms (samson.Modeling.StructralModel.Atom), bonds (samson.Modeling.StructralModel.Bond), etc., derive from samson.DataModel.DataGraph.Node.

Topology

SAMSON’s data graph is a directed graph, where each node has one and only one parent (with the exception of documents (samson.DataModel.Document.Document), which have no parent), and possibly some children. The parent of a node can never be directly set, but can be retrieved using the samson.DataModel.DataGraph.Node.getParent() function. Children are managed using the samson.DataModel.DataGraph.Node.addChild() and samson.DataModel.DataGraph.Node.removeChild() functions.

Node lifecycle

In SAMSON, a data graph node may go through four lifecycle stages:

Node identity

Each node in the data graph has a type, which may be retrieved using the ref getType function. For example, the type returned by the samson.Modeling.StructralModel.Atom class, which derives from the Node class, is Atom, while the type returned by the samson.Modeling.StructuralModel.StructuralModel class is StructuralModel. The samson.DataModel.DataGraph.Node.getTypeString() function is a convenience function that may be used to obtain a type of a node as a string.

# get a data graph node's type
node.type

# get a data graph node's type as a string
node.typeString

# the same as before
sam.DataModel.DataGraph.Node.getTypeString(node.type)

You can also check for a particular type of a node e.g. whether it is a visual model, an interaction mode, a structural particle, etc.

Let’s, for example, erase all visual models in the current selection:

# loop over all currently selected nodes in the active document
for node in SAMSON.getActiveDocument().getSelectedNodes():

        # check if this node is a visual model
        if node.isVisualModel():

                # turn the undo system on
                SAMSON.beginHolding("Erase selected visual models")

                # erase the node
                node.erase()

                # turn the undo system off
                SAMSON.endHolding()

Each data graph node also has a unique index, that is managed internally by SAMSON. All indices are contiguous unsigned integers between 0 and n-1, where n is the number of data graph nodes. As a result, the node index is not permanent: when node i is deleted (and i is different from n-1), then node n-1 becomes node i. Node indices are used for example when picking objects in a viewport, by writing integers into the framebuffer instead of colors. The unique node index can be retrieved using samson.DataModel.DataGraph.Node.getNodeIndex().

Flags

Each data graph node has four flags:

These flags are accessed through functions of samson.DataModel.DataGraph.Node and, except for the highlighting flag which has temporary purposes, changing these flags’ values is “undoable”.

The samson.DataModel.DataGraph.Node.getFlags() function returns an integer that combines the highlighting and selection flags, as well as the “mobility flag” (samson.Modeling.StructuralModel.Particle.mobilityFlag) of particles (atoms and pseudo-atoms).

Color schemes

Each data graph node may have a material (samson.DataModel.DataGraph.Material), which may affect its rendering in the viewport. A material may be applied to a node with the samson.DataModel.DataGraph.Node.setMaterial() function. When a material is added to a node, it affects the node itself and all its descendants (unless they have a material themselves, which then has priority). Precisely, the samson.DataModel.DataGraph.Node.getMaterial() function returns the material directly applied to the node, or determines the deepest ancestor that has a material applied (by examining the node’s parent, then its parent’s parent, etc.). If no material is found, the samson.DataModel.DataGraph.Node.getMaterial() function returns 0.

Each material has a color scheme (samson.DataModel.DataGraph.ColorScheme) which may be modified and used to associate a color to a node or a spatial position (samson.DataModel.Type.position3).

Please refer to samson.DataModel.DataGraph.ColorScheme.

Getting nodes

You can get an indexer of child nodes using the samson.DataModel.DataGraph.Node.getNodes() function and the Node Specification Language.

Let’s, for example, select all node’s children atoms:

# get all node's children atoms
atomIndexer = node.getNodes('node.type atom')

# the same using short names
atomIndexer = node.getNodes('n.t a')

# you can check the size of the indexer
atomIndexer

See also

See the Node Specification Language for more information and usage examples.

Printing info

For many node types, you can print some information on them:

atomIndexer = SAMSON.getNodes('node.type atom')

for atom in atomIndexer:
        print(atom)

atom = atomIndexer[0]
atom    # prints an information on atom

See also

SAMSON API: SBDDataGraphNode

class samson.DataModel.DataGraph.Node

Bases: samson.Core.Reference.ReferenceTarget

This class is the base class to describe a node in the data graph.

class NodeType(self: samson.DataModel.DataGraph.Node.NodeType, value: int) None

Bases: pybind11_builtins.pybind11_object

Members:

Undefined

StructuralModel

StructuralModelNode

Conformation

StructuralModelConformation

Path

StructuralModelPath

StructuralGroup

StructuralModelNodeGroup

Root

StructuralModelNodeRoot

StructuralParticle

StructuralModelNodeParticle

Atom

StructuralModelNodeAtom

PseudoAtom

StructuralModelNodePseudoAtom

Bond

StructuralModelNodeBond

PseudoBond

StructuralModelNodePseudoBond

HydrogenBond

StructuralModelNodeHydrogenBond

HydrogenBondGroup

StructuralModelNodeHydrogenBondGroup

Residue

StructuralModelNodeResidue

Segment

StructuralModelNodeSegment

Protein

StructuralModelNodeProtein

Chain

StructuralModelNodeChain

Molecule

StructuralModelNodeMolecule

Backbone

StructuralModelNodeBackbone

SideChain

StructuralModelNodeSideChain

VisualModel

Mesh

VisualModelMesh

DynamicalModel

ParticleSystem

DynamicalModelParticleSystem

RigidBodySystem

DynamicalModelRigidBodySystem

ArticulatedBodySystem

DynamicalModelArticulatedBodySystem

DynamicalNode

DynamicalModelNode

DynamicalGroup

DynamicalModelNodeGroup

DynamicalRoot

DynamicalModelNodeRoot

DynamicalParticle

DynamicalModelNodeParticle

RigidBody

DynamicalModelNodeRigidBody

ArticulatedBody

DynamicalModelNodeArticulatedBody

InteractionModel

InteractionModelParticleSystem

InteractionModelRigidBodySystem

InteractionModelArticulatedBodySystem

PropertyModel

PropertyModelFunction

Simulator

SimulatorParticleSystem

SimulatorRigidBodySystem

SimulatorArticulatedBodySystem

StateUpdater

StateUpdaterParticleSystem

StateUpdaterRigidBodySystem

StateUpdaterArticulatedBodySystem

DocumentManager

Document

Folder

Camera

Label

Note

Animation

Presentation

DataGraphNodeGroup

NodeGroup

Controller

ControllerNode

Asset

Animation = <NodeType.Animation: 26>
ArticulatedBody = <NodeType.ArticulatedBody: 603>
ArticulatedBodySystem = <NodeType.ArticulatedBodySystem: 502>
Asset = <NodeType.Asset: 50>
Atom = <NodeType.Atom: 20100>
Backbone = <NodeType.Backbone: 209>
Bond = <NodeType.Bond: 202>
Camera = <NodeType.Camera: 23>
Chain = <NodeType.Chain: 207>
Conformation = <NodeType.Conformation: 28>
Controller = <NodeType.Controller: 40>
ControllerNode = <NodeType.ControllerNode: 41>
DataGraphNodeGroup = <NodeType.DataGraphNodeGroup: 30>
Document = <NodeType.Document: 21>
DocumentManager = <NodeType.DocumentManager: 20>
DynamicalGroup = <NodeType.DynamicalGroup: 600>
DynamicalModel = <NodeType.DynamicalModel: 5>
DynamicalModelArticulatedBodySystem = <NodeType.ArticulatedBodySystem: 502>
DynamicalModelNode = <NodeType.DynamicalNode: 6>
DynamicalModelNodeArticulatedBody = <NodeType.ArticulatedBody: 603>
DynamicalModelNodeGroup = <NodeType.DynamicalGroup: 600>
DynamicalModelNodeParticle = <NodeType.DynamicalParticle: 601>
DynamicalModelNodeRigidBody = <NodeType.RigidBody: 602>
DynamicalModelNodeRoot = <NodeType.DynamicalRoot: 60000>
DynamicalModelParticleSystem = <NodeType.ParticleSystem: 500>
DynamicalModelRigidBodySystem = <NodeType.RigidBodySystem: 501>
DynamicalNode = <NodeType.DynamicalNode: 6>
DynamicalParticle = <NodeType.DynamicalParticle: 601>
DynamicalRoot = <NodeType.DynamicalRoot: 60000>
Folder = <NodeType.Folder: 22>
HydrogenBond = <NodeType.HydrogenBond: 20202>
HydrogenBondGroup = <NodeType.HydrogenBondGroup: 20203>
InteractionModel = <NodeType.InteractionModel: 7>
InteractionModelArticulatedBodySystem = <NodeType.InteractionModelArticulatedBodySystem: 702>
InteractionModelParticleSystem = <NodeType.InteractionModelParticleSystem: 700>
InteractionModelRigidBodySystem = <NodeType.InteractionModelRigidBodySystem: 701>
Label = <NodeType.Label: 24>
Mesh = <NodeType.Mesh: 300>
Molecule = <NodeType.Molecule: 208>
NodeGroup = <NodeType.DataGraphNodeGroup: 30>
Note = <NodeType.Note: 25>
ParticleSystem = <NodeType.ParticleSystem: 500>
Path = <NodeType.Path: 29>
Presentation = <NodeType.Presentation: 27>
PropertyModel = <NodeType.PropertyModel: 9>
PropertyModelFunction = <NodeType.PropertyModelFunction: 900>
Protein = <NodeType.Protein: 206>
PseudoAtom = <NodeType.PseudoAtom: 20101>
PseudoBond = <NodeType.PseudoBond: 20201>
Residue = <NodeType.Residue: 204>
RigidBody = <NodeType.RigidBody: 602>
RigidBodySystem = <NodeType.RigidBodySystem: 501>
Root = <NodeType.Root: 20000>
Segment = <NodeType.Segment: 205>
SideChain = <NodeType.SideChain: 210>
Simulator = <NodeType.Simulator: 11>
SimulatorArticulatedBodySystem = <NodeType.SimulatorArticulatedBodySystem: 1102>
SimulatorParticleSystem = <NodeType.SimulatorParticleSystem: 1100>
SimulatorRigidBodySystem = <NodeType.SimulatorRigidBodySystem: 1101>
StateUpdater = <NodeType.StateUpdater: 15>
StateUpdaterArticulatedBodySystem = <NodeType.StateUpdaterArticulatedBodySystem: 1503>
StateUpdaterParticleSystem = <NodeType.StateUpdaterParticleSystem: 1501>
StateUpdaterRigidBodySystem = <NodeType.StateUpdaterRigidBodySystem: 1502>
StructuralGroup = <NodeType.StructuralGroup: 200>
StructuralModel = <NodeType.StructuralModel: 1>
StructuralModelConformation = <NodeType.Conformation: 28>
StructuralModelNode = <NodeType.StructuralModelNode: 2>
StructuralModelNodeAtom = <NodeType.Atom: 20100>
StructuralModelNodeBackbone = <NodeType.Backbone: 209>
StructuralModelNodeBond = <NodeType.Bond: 202>
StructuralModelNodeChain = <NodeType.Chain: 207>
StructuralModelNodeGroup = <NodeType.StructuralGroup: 200>
StructuralModelNodeHydrogenBond = <NodeType.HydrogenBond: 20202>
StructuralModelNodeHydrogenBondGroup = <NodeType.HydrogenBondGroup: 20203>
StructuralModelNodeMolecule = <NodeType.Molecule: 208>
StructuralModelNodeParticle = <NodeType.StructuralParticle: 201>
StructuralModelNodeProtein = <NodeType.Protein: 206>
StructuralModelNodePseudoAtom = <NodeType.PseudoAtom: 20101>
StructuralModelNodePseudoBond = <NodeType.PseudoBond: 20201>
StructuralModelNodeResidue = <NodeType.Residue: 204>
StructuralModelNodeRoot = <NodeType.Root: 20000>
StructuralModelNodeSegment = <NodeType.Segment: 205>
StructuralModelNodeSideChain = <NodeType.SideChain: 210>
StructuralModelPath = <NodeType.Path: 29>
StructuralParticle = <NodeType.StructuralParticle: 201>
Undefined = <NodeType.Undefined: 0>
VisualModel = <NodeType.VisualModel: 3>
VisualModelMesh = <NodeType.Mesh: 300>
property name
property value
addChild(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node, nextNode: samson.DataModel.DataGraph.Node = None) bool

Adds a child to the node

canAddChild(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node, nextNode: samson.DataModel.DataGraph.Node = None) bool

Returns whether this node can add node as a child

canAddChildType(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) bool

Returns whether this node can add a node with type nodeType as a child

canHaveDescendantType(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) bool

Returns whether this node can have a node with type nodeType as a descendant

castToInteractionModelParticleSystem(self: samson.DataModel.DataGraph.Node) SBMInteractionModelParticleSystem

Casts (if possible) from SBDDataGraphNode to SBMInteractionModelParticleSystem

castToLabel(self: samson.DataModel.DataGraph.Node) SBDDocumentLabel

Casts (if possible) from SBDDataGraphNode to SBDDocumentLabel

castToMesh(self: samson.DataModel.DataGraph.Node) SBMVisualModelMesh

Casts (if possible) from SBDDataGraphNode to SBMVisualModelMesh

castToVisualModel(self: samson.DataModel.DataGraph.Node) SBMVisualModel

Casts (if possible) from SBDDataGraphNode to SBMVisualModel

clone(self: samson.DataModel.DataGraph.Node) samson.DataModel.DataGraph.Node

Returns a copy of the node and its descendants

countNodes(*args, **kwargs)

Overloaded function.

  1. countNodes(self: samson.DataModel.DataGraph.Node, selectionString: str = ‘*’, visitString: str = ‘*’, includeDependencies: bool = False) -> int

Count nodes into nodeIndexer, based on a selectionPredicate and a visitPredicate, with our without dependencies).

For selectionString and visitString use Node Specification Language (SAMSON API: Node Specification Language

  1. countNodes(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type, selectedNodesOnly: bool = False, visitString: str = ‘*’, includeDependencies: bool = False) -> int

Count nodes into nodeIndexer, based on a nodeType, a selection status and a visitPredicate, with our without dependencies).

For visitString use Node Specification Language (SAMSON API: Node Specification Language

create(self: samson.DataModel.DataGraph.Node) None

Creates the node

descendsFrom(*args, **kwargs)

Overloaded function.

  1. descendsFrom(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node) -> bool

Returns true if and only if this node is node, or descends from it

  1. descendsFrom(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) -> bool

Returns true if and only if this node is one of the nodes of the nodeIndexer, or descends from one of them

erase(self: samson.DataModel.DataGraph.Node) None

Erases the node

getDocument(self: samson.DataModel.DataGraph.Node) SBDDocument

Returns the document the node belongs to

getFlags(self: samson.DataModel.DataGraph.Node) int

Returns the flags

getHierarchyString(self: samson.DataModel.DataGraph.Node, separator: str = ' / ', includeNodeType: bool = False) str

Returns a string with hierarchical information on the node and its parents names

getInheritedFlags(self: samson.DataModel.DataGraph.Node) int

Returns the inherited flags

getMaterial(self: samson.DataModel.DataGraph.Node) SBDDataGraphNodeMaterial

Returns the material of the node

getMaterialOwner(self: samson.DataModel.DataGraph.Node) samson.DataModel.DataGraph.Node

Returns the node whose material is inherited

getMemoryFootprint(self: samson.Core.Reference.ReferenceTarget) int

Returns the memory footprint

getNextNode(*args, **kwargs)

Overloaded function.

  1. getNextNode(self: samson.DataModel.DataGraph.Node) -> samson.DataModel.DataGraph.Node

Returns the pointer to the next node in the children of the node’s parent

  1. getNextNode(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) -> samson.DataModel.DataGraph.Node

Returns the pointer to the next node with type nodeType in the children of the node’s parent

getNode(self: int) samson.DataModel.DataGraph.Node

Returns the unique node corresponding to the node index nodeIndex

getNodes(*args, **kwargs)

Overloaded function.

  1. getNodes(self: samson.DataModel.DataGraph.Node, selectionString: str = ‘*’, visitString: str = ‘*’, includeDependencies: bool = False) -> SBDDataGraphNodeIndexer

Returns nodes (in a node indexer), based on a selectionString and a visitString, with our without dependencies).

For selectionString and visitString use Node Specification Language (SAMSON API: Node Specification Language

  1. getNodes(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type, selectedNodesOnly: bool = False, visitString: str = ‘*’, includeDependencies: bool = False) -> SBDDataGraphNodeIndexer

Returns nodes (in a node indexer), based on a nodeType, a selection status and a visitString, with our without dependencies).

For visitString use Node Specification Language (SAMSON API: Node Specification Language

getParent(self: samson.DataModel.DataGraph.Node) samson.DataModel.DataGraph.Node

Returns the parent of the node

getPreviousNode(*args, **kwargs)

Overloaded function.

  1. getPreviousNode(self: samson.DataModel.DataGraph.Node) -> samson.DataModel.DataGraph.Node

Returns the pointer to the previous node in the children of the node’s parent

  1. getPreviousNode(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) -> samson.DataModel.DataGraph.Node

Returns the pointer to the previous node with type nodeType in the children of the node’s parent

getRoot(self: samson.DataModel.DataGraph.Node) samson.DataModel.DataGraph.Node

Returns the root of the hierarchy the node belongs to

getThisNode(self: samson.DataModel.DataGraph.Node) samson.DataModel.DataGraph.Node

Returns the pointer to this node

static getTypeString(type: SBDDataGraphNode::Type) str

Returns a string describing the type of the data graph node

hasOneOf(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) bool

Returns true if and only if this node is one of the nodes of the nodeIndexer, or is the ancestor of one of them

isDynamicalModel(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a dynamical model

isIn(*args, **kwargs)

Overloaded function.

  1. isIn(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node) -> bool

Returns true if and only if this node is node, or descends from it, or belongs to a group stored in node

  1. isIn(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) -> bool

Returns true if and only if this node is one of the nodes of the nodeIndexer, or descends from one of them, or belongs to a group stored in one of the nodes of the nodeIndexer

isInteractionModel(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a interaction model

isMesh(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a mesh

isModel(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a model

isOneOf(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) bool

Returns true if and only if this node is one of the nodes of the nodeIndexer

isPropertyModel(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a property model

isSimulator(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a simulator

isStructuralModel(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a structural model

isStructuralParticle(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a structural particle (an atom or a pseudo-atom)

isType(self: samson.DataModel.DataGraph.Node, type: SBDDataGraphNode::Type) bool

Returns true when the type of the node corresponds to type

isVisualModel(self: samson.DataModel.DataGraph.Node) bool

Returns true when the node is a visual model

printDebugInfo(self: samson.DataModel.DataGraph.Node, offset: int = 0) None

Prints some debugging information in stdout

removeChild(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node) bool

Removes a child from the node

removeMaterial(self: samson.DataModel.DataGraph.Node) bool

Removes material from the node

setColor(self: samson.DataModel.DataGraph.Node, color: SBDTypeColor) bool

Sets the color for the node (modifies an existing material of the node or adds a material with a given color)

Args:

color (Color): color to set

setColorScheme(self: samson.DataModel.DataGraph.Node, colorScheme: SBDDataGraphNodeColorScheme) bool

Sets the color scheme for the node (modifies an existing material of the node or adds a material with a given color scheme)

Args: colorScheme (ColorScheme): color scheme to set

setMaterial(self: samson.DataModel.DataGraph.Node, material: SBDDataGraphNodeMaterial) bool

Sets the material for the node.

Args:

material (Material): material to set

toString(self: samson.DataModel.DataGraph.Node) str

A string representation

Animation = <NodeType.Animation: 26>
ArticulatedBody = <NodeType.ArticulatedBody: 603>
ArticulatedBodySystem = <NodeType.ArticulatedBodySystem: 502>
Asset = <NodeType.Asset: 50>
Atom = <NodeType.Atom: 20100>
Backbone = <NodeType.Backbone: 209>
Bond = <NodeType.Bond: 202>
Camera = <NodeType.Camera: 23>
Chain = <NodeType.Chain: 207>
Conformation = <NodeType.Conformation: 28>
Controller = <NodeType.Controller: 40>
ControllerNode = <NodeType.ControllerNode: 41>
DataGraphNodeGroup = <NodeType.DataGraphNodeGroup: 30>
Document = <NodeType.Document: 21>
DocumentManager = <NodeType.DocumentManager: 20>
DynamicalGroup = <NodeType.DynamicalGroup: 600>
DynamicalModel = <NodeType.DynamicalModel: 5>
DynamicalModelArticulatedBodySystem = <NodeType.ArticulatedBodySystem: 502>
DynamicalModelNode = <NodeType.DynamicalNode: 6>
DynamicalModelNodeArticulatedBody = <NodeType.ArticulatedBody: 603>
DynamicalModelNodeGroup = <NodeType.DynamicalGroup: 600>
DynamicalModelNodeParticle = <NodeType.DynamicalParticle: 601>
DynamicalModelNodeRigidBody = <NodeType.RigidBody: 602>
DynamicalModelNodeRoot = <NodeType.DynamicalRoot: 60000>
DynamicalModelParticleSystem = <NodeType.ParticleSystem: 500>
DynamicalModelRigidBodySystem = <NodeType.RigidBodySystem: 501>
DynamicalNode = <NodeType.DynamicalNode: 6>
DynamicalParticle = <NodeType.DynamicalParticle: 601>
DynamicalRoot = <NodeType.DynamicalRoot: 60000>
Folder = <NodeType.Folder: 22>
HydrogenBond = <NodeType.HydrogenBond: 20202>
HydrogenBondGroup = <NodeType.HydrogenBondGroup: 20203>
InteractionModel = <NodeType.InteractionModel: 7>
InteractionModelArticulatedBodySystem = <NodeType.InteractionModelArticulatedBodySystem: 702>
InteractionModelParticleSystem = <NodeType.InteractionModelParticleSystem: 700>
InteractionModelRigidBodySystem = <NodeType.InteractionModelRigidBodySystem: 701>
Label = <NodeType.Label: 24>
Mesh = <NodeType.Mesh: 300>
Molecule = <NodeType.Molecule: 208>
NodeGroup = <NodeType.DataGraphNodeGroup: 30>
Note = <NodeType.Note: 25>
ParticleSystem = <NodeType.ParticleSystem: 500>
Path = <NodeType.Path: 29>
Presentation = <NodeType.Presentation: 27>
PropertyModel = <NodeType.PropertyModel: 9>
PropertyModelFunction = <NodeType.PropertyModelFunction: 900>
Protein = <NodeType.Protein: 206>
PseudoAtom = <NodeType.PseudoAtom: 20101>
PseudoBond = <NodeType.PseudoBond: 20201>
Residue = <NodeType.Residue: 204>
RigidBody = <NodeType.RigidBody: 602>
RigidBodySystem = <NodeType.RigidBodySystem: 501>
Root = <NodeType.Root: 20000>
Segment = <NodeType.Segment: 205>
SideChain = <NodeType.SideChain: 210>
Simulator = <NodeType.Simulator: 11>
SimulatorArticulatedBodySystem = <NodeType.SimulatorArticulatedBodySystem: 1102>
SimulatorParticleSystem = <NodeType.SimulatorParticleSystem: 1100>
SimulatorRigidBodySystem = <NodeType.SimulatorRigidBodySystem: 1101>
StateUpdater = <NodeType.StateUpdater: 15>
StateUpdaterArticulatedBodySystem = <NodeType.StateUpdaterArticulatedBodySystem: 1503>
StateUpdaterParticleSystem = <NodeType.StateUpdaterParticleSystem: 1501>
StateUpdaterRigidBodySystem = <NodeType.StateUpdaterRigidBodySystem: 1502>
StructuralGroup = <NodeType.StructuralGroup: 200>
StructuralModel = <NodeType.StructuralModel: 1>
StructuralModelConformation = <NodeType.Conformation: 28>
StructuralModelNode = <NodeType.StructuralModelNode: 2>
StructuralModelNodeAtom = <NodeType.Atom: 20100>
StructuralModelNodeBackbone = <NodeType.Backbone: 209>
StructuralModelNodeBond = <NodeType.Bond: 202>
StructuralModelNodeChain = <NodeType.Chain: 207>
StructuralModelNodeGroup = <NodeType.StructuralGroup: 200>
StructuralModelNodeHydrogenBond = <NodeType.HydrogenBond: 20202>
StructuralModelNodeHydrogenBondGroup = <NodeType.HydrogenBondGroup: 20203>
StructuralModelNodeMolecule = <NodeType.Molecule: 208>
StructuralModelNodeParticle = <NodeType.StructuralParticle: 201>
StructuralModelNodeProtein = <NodeType.Protein: 206>
StructuralModelNodePseudoAtom = <NodeType.PseudoAtom: 20101>
StructuralModelNodePseudoBond = <NodeType.PseudoBond: 20201>
StructuralModelNodeResidue = <NodeType.Residue: 204>
StructuralModelNodeRoot = <NodeType.Root: 20000>
StructuralModelNodeSegment = <NodeType.Segment: 205>
StructuralModelNodeSideChain = <NodeType.SideChain: 210>
StructuralModelPath = <NodeType.Path: 29>
StructuralParticle = <NodeType.StructuralParticle: 201>
Undefined = <NodeType.Undefined: 0>
VisualModel = <NodeType.VisualModel: 3>
VisualModelMesh = <NodeType.Mesh: 300>
property defaultOpacity

Returns the default opacity

property defaultTransparency

Returns the default transparency

property hasMaterial

Returns whether the node has a material (by itself, or inherited)

property hasOpacityRange

Returns whether the node has opacity range

property hasTransparencyRange

Returns whether the node has transparency range

property highlightingFlag

Highlighting flag

property isCreated

Returns true if and only if the node is created

property isErased

Returns true if and only if the node is erased

property isHighlighted

Returns whether the node is highlighted

property isLocked

Returns whether the node is locked

property isSelected

Returns whether the node is selected

property isSerializable

Returns true when the class is serializable

property isVisible

Returns whether the node is visible

property lockedFlag

Locked flag

property maximumOpacity

Returns the maximum opacity

property maximumTransparency

Returns the maximum transparency

property minimumOpacity

Returns the minimum opacity

property minimumTransparency

Returns the minimum transparency

property molecularWeight

Returns the molecular weight

property name

The name of the node

property nodeIndex

Returns the node index (unique in the whole data graph, but non-persistent)

property numberOfAtoms

Returns the number of atoms

property numberOfCarbons

Returns the number of carbons

property numberOfChains

Returns the number of chains

property numberOfHydrogens

Returns the number of hydrogens

property numberOfMolecules

Returns the number of molecules

property numberOfNitrogens

Returns the number of nitrogens

property numberOfOtherAtoms

Returns the number of other atoms

property numberOfOxygens

Returns the number of oxygens

property numberOfResidues

Returns the number of residues

property numberOfSegments

Returns the number of segments

property numberOfStructuralGroups

Returns the number of structural groups

property numberOfStructuralModels

Returns the number of structural models

property numberOfSulfurs

Returns the number of sulfurs

property opacity

Opacity

property ownsMaterial

Returns whether the node owns a material

property selectionFlag

Selection flag

property sumOfFormalCharges

Returns the sum of formal charges

property sumOfPartialCharges

Returns the sum of partial charges

property transparency

Transparency

property type

Returns the type of the data graph node

property typeString

Returns a string describing the type of this data graph node

property visibilityFlag

Visibility flag