From 171c62e16a2bfc111001777235a6783e2986ccdd Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Mon, 02 Sep 2019 10:45:37 -0400
Subject: [PATCH] 'm' for image flip

---
 CameraPane.java |   13 ++++++++-----
 Camera.java     |   19 ++++++++++++++++++-
 2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/Camera.java b/Camera.java
index 63862a2..e28a69d 100644
--- a/Camera.java
+++ b/Camera.java
@@ -160,6 +160,11 @@
 	{
         if(hAspect != 0) return;
         
+        if (CameraPane.IMAGEFLIP)
+        {
+            dx = -dx;
+        }
+        
         if (CameraPane.ROTATECAMERA)
         {
             float t = dx;
@@ -216,6 +221,11 @@
 	void Translate(float dx, float dy, float scale)
 	{
         if(hAspect != 0) return;
+        
+        if (CameraPane.IMAGEFLIP)
+        {
+            dx = -dx;
+        }
         
         if (CameraPane.ROTATECAMERA)
         {
@@ -405,9 +415,16 @@
             LA.matConcat(fromScreen, rotate, fromScreen);
             //LA.matConcat(toScreen, rotate_1, toScreen);
         }
+        
+        if (CameraPane.IMAGEFLIP)
+        {
+            double[][] flip = { { -1,0,0,0 }, { 0,1,0,0}, { 0,0,1,0}, { 0,0,0,1 } };
+        
+            LA.matConcat(fromScreen, flip, fromScreen);
+        }
+        
 		//if (this == CameraPane.lightCamera)
 			//CameraPane.lighttouched = true;
-        
         LA.matInvert(fromScreen, toScreen);
     }
 
diff --git a/CameraPane.java b/CameraPane.java
index e039bde..cfd89cf 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -2082,7 +2082,8 @@
         
         camerachangeframe = Globals.framecount;
         
-        cam.hAspect = -1; // Read only
+        if (cam != null)
+            cam.hAspect = -1; // Read only
 
         cameras[0] = cam;
         targetLookAts[0] = new cVector(cam.lookAt);
@@ -2395,7 +2396,8 @@
     {
         //System.out.println("PROTECTION = " + cam.hAspect);
         //assert (cam.hAspect == 0);
-        cam.hAspect = 0;
+        if (cam != null)
+            cam.hAspect = 0;
         lightCamera = cam;
     }
 
@@ -14839,7 +14841,7 @@
         if((mod&SHIFT) == SHIFT)
         {
             if (isVR)
-                manipCamera.RotateInterest(0, -speed);
+                manipCamera.RotateInterest(0, speed);
             else
                 manipCamera.RotatePosition(0, -speed);
         }
@@ -14869,7 +14871,7 @@
         if((mod&SHIFT) == SHIFT)
         {
             if (isVR)
-                manipCamera.RotateInterest(0, speed);
+                manipCamera.RotateInterest(0, -speed);
             else
                 manipCamera.RotatePosition(0, speed);
         }
@@ -15583,7 +15585,8 @@
                 break;
             case 'm':
             {
-                PrintMemory();
+                //PrintMemory();
+                ToggleImageFlip();
                 break;
             }
             case 'M':

--
Gitblit v1.6.2