|
The Diva Canvas Design Reference
The Diva canvas is a structured graphics layer built on top of the
Java2D API. It does not attempt to hide any of the complexity of
Java2D, but provides a substrate based on Java 2D, that we can use
for advanced, unconventional, and highly-interactive user interface
and visualization components. (By structured graphics, we mean that
it has objects that know how to draw themselves on the screen, rather
than the immediate-mode graphics provided by Java2D).
The design of the Diva canvas comes from two divergent influences.
First, structured 2D graphics packages such as HotDraw, Fresco,
the Tycho Slate, provided the basic structuring approach, in which
classes called Drawing, Glyph, or Item are sub-classed to provide
application-specific classes, which can in turn contain other instance
of this class. This approach provides tight encapsulation and makes
programming interactive editors fairly simple, but suffers from
limited flexibility in the rendering and display of these objects.
The second influence comes from 3D scene models such as Open
Inventor and VTK. In these models, a scene is described
in an explicit and exposed tree, which provides a very powerful and
flexible construction and rendering model, but at the cost of complex
data structures. To provide some of this flexibility without paying
the cost of a large increase in data structure complexity, we "opened"
the rendering model enough to allow complex rendering and
transformation nodes to be inserted into the tree, but not enough to
fully expose the tree structure.
|