From dce400da7c65d659129abf9bc6e8f38b360a63d2 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Mon, 26 Aug 2019 20:13:01 -0400
Subject: [PATCH] Fix camera version + VR using spacebar.

---
 CameraPane.java |   36 ++++++++++++++++++++++++++----------
 1 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index b983dd6..68bd5e4 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -9840,7 +9840,10 @@
             DrawSkyBox(gl, (float)rati);
             gl.glEnable(GL.GL_FRAGMENT_PROGRAM_ARB);
             gl.glEnable(GL.GL_VERTEX_PROGRAM_ARB);
-            accPerspective(gl, renderCamera.shaper_fovy / ratio,
+            
+            boolean vr = capsLocked && !lightMode;
+            
+            accPerspective(gl, renderCamera.shaper_fovy / ratio * (vr ? 2 : 1),
                     ratio,
                     //near_plane, far_plane,
                     renderCamera.shaper_zNear * renderCamera.Distance(), renderCamera.shaper_zFar * renderCamera.Distance(),
@@ -11397,7 +11400,9 @@
                 //gl.glOrtho(-BOOST, BOOST, -BOOST, BOOST, 0.001, 1000);
                 } else
                 {
-                    glu.gluPerspective(cam.shaper_fovy / ratio, ratio, cam.shaper_zNear * cam.Distance(), cam.shaper_zFar * cam.Distance());
+                    boolean vr = capsLocked && !lightMode;
+                    
+                    glu.gluPerspective(cam.shaper_fovy / ratio * (vr ? 2 : 1), ratio, cam.shaper_zNear * cam.Distance(), cam.shaper_zFar * cam.Distance());
                 }
             }
 
@@ -14250,10 +14255,12 @@
             return;
 	}
         
-        boolean capsLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
+        //boolean capsLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
+        
+        boolean vr = capsLocked && !lightMode;
         
         // TIMER
-        if (ZOOMBOXMODE && !wheeltimer.isRunning() && e.getModifiersEx() == 0 && !capsLocked) // VR
+        if (ZOOMBOXMODE && !wheeltimer.isRunning() && e.getModifiersEx() == 0 && !vr) // VR
         {
             keepboxmode = BOXMODE;
             keepsupport = SUPPORT;
@@ -15239,8 +15246,10 @@
             mouseMode |= ZOOM;
         }
         
-        boolean capsLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
-        if (capsLocked) // || (modifiers & META) == META)
+        //boolean capsLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
+        boolean vr = capsLocked && !lightMode;
+
+        if (vr) // || (modifiers & META) == META)
         {
             mouseMode |= VR; // BACKFORTH;
         }
@@ -15456,8 +15465,8 @@
                 RevertCamera();
                 repaint();
                 break;
-            case 'l':
-            //case 'L':
+            //case 'l':
+            case 'L':
                 if (lightMode)
                 {
                     lightMode = false;
@@ -15515,8 +15524,8 @@
                 break;
             case 'O':
                 // Too dangerous. Use menu. Globals.drawMode = OCCLUSION; // WARNING
-                repaint();
-                break;
+                //repaint();
+                //break;
             case 'o':
                 OCCLUSION_CULLING ^= true;
                 System.out.println("OCCLUSION CULLING = " + OCCLUSION_CULLING);
@@ -15608,6 +15617,10 @@
 //                kompactbit = 6;
 //                break;
             case ' ':
+                capsLocked ^= true;
+                repaint();
+                break;
+            case 'l':
                 lightMode ^= true;
                 Globals.lighttouched = true;
                 manipCamera = renderCamera = lightMode ? lightCamera : eyeCamera;
@@ -17911,6 +17924,9 @@
     static boolean DEBUG_SELECTION = false;
     boolean OCCLUSION_CULLING = false; //true;
     public boolean lightMode = false;
+    
+    public boolean capsLocked = false; // VR
+    
     static public int indexcount = 0;
     /*static*/ cColor vertexOcclusion = new cColor();
     //private int selection_view = -1;

--
Gitblit v1.6.2