The layer renderer for the background (under the graph), can be null.
The layer renderer for the background (under the graph), can be null.
The rendering backend.
The rendering backend.
Set the view on the view port defined by the metrics.
Set the view on the view port defined by the metrics.
The layer renderer for the foreground (above the graph), can be null.
The layer renderer for the foreground (above the graph), can be null.
Get (and assign if needed) the style renderer associated with the style group of the element.
Get (and assign if needed) the style renderer associated with the style group of the element.
Get (and assign if needed) a style renderer to a style group.
Get (and assign if needed) a style renderer to a style group. The renderer will be reused then.
Get (and assign if needed) a style renderer to the graphic graph.
Get (and assign if needed) a style renderer to the graphic graph. The renderer will be reused then.
The graph to render.
The graph to render.
Remove all the registered renderers from the graphic graph.
Remove all the registered renderers from the graphic graph.
Render a back or from layer.
Render a back or from layer.
The current selection.
The current selection.
Setup the graphic pipeline before drawing.
Setup the graphic pipeline before drawing.
2D renderer.
The role of this class is to equip each style group with a specific renderer and to call these renderer to redraw the graph when needed. The renderers then equip each node, edge and sprite with a skeleton that gives is main geometry, then selects a shape according to the group style. The shape will be "applied" to each element to draw in the group. The shape will be moved and scaled according to the skeleton.
A render pass begins by using the camera instance to set up the projection (allows to pass from graph units to pixels, make a rotation a zoom or a translation) and render each style group once for the shadows, and once for the real rendering in Z order.
This class also handles a "selection" object that represents the current selection and renders it.
The renderer uses a backend so that it can adapt to multiple rendering targets (here Swing and OpenGL). As the shapes are finally responsible for drawing the graph, the backend is also responsible for the shape creation.