From 1816088e6a6cc71934ab1e82fbaa12f026eb17e1 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 17 Nov 2019 11:44:50 -0500
Subject: [PATCH] Min texture (128) + arrows.

---
 ObjEditor.java   |    5 +
 BoundaryRep.java |    2 
 CameraPane.java  |  177 ++++++++++++++++++++++++++++---------------
 GroupEditor.java |   19 +++-
 4 files changed, 135 insertions(+), 68 deletions(-)

diff --git a/BoundaryRep.java b/BoundaryRep.java
index f61127e..6fa3b1e 100644
--- a/BoundaryRep.java
+++ b/BoundaryRep.java
@@ -7976,6 +7976,8 @@
             
             int indexr = GetVertex(face.r).valid;
             
+//            if (indexp == -1 && indexq == -1 && indexr == -1)
+//                continue;
             if (indexr == -1)
                 continue;
             
diff --git a/CameraPane.java b/CameraPane.java
index 20abe52..472bc2f 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -50,10 +50,12 @@
     
     static int STEP = 1;
 
+    //static int[] pixels = new int[10000000];
+        
     private static BufferedImage CreateBim(byte[] bytes, int width, int height)
     {
         int[] pixels = new int[bytes.length/3];
-        for (int i=pixels.length; --i>=0;)
+        for (int i=bytes.length/3; --i>=0;)
         {
             int i3 = i*3;
             pixels[i] = 0xFF;
@@ -3859,12 +3861,13 @@
         
         switch (resolution)
         {
-            case 0: restarget = 256*256; break;
-            case 1: restarget = 512*512; break;
-            case 2: restarget = 1024*1024; break;
-            case 3: restarget = 2048*2048; break;
-            case 4: restarget = 4096*4096; break;
-            case 5: restarget = 8192*8192; break;
+            case 0: restarget = 128*128; break;
+            case 1: restarget = 256*256; break;
+            case 2: restarget = 512*512; break;
+            case 3: restarget = 1024*1024; break;
+            case 4: restarget = 2048*2048; break;
+            case 5: restarget = 4096*4096; break;
+            case 6: restarget = 8192*8192; break;
         }
         
 //        restarget = 512*512; // 512*512; // 2048; // 512; // 1024;
@@ -10892,61 +10895,64 @@
             {
                 //pingthread.mute = true;
         
-                boolean keyon = false;
-                
-                if (keys[DOWN_ARROW])
+                if (capsLocked)
                 {
-                    speed = ++speedkey[DOWN_ARROW];
-                    if (speed > 20)
-                        speed = 20;
-                    GoDown(modifiers);
-                    keyon = true;
-                }
-                else
-                    speedkey[DOWN_ARROW] = 0;
+                    boolean keyon = false;
 
-                if (keys[UP_ARROW])
-                {
-                    speed = ++speedkey[UP_ARROW];
-                    if (speed > 20)
-                        speed = 20;
-                    GoUp(modifiers);
-                    keyon = true;
-                }
-                else
-                    speedkey[UP_ARROW] = 0;
+                    if (keys[DOWN_ARROW])
+                    {
+                        speed = ++speedkey[DOWN_ARROW];
+                        if (speed > 20)
+                            speed = 20;
+                        GoDown(modifiers);
+                        keyon = true;
+                    }
+                    else
+                        speedkey[DOWN_ARROW] = 0;
 
-                if (keys[LEFT_ARROW])
-                {
-                    speed = ++speedkey[LEFT_ARROW];
-                    if (speed > 20)
-                        speed = 20;
-                    GoLeft(modifiers);
-                    keyon = true;
-                }
-                else 
-                    speedkey[LEFT_ARROW] = 0;
+                    if (keys[UP_ARROW])
+                    {
+                        speed = ++speedkey[UP_ARROW];
+                        if (speed > 20)
+                            speed = 20;
+                        GoUp(modifiers);
+                        keyon = true;
+                    }
+                    else
+                        speedkey[UP_ARROW] = 0;
 
-                if (keys[RIGHT_ARROW])
-                {
-                    speed = ++speedkey[RIGHT_ARROW];
-                    if (speed > 20)
-                        speed = 20;
-                    GoRight(modifiers);
-                    keyon = true;
-                }
-                else
-                    speedkey[RIGHT_ARROW] = 0;
-                
-                if (Globals.WALK && capsLocked)
-                {
-                    Walk();
-                    keyon = true;
-                }
-                
-                if (keyon)
-                {
-                    repaint();
+                    if (keys[LEFT_ARROW])
+                    {
+                        speed = ++speedkey[LEFT_ARROW];
+                        if (speed > 20)
+                            speed = 20;
+                        GoLeft(modifiers);
+                        keyon = true;
+                    }
+                    else 
+                        speedkey[LEFT_ARROW] = 0;
+
+                    if (keys[RIGHT_ARROW])
+                    {
+                        speed = ++speedkey[RIGHT_ARROW];
+                        if (speed > 20)
+                            speed = 20;
+                        GoRight(modifiers);
+                        keyon = true;
+                    }
+                    else
+                        speedkey[RIGHT_ARROW] = 0;
+
+                    if (Globals.WALK)
+                    {
+                        Walk();
+                        keyon = true;
+                    }
+
+                    if (keyon)
+                    {
+                        repaint();
+                    }
                 }
                 
                 //pingthread.mute = false;
@@ -15033,6 +15039,11 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
+        if (!capsLocked)
+        {
+            scale = 50;
+        }
+
         MODIFIERS |= COMMAND;
         boolean isVR = (mouseMode&VR)!=0;
         /**/
@@ -15074,6 +15085,11 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
+        if (!capsLocked)
+        {
+            scale = 50;
+        }
+
                 RigidBody.justclicked = true;
         
         MODIFIERS |= COMMAND;
@@ -15118,6 +15134,11 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
+        if (!capsLocked)
+        {
+            scale = 50;
+        }
+
         MODIFIERS |= COMMAND;
         /**/
         if((mod&SHIFT) == SHIFT)
@@ -15153,6 +15174,11 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
+        if (!capsLocked)
+        {
+            scale = 50;
+        }
+
         MODIFIERS |= COMMAND;
         /**/
         if((mod&SHIFT) == SHIFT)
@@ -16151,10 +16177,37 @@
         switch (e.getID())
         {
             case KeyEvent.KEY_PRESSED:
-                keys[e.getKeyCode()] = true;
-                modifiers = e.getModifiersEx();
-                keyPressed(e.getKeyChar(), modifiers);
-                //Globals.theRenderer.keyPressed(e.getKeyChar());
+                
+                if (capsLocked)
+                {
+                    keys[e.getKeyCode()] = true;
+                    modifiers = e.getModifiersEx();
+                    keyPressed(e.getKeyChar(), modifiers);
+                    //Globals.theRenderer.keyPressed(e.getKeyChar());
+                }
+                else
+                {
+                    switch (e.getKeyCode())
+                    {
+                        case DOWN_ARROW:
+                            GoDown(e.getModifiersEx());
+                            break;
+                        case UP_ARROW:
+                            GoUp(e.getModifiersEx());
+                            break;
+                        case LEFT_ARROW:
+                            GoLeft(e.getModifiersEx());
+                            break;
+                        case RIGHT_ARROW:
+                            GoRight(e.getModifiersEx());
+                            break;
+                        default:
+                            modifiers = e.getModifiersEx();
+                            keyPressed(e.getKeyChar(), modifiers);
+                            break;
+                    }
+                }
+                
                 repaint();
                 break;
 //                if (!autorepeat)
diff --git a/GroupEditor.java b/GroupEditor.java
index d1981a2..d6b309a 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -878,6 +878,8 @@
 		flipVItem.addActionListener(this);
 		unflipVItem = menu.add(new MenuItem("Unflip V"));
 		unflipVItem.addActionListener(this);
+		minTexturesItem = menu.add(new MenuItem("Min Texture (128)"));
+		minTexturesItem.addActionListener(this);
 		lowTexturesItem = menu.add(new MenuItem("Low Texture (256)"));
 		lowTexturesItem.addActionListener(this);
 		normalTexturesItem = menu.add(new MenuItem("Normal Texture (512)"));
@@ -3556,29 +3558,33 @@
                 {
 			FlipV(false);
 		} else
-		if (source == lowTexturesItem)
+		if (source == minTexturesItem)
                 {
 			SetTexRes(0);
 		} else
-		if (source == normalTexturesItem)
+		if (source == lowTexturesItem)
                 {
 			SetTexRes(1);
 		} else
-		if (source == highTexturesItem)
+		if (source == normalTexturesItem)
                 {
 			SetTexRes(2);
 		} else
-		if (source == veryhighTexturesItem)
+		if (source == highTexturesItem)
                 {
 			SetTexRes(3);
 		} else
-		if (source == maxTexturesItem)
+		if (source == veryhighTexturesItem)
                 {
 			SetTexRes(4);
 		} else
-		if (source == panoTexturesItem)
+		if (source == maxTexturesItem)
                 {
 			SetTexRes(5);
+		} else
+		if (source == panoTexturesItem)
+                {
+			SetTexRes(6);
 		} else
 		if (source == reverseNormalsItem)
                 {
@@ -6455,6 +6461,7 @@
         
 	private MenuItem flipVItem;
 	private MenuItem unflipVItem;
+	private MenuItem minTexturesItem;
 	private MenuItem lowTexturesItem;
 	private MenuItem normalTexturesItem;
 	private MenuItem highTexturesItem;
diff --git a/ObjEditor.java b/ObjEditor.java
index a63209c..778de2f 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -4509,6 +4509,11 @@
         } else if (event.getSource() == link2masterCB)
         {
             copy.link2master ^= true;
+            if (copy instanceof RandomNode)
+            {
+                // show all
+                Globals.lighttouched = true;
+            }
             objEditor.refreshContents();
             return;
         }

--
Gitblit v1.6.2