Important
To understand this section better, read section Using the
graph model first.
The distinction between zoomable and nonzoomable objects, and the
notion of transformer ( IlvTransformer), are outside the level of the
layout framework.
Graph layout algorithms have to deal with the geometry of the
graph, that is, the position and shape of the nodes and links. They
interact with the geometry of the graph using generic methods of
the graph model ( IlvGraphModel), such as
boundingBox(Object nodeOrLink)
.
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 distinction between
zoomable and nonzoomable objects is completely transparent.
Therefore, when writing a layout algorithm, you do not need to be
concerned with such issues.
However, graph layout algorithms must also deal with the layout of
an IlvGrapher.
The nodes of an
IlvGrapher
object can be any graphic object, that is, any subclass of IlvGraphic. The position and size of the
nodes are given by their
boundingBox(IlvTransformer t)
method and usually depend on the transformer used for their
display. Therefore, when an
IlvGrapher
has to be laid out, the geometry of the grapher must be considered
for a specific value of the transformer.
Instead of dealing with zoomable/nonzoomable objects and
transformers at the level of the layout algorithms, the Rogue Wave®
JViews graph layout package delegates this task to the IlvGrapherAdapter object.