Most of the operations in the graphical object manipulate, or use operations implemented in the shape or the paint. The only exceptions to this fact is manipulation of the transformation matrix and some administration (init and copy) operations.
To manipulate the shape and the paint of the graphical object four operations are given:
Six operations support geometric transformations on graphical objects: [5]
The Hilite and UnHilite operations changes the Canvas' drawing mode to be XOR, to allow for immediate feedback, and invoke an instance of a virtual drawHilite attribute. Thus the feedback may be augmented by further binding this attribute, see Interaction for more details.
A graphical object is drawn on a canvas by calling the Draw operation of the canvas, see The Canvas. The graphical objects then becomes part of the list of graphical objects in the canvas, and the canvas asks the graphical object to draw itself on the canvas. The graphical objects uses its Draw operation to do the actual drawing in the Canvas.
When a Canvas needs to be redrawn, the Canvas knows which graphical objects are drawn in the Canvas, and can therefore ask the graphical objects in question to redraw themselves on the Canvas. Likewise a graphical object is erased by calling the Erase operation of the Canvas. See The Canvas for a complete description of the Canvas and when it must be redrawn.
A graphical object can be transformed by manipulating the transformation matrix TM of the graphical object. Such a transformation will affect the appearance of the graphical object, if it is drawn in a Canvas. To simplify transformation of graphical object, the Transform attribute is present:
is equivalent with
aMatrix[] -> anAbstractGraphicalObject.transform;
(anAbstractGraphicalObject.TM, aMatrix[]) -> MatrixMul -> anAbstractGraphicalObject.TM;
Notice, that in general, only instances of Shape are guarantied to be transformable, in particular some of the Predefined Graphical Objects (see later) will not respond correctly to all transformations. Translations, i.e. linear moving, however, will work for all kinds of graphical objects. Pictures (see below) may also be transformed, but if they contain Predefined Graphical Objects, the restrictions mentioned above apply to the Picture itself too.
The Bifrost Graphics System - Reference Manual | © 1991-2004 Mjølner Informatics |
[Modified: Tuesday October 24th 2000 at 22:29]
|