DIRECTORY Feedback, Imager, IO, Menus, Rope, SV2d, SV3d, SVEditUser, SVEditUserB, SVInterfaceTypes, SVModelTypes, SVRayTypes, 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 = SVRayTypes.PointSetOp; Primitive: TYPE = SVRayTypes.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]; }; 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. 6File: SVEditUserImplA.mesa Last edited by Bier on May 30, 1987 6:10:05 pm PDT Copyright c 1984 by Xerox Corporation. All rights reserved. Author: Eric Bier in October 1982 Contents: All of the procedures called by SVEditTool when menus and buttons are pressed GLOBAL VARIABLES MakeNewViewerAndHandle: PRIVATE PROC [] RETURNS [in, out: IO.STREAM, newViewer: Viewer] = { newViewer _ ViewerOps.CreateViewer[ flavor: $TypeScript, info: [ name: "SolidViews Typescript", menu: NIL, data: NIL, iconic: TRUE, column: right, scrollable: TRUE, icon: unInit ], paint: FALSE]; ViewerOps.SetOpenHeight[newViewer, 120]; ViewerOps.OpenIcon[icon: newViewer, closeOthers: FALSE, bottom: TRUE, paint: TRUE]; [in, out] _ ViewerIO.CreateViewerStreams["solidviews output", newViewer, NIL, TRUE]; }; When a new viewer is created, how strong should its gravity be? When a new viewer is created, how strong should its gravity be? There were 94 events on April 28, 1987 The Add! Menus (SVEditToolMenusImplA) The Listing Menus (SVEditToolMenusImplA) The Camera Section (SVEditToolMenusImplB) Current Scene Section (SVEditToolMenusImplC) Text Input Section (SVEditToolMenusImplC) Artwork Section (SVEditToolMenusImplD) Build Assembly Operations (SVEditToolMenusImplD) Light Source Section (SVEditToolMenusImplE) Transform Section (SVEditToolMenusImplE) ΚŸ– "cedar" style˜Ihead1šœ™Jšœ2™2Jšœ Οmœ1™˜WJšžœ žœžœ<žœ˜Ušžœ˜šžœžœ*žœž˜:JšœI˜I—J˜—J˜J˜—codešŸœžœžœ žœ˜7L™?Lšœ.˜.L˜—š Ÿœžœžœžœžœ˜CL™?Lšœ-˜-L˜L˜—š Ÿ œžœžœžœžœ˜]Jšœžœ=˜QJšœ6˜6Jšœ žœ˜Jšœžœ˜ JšœΟcœ1˜=Jšœ(žœžœ˜:šžœžœ žœ˜JšœQ˜QJšœ!˜!—Jšœ ˜J˜—šŸ œžœžœžœ˜FJšœžœ'˜;Jš œ žœžœžœžœ ˜+Jšœ˜Jšœ$˜$Jšœ)˜)Jšœ˜Jšœ$˜$Jšœ)˜)Jšœ˜Jšœ$˜$Jšœ˜—J˜šŸ œžœžœžœžœžœžœ˜DJšœ1˜1Jšœ>˜>Jšœ˜—procš Ÿœž œ žœžœžœžœŸ˜OJšœ1˜1Jšœ<˜˜>Jšœ˜—šŸœžœžœžœžœžœžœ˜MJšœ1˜1Jšœ>˜>Jšœ˜—šŸœžœžœžœžœžœžœ˜IJšœ1˜1Jšœ:˜:Jšœ˜J˜—šŸœžœžœžœžœžœžœ˜IJšœ1˜1Jšœ:˜:Jšœ˜—šŸœžœžœ žœžœžœžœ˜IJšœ1˜1Jšœ>˜>Jšœ˜—šŸœžœžœ žœžœžœžœ˜MJšœ1˜1JšœB˜BJšœ˜—šŸœžœžœ žœžœžœžœ˜HJšœ1˜1Jšœ8˜8Jšœ˜—šŸ œžœžœžœžœžœžœ˜DJšœ1˜1Jšœ?˜?Jšœ˜—šŸ œžœžœžœžœžœžœ˜FJšœ1˜1Jšœ@˜@Jšœ˜—šŸœžœžœžœžœžœžœ˜KJšœ1˜1JšœA˜AJšœ˜—šŸœžœžœžœžœžœžœ˜GJšœ1˜1JšœA˜AJšœ˜—šŸœžœžœžœžœžœžœ˜KJšœ1˜1Jšœ?˜?Jšœ˜—J˜šŸœžœžœ žœžœžœžœ˜JJšœ1˜1Jšœ:˜:Jšœ˜—šŸ œžœžœ žœžœžœžœ˜EJšœ1˜1Jšœ@˜@Jšœ˜—šŸœžœžœ žœžœžœžœ˜NJšœ1˜1Jšœ@˜@Jšœ˜—šŸœžœžœ žœžœžœžœ˜LJšœ1˜1Jšœ<˜˜>Jšœ˜—šŸœžœžœ žœžœžœžœ˜NJšœ1˜1JšœG˜GJšœ˜J˜—J˜šŸœžœžœ žœžœžœžœ˜IJšœ1˜1Jšœ9˜9Jšœ˜—šŸœžœžœ žœžœžœžœ˜MJšœ1˜1Jšœ=˜=Jšœ˜—šŸœžœžœ žœžœžœžœ˜JJšœ1˜1Jšœ:˜:Jšœ˜—J˜LšΟb œžœžœ˜%š‘ œžœžœ˜Lšœžœ  ˜4Lš œžœžœžœžœ ,˜PL˜—Lšœ˜L˜šŸœžœ˜Lšœ žœ˜ Jšœ˜—J˜šŸœžœ˜!L™&Mš‘%™%LšœI˜ILšœC˜CLšœU˜ULšœA˜ALšœM˜MLšœ=˜=LšœY˜YLšœY˜YLšœ?˜?LšœQ˜QLšœQ˜QLšœA˜ALšœO˜OLšœW˜WLšœC˜CLšœM˜MLšœ?˜?Lšœ9˜9Lšœ=˜=LšœC˜CLš‘(™(LšœF˜FLšœN˜NLšœR˜RLšœF˜FLšœT˜TLšœH˜HLšœH˜HLš‘)™)LšœQ˜QLšœD˜DLšœD˜DLšœD˜DLšœU˜ULšœG˜GLšœG˜GLšœY˜YLšœS˜SLšœO˜OLšœG˜GLšœW˜WLšœ[˜[LšœS˜SLšœN˜NLšœN˜NLš‘,™,LšœG˜GLšœ9˜9Lšœ=˜=LšœQ˜QLšœO˜OLš‘)™)Lšœ[˜[LšœS˜SLšœ_˜_Lšœa˜aLšœa˜aLšœa˜aLš‘&™&LšœF˜FLšœ?˜?LšœK˜KLšœQ˜QLšœJ˜JLšœP˜PLšœC˜CLšœN˜NLšœQ˜QLšœQ˜QLšœL˜LLšœI˜ILšœC˜CLšœL˜LLšœY˜YLšœR˜RLš‘1™1LšœC˜CLšœI˜ILšœ;˜;Lšœ=˜=Lšœ9˜9Lšœ;˜;LšœA˜ALš‘+™+LšœB˜BLšœH˜HLšœD˜DLšœO˜OLšœW˜WLšœQ˜QLšœF˜FLšœF˜FLšœK˜KLšœE˜ELš‘(™(LšœM˜MLšœM˜MLšœC˜CLšœU˜ULšœ;˜;LšœU˜ULšœ9˜9Lšœ9˜9Lšœ9˜9LšœK˜KLšœJ˜JLšœD˜DLšœ<˜