From 51e45bf615e1e2b4aca2edf9f7333b687c7d015e Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Tue, 24 Sep 2019 21:07:45 -0400
Subject: [PATCH] Remove hands.

---
 CameraPane.java |   87 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 68 insertions(+), 19 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index e49e0a3..b558c23 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -1,4 +1,5 @@
 
+import com.bulletphysics.dynamics.RigidBody;
 import java.awt.*;
 import java.awt.event.*;
 import java.awt.image.*;
@@ -6961,30 +6962,30 @@
                     short residu = 0;
 
                 // wraparound workarounds
-                    short fuck = (short) (buffer[i] & 0xFF);
+                    short ww = (short) (buffer[i] & 0xFF);
                     /*
-                    residu += (fuck%2);
-                    if(fuck/2 < 256-residu/2)
+                    residu += (ww%2);
+                    if(ww/2 < 256-residu/2)
                     {
-                    fuck = (short)((fuck/2) + residu/2);
+                    ww = (short)((ww/2) + residu/2);
                     if(residu == 2)
                     residu = 0;
                     }
                     else
                     {
                     residu = 0;
-                    fuck /= 2;
+                    ww /= 2;
                     }
                      */
-                    if (i < imglength / 3 || rnd.nextFloat() < 0.5 || fuck >= 254)
+                    if (i < imglength / 3 || rnd.nextFloat() < 0.5 || ww >= 254)
                     {
-                        fuck /= 2;
+                        ww /= 2;
                     } else
                     {
-                        fuck = (short) ((fuck / 2) + fuck % 2);
+                        ww = (short) ((ww / 2) + ww % 2);
                     }
 
-                    buffer[i] = (byte) fuck;
+                    buffer[i] = (byte) ww;
                 }
             //System.out.print(bytes[i] + " ");
             //if(buffer[i] >= 0 && buffer[i]<=eps-1) buffer[i] = eps;
@@ -11865,7 +11866,10 @@
         }
         
         if (Globals.isLIVE() && DrawMode() == DEFAULT || pingthread.live) // may 2013
+        {
+            renderCamera.computeTransform();
             repaint();
+        }
         
         displaydone = true;
     }
@@ -14337,10 +14341,13 @@
     public void mouseClicked(MouseEvent e)
     {
         System.out.println("mouseClicked: " + e);
+        System.exit(0);
     }
 
     public void mousePressed(MouseEvent e)
     {
+        RigidBody.justclicked = true;
+        System.out.println("justclicked: " + e);
         //System.out.println("mousePressed: " + e);
         clickStart(e.getX(), e.getY(), e.getModifiers(), e.getModifiersEx());
     }
@@ -14421,7 +14428,7 @@
         //}
         
         SetMouseMode(e.getModifiers(), WHEEL | e.getModifiersEx());
-        drag(anchorX, anchorY + e.getUnitsToScroll()*8, 0, 0);
+        drag(anchorX, anchorY + e.getUnitsToScroll()*8, e.getModifiers(), e.getModifiersEx());
         anchorX = ax;
         anchorY = ay;
         prevX = px;
@@ -14664,10 +14671,25 @@
         // only one thread!? synchronized
                 void StepToTarget(boolean jump)
         {
+            RigidBody.pos.x = 0;
+            RigidBody.pos.y = 0;
+            RigidBody.pos.z = 0;
+            if (RigidBody.justclicked)
+            {
+                RigidBody.pos.x = (float)manipCamera.lookAt.x;
+                RigidBody.pos.y = (float)manipCamera.lookAt.y;
+                RigidBody.pos.z = (float)manipCamera.lookAt.z;
+                RigidBody.wind.set(RigidBody.pos);
+                RigidBody.wind.x -= (float)manipCamera.location.x;
+                RigidBody.wind.y -= (float)manipCamera.location.y;
+                RigidBody.wind.z -= (float)manipCamera.location.z;
+                RigidBody.wind.normalize();
+            }
+                    
             if (mute)
                 return;
             
-            if (capsLocked)
+            if (capsLocked && manipCamera.viewCode == 0)
             {
                 eye.x = manipCamera.location.x;
                 eye.y = manipCamera.location.y + 0.25;
@@ -14958,6 +14980,18 @@
         targetLookAt.set(manipCamera.lookAt);
     }
     
+    void ViewAngle(float dy)
+    {
+        double factor = Math.exp(-dy/300.0); // (1 + dy/100);
+                    
+        if (manipCamera.shaper_fovy * factor > 1 &&
+            manipCamera.shaper_fovy * factor < 150)
+        {
+            manipCamera.shaper_fovy *= factor;
+            //System.out.println("fovy = " + shaper_fovy);
+        }
+    }
+    
     void GoDown(int mod)
     {
         MODIFIERS |= COMMAND;
@@ -14968,6 +15002,9 @@
 //            if (isVR)
 //                manipCamera.RotateInterest(0, speed);
 //            else
+            if (isVR)
+                ViewAngle(-speed*delta);
+            else
                 manipCamera.Translate(0, -speed*delta, getWidth());
         }
         else
@@ -14995,6 +15032,8 @@
 
     void GoUp(int mod)
     {
+                RigidBody.justclicked = true;
+        
         MODIFIERS |= COMMAND;
         /**/
         boolean isVR = (mouseMode&VR)!=0;
@@ -15004,6 +15043,9 @@
 //            if (isVR)
 //                manipCamera.RotateInterest(0, -speed);
 //            else
+            if (isVR)
+                ViewAngle(speed*delta);
+            else
                 manipCamera.Translate(0, speed*delta, getWidth());
         }
         else
@@ -15034,13 +15076,13 @@
         MODIFIERS |= COMMAND;
         /**/
         if((mod&SHIFT) == SHIFT)
-            manipCamera.Translate(speed*delta, 0, getWidth());
+            manipCamera.Translate(speed, 0, getWidth());
         else
         {
             if ((mouseMode&VR)!=0)
-                manipCamera.RotateInterest(-speed, 0);
+                manipCamera.RotateInterest(-speed*manipCamera.shaper_fovy/90, 0);
             else
-                manipCamera.RotatePosition(speed, 0);
+                manipCamera.RotatePosition(speed*manipCamera.shaper_fovy/90, 0);
         }
         
         /**/
@@ -15066,13 +15108,13 @@
         MODIFIERS |= COMMAND;
         /**/
         if((mod&SHIFT) == SHIFT)
-            manipCamera.Translate(-speed*delta, 0, getWidth());
+            manipCamera.Translate(-speed, 0, getWidth());
         else
         {
             if ((mouseMode&VR)!=0)
-                manipCamera.RotateInterest(speed, 0);
+                manipCamera.RotateInterest(speed*manipCamera.shaper_fovy/90, 0);
             else
-                manipCamera.RotatePosition(-speed, 0);
+                manipCamera.RotatePosition(-speed*manipCamera.shaper_fovy/90, 0);
         }
         
         /**/
@@ -15219,6 +15261,11 @@
                 if ((mouseMode & ZOOM) != 0)
                 {
                     //if ((mouseMode & BACKFORTH) != 0)
+                    if ((modifiersex & SHIFT) == SHIFT)
+                    {
+                        ViewAngle(dy);
+                    }
+                    else
                     if ((mouseMode & VR) != 0)
                         manipCamera.BackForth(dx, dy, getWidth());
                     else
@@ -16717,7 +16764,8 @@
 
     public boolean mouseDrag(Event evt, int x, int y)
     {
-        //System.out.println("mouseDrag: " + evt);
+        System.out.println("mouseDrag: " + evt);
+        System.exit(0);
 		/*
         drag = true;
         //System.out.println("Mouse DRAG");
@@ -16836,6 +16884,7 @@
     public boolean mouseUp(Event evt, int x, int y)
     {
         System.out.println("mouseUp: " + evt);
+        System.exit(0);
         /*
         locked = false;
         if (isRenderer)
@@ -18210,7 +18259,7 @@
     
     private boolean keepshadow;
     
-    public boolean capsLocked = false; // VR
+    static public boolean capsLocked = false; // VR
     
     static public int indexcount = 0;
     /*static*/ cColor vertexOcclusion = new cColor();

--
Gitblit v1.6.2