<> <> <> <> DIRECTORY GGGravity, GGBasicTypes, GGModelTypes, GGInterfaceTypes; GGAlign: CEDAR DEFINITIONS = BEGIN Caret: TYPE = GGInterfaceTypes.Caret; FeatureData: TYPE = GGGravity.FeatureData; GargoyleData: TYPE = GGInterfaceTypes.GargoyleData; Line: TYPE = GGBasicTypes.Line; ObjectBag: TYPE = GGGravity.ObjectBag; 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; TriggerBag: TYPE = REF TriggerBagObj; TriggerBagObj: TYPE = GGInterfaceTypes.TriggerBagObj; Vector: TYPE = GGBasicTypes.Vector; FilterOutlineProc: TYPE = PROC [outlineD: OutlineDescriptor]; FilterSliceProc: TYPE = PROC [sliceD: SliceDescriptor]; PointFilterProc: TYPE = GGGravity.PointFilterProc; SegmentFilterProc: TYPE = GGGravity.SegmentFilterProc; <> <<>> emptyTriggerBag: TriggerBag; <> CreateTriggerBag: PROC [] RETURNS [triggerBag: TriggerBag]; CreateOutlineTrigger: PUBLIC PROC [outlineD: OutlineDescriptor, triggerBag: TriggerBag] RETURNS [feature: FeatureData]; <> CreateSliceTrigger: PROC [sliceD: SliceDescriptor, triggerBag: TriggerBag] RETURNS [feature: FeatureData]; <> CreateAnchorTrigger: PUBLIC PROC [anchor: Caret, triggerBag: TriggerBag] RETURNS [feature: FeatureData]; DeleteAnchorTrigger: PUBLIC PROC [triggerBag: TriggerBag]; <> DeleteTriggers: PROC [seq: Sequence, triggerBag: TriggerBag]; AddTriggersFilter: PROC [triggerBag: TriggerBag, filterOutlineProc: FilterOutlineProc, filterSliceProc: FilterSliceProc, gargoyleData: GargoyleData]; <> DeleteTriggersFilter: PROC [triggerBag: TriggerBag, filterOutlineProc: FilterOutlineProc, filterSliceProc: FilterSliceProc]; <> CopyTriggerBag: PROC [triggerBag: TriggerBag] RETURNS [copy: TriggerBag]; <> <<>> <> <<>> BuiltInFilters: PROC [triggerBag: TriggerBag, objectBag: ObjectBag, gargoyleData: GargoyleData]; AddAllMidpoints: PROC [sceneTriggers: TriggerBag, objectBag: ObjectBag, gargoyleData: GargoyleData]; <> IncrementalFilters: PROC [trigger: FeatureData, objectBag: ObjectBag, gargoyleData: GargoyleData] RETURNS [alignObjects: LIST OF FeatureData]; <> <<>> SetBagsForAction: PROC [gargoyleData: GargoyleData, atom: ATOM]; <> UpdateBagsForAction: PROC [gargoyleData: GargoyleData, atom: ATOM] RETURNS [repaintNeeded: BOOL]; <> <<>> SetSceneBagForAction: PROC [gargoyleData: GargoyleData, atom: ATOM]; <> <<>> RemakeBagsAfterSceneChange: PROC [gargoyleData: GargoyleData]; <> <<>> RemakeObjectBag: PROC [gargoyleData: GargoyleData]; <> ReplaceObsoleteOutlineTrigger: PROC [gargoyleData: GargoyleData, oldOutline: Outline, newOutline: Outline]; <> END.