<> <> <> <> <> <<>> DIRECTORY Imager, SV2d, SV3d, SVModelTypes, SVSceneTypes, SVInterfaceTypes; SVSelections: CEDAR DEFINITIONS = BEGIN Slice: TYPE = SVSceneTypes.Slice; Camera: TYPE = SVModelTypes.Camera; CoordSystem: TYPE = SVModelTypes.CoordSystem; EditToolData: TYPE = SVInterfaceTypes.EditToolData; Matrix4by4: TYPE = SV3d.Matrix4by4; Point2d: TYPE = SV2d.Point2d; Point3d: TYPE = SV3d.Point3d; Primitive: TYPE = SVSceneTypes.Primitive; Scene: TYPE = SVSceneTypes.Scene; SVData: TYPE = SVInterfaceTypes.SVData; Vector3d: TYPE = SV3d.Vector3d; <> Skitter: TYPE = SVInterfaceTypes.Skitter; SkitterMode: TYPE = SVSceneTypes.SkitterMode; <> SetModeSkitter: PROC [svData: SVData, mode: SkitterMode]; <> <> <> <> <> GetSkitterData: PROC [editToolData: EditToolData] RETURNS [assembly: Slice, primitive: Primitive, svData: SVData]; GetModeSkitter: PROC [editToolData: EditToolData] RETURNS [mode: SkitterMode]; <> AddHookFromSkitter: PROC [editToolData: EditToolData] RETURNS [assembly: Slice]; AddFloaterFromSkitter: PROC [editToolData: EditToolData] RETURNS [assembly: Slice]; <> <<1) A Floater's coordSys>> <<2) A Hook coordSys>> <<3) An Object's coordSys.>> <> <<1) A hook movee selects an object to be tugged and a tugboat at the same time.>> <<2) A floater, hook, or object selection allows the selected coordSys to be moved. A hook might be moved around on a surface or might become a floater. An object moves along with its children. A floater moves in space.>> <<3) The origin of an in-scene ray is specified.>> <<4) The origin of a floater calculation is specified.>> <> <<1) Any target can be a center of rotation, a base frame for translation.>> <<2) All selectable objects are also assemblies in the scene tree. All assemblies have an associated distinguished plane. Hence a target can suggest a plane to be used for dragging.>> <<3) The direction point of an in-scene ray is specified.>> <<4) The end point of a floater calculation is specified.>> <<>> <> Selection: TYPE = SVInterfaceTypes.Selection; ReferentType: TYPE = SVInterfaceTypes.ReferentType; -- {hook, floater, coordSys}; SelectionType: TYPE = SVInterfaceTypes.SelectionType; -- {target, movee}; <> <<1) The global skitter.>> <<2) A stack of all movee selections.>> <<3) A stack of all target selections.>> <<>> CreateHookMovee: PROC [jack: Slice, indirect: Slice, svData: SVData] RETURNS [movee: Selection]; <> CreateCoordSysMovee: PROC [coincident: Slice, svData: SVData] RETURNS [movee: Selection]; CreateHookTarget: PROC [jack: Slice, indirect: Slice, svData: SVData] RETURNS [target: Selection]; CreateCoordSysTarget: PROC [coincident: Slice, svData: SVData] RETURNS [target: Selection]; CreatePlaneSelection: PROC [coincident: Slice, svData: SVData] RETURNS [planeSel: Selection]; GetSelectionGenerator: PROC [selectType: SelectionType] RETURNS [g: SelectionGenerator, selectionsExist: BOOL]; ComplainIfNot: PROC [selectionsExist: BOOL]; NextSelection: PROC [g: SelectionGenerator] RETURNS [sel: Selection]; NextSelectionCoincident: PROC [g: SelectionGenerator] RETURNS [coin: Slice]; SelectionGenerator: TYPE = SVInterfaceTypes.SelectionGenerator; PushMovee: PROC [moveeSel: Selection]; PopMovee: PROC [] RETURNS [moveeSel: Selection]; NextMovee: PROC [] RETURNS [moveeSel: Selection]; <> PopMoveeCoincident: PROC [] RETURNS [movee: Slice]; NextMoveeCoincident: PROC [] RETURNS [movee: Slice]; <> TopMovee: PROC [] RETURNS [movee: Selection]; <> TopMoveeC: PROC [] RETURNS [movee: Selection]; <> TopMoveeCoincident: PROC [] RETURNS [movee: Slice]; <> ClearMoveeStack: PROC [editToolData: EditToolData]; PushTarget: PROC [targetSel: Selection]; PopTarget: PROC [] RETURNS [targetSel: Selection]; NextTarget: PROC [] RETURNS [targetSel: Selection]; PopTargetCoincident: PROC [] RETURNS [target: Slice]; NextTargetCoincident: PROC [] RETURNS [movee: Slice]; <> TopTarget: PROC [] RETURNS [targetSel: Selection]; <> TopTargetC: PROC [] RETURNS [targetSel: Selection]; <> TopTargetCoincident: PROC [] RETURNS [target: Slice]; TopTargetCoinCoordSys: PROC [] RETURNS [targetCS: CoordSystem]; <> TopTargetCoinCoordSysC: PROC [] RETURNS [targetCS: CoordSystem]; <> ClearTargetStack: PROC [editToolData: EditToolData]; <<>> PushPlane: PROC [planeSel: Selection]; PopPlane: PROC [] RETURNS [planeSel: Selection]; TopPlane: PROC [] RETURNS [planeSel: Selection]; <> TopPlaneC: PROC [] RETURNS [planeSel: Selection]; <> TopPlaneCoincident: PROC [] RETURNS [planeAssem: Slice]; PlaneStackEmpty: PROC [] RETURNS [BOOL]; ClearPlaneStack: PROC [editToolData: EditToolData]; ComplementAnySelectionsOnDC: PROC [dc: Imager.Context, assembly: Slice, scene: Scene]; ComplementAllSelections: PROC [selType: SelectionType]; <> KillSkitterAndSelections: PROC [editToolData: EditToolData]; CreateSkitter: PROC [] RETURNS [skitter: Skitter]; END.