From 294eab460cb3292d17576d3be2e07f1e369a2bc3 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Wed, 25 Dec 2019 16:56:25 -0500
Subject: [PATCH] Camera improvements + new scenes.

---
 ObjEditor.java              |  503 +++++++++++++++++++++++++++++----------------
 fullscenes/GCB3.png         |    0 
 fullscenes/UrbanSprawl.png  |    0 
 fullscenes/GCB2.png         |    0 
 CameraPane.java             |   95 ++++----
 Camera.java                 |    2 
 GroupEditor.java            |    2 
 fullscenes/SandyBay.png     |    0 
 fullscenes/ninja.png        |    0 
 fullscenes/desertmotel.png  |    0 
 fullscenes/urbanfuture4.png |    0 
 Grafreed.java               |    6 
 12 files changed, 386 insertions(+), 222 deletions(-)

diff --git a/Camera.java b/Camera.java
index 1c1b718..f14ba0a 100644
--- a/Camera.java
+++ b/Camera.java
@@ -292,6 +292,8 @@
 		
                 if (scale == 0)
                 {
+                    // Mouse wheel in edit mode
+                    
                     // Zoom
                     double factor = Math.exp(-dy/300.0); // (1 + dy/100);
 
diff --git a/CameraPane.java b/CameraPane.java
index 376dc7c..05b2c8f 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -10895,7 +10895,7 @@
             {
                 //pingthread.mute = true;
         
-                if (capsLocked)
+                if (true) // capsLocked)
                 {
                     boolean keyon = false;
 
@@ -14658,7 +14658,7 @@
             (e.getModifiersEx() & COMMAND) != 0) // || IsFrozen())
         {
             //System.out.println("mouseDragged: " + e);
-            clickEnd(e.getX(), e.getY(), e.getModifiersEx());
+            clickEnd(e.getX(), e.getY(), e.getModifiers(), e.getModifiersEx());
         }
         else
             drag(e.getX(), e.getY(), e.getModifiers(), e.getModifiersEx());
@@ -15034,14 +15034,16 @@
         }
     }
     
+    float SCALE = 1;
+    
     void GoDown(int mod)
     {
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
-        if (!capsLocked)
+        //if (!capsLocked)
         {
-            scale = 50;
+            scale = SCALE;
         }
 
         MODIFIERS |= COMMAND;
@@ -15062,7 +15064,7 @@
             if (isVR)
                 manipCamera.BackForth(0, -speed*delta*scale, isVR?1000:0); // getWidth());
             else
-                manipCamera.RotatePosition(0, -speed*scale);
+                manipCamera.RotatePosition(0, speed*scale*8/manipCamera.shaper_fovy);
         }
         
         /**/
@@ -15085,9 +15087,9 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
-        if (!capsLocked)
+        //if (!capsLocked)
         {
-            scale = 50;
+            scale = SCALE;
         }
 
                 RigidBody.justclicked = true;
@@ -15111,7 +15113,7 @@
             if (isVR)
                 manipCamera.BackForth(0, speed*delta*scale, isVR?1000:0); // getWidth());
             else
-                manipCamera.RotatePosition(0, speed*scale);
+                manipCamera.RotatePosition(0, -speed*scale*(capsLocked?manipCamera.shaper_fovy/90:8/manipCamera.shaper_fovy));
         }
         
         /**/
@@ -15134,9 +15136,9 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
-        if (!capsLocked)
+        //if (!capsLocked)
         {
-            scale = 50;
+            scale = SCALE;
         }
 
         MODIFIERS |= COMMAND;
@@ -15146,9 +15148,9 @@
         else
         {
             if ((mouseMode&VR)!=0)
-                manipCamera.RotateInterest(-speed*scale*manipCamera.shaper_fovy/90, 0);
+                manipCamera.RotateInterest(-speed*scale*(capsLocked?manipCamera.shaper_fovy/90:8/manipCamera.shaper_fovy), 0);
             else
-                manipCamera.RotatePosition(speed*scale*manipCamera.shaper_fovy/90, 0);
+                manipCamera.RotatePosition(-speed*scale*(capsLocked?manipCamera.shaper_fovy/90:8/manipCamera.shaper_fovy), 0);
         }
         
         /**/
@@ -15174,9 +15176,9 @@
         LA.vecSub(manipCamera.location, manipCamera.lookAt, manipCamera.direction);
         float scale = (float)manipCamera.direction.length() / 10;
         
-        if (!capsLocked)
+        //if (!capsLocked)
         {
-            scale = 50;
+            scale = SCALE;
         }
 
         MODIFIERS |= COMMAND;
@@ -15186,9 +15188,9 @@
         else
         {
             if ((mouseMode&VR)!=0)
-                manipCamera.RotateInterest(speed*scale*manipCamera.shaper_fovy/90, 0);
+                manipCamera.RotateInterest(speed*scale*(capsLocked?manipCamera.shaper_fovy/90:8/manipCamera.shaper_fovy), 0);
             else
-                manipCamera.RotatePosition(-speed*scale*manipCamera.shaper_fovy/90, 0);
+                manipCamera.RotatePosition(speed*scale*(capsLocked?manipCamera.shaper_fovy/90:8/manipCamera.shaper_fovy), 0);
         }
         
         /**/
@@ -15341,12 +15343,13 @@
                     }
                     else
                     if ((mouseMode & VR) != 0)
-                        manipCamera.BackForth(dx, dy, getWidth());
+                        manipCamera.BackForth(dx, dy, -getWidth());
                     else
                         manipCamera.BackForth(dx, dy, 0);
                 }
                 if ((mouseMode & BACKFORTH) != 0)
                 {
+                    Grafreed.SystemExit("mouseMode & BACKFORTH");
                     if (manipCamera != lightCamera)
                     {
                         manipCamera.BackForth(dx, dy, getWidth());
@@ -15357,7 +15360,7 @@
                 }
                 if ((mouseMode & TRANSLATE) != 0)
                 {
-                    manipCamera.Translate(dx, dy, getWidth());
+                    manipCamera.Translate(dx, dy, getWidth()*(capsLocked?-1:1));
                 }
                 else
                 if ((mouseMode & ZOOM) == 0 && (mouseMode & VR) != 0)
@@ -15453,15 +15456,15 @@
         X = 0; // getBounds().width/2;
         Y = 0; // getBounds().height/2;
         //System.out.println("mouseReleased: " + e);
-        clickEnd(e.getX(), e.getY(), e.getModifiersEx());
+        clickEnd(e.getX(), e.getY(), e.getModifiers(), e.getModifiersEx());
     }
 
-    void clickEnd(int x, int y, int modifiers)
+    void clickEnd(int x, int y, int modifiers, int modifiersex)
     {
-        clickEnd(x, y, modifiers, false);
+        clickEnd(x, y, modifiers, modifiersex, false);
     }
 
-    void clickEnd(int x, int y, int modifiers, boolean timeout)
+    void clickEnd(int x, int y, int modifiers, int modifiersex, boolean timeout)
     {
    //     System.out.println("clickEnd: " + modifiers);
 
@@ -15471,8 +15474,8 @@
         
         timeout |= hold || forcetranslate;
 
-        boolean control = ((modifiers & CTRL) != 0); // june 2013: for point selection
-        boolean command = ((modifiers & COMMAND) != 0); // june 2013: for multiple selection
+        boolean control = ((modifiersex & CTRL) != 0); // june 2013: for point selection
+        boolean command = ((modifiersex & COMMAND) != 0); // june 2013: for multiple selection
         
 // No delay        if (control || command || IsFrozen())
             timeout = true;
@@ -15496,14 +15499,18 @@
 
             selection = true;
             
-            if (control)
+            if (control || (modifiers & MouseEvent.BUTTON3_MASK) != 0)
+            {
                 pointselection = true;
+
+                //mouseMode &= ~TRANSLATE;
+            }
             
-            if (modifiers != 0)
+            if (modifiersex != 0)
             {
                // System.out.println("modifiers = " + modifiers);
             }
-            deselect = (modifiers == 0); // || control;
+            deselect = (modifiersex == 0); // || control;
             //if (control)
             //{
             //    selectX = x;
@@ -15610,7 +15617,7 @@
         {
             mouseMode |= VR; // BACKFORTH;
         }
-        if ((modifiersex & CTRLCLICK) == CTRLCLICK)
+        if ((modifiersex & CTRLCLICK) == CTRLCLICK) // || (modifiers & MouseEvent.BUTTON3_MASK) != 0)
         {
             mouseMode |= SELECT;
         }
@@ -16146,13 +16153,13 @@
                 Globals.ONESTEP = true;
                 repaint();
                 break;
-//            case BACKSPACE:
-//                // almost working enablebackspace = true;
-//                Globals.WALK ^= true;
-//                
-//   //             SwitchCameras(false);
-//                repaint();
-//                break;
+            case BACKSPACE:
+                // almost working enablebackspace = true;
+                Globals.WALK ^= true;
+                
+   //             SwitchCameras(false);
+                repaint();
+                break;
 
             default:
                 return (false);
@@ -16184,7 +16191,7 @@
             case KeyEvent.KEY_PRESSED:
                 boolean repaintit = false;
                 
-                if (capsLocked)
+                if (true) // capsLocked)
                 {
                     keys[e.getKeyCode()] = true;
                     modifiers = e.getModifiersEx();
@@ -16199,24 +16206,24 @@
                         switch (e.getKeyCode())
                         {
                             case DOWN_ARROW:
-                                lightCamera.DECAL /= 2;
+                                lightCamera.DECAL /= 1.1;
                                 repaintit = true;
                                 break;
                             case UP_ARROW:
-                                lightCamera.DECAL *= 2;
+                                lightCamera.DECAL *= 1.1;
                                 repaintit = true;
                                 break;
                             case LEFT_ARROW:
-                                lightCamera.SCALE /= 2;
+                                lightCamera.SCALE /= 1.1;
                                 repaintit = true;
                                 break;
                             case RIGHT_ARROW:
-                                lightCamera.SCALE *= 2;
+                                lightCamera.SCALE *= 1.1;
                                 repaintit = true;
                                 break;
                             default:
-                                modifiers = e.getModifiersEx();
-                                repaintit = keyPressed(e.getKeyChar(), modifiers);
+                            //    modifiers = e.getModifiersEx();
+                            //    repaintit = keyPressed(e.getKeyChar(), modifiers);
                                 break;
                         }
 
@@ -17095,7 +17102,7 @@
         {
             modifiers |= SHIFT;
         }
-        clickEnd(x, y, modifiers);
+        clickEnd(x, y, modifiers, 0); // modifiersex? 
         if (modifiers != 0)
         {
             keyReleased(0, modifiers);
@@ -17750,7 +17757,7 @@
 
             float depth = depths[y * TEX_SIZE + x];
 
-            if (pointselection && (mouseMode & SELECT) == SELECT && depth != 0 && depth != 1)
+            if (pointselection && ((mouseMode & SELECT) == SELECT || (mouseMode & TRANSLATE) == TRANSLATE) && depth != 0 && depth != 1)
             {
                 pointselection = false;
                 
diff --git a/Grafreed.java b/Grafreed.java
index 320521a..e0ad599 100644
--- a/Grafreed.java
+++ b/Grafreed.java
@@ -40,6 +40,12 @@
 //import com.jamonapi.*;
 public class Grafreed extends Applet implements ActionListener
 {        
+    static void SystemExit(String string)
+    {
+        System.out.println(string);
+        System.exit(0);
+    }
+    
     static int RENDERME = 0;
 
     static boolean epsequal = false;
diff --git a/GroupEditor.java b/GroupEditor.java
index 558a072..1caee84 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -1823,7 +1823,7 @@
                     flashIt = false;
                     CameraPane pane = (CameraPane) target;
                     pane.clickStart(objEditor.location.x, objEditor.location.y, 0, 0);
-                    pane.clickEnd(objEditor.location.x, objEditor.location.y, 0, true);
+                    pane.clickEnd(objEditor.location.x, objEditor.location.y, 0, 0, true);
                     
                     if (group.selection.size() == 1)
                     {
diff --git a/ObjEditor.java b/ObjEditor.java
index ab56542..7726e0c 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -1889,12 +1889,315 @@
         AddOptions(optionsPanel); //, aConstraints);
         
         sceneTabbedPane.add(FSPane = new cFileSystemPane(this));
-
-        fullscenePanel = new cGridBag();
-        fullscenePanel.setName("Download");
-        sceneTabbedPane.add(fullscenePanel);
+      
+        JTabbedPane fullscenePane = new JTabbedPane(JTabbedPane.LEFT);
         
+        fullscenePane.setName("Download");
+        sceneTabbedPane.add(fullscenePane);
+        
+        cGridBag fullscenePanel;
         cButton fullsceneButton;
+        
+        fullscenePanel = new cGridBag().setVertical(true);
+        fullscenePanel.setName("Actual");
+        
+        fullscenePane.add(fullscenePanel);
+        
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/alsace.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Alsace!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Alsace.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/london.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Old London!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/oldlondon.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+        
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/tuscany.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Tuscany!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Tuscany.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(true);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+        
+//        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/venice.png", !Globals.NIMBUSLAF));
+//        fullsceneButton.setToolTipText("Venice!");
+//        fullsceneButton.addActionListener(new ActionListener()
+//        {
+//                @Override
+//                public void actionPerformed(ActionEvent e)
+//                {
+//                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Venice.gfd", new iCallBack()
+//                    {
+//
+//                        public void Callback(Object obj)
+//                        {
+//                            CameraPane.capsLocked = true;
+//                            Globals.setLIVE(true);
+//                            Globals.WALK = true;
+//                            LoadIt(obj);
+//                        }
+//
+//                        public void DragGesture()
+//                        {
+//                        }
+//                    });
+//                }
+//        });
+        
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/yvoire.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Yvoire!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Yvoire.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+                        
+        fullscenePanel = new cGridBag().setVertical(true);
+        fullscenePanel.setName("Cities");
+        
+        fullscenePane.add(fullscenePanel);
+        
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/desertmotel.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Desert Motel!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/DesertMotel.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+                
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/SandyBay.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Sandy Bay!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/SandyBay.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/UrbanSprawl.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Urban Sprawl!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/UrbanSprawl.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+
+        // Medieval City
+        fullscenePanel.add(new cGridBag());
+        
+        fullscenePanel = new cGridBag().setVertical(true);
+        fullscenePanel.setName("Fictive");
+        
+        fullscenePane.add(fullscenePanel);
+        
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/ninja.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Ninja Village!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/NinjaVillage.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/skullcove.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Skull Cove Island!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/SkullCoveIsland.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(true);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+                
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/viking.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Viking Village!");
+        fullsceneButton.addActionListener(new ActionListener()
+        {
+                @Override
+                public void actionPerformed(ActionEvent e)
+                {
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/VikingVillage.gfd", new iCallBack()
+                    {
+
+                        public void Callback(Object obj)
+                        {
+                            CameraPane.capsLocked = true;
+                            Globals.setLIVE(false);
+                            Globals.WALK = true;
+                            LoadIt(obj);
+                        }
+
+                        public void DragGesture()
+                        {
+                        }
+                    });
+                }
+        });
+
+        // Skull Mountain
+        fullscenePanel.add(new cGridBag());
+        
+        fullscenePanel = new cGridBag().setVertical(true);
+        fullscenePanel.setName("Figures");
+        
+        fullscenePane.add(fullscenePanel);
         
         fullscenePanel.add(fullsceneButton = GetButton("fullscenes/tom.png", !Globals.NIMBUSLAF));
         fullsceneButton.setToolTipText("Tom!");
@@ -1946,23 +2249,29 @@
                 }
         });
 
-        fullscenePanel.Return();
+        fullscenePanel.add(new cGridBag());
+        fullscenePanel.add(new cGridBag());
         
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/alsace.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Alsace!");
+        fullscenePanel = new cGridBag().setVertical(true);
+        fullscenePanel.setName("Futuristic");
+        
+        fullscenePane.add(fullscenePanel);
+        
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/GCB2.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Greeble City II");
         fullsceneButton.addActionListener(new ActionListener()
         {
                 @Override
                 public void actionPerformed(ActionEvent e)
                 {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Alsace.gfd", new iCallBack()
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/gcb2.gfd", new iCallBack()
                     {
 
                         public void Callback(Object obj)
                         {
                             CameraPane.capsLocked = true;
                             Globals.setLIVE(false);
-                            Globals.WALK = true;
+                            Globals.WALK = false;
                             LoadIt(obj);
                         }
 
@@ -1972,22 +2281,22 @@
                     });
                 }
         });
-
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/desertmotel.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Desert Motel!");
+    
+        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/GCB3.png", !Globals.NIMBUSLAF));
+        fullsceneButton.setToolTipText("Greeble City III");
         fullsceneButton.addActionListener(new ActionListener()
         {
                 @Override
                 public void actionPerformed(ActionEvent e)
                 {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/DesertMotel.gfd", new iCallBack()
+                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/gcb3.gfd", new iCallBack()
                     {
 
                         public void Callback(Object obj)
                         {
                             CameraPane.capsLocked = true;
                             Globals.setLIVE(false);
-                            Globals.WALK = true;
+                            Globals.WALK = false;
                             LoadIt(obj);
                         }
 
@@ -1997,86 +2306,7 @@
                     });
                 }
         });
-        
-        fullscenePanel.Return();
-        
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/london.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Old London!");
-        fullsceneButton.addActionListener(new ActionListener()
-        {
-                @Override
-                public void actionPerformed(ActionEvent e)
-                {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/oldlondon.gfd", new iCallBack()
-                    {
-
-                        public void Callback(Object obj)
-                        {
-                            CameraPane.capsLocked = true;
-                            Globals.setLIVE(false);
-                            Globals.WALK = true;
-                            LoadIt(obj);
-                        }
-
-                        public void DragGesture()
-                        {
-                        }
-                    });
-                }
-        });
-        
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/skullcove.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Skull Cove Island!");
-        fullsceneButton.addActionListener(new ActionListener()
-        {
-                @Override
-                public void actionPerformed(ActionEvent e)
-                {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/SkullCoveIsland.gfd", new iCallBack()
-                    {
-
-                        public void Callback(Object obj)
-                        {
-                            CameraPane.capsLocked = true;
-                            Globals.setLIVE(true);
-                            Globals.WALK = true;
-                            LoadIt(obj);
-                        }
-
-                        public void DragGesture()
-                        {
-                        }
-                    });
-                }
-        });
-        
-        fullscenePanel.Return();
-        
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/tuscany.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Tuscany!");
-        fullsceneButton.addActionListener(new ActionListener()
-        {
-                @Override
-                public void actionPerformed(ActionEvent e)
-                {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Tuscany.gfd", new iCallBack()
-                    {
-
-                        public void Callback(Object obj)
-                        {
-                            CameraPane.capsLocked = true;
-                            Globals.setLIVE(true);
-                            Globals.WALK = true;
-                            LoadIt(obj);
-                        }
-
-                        public void DragGesture()
-                        {
-                        }
-                    });
-                }
-        });
-        
+    
         fullscenePanel.add(fullsceneButton = GetButton("fullscenes/urbanfuture3.png", !Globals.NIMBUSLAF));
         fullsceneButton.setToolTipText("Urban Future!");
         fullsceneButton.addActionListener(new ActionListener()
@@ -2101,8 +2331,6 @@
                     });
                 }
         });
-
-        fullscenePanel.Return();
     
         fullscenePanel.add(fullsceneButton = GetButton("fullscenes/urbanfuture4.png", !Globals.NIMBUSLAF));
         fullsceneButton.setToolTipText("Street Level!");
@@ -2129,85 +2357,6 @@
                 }
         });
 
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/venice.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Venice!");
-        fullsceneButton.addActionListener(new ActionListener()
-        {
-                @Override
-                public void actionPerformed(ActionEvent e)
-                {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Venice.gfd", new iCallBack()
-                    {
-
-                        public void Callback(Object obj)
-                        {
-                            CameraPane.capsLocked = true;
-                            Globals.setLIVE(true);
-                            Globals.WALK = true;
-                            LoadIt(obj);
-                        }
-
-                        public void DragGesture()
-                        {
-                        }
-                    });
-                }
-        });
-
-        fullscenePanel.Return();
-        
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/viking.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Viking Village!");
-        fullsceneButton.addActionListener(new ActionListener()
-        {
-                @Override
-                public void actionPerformed(ActionEvent e)
-                {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/VikingVillage.gfd", new iCallBack()
-                    {
-
-                        public void Callback(Object obj)
-                        {
-                            CameraPane.capsLocked = true;
-                            Globals.setLIVE(false);
-                            Globals.WALK = true;
-                            LoadIt(obj);
-                        }
-
-                        public void DragGesture()
-                        {
-                        }
-                    });
-                }
-        });
-
-        fullscenePanel.add(fullsceneButton = GetButton("fullscenes/yvoire.png", !Globals.NIMBUSLAF));
-        fullsceneButton.setToolTipText("Yvoire!");
-        fullsceneButton.addActionListener(new ActionListener()
-        {
-                @Override
-                public void actionPerformed(ActionEvent e)
-                {
-                    ReadGFD("https://www.noaofarc.ca/akeeba/categories/Applications/Yvoire.gfd", new iCallBack()
-                    {
-
-                        public void Callback(Object obj)
-                        {
-                            CameraPane.capsLocked = true;
-                            Globals.setLIVE(false);
-                            Globals.WALK = true;
-                            LoadIt(obj);
-                        }
-
-                        public void DragGesture()
-                        {
-                        }
-                    });
-                }
-        });
-
-        fullscenePanel.Return();
-                        
         sceneTabbedPane.add(optionsPanel);
         
         scenePanel.add(sceneTabbedPane);
@@ -3420,7 +3569,7 @@
         //? flashIt = false;
         CameraPane pane = (CameraPane) cameraView;
         pane.clickStart(location.x, location.y, 0, 0);
-        pane.clickEnd(location.x, location.y, 0, true);
+        pane.clickEnd(location.x, location.y, 0, 0, true);
 
         if (group.selection.size() == 1)
         {
@@ -6788,7 +6937,7 @@
     cGridBag materialPanel;
     cGridBag ctrlPanel;
     cGridBag figurePanel;
-    cGridBag fullscenePanel;
+    //cGridBag fullscenePanel;
     
     JScrollPane infoPanel;
     
diff --git a/fullscenes/GCB2.png b/fullscenes/GCB2.png
new file mode 100644
index 0000000..603f2e6
--- /dev/null
+++ b/fullscenes/GCB2.png
Binary files differ
diff --git a/fullscenes/GCB3.png b/fullscenes/GCB3.png
new file mode 100644
index 0000000..f472529
--- /dev/null
+++ b/fullscenes/GCB3.png
Binary files differ
diff --git a/fullscenes/SandyBay.png b/fullscenes/SandyBay.png
new file mode 100644
index 0000000..e026e61
--- /dev/null
+++ b/fullscenes/SandyBay.png
Binary files differ
diff --git a/fullscenes/UrbanSprawl.png b/fullscenes/UrbanSprawl.png
new file mode 100644
index 0000000..97a68c7
--- /dev/null
+++ b/fullscenes/UrbanSprawl.png
Binary files differ
diff --git a/fullscenes/desertmotel.png b/fullscenes/desertmotel.png
index 7e3d879..a3959d9 100644
--- a/fullscenes/desertmotel.png
+++ b/fullscenes/desertmotel.png
Binary files differ
diff --git a/fullscenes/ninja.png b/fullscenes/ninja.png
new file mode 100644
index 0000000..4d33749
--- /dev/null
+++ b/fullscenes/ninja.png
Binary files differ
diff --git a/fullscenes/urbanfuture4.png b/fullscenes/urbanfuture4.png
index a74aa95..d38378c 100644
--- a/fullscenes/urbanfuture4.png
+++ b/fullscenes/urbanfuture4.png
Binary files differ

--
Gitblit v1.6.2