<> <> <> <> <> <> <<>> DIRECTORY GGBasicTypes, GGInterfaceTypes, GGModelTypes, GGSegmentTypes, Imager, ImagerTransformation, Rope, Rosary; GGObjects: CEDAR DEFINITIONS = BEGIN BoundBox: TYPE = GGModelTypes.BoundBox; Slice: TYPE = GGModelTypes.Slice; 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; GargoyleData: TYPE = GGInterfaceTypes.GargoyleData; fillColor: PUBLIC Imager.Color; <<>> <> 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]; <> AddEntities: PROC [scene: Scene, entities: LIST OF REF ANY, priority: INT _ -1]; <> AddEntity: PROC [scene: Scene, entity: REF ANY, priority: INT _ -1]; <> EntityPriority: PROC [scene: Scene, entity: REF ANY] RETURNS [priority: INT]; DeleteEntity: PROC [scene: Scene, entity: REF ANY]; <> DeleteSequence: PROC [seq: Sequence, scene: Scene] RETURNS [oldOutline: Outline, newOutlines: LIST OF Outline]; <> <> <> <> <> UpOne: PROC [scene: Scene, entity: REF ANY]; <> DownOne: PROC [scene: Scene, entity: REF ANY]; <> <> IsTopLevel: PROC [entity: REF ANY] RETURNS [BOOL]; TopLevelEntitiesInScene: PROC [scene: Scene] RETURNS [entityGenerator: EntityGenerator]; NextEntity: PROC [g: EntityGenerator] RETURNS [next: REF ANY]; EntityCount: PROC [g: EntityGenerator] RETURNS [count: NAT]; <> 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, gargoyleData: GargoyleData] RETURNS [traj: Traj, segNum: NAT, isSlice: BOOL]; <> NearestTrajectoryInScene: PROC [scene: Scene, worldPt: Point, gargoyleData: GargoyleData] RETURNS [traj: Traj]; <> <<>> <> <<>> SaveSelections: PROC [scene: Scene]; RestoreSelections: PROC [scene: Scene]; GetSelections: PROC [scene: Scene, selectClass: GGSegmentTypes.SelectionClass] RETURNS [selected: LIST OF REF ANY]; END. <<>>