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. <SVAlign.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last edited by Bier on March 11, 1987 4:59:39 pm PST Contents: Maintains the three snap-dragging gravity bags: triggerBag, sceneBag, and alignBag for Solidviews. Creating a TriggerBag Use this as an (immutable) empty TriggerBag. Allocates a new empty TriggerBag. Takes an old TriggerBag and makes it empty. Filling the SceneBag Filling all of the Bags at Once The Filter Routines shown in the figure as boxes and ovals RemoveMoving: PROC [scene: Scene, triggerBag: TriggerBag]; -- private Κ ˜J˜Icodešœ ™ Kšœ Οmœ1™Kš œžœ&˜?K˜K™Kš  œžœ˜%Kš œžœžœ˜4Kš œžœžœžœ˜IKš œžœžœžœ˜MKš œžœ žœžœ˜HK˜K™:Kš  œžœ3™EK˜Kšžœ˜K˜—…—† Ν