<> <> <> <> <<>> DIRECTORY SVInterfaceTypes, SVSceneTypes; SVAlign: CEDAR DEFINITIONS = BEGIN AlignBag: TYPE = SVInterfaceTypes.AlignBag; Slice: TYPE = SVSceneTypes.Slice; FeatureData: TYPE = SVInterfaceTypes.FeatureData; Scene: TYPE = SVSceneTypes.Scene; SliceDescriptor: TYPE = SVSceneTypes.SliceDescriptor; SliceParts: TYPE = SVSceneTypes.SliceParts; TriggerBag: TYPE = REF TriggerBagObj; TriggerBagObj: TYPE = SVInterfaceTypes.TriggerBagObj; SVData: TYPE = SVInterfaceTypes.SVData; FilterSliceProc: TYPE = PROC [sliceD: SliceDescriptor, scene: Scene] RETURNS [stationary: SliceDescriptor]; <> emptyTriggerBag: TriggerBag; emptyAlignBag: AlignBag; -- an (immutable) empty align bag. <> CreateTriggerBag: PROC [scene: Scene] RETURNS [triggerBag: TriggerBag]; <> FlushTriggerBag: PROC [triggerBag: TriggerBag]; <> CopyTriggerBag: PROC [triggerBag: TriggerBag] RETURNS [copy: TriggerBag]; FeatureFromSlice: PROC [slice: Slice, parts: SliceParts _ NIL] RETURNS [feature: FeatureData]; <> FillStaticSceneBag: PROC [scene: Scene, sceneBag: TriggerBag]; FillDynamicSceneBag: PROC [scene: Scene, sceneBag: TriggerBag]; <> SetStaticBags: PROC [svData: SVData]; SetDynamicBags: PROC [svData: SVData, action: ATOM]; StaticToDynamicBags: PROC [svData: SVData] RETURNS [repaintNeeded: BOOL]; DynamicToStaticBags: PROC [svData: SVData] RETURNS [repaintForeground: BOOL]; UpdateBagsForNewSlices: PROC [newSlices: LIST OF Slice, svData: SVData]; <> <> END.