From bdd402e82c0821cb759ad27fbbe0fde689694d4f Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 10 Nov 2019 19:01:20 -0500
Subject: [PATCH] Transform count UI

---
 ObjEditor.java      |   49 +++++++++++++++++-------
 BoundaryRep.java    |    2 
 CameraPane.java     |    2 
 Box.java            |    2 
 GroupEditor.java    |    9 ++--
 Superellipsoid.java |    4 +-
 Object3D.java       |    7 ++-
 7 files changed, 49 insertions(+), 26 deletions(-)

diff --git a/BoundaryRep.java b/BoundaryRep.java
index 00d774e..f61127e 100644
--- a/BoundaryRep.java
+++ b/BoundaryRep.java
@@ -531,7 +531,7 @@
     static Vertex vertextemp = new Vertex(true);
     static Vertex vertextemp2 = new Vertex(true);
     
-    static double SEUIL = 0.025f; // 0.1 for rag doll; 0.07;
+    static double SEUIL = 0.0025f; // 0.1 for rag doll; 0.07;
         
     // Compute weight of point w/r to this
     float ComputeWeight(Vertex v, double[][] toRoot, int k)
diff --git a/Box.java b/Box.java
index 75353f5..b1c9f3b 100644
--- a/Box.java
+++ b/Box.java
@@ -1,6 +1,6 @@
 public class Box extends Object3D implements java.io.Serializable
 {
-    static final long serialVersionUID = 0;
+    static final long serialVersionUID = -8881546880864755550L; // 0;
 
     boolean open;
     
diff --git a/CameraPane.java b/CameraPane.java
index 7f7f48b..20abe52 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -15647,7 +15647,7 @@
     {
 // Set the blank cursor to the JFrame.
 //object.editWindow.frame.
-        if (Globals.ADVANCED)
+        if (key == ENTER) // Globals.ADVANCED)
             setCursor(blankCursor); // Contaminates other apps!
 
         if (key >= '0' && key <= '5')
diff --git a/GroupEditor.java b/GroupEditor.java
index d849672..d1981a2 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -917,17 +917,18 @@
 		shareGeometriesItem.addActionListener(this);
 		mergeGeometriesItem = menu.add(new MenuItem("Merge Geometries"));
 		mergeGeometriesItem.addActionListener(this);
-		menu.add("-");
-		editLeafItem = menu.add(new MenuItem("Edit leaf..."));
-		editLeafItem.addActionListener(this);
         if (Globals.ADVANCED)
         {
             // Pretty much the same as duplicate and clone.
 		extractGeometriesItem = menu.add(new MenuItem("Link Geometry"));
 		extractGeometriesItem.addActionListener(this);
+        }
 		cloneGeometriesItem = menu.add(new MenuItem("Clone Geometry"));
 		cloneGeometriesItem.addActionListener(this);
-        }
+                
+		menu.add("-");
+		editLeafItem = menu.add(new MenuItem("Edit leaf..."));
+		editLeafItem.addActionListener(this);
                 
 		oe.menuBar.add(menu = new Menu("Insert"));
 		buildCreateMenu(menu);
diff --git a/ObjEditor.java b/ObjEditor.java
index 1627a33..a63209c 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -328,10 +328,11 @@
         objEditor.ctrlPanel.remove(setupPanel2);
         objEditor.ctrlPanel.remove(objectCommandsPanel);
         objEditor.ctrlPanel.remove(pushPanel);
+        objEditor.ctrlPanel.remove(transformCountPanel);
         if (versionPanel != null)
             objEditor.ctrlPanel.remove(versionPanel);
-        if (countPanel != null)
-            objEditor.ctrlPanel.remove(countPanel);
+        if (loopCountPanel != null)
+            objEditor.ctrlPanel.remove(loopCountPanel);
         //objEditor.ctrlPanel.remove(fillPanel);
         
         //Remove(normalpushField);
@@ -1213,11 +1214,12 @@
     cGridBag setupPanel2;
     cGridBag objectCommandsPanel;
     cGridBag pushPanel;
+    cGridBag transformCountPanel;
     cGridBag versionPanel;
-    cGridBag countPanel;
+    cGridBag loopCountPanel;
     cGridBag fillPanel;
 
-    cNumberSlider countField;
+    cNumberSlider loopCountField;
     
     JCheckBox AddCheckBox(cGridBag panel, String label, boolean on)
     {
@@ -1471,13 +1473,20 @@
         oe.ctrlPanel.add(objectCommandsPanel);
         oe.ctrlPanel.Return();
 
+        if (copy.maxcount == 0)
+            copy.maxcount = 128;
+        
+        transformCountPanel = AddSlider(oe.ctrlPanel, "Transform", 0, 128, copy.transformcount * 128 / copy.maxcount);
+        transformCountField = (cNumberSlider)transformCountPanel.getComponent(1);
+        
+        oe.ctrlPanel.Return();
     pushPanel = AddSlider(oe.ctrlPanel, "Push", -1, 1, copy.NORMALPUSH * 100, 1.1); // To have the buttons
     normalpushField = (cNumberSlider)pushPanel.getComponent(1);
     if (copy instanceof Composite && !(copy instanceof cGroup))
     {
         oe.ctrlPanel.Return();
-        countPanel = AddSlider(oe.ctrlPanel, "Count", 0, 50, copy.count);
-        countField = (cNumberSlider)countPanel.getComponent(1);
+        loopCountPanel = AddSlider(oe.ctrlPanel, "Loop", 0, 50, copy.count);
+        loopCountField = (cNumberSlider)loopCountPanel.getComponent(1);
     }
     if (false && copy.versionlist != null && copy.versionindex != -1)
     {
@@ -4426,19 +4435,19 @@
                 cameraPanel.add(cameraView);
                 centralPanel.add(cameraPanel);
                 frame.setJMenuBar(timelineMenubar);
-                wasFullScreen = CameraPane.FULLSCREEN;
-                if (!CameraPane.FULLSCREEN)
-                    ToggleFullScreen();
-                toggleFullScreenItem.setEnabled(false);
+                //wasFullScreen = CameraPane.FULLSCREEN;
+                //if (!CameraPane.FULLSCREEN)
+                //    ToggleFullScreen();
+                //toggleFullScreenItem.setEnabled(false);
             }
             else
             {
                 centralPanel.remove(cameraPanel);
                 centralPanel.add(cameraView);
                 frame.setJMenuBar(null);
-                if (!wasFullScreen)
-                    ToggleFullScreen();
-                toggleFullScreenItem.setEnabled(true);
+                //if (!wasFullScreen)
+                //    ToggleFullScreen();
+                //toggleFullScreenItem.setEnabled(true);
             }
 
             frame.validate();
@@ -5584,6 +5593,8 @@
         //copy.Touch();
     }
 
+    cNumberSlider transformCountField;
+    
     cNumberSlider versionSlider; // Main
     cNumberSlider versionField; // selection (off)
     
@@ -5632,9 +5643,17 @@
             return;
         }
         
-        if (e.getSource() == countField)
+        if (e.getSource() == loopCountField)
         {
-            copy.count = countField.getInteger();
+            copy.count = loopCountField.getInteger();
+            Globals.lighttouched = true;
+            objEditor.refreshContents();
+            return;
+        }
+        
+        if (e.getSource() == transformCountField)
+        {
+            copy.transformcount = transformCountField.getInteger() * copy.maxcount / 256;
             Globals.lighttouched = true;
             objEditor.refreshContents();
             return;
diff --git a/Object3D.java b/Object3D.java
index f3f692a..f4c3fee 100644
--- a/Object3D.java
+++ b/Object3D.java
@@ -1149,7 +1149,7 @@
             transformcount++;
     }
 
-    int maxcount;
+    int maxcount = 128;
     int transformcount;
     int step;
     
@@ -1202,7 +1202,10 @@
         if (step == 0)
             step = 1;
         if (maxcount == 0)
-            maxcount = 128; // 2048; // 4;
+        {
+            System.out.println("maxcount == 0");
+            System.exit(0); // maxcount = 128; // 2048; // 4;
+        }
 //        if (acceleration == 0)
 //            acceleration = 10;
         if (delay == 0) // serial
diff --git a/Superellipsoid.java b/Superellipsoid.java
index 79fdb29..1c5fd6d 100644
--- a/Superellipsoid.java
+++ b/Superellipsoid.java
@@ -11,8 +11,8 @@
         dv = new cVector();
 		
         name = "Superellipsoid";
-        east = 1;
-        north = 1;
+        east = 2;
+        north = 2;
         //uDivs = vDivs = 32;
         uDivs = 36;
         vDivs = 34;

--
Gitblit v1.6.2