File: SVEditUserImplA.mesa
Last edited by Bier on July 16, 1987 3:38:53 pm PDT
Copyright © 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
DIRECTORY
Feedback, GGParseIn, Imager, IO, Menus, Rope, SV2d, SV3d, SVEditUser, SVEditUserB, SVInterfaceTypes, SVModelTypes, SVScene, SVSceneTypes, SVToolObject, SVTransforms, SVUserInput, ViewerClasses, ViewerTools;
SVEditUserImplA: CEDAR PROGRAM
IMPORTS Feedback, GGParseIn, IO, Rope, SVEditUser, SVEditUserB, SVScene, SVUserInput, 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;
GLOBAL VARIABLES
NewOutput: PUBLIC PROC [editToolData: EditToolData] = {
alreadyExists: BOOL;
[alreadyExists, editToolData.messages] ← Feedback.OpenTypescript["SolidViews Typescript", $Solidviews, 120];
};
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];
};
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] = {
When a new viewer is created, how strong should its gravity be?
masterData.defaultGravityExtent ← inches*72.0;
};
GetDefaultGravityExtent: PUBLIC PROC RETURNS [screenDots: REAL] = {
When a new viewer is created, how strong should its gravity be?
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.STREAMIO.RIS[wholeRope];
GGParseIn.ReadBlank[wholeStream];
pt[1] ← GGParseIn.ReadWReal[wholeStream];
GGParseIn.ReadWRope[wholeStream, ","];
GGParseIn.ReadBlank[wholeStream];
pt[2] ← GGParseIn.ReadWReal[wholeStream];
GGParseIn.ReadWRope[wholeStream, ","];
GGParseIn.ReadBlank[wholeStream];
pt[3] ← GGParseIn.ReadWReal[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 = {
There were 94 events on April 28, 1987
The Add! Menus (SVEditToolMenusImplA)
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];
The Listing Menus (SVEditToolMenusImplA)
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];
The Camera Section (SVEditToolMenusImplB)
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];
Current Scene Section (SVEditToolMenusImplC)
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];
Text Input Section (SVEditToolMenusImplC)
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];
Artwork Section (SVEditToolMenusImplD)
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];
Build Assembly Operations (SVEditToolMenusImplD)
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];
Light Source Section (SVEditToolMenusImplE)
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];
Transform Section (SVEditToolMenusImplE)
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.