From 20c1a07b76c39462594aedfedfe6e6adb17cd552 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Wed, 01 May 2019 14:27:01 -0400
Subject: [PATCH] Fix animation and fast mode.

---
 ObjEditor.java    |    2 +-
 CameraPane.java   |   18 +++++++++++-------
 GroupEditor.java  |   22 +++++++---------------
 ParticleNode.java |    2 ++
 Mocap.java        |    5 +++--
 Wav.java          |    2 +-
 6 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index f5d934c..15994b6 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -56,8 +56,6 @@
     static int CURRENTANTIALIAS = 0; // 1;
 	/*static*/ boolean RENDERSHADOW = true;
     /*static*/ int RENDERPROGRAM = 2; // 0 == none, 1 == fast, 2 == normal
-    static boolean ANIMATION = false;
-    static String filename;
     
     boolean DISPLAYTEXT = false;
     //boolean REDUCETEXTURE = true;
@@ -86,7 +84,7 @@
 static    boolean FULLSCREEN = false;
 static    boolean SUPPORT = true;
 static    boolean INERTIA = true;
-static    boolean FAST = true; // false;
+static    boolean FAST = false;
 static    boolean SLOWPOSE = false;
 static    boolean FOOTCONTACT = true;
 
@@ -9395,7 +9393,7 @@
             //gl.glFlush();
             gl.glAccum(gl.GL_ACCUM, 1.0f / ACSIZE);
 
-            if (ANIMATION && ABORTED)
+            if (Globals.ANIMATION && ABORTED)
             {
     System.err.println("    ABORTED FRAME");
                 break;
@@ -9425,7 +9423,7 @@
         setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
 
         // save image
-        if (ANIMATION && !ABORTED)
+        if (Globals.ANIMATION && !ABORTED)
         {
             VPwidth = viewport[2];
             VPheight = viewport[3];
@@ -9536,7 +9534,7 @@
             
 //            imagecount++;
             
-            String fullname = filename + (i%100000)/10000 + "" + (i%10000)/1000 + "" + (i%1000)/100 + "" + (i%100)/10 + "" + (i%10) + "." + ext;
+            String fullname = Globals.filename + (i%100000)/10000 + "" + (i%10000)/1000 + "" + (i%1000)/100 + "" + (i%100)/10 + "" + (i%10) + "." + ext;
             
             if (!BOXMODE)
             {
@@ -11260,8 +11258,14 @@
     {
             renderpass++;
 //        System.out.println("Draw object... ");
+        STEP = 1;
         if (FAST) // in case there is no script
-            STEP = 16;
+            STEP = 8;
+            
+        if (CURRENTANTIALIAS == 0 || ACSIZE == 1)
+        {
+            STEP *= 4;
+        }
             
         //object.FullInvariants();
         
diff --git a/GroupEditor.java b/GroupEditor.java
index 93258aa..9679b9d 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -440,6 +440,10 @@
                 liveCB.setToolTipText("Enabled animation");
                                 liveCB.addItemListener(this);
 
+                oe.toolbarPanel.add(fastCB = new cCheckBox("Fast", CameraPane.FAST)); //, constraints);
+                fastCB.setToolTipText("Fast mode");
+                                fastCB.addItemListener(this);
+                                
                 oe.toolbarPanel.add(trackCB = new cCheckBox("Track", CameraPane.TRACK)); //, oe.aConstraints);
                 trackCB.setToolTipText("Enable tracking");
                                 trackCB.addItemListener(this);
@@ -587,39 +591,29 @@
         
         void AddOptions(cGridBag 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);
@@ -648,11 +642,9 @@
 //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);
@@ -1110,7 +1102,7 @@
 	{
 		menu.add(animationItem = new CheckboxMenuItem("Animation..."));
 		animationItem.addItemListener(this);
-                animationItem.setState(CameraPane.ANIMATION);
+                animationItem.setState(Globals.ANIMATION);
                 
 		menu.add("-");
 		parseverticesItem = menu.add(new MenuItem("Multiplicity"));
diff --git a/Mocap.java b/Mocap.java
index 82ff7f8..0bbe7d9 100644
--- a/Mocap.java
+++ b/Mocap.java
@@ -2267,7 +2267,7 @@
             }
 
             if (!smoothed)
-                for (int i=1; --i>=0;)
+                for (int i=10; --i>=0;)
                     SmoothAnimData(); // much reduces shakiness
 
             smoothed = true;
@@ -3252,12 +3252,13 @@
         
         int step = 1;
         
+        // patch for running hare
         if (speedup) // fev 2014
             step *= 2; // 4;
         if (rewind) // mars 2014
             step *= 4;
 
-        if (CameraPane.FAST) // && !CameraPane.HOLD)
+        //if (CameraPane.FAST) // && !CameraPane.HOLD)
             step *= CameraPane.STEP;
         
         //System.err.println("Step Mocap frame # " + frame);
diff --git a/ObjEditor.java b/ObjEditor.java
index 565390e..177b5d2 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -3205,7 +3205,7 @@
         if (!Globals.ANIMATION)
         {
             FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
-            browser.show();
+            browser.setVisible(true);
             String filename = browser.getFile();
             if (filename != null && filename.length() > 0)
             {
diff --git a/ParticleNode.java b/ParticleNode.java
index dcf5821..9977719 100644
--- a/ParticleNode.java
+++ b/ParticleNode.java
@@ -327,7 +327,9 @@
         
         int step = 1;
         if (CameraPane.FAST)
+        {
             step *= CameraPane.STEP;
+        }
         
         getParticleController().update(step);
         for (int i = 0; i < particles.length; i++)
diff --git a/Wav.java b/Wav.java
index 6ba3212..d548db5 100644
--- a/Wav.java
+++ b/Wav.java
@@ -220,7 +220,7 @@
     // write out the wav file
     public Wav save()
     {
-        if (loop == 0 || !CameraPane.ANIMATION)
+        if (loop == 0 || !Globals.ANIMATION)
             return this;
         
 Object[] options = {"Yes",

--
Gitblit v1.6.2