<> <> <> <> <<>> DIRECTORY CD USING [Position, Layer, ObjectClass, Object]; CDRects: CEDAR DEFINITIONS = BEGIN <> <<--Design creation procedures>> CreateRect: PROC [size: CD.Position, l: CD.Layer] RETURNS [CD.Object]; <<--Create a rect-object>> <<--x is considered width, y is considered length>> IsBareRect: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class=bareRectClass] }; IsWellRect: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class=wellRectClass] }; IsSimpleRect: PROC [ob: CD.Object] RETURNS [BOOL] = INLINE { RETURN [ob.class=bareRectClass OR ob.class=wellRectClass] }; <<>> <<--Technology implementor procedures>> UseForCreateRect: PROC [ layer: CD.Layer, createRect: PROC [size: CD.Position, l: CD.Layer] RETURNS [CD.Object] _ NIL, hangExtensionsOn: CD.ObjectClass_NIL ]; CreateBareRect: PROC [size: CD.Position, l: CD.Layer] RETURNS [CD.Object]; <<--Create rect of class bareRectClass (not going through class mechanism) >> bareRectClass: PRIVATE READONLY CD.ObjectClass; wellRectClass: PRIVATE READONLY CD.ObjectClass; END.