Rendering Order
Start here

# Rendering Order Demo

## Rendering Order

Sometimes it is necessary to change the render order of graph, e.g. when labels should be rendered in front of their owner but behind another item. This demo shows how to use GraphModelManager to configure the rendering order for grouped graphs as well as layer policies for labels and ports.

### Hierarchic Nesting

Each item type is assigned to a specific canvas object group. These groups have a default rendering order from back to front. See The Z-order of Graph Elements for more information about the different ICanvasObjectGroups and their default rendering order.

For grouped graphs, we provide some nesting policies to structure nodes and edges in more complex hierarchies. In these cases, some of the canvas object groups may not be used.

### Demo Configurations

- Default: The rendering order that is used by default.
- Labels / Ports at Owner: The labels and ports are rendered on the same z-order as their owner.
- Edges on Top: Edges are rendered on top of the nodes. Note in this case, we also enabled the labels and ports at owner configuration.
- Group Nodes: Maintains the rendering order according to the nesting depth for group nodes while nodes and edges are placed in the separate groups and are not interleaved in the rendering.
- None: Items are placed in their respective canvas object group without considering the nesting hierarchy of the nodes. Usually, this setting is only used when the z-order is managed by a different mechanism.