graph.h File Reference

Classes

struct  Wires
 
class  GraphModelInterface
 
class  GraphTransaction
 
class  GraphNodeBase
 
class  GraphNodeFunctions< BASE >
 
class  GraphNode
 
struct  IsZeroInitialized< GraphNode >
 
class  GraphNodeResultBase< SUPER >
 
class  GraphLib
 

Namespaces

 maxon
 

Macros

#define PRIVATE_MAXON_GRAPHFN_PROLOGUE
 

Typedefs

using TimeStamp = UInt64
 
using GraphConnection = Tuple< GraphNode, Wires >
 
using NodeConnection = Tuple< NodePath, NodePath >
 
using IoNodePath = Tuple< NodePath, InternedId >
 
using IoNodeConnection = Tuple< IoNodePath, IoNodePath >
 
using IoGraphNode = Tuple< GraphNode, InternedId >
 

Enumerations

enum class  WIRE_MODE : UChar {
  NONE ,
  MIN ,
  NORMAL ,
  PROPAGATION ,
  AUTO_PROPAGATION ,
  MAX ,
  REMOVE ,
  ALL ,
  FLAG0 ,
  FLAG1 ,
  IMPLICIT ,
  ALL_INCLUDING_IMPLICIT ,
  INHERIT ,
  FLAGS_MASK ,
  FULL_MASK ,
  CONNECT_DEFAULT ,
  GETCONNECTIONS_DEFAULT
}
 
enum class  CONNECTION_POSITION {
  SOURCE ,
  CENTER ,
  TARGET
}
 

Functions

enum maxon::WIRE_MODE UChar MAXON_ENUM_ORDERED_FLAGS (WIRE_MODE)
 
 MAXON_DATATYPE (Wires, "net.maxon.graph.wires")
 
enum maxon::CONNECTION_POSITION MAXON_ENUM_ORDERED_LIST (CONNECTION_POSITION)
 
CONNECTION_POSITION Reverse (CONNECTION_POSITION pos)
 
 MAXON_DATATYPE (GraphTransaction, "net.maxon.graph.graphtransaction")
 
 MAXON_DATATYPE (GraphNode, "net.maxon.graph.graphnode")
 
PORT_DIR GetConnectionDirection (const GraphNode &port)
 

Variables

 NONE
 
 MIN
 
 NORMAL
 
 PROPAGATION
 
 AUTO_PROPAGATION
 
 MAX
 
 REMOVE
 
 ALL
 
 FLAG0
 
 FLAG1
 
 IMPLICIT
 
 ALL_INCLUDING_IMPLICIT
 
 INHERIT
 
 FLAGS_MASK
 
 FULL_MASK
 
 CONNECT_DEFAULT
 
 GETCONNECTIONS_DEFAULT
 
 SOURCE
 
 CENTER
 
 TARGET
 
 CONNECTIONS
 
 INDUCED_DEPENDENCIES
 
 DERIVATION_FILTER
 
 EXTERNAL_CONNECTIONS
 
 WITHOUT_INHIBITED
 
 INCLUDE_HIDDEN
 
 INTERNAL_CONNECTIONS
 
 SKIP_REROUTER
 
 COMPLETE
 
 DIRECT_ATTRIBUTE
 
 DIRECT_META_ATTRIBUTE
 
 INHERITED_ATTRIBUTE
 
 SYNTHESIZED_ATTRIBUTE
 
 USER_STATE_ATTRIBUTE
 
 NODE_ADDED
 
 CHILD_REMOVED
 
 INPUT_CONNECTION
 
 OUTPUT_CONNECTION
 
 SPECIAL0
 
 SPECIAL1
 
 SPECIAL_NAME
 
 ALL_MASK
 
 DERIVED_ATTRIBUTE_MASK
 
 DIRECT_ATTRIBUTE_MASK
 
 DATA_ATTRIBUTE_MASK
 
 ATTRIBUTE_MASK
 
 CONNECTION_MASK
 
 NODE_MASK
 
 STRUCTURE_MASK
 

Macro Definition Documentation

◆ PRIVATE_MAXON_GRAPHFN_PROLOGUE

#define PRIVATE_MAXON_GRAPHFN_PROLOGUE

Variable Documentation

◆ NONE

NONE

No wire.

No flag.

No flags.

◆ MIN

MIN

A wire with minimum priority.

◆ NORMAL

NORMAL

A wire with normal priority.

◆ PROPAGATION

PROPAGATION

A wire with propagation priority.

◆ AUTO_PROPAGATION

AUTO_PROPAGATION

A wire with auto-propagation priority.

◆ MAX

MAX

A wire with maximum priority.

◆ REMOVE

REMOVE

Only used for MutablePort::Connect to tell that the an existing wire shall be removed.

◆ ALL

ALL

A mask for all explicit modes.

◆ FLAG0

FLAG0

A wire flag which can be used for wires which don't interpret the wire mode as priority, but as a bit set. Different from NORMAL and any other flag in WIRE_MODE.

◆ FLAG1

FLAG1

A wire flag which can be used for wires which don't interpret the wire mode as priority, but as a bit set. Different from NORMAL and any other flag in WIRE_MODE.

◆ IMPLICIT

IMPLICIT

Used as mask for implicit wires in MutablePort::GetConnections.

◆ ALL_INCLUDING_IMPLICIT

ALL_INCLUDING_IMPLICIT

A mask for all modes.

◆ INHERIT

INHERIT

Used for MutablePort::Connect to tell that the wire mode shall be inherited. (Also used internally.)

◆ FLAGS_MASK

FLAGS_MASK

Mask for FLAG0 | FLAG1.

◆ FULL_MASK

FULL_MASK

Complete mask for all bits of WIRE_MODE.

◆ CONNECT_DEFAULT

CONNECT_DEFAULT

Default mode for Connect methods.

◆ GETCONNECTIONS_DEFAULT

GETCONNECTIONS_DEFAULT

Default mode for GetConnections methods.

◆ SOURCE

SOURCE

The source position of a connection.

◆ CENTER

CENTER

The center position of a connection.

◆ TARGET

TARGET

< The target position of a connection.

◆ CONNECTIONS

CONNECTIONS

Report normal connections, the default.

◆ INDUCED_DEPENDENCIES

INDUCED_DEPENDENCIES

Report induced dependencies (due to loop dependencies or sequencing).

◆ DERIVATION_FILTER

DERIVATION_FILTER

Apply the derivation filter.

◆ EXTERNAL_CONNECTIONS

EXTERNAL_CONNECTIONS

Only report connections which leave the node to which the port belongs (so they are external to the node).

◆ WITHOUT_INHIBITED

WITHOUT_INHIBITED

Don't report inhibited connections (those where Wires::inhibit is present).

◆ INCLUDE_HIDDEN

INCLUDE_HIDDEN

Report connections where the hidden flag is set or which go to hidden ports.

◆ INTERNAL_CONNECTIONS

INTERNAL_CONNECTIONS

Only report connections which don't leave the node to which the port belongs (so they are internal to the node).

◆ SKIP_REROUTER

SKIP_REROUTER

Hop over rerouter nodes.

◆ COMPLETE

COMPLETE

The graph has changed completely. This is only reported for the root node.

◆ DIRECT_ATTRIBUTE

DIRECT_ATTRIBUTE

Direct non-meta attributes of the node have changed.

◆ DIRECT_META_ATTRIBUTE

DIRECT_META_ATTRIBUTE

Direct meta attributes of the node have changed (see GraphAttributeInterface::FLAGS::META).

◆ INHERITED_ATTRIBUTE

INHERITED_ATTRIBUTE

Inherited attributes (derived from left to right) of the node have changed.

◆ SYNTHESIZED_ATTRIBUTE

SYNTHESIZED_ATTRIBUTE

Synthesized attributes (derived from right to left) of the node have changed.

◆ USER_STATE_ATTRIBUTE

USER_STATE_ATTRIBUTE

User state attributes of the node have changed (see GraphAttributeInterface::FLAGS::USER_STATE).

◆ NODE_ADDED

NODE_ADDED

The node has been added.

◆ CHILD_REMOVED

CHILD_REMOVED

Children of the node have been removed.

◆ INPUT_CONNECTION

INPUT_CONNECTION

Input connections of the port have changed.

◆ OUTPUT_CONNECTION

OUTPUT_CONNECTION

Output connections of the port have changed.

◆ SPECIAL0

SPECIAL0

This is set to indicate a special change, the exact meaning is graph-specific.

◆ SPECIAL1

SPECIAL1

This is set to indicate a special change, the exact meaning is graph-specific.

◆ SPECIAL_NAME

SPECIAL_NAME

This is set to indicate a change which affects names of nodes or ports.

◆ ALL_MASK

ALL_MASK

A mask containing all possible MODIFIED bits.

◆ DERIVED_ATTRIBUTE_MASK

DERIVED_ATTRIBUTE_MASK

Derived attributes of the node have changed.

◆ DIRECT_ATTRIBUTE_MASK

DIRECT_ATTRIBUTE_MASK

Mask to test for changes to direct attributes (whether meta or non-meta).

◆ DATA_ATTRIBUTE_MASK

DATA_ATTRIBUTE_MASK

Mask to test for changes to attributes belonging to the data model of the graph (non-meta, non-user-state attributes).

◆ ATTRIBUTE_MASK

ATTRIBUTE_MASK

Mask to test for attribute changes.

◆ CONNECTION_MASK

CONNECTION_MASK

Mask to test for connection changes of ports.

◆ NODE_MASK

NODE_MASK

Mask to test for added or removed nodes.

◆ STRUCTURE_MASK

STRUCTURE_MASK

Mask to test for any structural change (changed connections, added or removed nodes).