BoxTreeRep:
TYPE ~
RECORD [
bBox: BBOX, -- size of bounding box
relative: SLOT, -- relative to least greatest bounding box
absolute: SLOT, -- relative to outermost boundingbox
subBoxes: LIST OF BOXTREE ← NIL, -- list of boxes bound by this box
parentBox: BOXTREE ← NIL, -- parent bounding box
value: EXPR ← NIL, -- value of this box
expr: EXPR ← NIL, -- pointer to expression bound by this box
graphic: GRAPHIC, -- graphical element to be painted
looks: REF ANY ← NIL, -- italics, bold...
redraw: {no, old, new, copy} ← new -- Redraw algorithm. #not sure about this
];
BBOX: TYPE ~ ImagerBox.Box ← [0,0,0,0];
SLOT:
TYPE ~
RECORD [
offset: Vector.VEC ←[0,0], -- offset from origin
scale: REAL ← 1.0 -- scaling factor
];
GRAPHIC:
TYPE ~
RECORD [
SELECT type:* FROM
rope => [val: Rope.ROPE],
line => [val: LINE],
ENDCASE
];
LINE:
TYPE ~
RECORD [
length: REAL ← 0,
angle: REAL ← 0,
thickness: REAL ← 0.03
];