Basic Types
ROPE: TYPE = Rope.ROPE;
Value: TYPE = REF; -- Interval / CutValue;
Interval: TYPE = REF IntervalRec;
IntervalRec: TYPE = RECORD [min, max: INT];
CutValue: TYPE = REF CutValueRec;
CutValueRec: TYPE = RECORD [tcut: INT, before, after: Value];
Variable: TYPE = REF VariableRec;
VariableRec: TYPE = RECORD [name: ROPE, scale: REAL, wantedError: INT];
Utilities
MakeInterval: PROC [min, max: INT] RETURNS [interval: Interval];
MakeCutValue: PROC [tcut: INT, before, after: Value] RETURNS [cutValue: CutValue];
Usual Operations
Add: PROC [value1, value2: Value] RETURNS [result: VALUE];
TouchProcs are put on property on each class of object that does not use the default (default is expand). It is also possible to have that properties on an object. The callable function Touch is soforth programmed in an Object Oriented manner.
touchProcProp: ATOM;
Touch: TouchProc;
Geometry Utilities
RectAt:
PROC [instance:
CD.Instance]
RETURNS [rect:
CD.Rect];
Returns the BoundingBox of an instance
IRectAt:
PROC [instance:
CD.Instance]
RETURNS [rect:
CD.Rect];
Returns the InterestRect of an instance
TouchRect: PROC [instance: CD.Instance, rect: CD.Rect, layer: CD.Layer] RETURNS [yes: BOOL ← FALSE];