<> <> <> <> <> DIRECTORY Feedback, Imager, IO, Menus, Rope, SV2d, SV3d, SVEditUser, SVEditUserB, SVInterfaceTypes, SVModelTypes, SVScene, SVSceneTypes, SVToolObject, SVTransforms, SVUserInput, TFI3d, ViewerClasses, ViewerTools; SVEditUserImplA: CEDAR PROGRAM IMPORTS Feedback, IO, Rope, SVEditUser, SVEditUserB, SVScene, SVUserInput, TFI3d, ViewerTools EXPORTS SVEditUser = BEGIN ArtworkToolData: TYPE = SVInterfaceTypes.ArtworkToolData; Slice: TYPE = REF SliceObj; SliceObj: TYPE = SVSceneTypes.SliceObj; SliceList: TYPE = SVSceneTypes.SliceList; Camera: TYPE = SVModelTypes.Camera; CoordSystem: TYPE = SVModelTypes.CoordSystem; DCProc: TYPE = SVInterfaceTypes.DCProc; EditToolData: TYPE = SVInterfaceTypes.EditToolData; MasterObject: TYPE = SVSceneTypes.MasterObject; Matrix4by4: TYPE = SV3d.Matrix4by4; MouseButton: TYPE = Menus.MouseButton; Point2d: TYPE = SV2d.Point2d; Point3d: TYPE = SV3d.Point3d; PointSetOp: TYPE = SVSceneTypes.PointSetOp; Primitive: TYPE = SVSceneTypes.Primitive; Scene: TYPE = SVSceneTypes.Scene; ScratchpadData: TYPE = SVInterfaceTypes.ScratchpadData; Selection: TYPE = SVInterfaceTypes.Selection; ToolData: TYPE = SVSceneTypes.ToolData; Viewer: TYPE = ViewerClasses.Viewer; ViewerCell: TYPE = REF ViewerCellObj; ViewerCellObj: TYPE = SVInterfaceTypes.ViewerCellObj; SVData: TYPE = SVInterfaceTypes.SVData; <> NewOutput: PUBLIC PROC [editToolData: EditToolData] = { alreadyExists: BOOL; [alreadyExists, editToolData.messages] _ Feedback.OpenTypescript["SolidViews Typescript", $Solidviews, 120]; }; <> <> <> <> <> <> <<[in, out] _ ViewerIO.CreateViewerStreams["solidviews output", newViewer, NIL, TRUE];>> <<};>> SetSourceName: PUBLIC PROC [source: Slice, editToolData: EditToolData] = { oldMoveeRope: Rope.ROPE _ ViewerTools.GetContents[editToolData.sceneSection.source]; IF source = NIL THEN ViewerTools.SetContents[editToolData.sceneSection.source, NIL] ELSE { IF NOT Rope.Equal[oldMoveeRope, source.name, TRUE] THEN ViewerTools.SetContents[editToolData.sceneSection.source, source.name]; }; }; SetTargetName: PUBLIC PROC [target: Slice, editToolData: EditToolData] = { oldTargetRope: Rope.ROPE _ ViewerTools.GetContents[editToolData.sceneSection.target]; IF target = NIL THEN ViewerTools.SetContents[editToolData.sceneSection.target, NIL] ELSE { IF NOT Rope.Equal[oldTargetRope, target.name, TRUE] THEN ViewerTools.SetContents[editToolData.sceneSection.target, target.name]; }; }; SetPlaneName: PUBLIC PROC [plane: Slice, editToolData: EditToolData] = { oldPlaneRope: Rope.ROPE _ ViewerTools.GetContents[editToolData.sceneSection.plane]; IF plane = NIL THEN ViewerTools.SetContents[editToolData.sceneSection.plane, NIL] ELSE { IF NOT Rope.Equal[oldPlaneRope, plane.name, TRUE] THEN ViewerTools.SetContents[editToolData.sceneSection.plane, plane.name]; }; }; SetCurrentAssemblyName: PUBLIC PROC [current: Slice, editToolData: EditToolData] = { oldSkitterRope: Rope.ROPE _ ViewerTools.GetContents[editToolData.sceneSection.current]; IF current = NIL THEN ViewerTools.SetContents[editToolData.sceneSection.current, NIL] ELSE { IF NOT Rope.Equal[oldSkitterRope, current.name, TRUE] THEN ViewerTools.SetContents[editToolData.sceneSection.current, current.name]; }; }; SetDefaultGravityExtent: PUBLIC PROC [inches: REAL] = { <> masterData.defaultGravityExtent _ inches*72.0; }; GetDefaultGravityExtent: PUBLIC PROC RETURNS [screenDots: REAL] = { <> screenDots _ masterData.defaultGravityExtent; }; GetParent: PUBLIC PROC [editToolData: EditToolData] RETURNS [super: Slice, success: BOOL] = { superName: Rope.ROPE _ ViewerTools.GetContents[editToolData.sceneSection.parent]; scene: Scene _ editToolData.sceneSection.currentScene; success _ TRUE; super _ NIL; [super, ----] _ SVScene.FindAssemblyFromName[superName, scene !SVScene.AssemblyNotFound => {success _ FALSE; CONTINUE}]; IF NOT success THEN { Feedback.PutFRaw[$Solidviews, oneLiner, "Slice %g not found", [rope[superName]]]; Feedback.BlinkRaw[$Solidviews];}; }; -- end of GetParent GetPoint3d: PUBLIC PROC [textViewer: Viewer] RETURNS [pt: Point3d] = { wholeRope: Rope.ROPE _ ViewerTools.GetContents[textViewer]; wholeStream: IO.STREAM _ IO.RIS[wholeRope]; TFI3d.ReadBlank[wholeStream]; pt[1] _ TFI3d.ReadReal[wholeStream]; TFI3d.ReadBlankAndRope[wholeStream, ","]; TFI3d.ReadBlank[wholeStream]; pt[2] _ TFI3d.ReadReal[wholeStream]; TFI3d.ReadBlankAndRope[wholeStream, ","]; TFI3d.ReadBlank[wholeStream]; pt[3] _ TFI3d.ReadReal[wholeStream]; }; ScenePrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sceneSection.sceneName]; }; CurrentAssemblyPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sceneSection.current]; }; SourcePrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sceneSection.source]; }; TargetPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sceneSection.target]; }; NewPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sceneSection.new]; }; ParentPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sceneSection.parent]; }; RGBPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkSection.rgb]; }; SphereRadiusPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.sphereSection.radius]; }; BlockXYZPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.blockSection.xyz]; }; CylinderRadiusPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cylinderSection.radius]; }; CylinderHeightPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cylinderSection.height]; }; ConeRadiusPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.coneSection.radius]; }; ConeHeightPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.coneSection.height]; }; BigRadiusPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.torusSection.bigRadius]; }; SectionRadiusPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.torusSection.sectionRadius]; }; LinDepthPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.linSection.depth]; }; StuffPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.utilitySection.stuffNum]; }; DegreesPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.transformSection.degrees]; }; TranslateXYZPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.transformSection.transXYZ]; }; ScaleXYZPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.transformSection.scaleXYZ]; }; EvenScaleXYZPrompt: PUBLIC PROC[event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.transformSection.scalar]; }; CameraNamePrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.name]; }; FocusPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.focusPoint]; }; ScanResolutionPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.resolution]; }; CameraOriginPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.origin]; }; SlantPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.slant]; }; FocalLengthPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.focalLength]; }; FramePrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.frame]; }; ClippingPlanePrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.clippingPlanes]; }; VisibleAssemblyPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraSection.visibleAssemblies]; }; CameraOrderPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.cameraOrderSection.order]; }; ResolutionPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkSection.resolution]; }; TubeHeightPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkSection.tubeHeight]; }; TubeRadiusPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkSection.tubeRadius]; }; BoxXYZPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkSection.boxXYZ]; }; ArtworkNamePrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkSection.picName]; }; ArtworkDegreesPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.artworkTransformSection.degrees]; }; LightNamePrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.lightSection.name]; }; LightPositionPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.lightSection.position]; }; LightColorPrompt: PUBLIC PROC [event: LIST OF REF ANY, svData: SVData] = { editToolData: EditToolData _ svData.editToolData; ViewerTools.SetSelection[editToolData.lightSection.color]; }; MasterData: TYPE = REF MasterDataObj; MasterDataObj: TYPE = RECORD [ defaultGravityExtent: REAL _ 25.0, -- in screen dots objectsBeingCopied: LIST OF REF ANY -- for copying objects from viewer to viewer ]; masterData: MasterData; Init: PROC [] = { masterData _ NEW[MasterDataObj]; }; RegisterEditToolActions: PROC = { <> <> SVUserInput.RegisterAction[$AddHalfSpace, SVEditUser.AddHalfSpace, none]; SVUserInput.RegisterAction[$AddSphere, SVEditUser.AddSphere, none]; SVUserInput.RegisterAction[$SphereRadiusPrompt, SVEditUser.SphereRadiusPrompt, none]; SVUserInput.RegisterAction[$AddBlock, SVEditUser.AddBlock, none]; SVUserInput.RegisterAction[$BlockXYZPrompt, SVEditUser.BlockXYZPrompt, none]; SVUserInput.RegisterAction[$AddCyl, SVEditUser.AddCyl, none]; SVUserInput.RegisterAction[$CylinderRadiusPrompt, SVEditUser.CylinderRadiusPrompt, none]; SVUserInput.RegisterAction[$CylinderHeightPrompt, SVEditUser.CylinderHeightPrompt, none]; SVUserInput.RegisterAction[$AddCone, SVEditUser.AddCone, none]; SVUserInput.RegisterAction[$ConeRadiusPrompt, SVEditUser.ConeRadiusPrompt, none]; SVUserInput.RegisterAction[$ConeHeightPrompt, SVEditUser.ConeHeightPrompt, none]; SVUserInput.RegisterAction[$AddTorus, SVEditUser.AddTorus, none]; SVUserInput.RegisterAction[$BigRadiusPrompt, SVEditUser.BigRadiusPrompt, none]; SVUserInput.RegisterAction[$SectionRadiusPrompt, SVEditUser.SectionRadiusPrompt, none]; SVUserInput.RegisterAction[$AddLinear, SVEditUser.AddLinear, none]; SVUserInput.RegisterAction[$LinDepthPrompt, SVEditUser.LinDepthPrompt, none]; SVUserInput.RegisterAction[$AddRevo, SVEditUser.AddRevo, none]; SVUserInput.RegisterAction[$Copy, SVEditUser.Copy, none]; SVUserInput.RegisterAction[$Rename, SVEditUser.Rename, none]; SVUserInput.RegisterAction[$NewParent, SVEditUser.NewParent, none]; <> SVUserInput.RegisterAction[$ListScenes, SVEditUserB.ListScenes, none]; SVUserInput.RegisterAction[$ListAssemblies, SVEditUserB.ListAssemblies, none]; SVUserInput.RegisterAction[$ListCoordSystems, SVEditUserB.ListCoordSystems, none]; SVUserInput.RegisterAction[$ListLights, SVEditUserB.ListLights, none]; SVUserInput.RegisterAction[$ListMasterObjects, SVEditUserB.ListMasterObjects, none]; SVUserInput.RegisterAction[$ListViewers, SVEditUserB.ListViewers, none]; SVUserInput.RegisterAction[$ListCameras, SVEditUserB.ListCameras, none]; <> SVUserInput.RegisterAction[$CameraNamePrompt, SVEditUser.CameraNamePrompt, none]; SVUserInput.RegisterAction[$GetCamera, SVEditUserB.GetCamera, none]; SVUserInput.RegisterAction[$SetCamera, SVEditUserB.SetCamera, none]; SVUserInput.RegisterAction[$UseCamera, SVEditUserB.UseCamera, none]; SVUserInput.RegisterAction[$CameraOriginPrompt, SVEditUser.CameraOriginPrompt, none]; SVUserInput.RegisterAction[$FocusPrompt, SVEditUser.FocusPrompt, none]; SVUserInput.RegisterAction[$SlantPrompt, SVEditUser.SlantPrompt, none]; SVUserInput.RegisterAction[$ScanResolutionPrompt, SVEditUser.ScanResolutionPrompt, none]; SVUserInput.RegisterAction[$FocalLengthPrompt, SVEditUser.FocalLengthPrompt, none]; SVUserInput.RegisterAction[$ProjectionCycle, SVEditUser.ProjectionCycle, none]; SVUserInput.RegisterAction[$FramePrompt, SVEditUser.FramePrompt, none]; SVUserInput.RegisterAction[$ClippingPlanePrompt, SVEditUser.ClippingPlanePrompt, none]; SVUserInput.RegisterAction[$VisibleAssemblyPrompt, SVEditUser.VisibleAssemblyPrompt, none]; SVUserInput.RegisterAction[$CameraOrderPrompt, SVEditUser.CameraOrderPrompt, none]; SVUserInput.RegisterAction[$GetCameraOrder, SVEditUserB.GetCameraOrder, none]; SVUserInput.RegisterAction[$SetCameraOrder, SVEditUserB.SetCameraOrder, none]; <> SVUserInput.RegisterAction[$ScenePrompt, SVEditUser.ScenePrompt, none]; SVUserInput.RegisterAction[$Help, SVEditUser.Help, none]; SVUserInput.RegisterAction[$Revive, SVEditUser.Revive, none]; SVUserInput.RegisterAction[$LinesOfLongitude, SVEditUser.LinesOfLongitude, none]; SVUserInput.RegisterAction[$LinesOfLatitude, SVEditUser.LinesOfLatitude, none]; <> SVUserInput.RegisterAction[$CurrentAssemblyPrompt, SVEditUser.CurrentAssemblyPrompt, none]; SVUserInput.RegisterAction[$Text1PromptButton, SVEditUser.Text1PromptButton, none]; SVUserInput.RegisterAction[$SelectedTextPlaneButton, SVEditUser.SelectedTextPlaneButton, none]; SVUserInput.RegisterAction[$SelectedTextSourceButton, SVEditUser.SelectedTextSourceButton, none]; SVUserInput.RegisterAction[$SelectedTextTargetButton, SVEditUser.SelectedTextTargetButton, none]; SVUserInput.RegisterAction[$SelectedTextParentButton, SVEditUser.SelectedTextParentButton, none]; <> SVUserInput.RegisterAction[$GetArtwork, SVEditUserB.GetArtwork, none]; SVUserInput.RegisterAction[$IsColor, SVEditUser.IsColor, none]; SVUserInput.RegisterAction[$MaterialCycle, SVEditUser.MaterialCycle, none]; SVUserInput.RegisterAction[$ResolutionPrompt, SVEditUser.ResolutionPrompt, none]; SVUserInput.RegisterAction[$Set3DArtwork, SVEditUserB.Set3DArtwork, none]; SVUserInput.RegisterAction[$SetColorArtwork, SVEditUserB.SetColorArtwork, none]; SVUserInput.RegisterAction[$RGBPrompt, SVEditUser.RGBPrompt, none]; SVUserInput.RegisterAction[$SetTubeArtwork, SVEditUserB.SetTubeArtwork, none]; SVUserInput.RegisterAction[$TubeHeightPrompt, SVEditUser.TubeHeightPrompt, none]; SVUserInput.RegisterAction[$TubeRadiusPrompt, SVEditUser.TubeRadiusPrompt, none]; SVUserInput.RegisterAction[$SetBoxArtwork, SVEditUserB.SetBoxArtwork, none]; SVUserInput.RegisterAction[$BoxXYZPrompt, SVEditUser.BoxXYZPrompt, none]; SVUserInput.RegisterAction[$BoxOCycle, SVEditUser.BoxOCycle, none]; SVUserInput.RegisterAction[$RotateArtwork, SVEditUserB.RotateArtwork, none]; SVUserInput.RegisterAction[$ArtworkDegreesPrompt, SVEditUser.ArtworkDegreesPrompt, none]; SVUserInput.RegisterAction[$NormalizeArtwork, SVEditUserB.NormalizeArtwork, none]; <> SVUserInput.RegisterAction[$NewPrompt, SVEditUser.NewPrompt, none]; SVUserInput.RegisterAction[$ParentPrompt, SVEditUser.ParentPrompt, none]; SVUserInput.RegisterAction[$First, SVEditUser.First, none]; SVUserInput.RegisterAction[$DrawCS, SVEditUser.DrawCS, none]; SVUserInput.RegisterAction[$Edit, SVEditUser.Edit, none]; SVUserInput.RegisterAction[$SetOp, SVEditUser.SetOp, none]; SVUserInput.RegisterAction[$SelectOp, SVEditUser.SelectOp, none]; <> SVUserInput.RegisterAction[$AddLight, SVEditUserB.AddLight, none]; SVUserInput.RegisterAction[$DeleteLight, SVEditUserB.DeleteLight, none]; SVUserInput.RegisterAction[$EditLight, SVEditUserB.EditLight, none]; SVUserInput.RegisterAction[$LightNamePrompt, SVEditUser.LightNamePrompt, none]; SVUserInput.RegisterAction[$LightPositionPrompt, SVEditUser.LightPositionPrompt, none]; SVUserInput.RegisterAction[$LightColorPrompt, SVEditUser.LightColorPrompt, none]; SVUserInput.RegisterAction[$SetAmbient, SVEditUserB.SetAmbient, none]; SVUserInput.RegisterAction[$GetAmbient, SVEditUserB.GetAmbient, none]; SVUserInput.RegisterAction[$ShadowsPrompt, SVEditUser.ShadowsPrompt, none]; SVUserInput.RegisterAction[$SetShadows, SVEditUser.SetShadows, none]; <> SVUserInput.RegisterAction[$ScalePrimitive, SVEditUser.ScalePrimitive, none]; SVUserInput.RegisterAction[$ScaleXYZPrompt, SVEditUser.ScaleXYZPrompt, none]; SVUserInput.RegisterAction[$EvenScale, SVEditUser.EvenScale, none]; SVUserInput.RegisterAction[$EvenScaleXYZPrompt, SVEditUser.EvenScaleXYZPrompt, none]; SVUserInput.RegisterAction[$Trans, SVEditUser.Trans, none]; SVUserInput.RegisterAction[$TranslateXYZPrompt, SVEditUser.TranslateXYZPrompt, none]; SVUserInput.RegisterAction[$RotX, SVEditUser.RotX, none]; SVUserInput.RegisterAction[$RotY, SVEditUser.RotY, none]; SVUserInput.RegisterAction[$RotZ, SVEditUser.RotZ, none]; SVUserInput.RegisterAction[$DegreesPrompt, SVEditUser.DegreesPrompt, none]; SVUserInput.RegisterAction[$NormalizeRot, SVEditUserB.NormalizeRot, none]; SVUserInput.RegisterAction[$Normalize, SVEditUserB.Normalize, none]; SVUserInput.RegisterAction[$Align, SVEditUserB.Align, none]; SVUserInput.RegisterAction[$Abut, SVEditUserB.Abut, none]; SVUserInput.RegisterAction[$AbutX, SVEditUserB.AbutX, none]; SVUserInput.RegisterAction[$AbutY, SVEditUserB.AbutY, none]; SVUserInput.RegisterAction[$AbutZ, SVEditUserB.AbutZ, none]; }; -- end of RegisterEditToolActions RegisterEditToolActions[]; Init[]; END.