-- File: IPEditOps.mesa
-- Last Edited by: CSChow, February 1, 1985 11:20:55 am PST
-- Intro: This interface contains some of the commonly used routines in IPEditPrimitivesImpl.
DIRECTORY
IPCTG USING[Channel],
IPCoTab,
IPCB;
IPEditOps: CEDAR DEFINITIONS = BEGIN OPEN CTG: IPCTG, CoTab: IPCoTab, CB: IPCB;
NoIntersection: PROC[ch: CTG.Channel] RETURNS [BOOL];
CrossIn: PROC[refCh, ch: CTG.Channel] RETURNS [BOOL];
XCount: PROC[refCh, ch: CTG.Channel] RETURNS [INT];
CoInsertNode: PROC[co: CoTab.Component, iNd: CB.IntersectionNode, ontoCh: CTG.Channel];
CoGetBndChsAndSide: PROC[co: CoTab.Component, refCh: CTG.Channel] RETURNS [negBnd, posBnd: CTG.Channel, side: CB.Side];
CoGetBndChsAndSide2: PROC[co: CoTab.Component, ch: CTG.Channel] RETURNS [negBnd, posBnd: CTG.Channel, side: CB.Side];
MakeLCorner: PROC[ch1, ch2: CTG.Channel, cornerType: CoTab.CornerTypes];
NewNodesPair: PROC[ch1, ch2: CTG.Channel, iType1, iType2: CB.IntersectionType] RETURNS [nd1, nd2: CB.IntersectionNode];
OpenHole1: PROC[mainCh, sideCh, negBnd, posBnd: CTG.Channel, sideToOp: CB.Side];
OpenHole2: PROC[mainCh, sideCh, negBnd, posBnd: CTG.Channel, sideToOp: CB.Side];
CloseHole1: PROC[mainCh, sideCh, negBnd, posBnd: CTG.Channel, sideToCl: CB.Side];
CloseHole2: PROC[mainCh, sideCh, negBnd, posBnd: CTG.Channel, sideToCl: CB.Side];
CBSwapChsInComps: PROC [cb: CB.Ref, oldCh, newCh: CTG.Channel, skew: [-1..1] ← 0];
CoSwapChs: PROC [co: CoTab.Component, oldCh, newCh: CTG.Channel];
ChSetCBComps: PROC[ch: CTG.Channel, negComp, posComp: CoTab.Component];
CoClearCornerChs: PROC[co: CoTab.Component, ch1, ch2: CTG.Channel];
CoSetCornerChs: PROC[co: CoTab.Component, ch1, ch2: CTG.Channel];
CoInsert: PROC [co: CoTab.Component, south, east, north, west: CTG.Channel];
CoInsert2: PROC [co: CoTab.Component, south, east, north, west: CTG.Channel];
AreTEndChs: PROC[ch, end1, end2: CTG.Channel] RETURNS [BOOL];
IsTEndCh: PROC[ch, end: CTG.Channel] RETURNS [BOOL];
IsLCorner: PROC[ch1, ch2: CTG.Channel] RETURNS [BOOL];
BndsOkChk: PROC[mainCh, negBnd, posBnd: CTG.Channel] RETURNS [BOOL];
CoXingCount: PROC[co: CoTab.Component, prinRefCh: CTG.Channel] RETURNS [INT];
END.