Reference Transformers
When a grapher contains nonzoomable graphic objects, it is not possible to deal with the geometry of the
IlvGrapher based on the graph objects bounding boxes systematically computed for an identity transformer (manager coordinates). To ensure that the drawing of the laid-out graph is always correct, including the case where nonzoomable graphic objects are present, the transformer used for the display must be considered. Generally speaking, the layout of an
IlvGrapher depends on the transformer.
Instead of dealing with the issue of zoomable/nonzoomable objects and transformers at the level of the layout algorithms, the Views Graph Layout package delegates this task to the
IlvGrapherAdapter.
Layout algorithms interact with the geometry of the graph using generic methods of the graph model (
IlvGraphModel), such as
boundingBox(IlAny nodeOrLink). The distinction between zoomable and nonzoomable objects, and the notion of transformer (
IlvTransformer), have been pushed completely outside this level of the layout framework. The layout algorithms consider the geometry of the graph exactly as it is provided by the graph model. From the point of view of the layout algorithms, the problem of zoomable and nonzoomable objects is completely transparent. Therefore, when writing a layout algorithm, you do not need to be concerned with that.
In the case of an IlvGrapher, the IlvGrapherAdapter needs to compute the geometry of the graph for a given transformer. This is what we call the reference transformer. Usually, the reference transformer is the transformer that is currently being used for the display of the IlvGrapher.
Published date: 05/24/2022
Last modified date: 02/24/2022