XDRAW.DOC

advertisement
Object Type:
xdraw
Description:
Main object class for displaying pixes. Subclassed
from coredraw. This widget provides general projection
transforms for pixes.
Like other coredraw subclasses, draw can be thought of as
providing a window into a space where pixes reside, or a
screen onto which pixes are projected. One can select the
size,
orientation and other parameters of this window/screen
according to the set of functions described below.
The functions provided by draw, which are inherited or
overridden from the coredraw class, include:
Displaying and managing pixes.
Handling forward transforms for drawing pixes
Handling backward transforms for identifying
location of mouse events
Keyboard control over transformation parameters
such as zoom and pan.
Providing a mechanism for deciding which child
pix should recieve mouse events
Draw does not display anything on its own. The pixes
provide the actual images and drawing routines displayed
in a draw widget.
Keyboard commands may be used to translate or zoom the
display
of pixes within a draw widget. Use the arrow keys to
translate the image in the draw, and "<" and ">" to zoom out
(make smaller) and in (make larger).
The draw widget can display pixes using both orthographic
and perspective projections. One can select between these
using keyboard commands as follows:
plane
perspective key
------------------------------------------xy
off
z
xy
on
Z
yz
off
x
yz
on
X
xz
off
y
xz
on
Y
general orthographic
off
o
general perspective
on
p
In a future revision the z coordinate will be used to
determine
the order of redrawing pixes to enable pixes to obscure
each other according to depth.
Author:
Upi Bhalla Caltech April 93
---------------------------------------------------------------------------ELEMENT PARAMETERS
DataStructure:
Size:
Fields:
xdraw_type [in src/Xodus/draw/xdraw_struct.h
172 bytes
fg
Foreground color of draw (not used)
Background color.
Position of left edge of draw.
Position of upper edge of draw.
Width of draw
Height of draw
x lower limit for displaying pixes.
y lower limit for displaying pixes.
z lower limit for displaying pixes.
x upper limit for displaying pixes.
y upper limit for displaying pixes.
z upper limit for displaying pixes.
x coord of point in space which is to be located
at center of projection
cy
y coord of point at center of projection
cz
z coord of point at center of projection
wx
window 'width'. Provided for backwards compatibility.
wy
window 'height'. Provided for backwards compatibility.
vx
x coord of viewpoint for 'o' and 'p' projections.
vy
y coord of viewpoint for 'o' and 'p' projections.
vz
z coord of viewpoint for 'o' and 'p' projections.
script
Script operation(s) to perform on a mouse
click. The script calls to the draw widget
are only made if none of the child pixes has
expressed an interest in the event.
transform The projection transformation to
perform while displaying the pixes. One of
(z, Z, x, X, y, Y, o, p), described in the table
above.
bg
xgeom
ygeom
wgeom
hgeom
xmin
ymin
zmin
xmax
ymax
zmax
cx
--------------------------------------------------------------------------SIMULATION PARAMETERS
Function:
XDraw [in src/Xodus/draw/xdraw.c]
Classes:
widget output
Actions:
XUPDATE: update internal fields when
displayed widget is changed.
XOCOMMAND: an action that can invoke the functions
in the 'script' field
XODROP:
Called when a pix is dropped into a draw widget.
Messages:
CENTER cx cy cz
ZOOM
wx wy
VIEWPOINT vx vy vz
where the values of these messages set the
specified projection controlling fields.
--------------------------------------------------------------------------Notes:
Can only be displayed in a form widget
If the xdraw is receiving messages it will recalculate
the projections each clock tick.
Example
create xform /form [0,0,500,500]
create xdraw /form/draw [0,0,100%,100%] \
-bg red -script "echo Hello, I am a draw widget"
setfield /form/draw xmin -2 xmax 2 ymin -2 ymax 2
// display the pixes here
create xsphere /form/coredraw/sphere -fg green \
-script "echo Hello, I am a sphere pix"
xshow /form
See also:
Widget documentation, pix documentation, documentation
for coredraw and other subclasses.
Download