<> <> <<-- GetChanWidth - get width of channel specified>> <<-- GetSideWidth - get width of channel on side>> <<-- AllChanWidths - find widths of all channels>> <<>> DIRECTORY SC, SCPrivate; SCWidthUtil: CEDAR DEFINITIONS = BEGIN maxWireSegs: NAT = 2000; MaxWireSegsSr: TYPE = NAT[1 .. maxWireSegs]; ZMaxWireSegsSr: TYPE = NAT[0 .. maxWireSegs]; WireSegs: TYPE = REF WireSegsRec; WireSegsRec: TYPE = RECORD [ nWireSegsOnCh: ZMaxWireSegsSr _ 0, segs: ARRAY MaxWireSegsSr OF WireSeg _ ALL[NIL]]; WireSeg: TYPE = REF WireSegRec; WireSegRec: TYPE = RECORD [ pos: SC.Number, endType: SC.Side]; <> GetChanWidth: PROCEDURE[handle: SC.Handle, rowChan: SCPrivate.RowChan, fom: SCPrivate.FomType, doWidth: BOOLEAN] RETURNS [chanWidth, wireLength: INT]; <> GetSideWidth: PROCEDURE[handle: SC.Handle, lRSide: SCPrivate.LRSide, fom: SCPrivate.FomType] RETURNS [chanWidth, wireLength: INT]; <> AllChanWidths: PROCEDURE[handle: SC.Handle, fom: SCPrivate.FomType]; END.