TimValues.mesa 
Copyright © 1985 by Xerox Corporation. All rights reversed.
Created by Bertrand Serlet September 11, 1985 10:59:17 am PDT
Bertrand Serlet September 11, 1985 12:00:36 pm PDT
BS
DIRECTORY
CD USING [Design, Instance, Layer, Object, Rect],
Core USING [CellType, Design, Wire],
CoreRecord USING [CellInstance];
TimValues: CEDAR DEFINITIONS = BEGIN
Theory
BS
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: BOOLFALSE];
END.