From cbe4e90105d07d7d3fecabffaa01342403aa2ae3 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Thu, 19 Sep 2019 20:54:00 -0400
Subject: [PATCH] Better navigation.

---
 GroupEditor.java |  121 +++++++++++++++++++++++++---------------
 1 files changed, 76 insertions(+), 45 deletions(-)

diff --git a/GroupEditor.java b/GroupEditor.java
index 597afe6..d328971 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -368,16 +368,6 @@
         refreshContents();
     }
 
-    public void Show3DView()
-    {
-        // bug
-        //gridPanel.setDividerLocation(1.0);
-        //bigPanel.setDividerLocation(0.0);
-        bigThree.ClearUI();
-        bigThree.add(centralPanel);
-        bigThree.FlushUI();
-    }
-
     //ObjEditor objEditor;
 	public void closeUI2()
 	{
@@ -493,11 +483,16 @@
         
         Object3D parent = obj.parent;
         obj.parent = null;
+        
         //               Object3D support = obj.support;
         //               obj.support = null;
         if (!supports)
             obj.SaveSupports();
+        
         Object3D clone = (Object3D)Grafreed.clone(obj);
+        
+        clone.ResetUUIDs();
+        
         obj.parent = parent;
         //               obj.support = support;
         //               clone.support = support; // aout 2013
@@ -567,8 +562,10 @@
 		pasteLinkItem.addActionListener(this);
 		pasteCloneItem = oe.jTree.popup.add(new JMenuItem("Paste clone"));
 		pasteCloneItem.addActionListener(this);
-// CRASH	pasteExpandItem = oe.jTree.popup.add(new JMenuItem("Paste expand"));
-//		pasteExpandItem.addActionListener(this);
+// CRASH
+                pasteExpandItem = oe.jTree.popup.add(new JMenuItem("Paste expand"));
+//		
+                pasteExpandItem.addActionListener(this);
 		//menu.add("-");
                 oe.jTree.popup.addSeparator();
                 
@@ -806,7 +803,7 @@
 		genNormalsCADItem.addActionListener(this);
 		genNormalsMESHItem = menu.add(new MenuItem("Mesh Normals"));
 		genNormalsMESHItem.addActionListener(this);
-        if (Globals.ADVANCED)
+        //if (Globals.ADVANCED)
         {
 		genNormalsMINEItem = menu.add(new MenuItem("Stitch Normals"));
 		genNormalsMINEItem.addActionListener(this);
@@ -969,7 +966,7 @@
             currenttab.setName(tabname);
             //added = false;
             resourcecontainer.add(currenttab);
-            resourcecontainer.setToolTipTextAt(tabcount++, "Texture Group " + tabname);
+            resourcecontainer.setToolTipTextAt(tabcount++, "Texture " + tabname);
             rowcount = 1;
             colcount = 0;
             texturecount = 0;
@@ -984,6 +981,11 @@
                 currenttab = (cGridBag)resourcecontainer.getComponentAt(resourcecontainer.indexOfTab(tabname));
             }
             
+        columns = 5;
+        
+        if (path[0].contains("D&R") || path[0].contains("Paint"))
+            columns = 4;
+        
             AddTextureButton(path[0], path[1], path[2], ++texturecount, currenttab);
             totalcount++;
             
@@ -1081,13 +1083,17 @@
 //                        }
 //                });
                 
+		oe.toolbarPanel.add(fullScreenButton = GetButton("icons/fullscreen.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
+                fullScreenButton.setToolTipText("Full-screen window");
+		fullScreenButton.addActionListener(this);
+                
 		oe.toolbarPanel.add(collapseButton = GetButton("icons/collapse.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
                 collapseButton.setToolTipText("Collapse toolbar");
 		collapseButton.addActionListener(this);
                 
-		oe.toolbarPanel.add(maximize3DButton = GetButton("icons/square.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
-                maximize3DButton.setToolTipText("Maximize 3D view");
-		maximize3DButton.addActionListener(this);
+//		oe.toolbarPanel.add(maximize3DButton = GetButton("icons/square.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
+//                maximize3DButton.setToolTipText("Maximize 3D view");
+//		maximize3DButton.addActionListener(this);
                 
 		oe.toolbarPanel.add(twoButton = GetButton("icons/cube.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
                 twoButton.setToolTipText("Show 3D view only");
@@ -1107,10 +1113,6 @@
 //                sevenButton.setToolTipText("3-column layout");
 //		sevenButton.addActionListener(this);
                 //
-                
-		oe.toolbarPanel.add(fullButton = GetButton("icons/fullscreen.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
-                fullButton.setToolTipText("Full-screen window");
-		fullButton.addActionListener(this);
                 
 		oe.toolbarPanel.add(screenfitButton = GetButton("icons/fit.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
                 screenfitButton.setToolTipText("Screen fit");
@@ -1198,6 +1200,7 @@
 		//clearButton.addActionListener(this);
 
                 cGridBag row1 = new cGridBag();
+                row1.preferredHeight = 8;
                 
                 // INSERT
                 row1.add(gridButton = GetButton("icons/grid.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
@@ -1238,6 +1241,7 @@
                 oe.toolboxPanel.add(row1);
                 
                 cGridBag row2 = new cGridBag();
+                row2.preferredHeight = 8;
                 
                 row2.add(groupButton = GetButton("icons/group.png", !Globals.NIMBUSLAF)); //, oe.aConstraints);
                 groupButton.setToolTipText("Create group");
@@ -1340,6 +1344,7 @@
 
                 oe.treePanel.add(versionManagerPanel);
                 oe.treePanel.Return();
+                
         versionSliderPane = AddSlider(oe.treePanel, "Version", 0, 0, 0);
             versionSlider = (cNumberSlider)versionSliderPane.getComponent(1);
             versionSliderPane.preferredHeight = 3;
@@ -1399,7 +1404,7 @@
 //                supportCB.setToolTipText("Enable rigging");
 //                                supportCB.addItemListener(this);
 
-                panel.add(freezeCB = new cCheckBox("Freeze", Globals.FREEZEONMOVE)); //, constraints);
+                panel.add(freezeCB = new cCheckBox("Fast cam", Globals.FREEZEONMOVE)); //, constraints);
                 freezeCB.setToolTipText("Fast moving camera");
                                 freezeCB.addItemListener(this);
 
@@ -1408,9 +1413,12 @@
 
                 panel.Return();
                 
+            if (Globals.ADVANCED)
+            {
                 panel.add(crowdCB = new cCheckBox("Crowd", Globals.CROWD)); //, constraints);
                 crowdCB.setToolTipText("Used for crowds");
                                 crowdCB.addItemListener(this);
+            }
 
                 panel.add(smoothCB = new cCheckBox("Inertia", CameraPane.INERTIA)); //, constraints);
                 smoothCB.setToolTipText("Snapping delay");
@@ -1423,30 +1431,26 @@
                 minshaderCB.setToolTipText("Minimal fast shader");
                                 minshaderCB.addItemListener(this);
                                 
-//        	constraints.gridy += 1;
 //                panel.add(speakerMocapCB = new cCheckBox("Mocap", CameraPane.SPEAKERMOCAP), constraints);
 //                                speakerMocapCB.addItemListener(this);
 
-                panel.Return();
-                
             if (false)
             {
                 // handled in scripts
-        	//constraints.gridy += 1;
                 panel.add(speakerCameraCB = new cCheckBox("Cam", CameraPane.SPEAKERCAMERA)); //, constraints);
                                 speakerCameraCB.addItemListener(this);
 
-        	//constraints.gridy += 1;
                 panel.add(speakerFocusCB = new cCheckBox("Focus", CameraPane.SPEAKERFOCUS)); //, constraints);
                                 speakerFocusCB.addItemListener(this);
 
-        	//constraints.gridy += 1;
-                panel.add(smoothfocusCB = new cCheckBox("Smooth", CameraPane.SMOOTHFOCUS)); //, constraints);
-                                smoothfocusCB.addItemListener(this);
                 panel.Return();
             }
 
-//constraints.gridx += 1;
+                panel.add(smoothfocusCB = new cCheckBox("Smooth", CameraPane.SMOOTHFOCUS)); //, constraints);
+                                smoothfocusCB.addItemListener(this);
+                                
+                panel.Return();
+                
 //panel.add(debugCB = new cCheckBox("Debug", CameraPane.DEBUG), constraints);
 //                debugCB.addItemListener(this);
 
@@ -2085,7 +2089,7 @@
             Object3D obj = (Object3D)group.selection.elementAt(0);
             objEditor.ScreenFit(obj, false);
             
-            cameraView.pingthread.StepToTarget(true);
+            cameraView.pingthread.StepToTarget(); //true);
             refreshContents();
         }
 
@@ -2122,7 +2126,7 @@
                 obj.parent.TransformToWorld(maxima); //, maxima);
             }
             
-            Object3D shadow = new Object3D("Shadow " + obj.name);
+            Object3D shadow = new Object3D("Shadow" + obj.name);
             
             shadow.toParent = LA.newMatrix();
             shadow.fromParent = LA.newMatrix();
@@ -2807,7 +2811,7 @@
 		{
 			Maximize();
 		} else
-		if (source == fullButton)
+		if (source == fullScreenButton)
 		{
 			ToggleFullScreen();
 		} else
@@ -2816,13 +2820,13 @@
                         this.expandedLayout = radio.layout;
 			CollapseToolbar();
 		} else
-		if (source == maximize3DButton)
-		{
-                        this.expandedLayout = radio.layout;
-                        radio.layout = twoButton;
-                        Show3DView();
-			CollapseToolbar();
-		} else
+//		if (source == maximize3DButton)
+//		{
+//                        this.expandedLayout = radio.layout;
+//                        radio.layout = twoButton;
+//			CollapseToolbar();
+//                        Show3DView();
+//		} else
 		if (source == previousVersionButton)
 		{
                         // Go to previous version
@@ -2850,7 +2854,7 @@
 		if (source == saveVersionButton)
 		{
                         // Save a new version
-			if (!Save(true))
+			if (!DuplicateVersion()) //true))
                             java.awt.Toolkit.getDefaultToolkit().beep();
 		} else
 		if (source == deleteVersionButton)
@@ -4169,9 +4173,10 @@
             // and check if any of these nodes are reachable below the root.
             Grafreed.grafreed.universe.TagObjects(copy, true);
             
-            if (copy instanceof Composite && copy.versionlist == null && !copy.HasTags())
+            if (copy instanceof Composite && !copy.HasTags())
             {
-                copy.versionlist = new Object3D[100];
+                if (copy.versionlist == null)
+                    copy.versionlist = new Object3D[100];
                 
                 //Save(true);
             }
@@ -4311,6 +4316,31 @@
         void ResetTransform()
         {
             ResetTransform(-1);
+        }
+        
+        void ScaleSelection(int scale)
+        {
+            Object3D obj;
+            for (Enumeration e = group.selection.elements(); e.hasMoreElements();)
+            {
+                    obj = (Object3D)e.nextElement();
+                    
+                    if (obj.toParent == null)
+                        continue;
+                    
+                    obj.Scale(scale);
+                    
+                    if (obj.parent == null)
+                    {
+                        System.out.println("NULL PARENT!");
+                    //    new Exception().printStackTrace();
+                    }
+                    else
+                        TouchTransform(obj);
+                        //obj.parent.Touch();
+            }
+
+            refreshContents();
         }
         
         void ResetTransform(int mask)
@@ -4843,6 +4873,7 @@
                 LA.matTranslateInv(obj.fromParent, -i * scale, 0, 0);
             }
             
+            Globals.lighttouched = true;
             refreshContents();
 	}
 	
@@ -5377,7 +5408,7 @@
                             if (tps[0].getLastPathComponent() != Globals.theRenderer.LightCamera()) // Crashes the camera because of invalid lightspace
                             {
                                 CameraPane.camerachangeframe = 0; // don't refuse it
-                                Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent());
+                                Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent(), true);
                             }
                          //   Globals.theRenderer.renderCamera = Globals.theRenderer.manipCamera;
                          //   Globals.theRenderer.eyeCamera = Globals.theRenderer.manipCamera;

--
Gitblit v1.6.2