<> <> <> <> <> <> <> <<>> DIRECTORY GGBasicTypes, GGHistoryTypes, GGInterfaceTypes, GGModelTypes, GGUserInput, ImagerTransformation, Rope; GGMouseEvent: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGModelTypes.BoundBox; Caret: TYPE = GGInterfaceTypes.Caret; FeatureData: TYPE = GGInterfaceTypes.FeatureData; GGData: TYPE = GGInterfaceTypes.GGData; HistoryEvent: TYPE = GGHistoryTypes.HistoryEvent; Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; SelectMode: TYPE = GGModelTypes.SelectMode; Sequence: TYPE = GGModelTypes.Sequence; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Traj: TYPE = GGModelTypes.Traj; TrajEnd: TYPE = GGModelTypes.TrajEnd; TrajPartType: TYPE = GGModelTypes.TrajPartType; UserInputProc: TYPE = GGUserInput.UserInputProc; Vector: TYPE = GGBasicTypes.Vector; MouseProc: TYPE = PROC [input: LIST OF REF ANY, ggData: GGData, worldPt: Point]; StartProc: TYPE = PROC [input: LIST OF REF ANY, ggData: GGData, worldPt: Point] RETURNS [success: BOOL _ TRUE]; SelectFeedbackProc: TYPE = PROC [feature: FeatureData, caretPt: Point, ggData: GGData]; InitializeFSM: PROC [ggData: GGData]; ResetMouseMachinery: PROC [ggData: GGData]; <> HandleMouse: UserInputProc; HandleMouseless: UserInputProc; SelectFromFeature: PROC [ggData: GGData, testPoint: Point, point: Point, normal: Vector, feature: FeatureData, hitData: REF ANY]; <> <<>> <> <> StartSelect: StartProc; DuringSelect: MouseProc; EndSelect: MouseProc; StartExtendSelect: StartProc; -- extends at a particular level StartExtendSelection: StartProc; -- extends at the current level DuringExtendSelection: MouseProc; EndExtendSelection: MouseProc; StartDeselect: StartProc; DuringDeselect: MouseProc; EndDeselect: MouseProc; StartAddBezier: StartProc; DuringBezierDrag: MouseProc; EndBezierAdd: MouseProc; AbortBezierAdd: PROC [input: LIST OF REF ANY, ggData: GGData, worldPt: Point]; ContinueBezierAdd: StartProc; <> SaveSavedState: PROC [ggData: GGData]; UpdateSelectionsForAdd: PROC [scene: Scene, oldTraj, newTraj: Traj, trajEnd: TrajEnd] RETURNS [newNormal, newHot: Sequence]; UpdateCaretForAdd: PROC [caret: Caret, newOutline: Slice, newNormal: Sequence, worldPt: Point]; StartMotion: PROC [ggData: GGData, opName: Rope.ROPE, bagType: ATOM, worldPt: Point, saveState: BOOL _ TRUE, needAnchor: BOOL _ FALSE, backgroundOK: BOOL _ FALSE, newCurrent: BOOL _ TRUE] RETURNS [success: BOOL _ TRUE]; DragTheCaret: PROC [worldPt: Point, ggData: GGData, opName: Rope.ROPE] RETURNS [mapPoint: Point]; SafelyGetCaretTraj: PROC [caret: Caret] RETURNS [chair: SliceDescriptor, traj: Traj, jointNum: NAT]; TransformObjectsAfterMove: PROC [scene: Scene, transform: ImagerTransformation.Transformation, editConstraints: GGModelTypes.EditConstraints, history: HistoryEvent]; ContinueMotion: PROC [ggData: GGData, opName: Rope.ROPE, bagType: ATOM, worldPt: Point, startBox: BoundBox _ NIL] RETURNS [success: BOOL _ TRUE]; FinishAbort: PUBLIC PROC [ggData: GGData]; SetCaretAttractorEndpoint: PROC [ggData: GGData, mapPoint: Point, normal: Vector, testPoint: Point, feature: FeatureData, hitData: REF ANY]; <> SetStrokeColorRemote: PROC [ggData: GGData, sliceD: SliceDescriptor] RETURNS [doNormalBehavior: BOOL _ FALSE, done: BOOL _ FALSE]; SetFillColorRemote: PROC [ggData: GGData, sliceD: SliceDescriptor] RETURNS [doNormalBehavior: BOOL _ FALSE, done: BOOL _ FALSE]; END.