<> <> <> <> DIRECTORY GGBasicTypes, GGGravity, GGInterfaceTypes, GGModelTypes; GGAlign: CEDAR DEFINITIONS = BEGIN Caret: TYPE = GGInterfaceTypes.Caret; FeatureData: TYPE = GGGravity.FeatureData; Filters: TYPE = GGInterfaceTypes.Filters; GGData: TYPE = GGInterfaceTypes.GGData; Line: TYPE = GGBasicTypes.Line; AlignBag: TYPE = GGGravity.AlignBag; Outline: TYPE = GGModelTypes.Outline; OutlineDescriptor: TYPE = GGModelTypes.OutlineDescriptor; Point: TYPE = GGBasicTypes.Point; Scene: TYPE = GGModelTypes.Scene; SelectionClass: TYPE = GGInterfaceTypes.SelectionClass; Sequence: TYPE = GGModelTypes.Sequence; Slice: TYPE = GGModelTypes.Slice; SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor; Traj: TYPE = GGModelTypes.Traj; TrajEnd: TYPE = GGModelTypes.TrajEnd; TriggerBag: TYPE = REF TriggerBagObj; TriggerBagObj: TYPE = GGInterfaceTypes.TriggerBagObj; Vector: TYPE = GGBasicTypes.Vector; FilterOutlineProc: TYPE = PROC [outlineD: OutlineDescriptor, scene: Scene] RETURNS [stationary: OutlineDescriptor]; FilterSliceProc: TYPE = PROC [sliceD: SliceDescriptor, scene: Scene] RETURNS [stationary: SliceDescriptor]; << [Artwork node; type 'ArtworkInterpress on' to command tool] >> <> emptyTriggerBag: TriggerBag; <> CreateTriggerBag: PROC [] RETURNS [triggerBag: TriggerBag]; <> FlushTriggerBag: PROC [triggerBag: TriggerBag]; <> CopyTriggerBag: PROC [triggerBag: TriggerBag] RETURNS [copy: TriggerBag]; <> <> <<>> emptyAlignBag: AlignBag; -- an (immutable) empty object bag. CreateAlignBag: PROC [] RETURNS [objectBag: AlignBag]; FlushAlignBag: PROC [objectBag: AlignBag]; <> FillStaticTriggerBag: PROC [anchor: Caret, scene: Scene, heuristics: BOOL, triggerBag: TriggerBag]; FillDynamicTriggerBag: PROC [anchor: Caret, scene: Scene, heuristics: BOOL, triggerBag: TriggerBag]; <<>> <> FillStaticSceneBag: PROC [scene: Scene, sceneBag: TriggerBag]; FillDynamicSceneBag: PROC [scene: Scene, sceneBag: TriggerBag]; <> FillStaticAlignBag: PROC [triggerBag: TriggerBag, sceneBag: TriggerBag, filters: Filters, hideAlignments: BOOL, midpoints: BOOL, alignBag: AlignBag]; FillDynamicAlignBag: PROC [triggerBag: TriggerBag, sceneBag: TriggerBag, filters: Filters, hideAlignments: BOOL, midpoints: BOOL, action: ATOM, alignBag: AlignBag]; <> SetStaticBags: PROC [ggData: GGData]; SetDynamicBags: PROC [ggData: GGData, action: ATOM]; StaticToDynamicBags: PROC [ggData: GGData] RETURNS [repaintForeground: BOOL]; DynamicToStaticBags: PROC [ggData: GGData] RETURNS [repaintForeground: BOOL]; UpdateBagsForAdd: PROC [oldOutline: Outline, newOutline: Outline, trajEnd: TrajEnd, ggData: GGData] RETURNS [repaintForeground: BOOL]; UpdateBagsForNewSlices: PROC [newSlices: LIST OF Slice, ggData: GGData]; UpdateBagsForDelete: PROC [oldOutline: Outline, ggData: GGData] RETURNS [repaintForeground: BOOL]; <> <> <> <> <> <> BuiltInFilters: PROC [triggerBag: TriggerBag, filters: Filters, hideAlignments: BOOL, alignBag: AlignBag]; AddAllMidpoints: PROC [sceneBag: TriggerBag, midpoints: BOOL, alignBag: AlignBag]; <> CreateAnchorTrigger: PUBLIC PROC [anchor: Caret, triggerBag: TriggerBag] RETURNS [feature: FeatureData]; <> <> <> AddHotSlice: PROC [sliceD: SliceDescriptor, triggerBag: TriggerBag] RETURNS [feature: FeatureData]; <> <> <> <> RemoveMovingSlice: PROC [sliceD: SliceDescriptor, scene: Scene] RETURNS [stationary: OutlineDescriptor]; <> IncrementalFilters: PROC [trigger: FeatureData, filters: Filters, hideAlignments: BOOL, alignBag: AlignBag] RETURNS [alignObjects: LIST OF FeatureData]; IncrementalFilterSlice: PROC [sliceD: SliceDescriptor, filters: Filters, hideAlignments: BOOL, alignBag: AlignBag] RETURNS [alignObjects: LIST OF FeatureData]; IncrementalFilterOutline: PROC [outlineD: OutlineDescriptor, filters: Filters, hideAlignments: BOOL, alignBag: AlignBag] RETURNS [alignObjects: LIST OF FeatureData]; IncrementalMidpointsOutline: PROC [outlineD: OutlineDescriptor, midpoints: BOOL, alignBag: AlignBag]; <> RemoveAnchorTrigger: PUBLIC PROC [triggerBag: TriggerBag]; <> <> RemoveEntireHotSlice: PROC [slice: Slice, triggerBag: TriggerBag] RETURNS [oldSliceD: SliceDescriptor]; RemoveHotSlice: PROC [sliceD: SliceDescriptor, triggerBag: TriggerBag]; <> <> RemoveMentionSlice: PROC [slice: Slice, alignBag: AlignBag]; <> <<>> END.