<> <> <> <> <> DIRECTORY Imager, Pipal, PipalInt, PipalReal; PipalPaint: CEDAR DEFINITIONS IMPORTS Imager = BEGIN <> <> <> paintMethod: Pipal.Method; PaintProc: TYPE = PROC [object: Pipal.Object, context: Imager.Context]; Paint: PaintProc; <> <> <> <> <<>> paintMethodProp: ATOM; CreatePaintMethodAnnotation: PROC [child: Pipal.Object, paint: PaintProc] RETURNS [annotation: Pipal.Annotation]; <> <> <<>> Color: TYPE = Imager.Color; <> <> <<>> Area: TYPE = Pipal.Object; enumerateAreaMethod: Pipal.Method; EnumerateAreaProc: TYPE = PROC [area: Area, each: PipalReal.RectangleProc, transformation: PipalReal.Transformation] RETURNS [quit: BOOL _ FALSE]; <> EnumerateArea: EnumerateAreaProc; <> <> <<>> emptyArea: READONLY Area; -- corresponds to PipalReal.emptyRectangle fullArea: READONLY Area; -- corresponds to PipalReal.fullRectangle IsEmptyArea: PROC [area: Area] RETURNS [BOOL]; <> <> <<>> AreaToRope: PROC [area: Area] RETURNS [Pipal.ROPE]; <> <<>> CreateExplicitArea: PROC [rectangle: PipalReal.Rectangle] RETURNS [area: Area]; <> <<>> IntersectArea: PROC [area1, area2: Area] RETURNS [area: Area]; <> <> <<>> SubArea: PROC [area1, area2: Area] RETURNS [area: Area]; <> <> <<>> AreaOption: TYPE = {bboxChild, edgesChild, edgesChildren}; ChildArea: PROC [child: Pipal.Object, option: AreaOption] RETURNS [area: Area]; <> < the BBox of child.>> < the 4 rectangles corresponding to the 4 edges of the BBox of child.>> < 4 rectangles for each rectangle of the area of child.>> <<>> CreatePaintAreaOutline: PROC [area: Area] RETURNS [annotation: Pipal.Annotation]; <> <> RequestType: TYPE = {none, clearArea, paintArea, clearAndPaint, scale, other}; RequestFunction: TYPE = PROC [REF]; Request: TYPE = RECORD [ type: RequestType, area: Area _ NIL, data: REF _ NIL ]; <