DIRECTORY BufferedRefresh, GGGravity, GGInterfaceTypes, GGModelTypes, Imager; GGRefresh: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGModelTypes.BoundBox; FeatureData: TYPE = GGGravity.FeatureData; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; GGData: TYPE = GGInterfaceTypes.GGData; Outline: TYPE = GGModelTypes.Outline; Sandwich: TYPE = BufferedRefresh.Sandwich; SelectionClass: TYPE = GGInterfaceTypes.SelectionClass; Sequence: TYPE = GGModelTypes.Sequence; Traj: TYPE = GGModelTypes.Traj; CreateSandwich: PROC [] RETURNS [sandwich: Sandwich]; ActionAreaPaint: PROC [screen: Imager.Context, whatHasChanged: ATOM, ggData: GGData]; MoveToOverlay: PROC [sliceD: SliceDescriptor, ggData: GGData]; MoveJointsToOverlay: PROC [traj: Traj, ggData: GGData]; RemoveJointsFromOverlay: PROC [traj: Traj, ggData: GGData]; MoveToBackground: PROC [sliceD: SliceDescriptor, ggData: GGData]; MoveAllSelectedToOverlay: PROC [ggData: GGData, selectClass: SelectionClass]; MoveAllSelectedToBackground: PROC [ggData: GGData]; MoveOverlayToBackground: PROC [ggData: GGData]; EmptyOverlay: PROC [ggData: GGData] RETURNS [BOOL]; SplitBackgroundAndOverlay: PROC [ggData: GGData, restoreBox: BoundBox]; NoteNewForeground: PROC [alignObjects: LIST OF FeatureData, ggData: GGData]; UpdateForegroundForMotion: PROC [ggData: GGData]; PaintEntireScene: PROC [screen: Imager.Context, ggData: GGData, showColors: BOOL]; InterpressEntireScene: PROC [dc: Imager.Context, ggData: GGData]; SnapShot: PROC [dc: Imager.Context, ggData: GGData]; END. GGRefresh.mesa Last edited by Bier on March 24, 1987 11:18:38 pm PST Contents: All painting actions in Gargoyle are called thru this interface. Pier, May 12, 1987 3:47:27 pm PDT whatToDo will be an atom describing a painting action such as $EraseControlPoint, $PaintControlPoint, $EraseAllControlPoints, $EraseAll, $PaintEntireScene, or $PaintTrajectory. A pointer to the particular object to be repainted will be stored in ggData for now. We envision a scheme where ActionAreaPaint may actually queue up painting jobs and attempt optimizations on the queue. This entity is now on the overlay plane (for dragging or rubberbanding). The entity may be an outline, a slice, or the caret. If a Traj or Sequence is passed, the whole outline to which they belong will be moved. A trajectory in the overlay plane is interpreted to mean that the trajectory's joints are to be painted on the overlay plane (for use in selection feedback). This entity is now on the background (normal plane), staying put. The entity may be an outline, a slice, the caret, or special alignment lines and symmetry tools. See GGRefreshImpl for the actual refreshing procedures. Drawing Entities Like InterpressEntireScene except it only works while a mouse action is in progress. For action shots. Κ˜Ihead1™J™5™KIcode™!—J™šΟk ˜ JšœC˜CJ˜—Jšœ œ œ˜Jš˜˜Lšœ œ˜'Lšœ œ˜*Jšœœ˜!Jšœœ ˜5Jšœœ˜'Jšœ œ˜%Jšœ œ˜*Jšœœ#˜7Jšœ œ˜'Jšœœ˜—J˜JšΟnœœœ˜5J˜šžœœ*œ˜UJšœ†™†Jšœv™vJ™—šž œœ+˜>JšœΦ™Φ—šžœœ˜7JšœŸ™Ÿ—Jšžœœ˜;šžœœ+˜AJšœ£™£—Jšžœœ/˜MJšžœœ˜3Jšžœœ˜/Jšž œœœœ˜3Jšžœœ(˜GJšžœœœœ˜Lšžœœ˜1J™—J™7Ihead2™Jšžœœ6œ˜RJšΠbnœœ&˜Ašžœœ&˜4L™g—J˜Jšœ˜—…— 6