<> <> <> <> <> <> <<>> DIRECTORY GGBasicTypes, GGInterfaceTypes, GGModelTypes, GGSegmentTypes, Imager, ImagerTransformation, Rope, Rosary; GGScene: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGModelTypes.BoundBox; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Joint: TYPE = GGModelTypes.Joint; Outline: TYPE = GGModelTypes.Outline; Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; Sequence: TYPE = GGModelTypes.Sequence; Traj: TYPE = GGModelTypes.Traj; TrajEnd: TYPE = GGModelTypes.TrajEnd; -- {lo, hi} Segment: TYPE = GGSegmentTypes.Segment; Vector: TYPE = GGBasicTypes.Vector; EntityGenerator: TYPE = GGModelTypes.EntityGenerator; OutlineGenerator: TYPE = GGModelTypes.OutlineGenerator; TrajGenerator: TYPE = GGModelTypes.TrajGenerator; SliceGenerator: TYPE = GGModelTypes.SliceGenerator; BoundBoxGenerator: TYPE = GGModelTypes.BoundBoxGenerator; GGData: TYPE = GGInterfaceTypes.GGData; <> CreateScene: PROC [] RETURNS [scene: Scene]; MergeScenes: PROC [back: Scene, front: Scene] RETURNS [combined: Scene]; PushScene: PROC [scene: Scene]; <> EmptySceneStack: PROC [scene: Scene] RETURNS [BOOL]; PopScene: PROC [scene: Scene]; <> <> AddOutline: PROC [scene: Scene, outline: Outline, priority: INT _ -1]; <> DeleteOutline: PROC [scene: Scene, outline: Outline]; <> AddSlice: PROC [scene: Scene, slice: Slice, priority: INT _ -1]; <> AddSlices: PROC [scene: Scene, slice: LIST OF Slice, priority: INT _ -1]; <> DeleteSlice: PROC [scene: Scene, slice: Slice]; SlicePriority: PROC [scene: Scene, slice: Slice] RETURNS [priority: INT]; <> <> <> <> DeleteSequence: PROC [seq: Sequence, scene: Scene] RETURNS [oldOutline: Outline, newOutlines: LIST OF Outline]; <> <> <> <> <> UpOne: PROC [scene: Scene, slice: Slice]; <> DownOne: PROC [scene: Scene, slice: Slice]; <> <> <> <> <> <> <<>> IsTopLevel: PROC [slice: Slice] RETURNS [BOOL]; TopLevelEntitiesInScene: PROC [scene: Scene] RETURNS [sliceGen: SliceGenerator]; TopLevelSlicesInScene: PROC [scene: Scene] RETURNS [sliceGen: SliceGenerator]; SlicesInScene: PROC [scene: Scene] RETURNS [sliceGen: SliceGenerator]; NextSlice: PROC [g: SliceGenerator] RETURNS [next: Slice]; TrajsInScene: PROC [scene: Scene] RETURNS [trajGen: TrajGenerator]; <> NextTraj: PROC [g: TrajGenerator] RETURNS [next: Traj]; OutlinesInScene: PROC [scene: Scene] RETURNS [outlineGen: OutlineGenerator]; NextOutline: PROC [g: OutlineGenerator] RETURNS [next: Outline]; <> <<>> BoundBoxesInScene: PROC [scene: Scene] RETURNS [bBoxGen: BoundBoxGenerator]; <> TightBoxesInScene: PROC [scene: Scene] RETURNS [bBoxGen: BoundBoxGenerator]; <> NextBox: PROC [g: BoundBoxGenerator] RETURNS [next: BoundBox]; BoundBoxOfScene: PROC [scene: Scene] RETURNS [bBox: BoundBox]; <> TightBoxOfScene: PROC [scene: Scene] RETURNS [bBox: BoundBox]; <> <> NearestSegmentInScene: PROC [scene: Scene, worldPt: Point, ggData: GGData] RETURNS [traj: Traj, segNum: NAT, isSlice: BOOL]; <> NearestTrajectoryInScene: PROC [scene: Scene, worldPt: Point, ggData: GGData] RETURNS [traj: Traj]; <> <<>> <> <<>> DeleteAllSelected: PROC [scene: Scene] RETURNS [bBox: BoundBox]; SaveSelections: PROC [scene: Scene]; RestoreSelections: PROC [scene: Scene]; GetSelections: PROC [scene: Scene, selectClass: GGSegmentTypes.SelectionClass] RETURNS [selected: LIST OF SliceDescriptor]; END. <<>>