DIRECTORY CD, Core, CoreGeometry; ExtendCells: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE = Core.ROPE; Wire: TYPE = Core.Wire; CellType: TYPE = Core.CellType; Properties: TYPE = Core.Properties; Side: TYPE = CoreGeometry.Side; Decoration: TYPE = CoreGeometry.Decoration; Layer: TYPE = CD.Layer; Object: TYPE = CD.Object; ExtendSegmentProc: TYPE = PROC [wire: Wire, min, max: INT, layer: Layer, side: Side, extension: INT] RETURNS [Object _ NIL]; ExtendSegment: ExtendSegmentProc; WirePin: TYPE = RECORD [wire: Wire, min, max: INT, layer: Layer]; ExtendObject: PROC [wirePins: LIST OF WirePin, size: CD.Position, side: Side, extendProc: ExtendSegmentProc _ ExtendSegment] RETURNS [extendedCell: Object]; Extensions: TYPE = ARRAY Side OF INT; nullExtensions: Extensions = ALL [0]; WirePinSide: TYPE = RECORD [wire: Wire, min, max: INT, side: Side, layer: Layer]; ExtendCellType: PROC [decoration: Decoration, cellType: CellType, extensions: Extensions _ nullExtensions, extendProc: ExtendSegmentProc _ ExtendSegment, name: ROPE _ NIL, props: Properties _ NIL] RETURNS [extendedCell: CellType]; END. άExtendCells.mesa Copyright Σ 1987 by Xerox Corporation. All rights reversed. Created by Bertrand Serlet, February 11, 1987 5:53:16 pm PST Bertrand Serlet February 12, 1987 1:04:22 am PST Old PW.TransferCell ( & others ?) Types and Defaults This function extends a segment by the amount extension. If the returned object is NIL, it means no extension for this wirePinSide. Returns a rectangle of layer layer, of length extension, and of width max-min. If side=top or side=bottom, this rectangle is vertical, otherwise horizontal. Extentions returning Objects wire is a public of the cellType being extended, and min and max are relative to its InterestRect. Prepares an object to be abutted on the side side of an object having its side side made of wirePins. For example if side=right, then extension=size.x, and [0 .. size.y] is the range in which all min and all max of wirePins should lie. Extentions returning CellTypes Defines for each side, the amount of extension. wire is a public of the cellType being extended, and min and max are relative to its InterestRect. Extends cellType by the given amounts (in every direction). The returned cellType contains the extended one, has a similar public, and is properly decorated. Κ ˜codešœ™Kšœ<™