User Tools

Site Tools


01_user_documentation:06_graph:01_edge

Edge

Edges link nodes together. Each edge have exactly one source and one target. The source and target can be the same node. In that case the node has an edge toward itself.

By default, edges cannot hold data other than one integer (the edgebits). The edgebits define which type of edge it is. The type of edge is tested with bit operations. Thus, an edge can be of several type. Additionally there is a specific way of using a Node as an edge (called EdgeNode) in order to hold more information in the edge.

This section presents the different type of edge defined in GroIMP. All standards bit masks for edges can be accessed in the interface de.grogra.graph.Graph as static fields.

Successor

A successor edge in some graph-dependent sense. The target of the edge is the successor of the source. The bit mask associated is 256.

→ Read more...

Branch

A branch edge means that the target node of the edge is the first node of a branch (in some graph-dependent sense) originating at the source node of the edge. The bit mask is 512.

→ Read more...

Containment

A containment edge means that the target node of the edge is contained (in some graph-dependent sense) in the source node of the edge. The bit mask is 1024.

The containment edges also use the end of containment bit mask 2048, which indicate the end of the containment.

→ Read more...

Refinement

Refinement edge are part of the multiscale extension. The refinement relationship express the containment of a higher scale at the source of the edge, toward a lower scale as the target. The bit mask is 4096.

→ Read more...

Mark

A mark edge can be used for several purposes. The precise meaning of a mark edge is not specified by this interface. The bit mask is 8192.

→ Read more...

Notifies

Notifies edges are used to create a listening relationship between two nodes. The target and source can get different notifications depending on the modifications. The bit mask is 16384.

Notifies edges work with the FieldObserver class. They are not currently used in GroIMP.

→ Read more...

Instantiation

Instantiation edges are NOT used in a normal GroIMP graph. By design, instantiation rules are not added to the graph. Thus, do not use edges. The instantiation edges are used in the context of an imported data. It keep the knowledge that an imported edge was created at export from an instantiation rule. the bit mask is 131072.

→ Read more...

Ignored

Ignored edges are used in the scene visualization. Visualization visitors do not visit theses edges. Thus, part of the graph only connected by ignored edges to the rest of the graph, will be “ignored” for the visualization. The bit mask is 262144.

→ Read more...

Special

The special edges are used to create a relationship that includes a specialEdgeFields from the target node. The special edge fields are declared at compile time by the NType.

The bit value of the special edge type depends on the declared field but the possible values are between 129 and 254.

→ Read more...

Custom

Custom edges are whatever you want. But you should use bit integer to represent them and starts from Graph.MIN_UNUSED_EDGE.

The default imports includes a bit declaration for each of the remaining bit from the edge bit integer. They are named: EDGE_0, EDGE_1, …

→ Read more...

Edge node

A Node used as an edge.

→ Read more...

01_user_documentation/06_graph/01_edge.txt · Last modified: 2025/09/05 15:25 by gaetan