From f23e09019d161b02d566ffe312fdc553459fb954 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 28 Apr 2019 16:14:58 -0400
Subject: [PATCH] Grafreed 1.0.1 Option panel

---
 ObjEditor.java   |    7 ++
 BoundaryRep.java |   12 +++
 GroupEditor.java |  148 ++++++++++++++++++++++++++-----------------------
 3 files changed, 96 insertions(+), 71 deletions(-)

diff --git a/BoundaryRep.java b/BoundaryRep.java
index 05b3429..14a7921 100644
--- a/BoundaryRep.java
+++ b/BoundaryRep.java
@@ -3247,12 +3247,21 @@
                     max = ay;
                 }
                 
+                if (max == 0)
+                {
+                        uvmap[i2] = 0.5f;
+                        uvmap[i2+1] = 0.5f;
+                        continue;
+                }
+                
                 x /= max;
                 y /= max;
 
                 double angle = Math.acos(Math.abs(z*2));
                 
                 double k = angle / Math.PI * 2;
+                
+                assert(k >= 0);
                 
                 // k == 0 => uv = 0 (center)
                 // k == 1 => uv = -1,1 (border)
@@ -3268,7 +3277,8 @@
                 t = Math.pow(t, 3);
                 
                 // Interpolate between k/length2 (center) and k (border)
-                k = k / length2 * (1 - t) + k * t;
+                if (length2 > 0)
+                        k *= (1 - t) / length2 + t;
                 
                 double u = k*x;
                 double v = k*y;
diff --git a/GroupEditor.java b/GroupEditor.java
index b72085f..645464c 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -434,6 +434,9 @@
         oe.buttonGroup.add(dummyButton);
          */
                 aConstraints.gridy += 1;
+                
+                //this.AddOptions(oe.toolbarPanel, oe.aConstraints);
+                
 		oe.aConstraints.gridwidth = 1;
         	oe.aConstraints.gridx = 0;
                 
@@ -442,76 +445,7 @@
                                 liveCB.addItemListener(this);
 
         	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(fastCB = new cCheckBox("Fast", CameraPane.FAST), oe.aConstraints);
-                fastCB.setToolTipText("Fast mode");
-                                fastCB.addItemListener(this);
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT), oe.aConstraints);
-                supportCB.setToolTipText("Enabled rigging");
-                                supportCB.addItemListener(this);
-
-        //	oe.aConstraints.gridx += 1;
-        //        oe.toolbarPanel.add(localCB = new cCheckBox("Local", CameraPane.LOCALTRANSFORM), oe.aConstraints);
-        //                        localCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(crowdCB = new cCheckBox("Crowd", Globals.CROWD), oe.aConstraints);
-                crowdCB.setToolTipText("Used for crowds");
-                                crowdCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(smoothCB = new cCheckBox("Inertia", CameraPane.INERTIA), oe.aConstraints);
-                smoothCB.setToolTipText("Snapping delay");
-                                smoothCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(slowCB = new cCheckBox("Slow", CameraPane.SLOWPOSE), oe.aConstraints);
-                slowCB.setToolTipText("Smooth interpolation");
-                                slowCB.addItemListener(this);
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(boxCB = new cCheckBox("Box", CameraPane.BOXMODE), oe.aConstraints);
-                boxCB.setToolTipText("Display bounding boxes");
-                                boxCB.addItemListener(this);
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE), oe.aConstraints);
-                zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");
-                                zoomBoxCB.addItemListener(this);
-
-//        	oe.aConstraints.gridx += 1;
-//                oe.toolbarPanel.add(speakerMocapCB = new cCheckBox("Mocap", CameraPane.SPEAKERMOCAP), oe.aConstraints);
-//                                speakerMocapCB.addItemListener(this);
-
-            if (false)
-            {
-                // handled in scripts
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(speakerCameraCB = new cCheckBox("Cam", CameraPane.SPEAKERCAMERA), oe.aConstraints);
-                                speakerCameraCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(speakerFocusCB = new cCheckBox("Focus", CameraPane.SPEAKERFOCUS), oe.aConstraints);
-                                speakerFocusCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(smoothfocusCB = new cCheckBox("Smooth", CameraPane.SMOOTHFOCUS), oe.aConstraints);
-                                smoothfocusCB.addItemListener(this);
-            }
-
-//oe.aConstraints.gridx += 1;
-//oe.toolbarPanel.add(debugCB = new cCheckBox("Debug", CameraPane.DEBUG), oe.aConstraints);
-//                debugCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(oeilCB = new cCheckBox("Eye", CameraPane.OEIL), oe.aConstraints);
-                                oeilCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(lookAtCB = new cCheckBox("Target", CameraPane.LOOKAT), oe.aConstraints);
-                lookAtCB.setToolTipText("Look-at target");
-                                lookAtCB.addItemListener(this);
-
-        	oe.aConstraints.gridx += 1;
-                oe.toolbarPanel.add(trackCB = new cCheckBox(":", CameraPane.TRACK), oe.aConstraints);
+                oe.toolbarPanel.add(trackCB = new cCheckBox("Track", CameraPane.TRACK), oe.aConstraints);
                 trackCB.setToolTipText("Enable tracking");
                                 trackCB.addItemListener(this);
 
@@ -669,6 +603,80 @@
         radio.layout = sevenButton;
         oe.toolbarPanel.add(radioPanel); //, oe.aConstraints);
 	}
+        
+        void AddOptions(JPanel panel, GridBagConstraints constraints)
+        {
+        	constraints.gridx = 0;
+        	constraints.gridy = 0;
+                panel.add(fastCB = new cCheckBox("Fast", CameraPane.FAST), constraints);
+                fastCB.setToolTipText("Fast mode");
+                                fastCB.addItemListener(this);
+        	constraints.gridy += 1;
+                panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT), constraints);
+                supportCB.setToolTipText("Enabled rigging");
+                                supportCB.addItemListener(this);
+
+        //	constraints.gridy += 1;
+        //        panel.add(localCB = new cCheckBox("Local", CameraPane.LOCALTRANSFORM), constraints);
+        //                        localCB.addItemListener(this);
+
+        	constraints.gridy += 1;
+                panel.add(crowdCB = new cCheckBox("Crowd", Globals.CROWD), constraints);
+                crowdCB.setToolTipText("Used for crowds");
+                                crowdCB.addItemListener(this);
+
+        	constraints.gridy += 1;
+                panel.add(smoothCB = new cCheckBox("Inertia", CameraPane.INERTIA), constraints);
+                smoothCB.setToolTipText("Snapping delay");
+                                smoothCB.addItemListener(this);
+
+        	constraints.gridy += 1;
+                panel.add(slowCB = new cCheckBox("Slow", CameraPane.SLOWPOSE), constraints);
+                slowCB.setToolTipText("Smooth interpolation");
+                                slowCB.addItemListener(this);
+        	constraints.gridy += 1;
+                panel.add(boxCB = new cCheckBox("Box", CameraPane.BOXMODE), constraints);
+                boxCB.setToolTipText("Display bounding boxes");
+                                boxCB.addItemListener(this);
+        	constraints.gridy += 1;
+                panel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE), constraints);
+                zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");
+                                zoomBoxCB.addItemListener(this);
+
+//        	constraints.gridy += 1;
+//                panel.add(speakerMocapCB = new cCheckBox("Mocap", CameraPane.SPEAKERMOCAP), constraints);
+//                                speakerMocapCB.addItemListener(this);
+
+            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);
+            }
+
+//constraints.gridx += 1;
+//panel.add(debugCB = new cCheckBox("Debug", CameraPane.DEBUG), constraints);
+//                debugCB.addItemListener(this);
+
+        	constraints.gridy += 1;
+                panel.add(oeilCB = new cCheckBox("Eye", CameraPane.OEIL), constraints);
+                                oeilCB.addItemListener(this);
+
+        	constraints.gridy += 1;
+                panel.add(lookAtCB = new cCheckBox("Target", CameraPane.LOOKAT), constraints);
+                lookAtCB.setToolTipText("Look-at target");
+                                lookAtCB.addItemListener(this);
+
+        }
 	
         void EditObject(Object3D obj)
         {
diff --git a/ObjEditor.java b/ObjEditor.java
index cad3c8b..d819144 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -1292,6 +1292,9 @@
         optionsPanel = new JPanel(new GridBagLayout());
 
         optionsPanel.setName("Options");
+        
+        AddOptions(optionsPanel, aConstraints);
+        
         scenePanel.add(optionsPanel);
 
 
@@ -1393,6 +1396,10 @@
         });
     }
 
+    void AddOptions(JPanel panel, GridBagConstraints constraints)
+    {
+    }
+    
     JTree GetTree()
     {
         return objEditor.jTree;

--
Gitblit v1.6.2