Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Beautification finished.

...

If a node already has a fixed port order, its port lists are sorted accordingly.

Preconditions 
Postconditions 
Slot 
Dependencies 
Remarks 

Preconditions

  • The graph is layered.
Postconditions
  • Nodes with fixed port orders have their port lists sorted accordingly.
SlotBefore phase 3, before phase 4.
DependenciesNone.
Remarks
  • It may make sense to use this processor in multiple slots. Once to ensure fixed port sides, once more to sort the port lists again for nodes that have just had their port orders fixed.

Port Position Processor

Calculates the exact coordinates a ports.

...

 Preconditions
  • The graph is layered.
  • All nodes have a fixed port order.
Postconditions
  • All nodes have fixed port positions.
SlotBefore phase 4.
DependenciesNone.
RemarksNone.

Port Side Processor

Ensures that nodes have at least fixed port sides.

...

Dependencies 
Remarks 
Preconditions
  • The graph is layered.
Postconditions
  • All nodes have at least fixed port sides.
SlotBefore phase 3.
DependenciesNone.
RemarksNone.

Reversed Edge Restorer

Restores the direction of reversed edges.

Preconditions 
Postconditions 
Slot 
Dependencies 
Remarks 

Preconditions

  • The graph is layered.
Postconditions
  • Reversed edges are restored to their original direction.
SlotAfter phase 5.
DependenciesNone.
Remarks
  • Note that this processor doesn't have any dependencies. Let's take a long edge that was reversed during phase 1 and then split into multiple segments by the LongEdgeSplitter. All the edges generated by that processor inherit the REVERSED property of the original long edge. Thus, it doesn't make any difference if we reverse all those edges before joining them to the original long edge, or if we join them first and reverse the original long edge afterwards.

Self Loop Processor

Does some work that enables the other processors and phases to handle self-loops. To handle them well, the NorthSouthPortPreprocessor may be required.

...

 Preconditions
  • The graph is layered.
Postconditions
  • Self-loop edges going into a western port have been reversed.
  • For west-east self-loops, a dummy node has been inserted.
SlotAfter phase 3.
Dependencies
  • InvertedPortProcessor
RemarksNone.

Compound Cycle Processor

Removes cyclic dependencies between compound nodes from the graph. Adds dummy edges that enhance the layering with respect to hierarchy crossing edges: the Compound Cycle Processor determines an ancestor for each source and target of the edge such that both ancestors share a common parent. The source ancestor is to be put in layers left of the layers spanned by the target ancestor.

Preconditions 
Postconditions 
Slot 
Dependencies 
Remarks 

Preconditions

  • A Layered Graph, nodes are not assigned to layers yet.

Postconditions

...

  • A Layered Graph, nodes are not assigned to layers yet.
Postconditions
  • Cyclic dependencies of compound nodes are removed by edge reversion.

...

  • Dummy edges are added to improve the layering of compound nodes with hierarchy crossing edges.
SlotBefore phase 1.
DependenciesNone.
Remarks
  • The addition of dummy edges for the layering phase could be done after the cycle removal phase. However, the Compound Cycle Processor already performs some calculations needed for this task, which are directly reused.

Compound Dummy Edge Remover

Removes the dummy edges that were inserted during compound graph import or by the Compound Cycle Processor to implement constraints for the layering phase.

Postconditions
Preconditions  
Slot 
Dependencies 
Remarks 

Preconditions

  • A Layered Graph that is layered.
Postconditions
  • The graph does not contain compound dummy edges.
SlotBefore phase 3.
DependenciesNone.
RemarksNone.

Compound Side Processor

Sets up dummy nodes at the sides of a compound node, connects these nodes with dummy edges. Those dummy nodes and edges are used to determine and reserve drawing space for the upper and lower segments of the bounding rectangles for compound nodes. The Linear Segments Node Placer arranges the dummy nodes in straight lines.

 
Preconditions Postconditions
Slot 
Dependencies 
Remarks 

Preconditions

  • Layered graph with fixed node ordering.
  • Side dummy segments are placed to form a straight line.

...

Postconditions
  • For each compound node two compound side dummy nodes are inserted into each layer the compound node spans. One dummy node is placed above all nodes belonging to the compound node, while the other is placed below them.
SlotAfter phase 3.
Dependencies

None

...

.

RemarksNone.

Subgraph Ordering Processor

Postprocesses the node ordering phase to ensure that subgraphs are not intertwined across the layers.

...

Remarks 
Preconditions
  • A layered graph with fixed node ordering.
  • Nodes on a layer that belong to the same compound node are placed in an unbroken sequence in the layer.

...

Postconditions
  • Nodes of different subgraphs (compound nodes) have the same relative position on all layers. The second precondition still holds.
SlotAfter phase 3.
DependenciesNone.
RemarksNone.

Compound Graph Restorer

Determines positioning and size of the compound nodes according to the positioning of their dummy nodes and stores the information with the Left Compound Border dummy nodes. Transfers adjacency edges from Left Compound Port, Right Compound Port, and Right Compound Border dummy nodes to the Left Compound Border dummy nodes. Removes all dummy edges and dummy nodes apart from upper compound border dummy nodes from the graph.

...

Preconditions
  • Layered graph with fixed node positioning and edge routing. Long edges are joined.
Postconditions
  • The layered graph contains no more dummy edges and nodes except for Left Compound Border dummy nodes. The position and size for each node is set. Edges from/to compound nodes are connected to the according Left Compound Border dummy nodes.
SlotAfter phase 5.

...

Dependencies
  • LongEdgeJoiner (Edges have to be joined before the Compound Graph Restorer processes the graph.)
RemarksNone.