<> <> <> <> <> DIRECTORY Rope USING [ROPE], CD USING [Instance, Design, Position, Object]; CDMarkObjects: CEDAR DEFINITIONS = BEGIN <<-- MarkObjects are objects to associate names to points.>> markOb: READONLY CD.Object; markNameProperty: READONLY ATOM; markAtom: READONLY ATOM; -- Contains the class atom for alignment marks objects. <<--A mark object uses its origin as reference point; its client origin, the base >> <<--of its innerrect and its real origin coincide, but it has a non 0 size.>> <<--A mark application therefore must map the orientation of the mark to get >> <<--the pointed position. >> MarkEnumerator: TYPE = PROC [markInstance: CD.Instance] RETURNS [quit: BOOL_FALSE]; EnumerateMarks: PROC [cellOb: CD.Object_NIL, design: CD.Design_NIL, proc: MarkEnumerator] RETURNS [quit: BOOL]; <<--design is ignored if cell#NIL>> FindMark: PROC [cellOb: CD.Object_NIL, design: CD.Design_NIL, name: Rope.ROPE] RETURNS [CD.Instance]; <<--returns any found mark with name name>> <<--design is ignored if cell#NIL>> SetMarkName: PROC [markInstance: CD.Instance, name: Rope.ROPE]; GetMarkName: PROC [markInstance: CD.Instance] RETURNS [name: Rope.ROPE]; GetMarkPosition: PROC [markInstance: CD.Instance] RETURNS [CD.Position]; END.