From 4a5b9e0b9ecc97203d4089ca0cd0d6df8c76bf1c Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Mon, 22 Apr 2019 17:29:27 -0400
Subject: [PATCH] Fix theRenderer

---
 ObjEditor.java   |    2 
 ScriptNode.java  |   88 ++++++++--------
 iCameraPane.java |   33 ++++++
 BoundaryRep.java |   16 +-
 CameraPane.java  |  107 ++++++++++----------
 Globals.java     |    2 
 GroupEditor.java |   18 +-
 cTree.java       |    2 
 Mocap.java       |    2 
 Object3D.java    |   26 ++--
 ClickInfo.java   |    2 
 11 files changed, 166 insertions(+), 132 deletions(-)

diff --git a/BoundaryRep.java b/BoundaryRep.java
index 729177a..4667636 100644
--- a/BoundaryRep.java
+++ b/BoundaryRep.java
@@ -2661,7 +2661,7 @@
         if (false) // slow && stepout && onein)
         {
             // sound
-            cVector eye = CameraPane.theRenderer.eyeCamera.location;
+            cVector eye = Globals.theRenderer.EyeCamera().location;
 
             Vertex v = GetVertex(0);
 
@@ -4460,14 +4460,14 @@
         // june 2014
 //        Camera parentcam = cam;
 //
-//        if (cam == CameraPane.theRenderer.cameras[0])
+//        if (cam == Globals.theRenderer.cameras[0])
 //        {
-//            parentcam = CameraPane.theRenderer.cameras[1];
+//            parentcam = Globals.theRenderer.cameras[1];
 //        }
 //
-//        if (cam == CameraPane.theRenderer.cameras[1])
+//        if (cam == Globals.theRenderer.cameras[1])
 //        {
-//            parentcam = CameraPane.theRenderer.cameras[0];
+//            parentcam = Globals.theRenderer.cameras[0];
 //        }
     
         gl.glGetDoublev(gl.GL_MODELVIEW_MATRIX, CameraPane.tempmat, 0);
@@ -7560,7 +7560,7 @@
             s3 = new cVector();
         }
         
-        CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
+        Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
         
         try
         {
@@ -7655,7 +7655,7 @@
         {
             if (i++%100 == 0)
             {
-                CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
+                Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
                 System.out.println("#faces = " + faces.size());
             //    if (i != 1)
             //        break;
@@ -7699,7 +7699,7 @@
         //Trim(true,cJME.gennormals,true,false); // doesn't work
         Trim(true,false,false,false,false);
         
-        CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
+        Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
     }
     
     void UpdateIndices(Face face, Face minface)
diff --git a/CameraPane.java b/CameraPane.java
index fc57173..b54e1a7 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -150,12 +150,10 @@
         defaultcaps.setAccumAlphaBits(16);
     }
     
-    static CameraPane theRenderer;
-    
     void SetAsGLRenderer(boolean b)
     {
         isRenderer = b;
-        theRenderer = this;
+        Globals.theRenderer = this;
     }
 
     CameraPane(Object3D o, Camera cam, boolean withcontext)
@@ -816,7 +814,7 @@
 
                         if ((i % 100) == 0 && i != 0)
                         {
-                    CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
+                    Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
                             //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done");
                                 System.out.println((int) (100.0 * i / (br.positions.length / 3)) + "% (" + i + " of " + (br.positions.length / 3) + ")");
                         }
@@ -848,7 +846,7 @@
 
                         if ((i % 100) == 0 && i != 0)
                         {
-                    CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
+                    Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
                             //System.out.println("Color = " + cp.vertexOcclusion.r + ", " + cp.vertexOcclusion.g + ", " + cp.vertexOcclusion.b + "; " + (int)(100.0*i/(positions.length/3)) + "% done");
                                 System.out.println((int) (100.0 * i / br.VertexCount()) + "% (" + i + " of " + br.VertexCount() + ")");
                         }
@@ -1624,7 +1622,7 @@
     
     static int camerachangeframe;
     
-    boolean SetCamera(Camera cam)
+    public boolean SetCamera(Camera cam)
     {
         // may 2014 if (cam == cameras[0] || cam == cameras[1])
         //    return false;
@@ -1752,12 +1750,27 @@
         mainDL ^= true;
     }
 
-    void ToggleTexture()
+    void ToggleFullScreen()
+    {
+        FULLSCREEN ^= true;
+    }
+
+    void ToggleCrowd()
+    {
+        Globals.CROWD ^= true;
+    }
+
+    void ToggleLocal()
+    {
+        LOCALTRANSFORM ^= true;
+    }
+
+    public void ToggleTexture()
     {
         textureon ^= true;
     }
 
-    void ToggleLive()
+    public void ToggleLive()
     {
         Globals.setLIVE(Globals.isLIVE() ^ true);
         
@@ -1769,92 +1782,67 @@
             repaint(); // start loop // may 2013
     }
 
-    void ToggleSupport()
+    public void ToggleSupport()
     {
         SUPPORT ^= true;
     }
 
-    void ToggleAbort()
+    public void ToggleAbort()
     {
         ABORTMODE ^= true;
     }
 
-    void ToggleFullScreen()
-    {
-        FULLSCREEN ^= true;
-    }
-
-    void ToggleCrowd()
-    {
-        Globals.CROWD ^= true;
-    }
-
-    void ToggleInertia()
+    public void ToggleInertia()
     {
         INERTIA ^= true;
     }
 
-    void ToggleLocal()
-    {
-        LOCALTRANSFORM ^= true;
-    }
-
-    void ToggleFast()
+    public void ToggleFast()
     {
         FAST ^= true;
     }
 
-    void ToggleSlowPose()
+    public void ToggleSlowPose()
     {
         SLOWPOSE ^= true;
     }
 
-    void ToggleFootContact()
-    {
-        FOOTCONTACT ^= true;
-    }
-    
-    void ToggleBoxMode()
+    public void ToggleBoxMode()
     {
         BOXMODE ^= true;
     }
 
-    void ToggleSmoothFocus()
+    public void ToggleSmoothFocus()
     {
         SMOOTHFOCUS ^= true;
     }
 
-    void ToggleImageFlip()
+    public void ToggleImageFlip()
     {
         IMAGEFLIP ^= true;
     }
 
-    void ToggleSpeakerMocap()
+    public void ToggleSpeakerMocap()
     {
         SPEAKERMOCAP ^= true;
     }
 
-    void ToggleSpeakerCamera()
+    public void ToggleSpeakerCamera()
     {
         SPEAKERCAMERA ^= true;
     }
 
-    void ToggleSpeakerFocus()
+    public void ToggleSpeakerFocus()
     {
         SPEAKERFOCUS ^= true;
     }
 
-    void ToggleDebug()
-    {
-        DEBUG ^= true;
-    }
-
-    void ToggleFrustum()
+    public void ToggleFrustum()
     {
         FRUSTUM ^= true;
     }
 
-    void ToggleTrack()
+    public void ToggleTrack()
     {
         TRACK ^= true;
         if (TRACK)
@@ -1873,25 +1861,35 @@
         repaint();
     }
 
-    void ToggleTrackOnce()
+    public void ToggleTrackOnce()
     {
         TRACKONCE ^= true;
     }
 
-    void ToggleShadowTrack()
+    public void ToggleShadowTrack()
     {
         SHADOWTRACK ^= true;
         repaint();
     }
 
-    void ToggleOeil()
+    public void ToggleOeil()
     {
         OEIL ^= true;
     }
 
-    void ToggleOeilOnce()
+    public void ToggleOeilOnce()
     {
         OEILONCE ^= true;
+    }
+
+    void ToggleFootContact()
+    {
+        FOOTCONTACT ^= true;
+    }
+    
+    void ToggleDebug()
+    {
+        DEBUG ^= true;
     }
 
     void ToggleLookAt()
@@ -7953,7 +7951,7 @@
         return texture!=null?texture.texture:null;
     }
     
-    com.sun.opengl.util.texture.TextureData GetTextureData(String tex, boolean bump, int resolution)
+    public com.sun.opengl.util.texture.TextureData GetTextureData(String tex, boolean bump, int resolution)
     {
         CacheTexture texture = GetCacheTexture(tex, bump, resolution);
                 
@@ -14153,7 +14151,7 @@
             SetMouseMode(modifiers);
         }
 
-        theRenderer.keyPressed(key);
+        Globals.theRenderer.keyPressed(key);
     }
 
     int kompactbit = 4; // power bit
@@ -14165,7 +14163,7 @@
     float SATPOW = 1; // 2; // 0.5f;
     float BRIPOW = 1; // 0.5f; // 0.5f;
     
-    void keyPressed(int key)
+    public void keyPressed(int key)
     {
         if (key >= '0' && key <= '5')
             clampbit = (key-'0');
@@ -14602,6 +14600,7 @@
         }
     //System.out.println("shaper_fovy = " + manipCamera.shaper_fovy);
     }
+    
     static double OCCLUSIONBOOST = 1; // 0.5;
 
     void keyReleased(int key, int modifiers)
@@ -14613,7 +14612,7 @@
         }
     }
 
-    protected void processKeyEvent(KeyEvent e)
+    public void processKeyEvent(KeyEvent e)
     {
         switch (e.getID())
         {
diff --git a/ClickInfo.java b/ClickInfo.java
index f24439d..a73de9f 100644
--- a/ClickInfo.java
+++ b/ClickInfo.java
@@ -24,7 +24,7 @@
     Rectangle bounds;
     Camera camera;
     double toScreen[][];
-    CameraPane pane;
+    iCameraPane pane;
     Graphics g;
 
     static double matbuffer[][] = new double[4][4];
diff --git a/Globals.java b/Globals.java
index 070b46b..1b91781 100644
--- a/Globals.java
+++ b/Globals.java
@@ -1,6 +1,8 @@
 
 public class Globals
 {
+    static iCameraPane theRenderer;
+    
         private static boolean LIVE = false;
         
         static boolean CROWD = false;
diff --git a/GroupEditor.java b/GroupEditor.java
index 7cc81e0..02ade54 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -1783,7 +1783,7 @@
 		if (event.getSource() == computeAOItem)
 		{
                     Globals.drawMode = CameraPane.OCCLUSION;
-                    CameraPane.theRenderer.repaint();
+                    Globals.theRenderer.repaint();
 		} else
 		if (event.getSource() == recompileItem)
 		{
@@ -2094,7 +2094,7 @@
                         if (content instanceof cGroup && ((cGroup)content).transientlink )
                             content = ((cGroup)content).get(0);
 
-            CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
+            Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
                         for (int i=0; i<group.selection.size(); i++)
                         {
                             boolean random = CameraPane.RANDOM;
@@ -2103,7 +2103,7 @@
                       //      group.selection.get(i).setMasterThis(content); // should be identity
                             CameraPane.RANDOM = random;
                         }
-            CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
+            Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
 		refreshContents();
                     }
 		} else
@@ -2911,7 +2911,7 @@
                     }
                     
                     copy = group;
-                    //CameraPane.theRenderer.object = group;
+                    //Globals.theRenderer.object = group;
                     if(!useclient)
                     {
                         cameraView.renderCamera = radio.camera;
@@ -3473,7 +3473,7 @@
                             String pigment = Object3D.GetPigment(tex);
                             //String bump = Object3D.GetBump(tex);
                             
-                            com.sun.opengl.util.texture.TextureData texturedata = CameraPane.theRenderer.GetTextureData(pigment, false, node.texres);
+                            com.sun.opengl.util.texture.TextureData texturedata = Globals.theRenderer.GetTextureData(pigment, false, node.texres);
                             
                             double s = v.s;
                             
@@ -3774,7 +3774,7 @@
             group.selection.RelinkToSupport(); // july 2014
             System.out.println("DONE.");
             refreshContents();
-        CameraPane.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
+        Globals.theRenderer.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
         }
         
 	void ReduceMesh(boolean reduction34)
@@ -4066,9 +4066,9 @@
                             // a camera
                         {
                             CameraPane.camerachangeframe = 0; // don't refuse it
-                            CameraPane.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent());
-                         //   CameraPane.theRenderer.renderCamera = CameraPane.theRenderer.manipCamera;
-                         //   CameraPane.theRenderer.eyeCamera = CameraPane.theRenderer.manipCamera;
+                            Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent());
+                         //   Globals.theRenderer.renderCamera = Globals.theRenderer.manipCamera;
+                         //   Globals.theRenderer.eyeCamera = Globals.theRenderer.manipCamera;
                         }
                             
 			refreshContents();
diff --git a/Mocap.java b/Mocap.java
index 9dc8a09..d696eec 100644
--- a/Mocap.java
+++ b/Mocap.java
@@ -1519,7 +1519,7 @@
 //            mywave = currentwave++;
 //        }
                     // sound
-                    cVector eye = CameraPane.theRenderer.EyeCamera().location;
+                    cVector eye = Globals.theRenderer.EyeCamera().location;
 
 //                    if (sourcenode.parent.parent != null)
 //                        sourcenode.parent.parent.TransformToWorld(floor, tmp);
diff --git a/ObjEditor.java b/ObjEditor.java
index 9076e4e..cad3c8b 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -124,7 +124,7 @@
     void keyPressed(int key, int modifiers)
     {
     System.out.println("KEY PRESSED");
-    CameraPane.theRenderer.keyPressed(key, modifiers);
+    Globals.theRenderer.keyPressed(key, modifiers);
     }
      */
 
diff --git a/Object3D.java b/Object3D.java
index fb14401..bdfe925 100644
--- a/Object3D.java
+++ b/Object3D.java
@@ -430,16 +430,16 @@
     {
         Object3D copy = this;
         
-            Camera parentcam = CameraPane.theRenderer.ManipCamera();
+            Camera parentcam = Globals.theRenderer.ManipCamera();
             
-            if (CameraPane.theRenderer.ManipCamera() == CameraPane.theRenderer.Cameras()[0])
+            if (Globals.theRenderer.ManipCamera() == Globals.theRenderer.Cameras()[0])
             {
-                parentcam = CameraPane.theRenderer.Cameras()[1];
+                parentcam = Globals.theRenderer.Cameras()[1];
             }
             
-            if (CameraPane.theRenderer.ManipCamera() == CameraPane.theRenderer.Cameras()[1])
+            if (Globals.theRenderer.ManipCamera() == Globals.theRenderer.Cameras()[1])
             {
-                parentcam = CameraPane.theRenderer.Cameras()[0];
+                parentcam = Globals.theRenderer.Cameras()[0];
             }
         
         if (this == parentcam)
@@ -447,7 +447,7 @@
             //assert(this instanceof Camera);
             
             for (int count = parentcam.GetTransformCount(); --count>=0;)
-                LA.xformPos(CameraPane.theRenderer.TargetLookAt(), parentcam.toParent, CameraPane.theRenderer.TargetLookAt());
+                LA.xformPos(Globals.theRenderer.TargetLookAt(), parentcam.toParent, Globals.theRenderer.TargetLookAt());
         }
         
         copy.marked ^= true;
@@ -467,7 +467,7 @@
             //assert(this instanceof Camera);
             
             for (int count = parentcam.GetTransformCount(); --count>=0;)
-                LA.xformPos(CameraPane.theRenderer.TargetLookAt(), parentcam.fromParent, CameraPane.theRenderer.TargetLookAt());
+                LA.xformPos(Globals.theRenderer.TargetLookAt(), parentcam.fromParent, Globals.theRenderer.TargetLookAt());
         }
 
         copy.Touch(); // display list issue
@@ -6391,7 +6391,7 @@
                 center.add(r);
                 center.mul(1.0/3);
                 
-                center.sub(CameraPane.theRenderer.eyeCamera.location);
+                center.sub(Globals.theRenderer.EyeCamera().location);
                 
                 distance = center.dot(center);
             }
@@ -7173,7 +7173,7 @@
 
             case hitCenter: // Translate
                 
-                scale *= 0.05f * info.pane.theRenderer.renderCamera.Distance();
+                scale *= 0.05f * Globals.theRenderer.RenderCamera().Distance();
                 
                 if (modified)
                 {
@@ -7221,10 +7221,10 @@
                     }
                     LA.xformDir(up, ClickInfo.matbuffer, up);
     //                if (!CameraPane.LOCALTRANSFORM)
-                        LA.xformDir(up, info.pane.theRenderer.renderCamera.toScreen, up);
+                        LA.xformDir(up, Globals.theRenderer.RenderCamera().toScreen, up);
                     LA.xformDir(info.camera.away, ClickInfo.matbuffer, away);
     //                if (!CameraPane.LOCALTRANSFORM)
-                        LA.xformDir(away, info.pane.theRenderer.renderCamera.toScreen, away);
+                        LA.xformDir(away, Globals.theRenderer.RenderCamera().toScreen, away);
                     //LA.vecCross(up, cVector.Z, right2);
 
                     cVector delta = LA.newVector(info.x - startX, startY - info.y, 0);
@@ -7282,7 +7282,7 @@
                 }
                 /**/
 
-                switch (info.pane.renderCamera.viewCode)
+                switch (info.pane.RenderCamera().viewCode)
                 {
                     case 1: // '\001'
                         LA.matZRotate(toParent, angle);
@@ -7338,7 +7338,7 @@
                 }
                 /**/
 
-                switch (info.pane.renderCamera.viewCode)
+                switch (info.pane.RenderCamera().viewCode)
                 {
                     case 3: // '\001'
                         if (modified)
diff --git a/ScriptNode.java b/ScriptNode.java
index a856be3..073fc61 100644
--- a/ScriptNode.java
+++ b/ScriptNode.java
@@ -268,7 +268,7 @@
         if (reader.line == null)
         {
 //            if (CameraPane.LIVE)
-//                CameraPane.theRenderer.ToggleLive();
+//                Globals.theRenderer.ToggleLive();
 //            Reset();
 //            
 //            try
@@ -521,7 +521,7 @@
         
         if (command.equals("recompile"))
         {
-            assert (GetRoot() == CameraPane.theRenderer.object);
+            // TODO assert (GetRoot() == Globals.theRenderer.object);
             GetRoot().editWindow.Recompile();
             return;
         }
@@ -532,205 +532,205 @@
         }
         if (command.equals("deselect") || command.equals("unselect"))
         {
-            assert (GetRoot() == CameraPane.theRenderer.object);
+            // TODO assert (GetRoot() == Globals.theRenderer.object);
             GetRoot().editWindow.jTree.clearSelection();
             return;
         }
         if (command.equals("stoplive") || command.equals("liveoff"))
         {
             if (Globals.isLIVE())
-                CameraPane.theRenderer.ToggleLive();
+                Globals.theRenderer.ToggleLive();
             return;
         }
         if (command.equals("startlive") || command.equals("liveon"))
         {
             if (!Globals.isLIVE())
-                CameraPane.theRenderer.ToggleLive();
+                Globals.theRenderer.ToggleLive();
             return;
         }
         if (command.equals("frustumon"))
         {
             if (!CameraPane.FRUSTUM)
-                CameraPane.theRenderer.ToggleFrustum();
+                Globals.theRenderer.ToggleFrustum();
             return;
         }
         if (command.equals("frustumoff"))
         {
             if (CameraPane.FRUSTUM)
-                CameraPane.theRenderer.ToggleFrustum();
+                Globals.theRenderer.ToggleFrustum();
             return;
         }
         if (command.equals("flipon"))
         {
             if (!CameraPane.IMAGEFLIP)
-                CameraPane.theRenderer.ToggleImageFlip();
+                Globals.theRenderer.ToggleImageFlip();
             return;
         }
         if (command.equals("flipoff"))
         {
             if (CameraPane.IMAGEFLIP)
-                CameraPane.theRenderer.ToggleImageFlip();
+                Globals.theRenderer.ToggleImageFlip();
             return;
         }
         if (command.equals("smoothon"))
         {
             if (!CameraPane.SMOOTHFOCUS)
-                CameraPane.theRenderer.ToggleSmoothFocus();
+                Globals.theRenderer.ToggleSmoothFocus();
             return;
         }
         if (command.equals("smoothoff"))
         {
             if (CameraPane.SMOOTHFOCUS)
-                CameraPane.theRenderer.ToggleSmoothFocus();
+                Globals.theRenderer.ToggleSmoothFocus();
             return;
         }
         if (command.equals("inertiaon"))
         {
             if (!CameraPane.INERTIA)
-                CameraPane.theRenderer.ToggleInertia();
+                Globals.theRenderer.ToggleInertia();
             return;
         }
         if (command.equals("inertiaoff"))
         {
             if (CameraPane.INERTIA)
-                CameraPane.theRenderer.ToggleInertia();
+                Globals.theRenderer.ToggleInertia();
             return;
         }
         if (command.equals("mocapon"))
         {
             if (!CameraPane.SPEAKERMOCAP)
-                CameraPane.theRenderer.ToggleSpeakerMocap();
+                Globals.theRenderer.ToggleSpeakerMocap();
             return;
         }
         if (command.equals("mocapoff"))
         {
             if (CameraPane.SPEAKERMOCAP)
-                CameraPane.theRenderer.ToggleSpeakerMocap();
+                Globals.theRenderer.ToggleSpeakerMocap();
             return;
         }
         if (command.equals("cameraon"))
         {
             if (!CameraPane.SPEAKERCAMERA)
-                CameraPane.theRenderer.ToggleSpeakerCamera();
+                Globals.theRenderer.ToggleSpeakerCamera();
             return;
         }
         if (command.equals("cameraoff"))
         {
             if (CameraPane.SPEAKERCAMERA)
-                CameraPane.theRenderer.ToggleSpeakerCamera();
+                Globals.theRenderer.ToggleSpeakerCamera();
             return;
         }
         if (command.equals("zoomon"))
         {
             if (!CameraPane.SPEAKERFOCUS)
-                CameraPane.theRenderer.ToggleSpeakerFocus();
+                Globals.theRenderer.ToggleSpeakerFocus();
             return;
         }
         if (command.equals("zoomoff"))
         {
             if (CameraPane.SPEAKERFOCUS)
-                CameraPane.theRenderer.ToggleSpeakerFocus();
+                Globals.theRenderer.ToggleSpeakerFocus();
             return;
         }
         if (command.equals("shadowon"))
         {
             if (!CameraPane.SHADOWTRACK)
-                CameraPane.theRenderer.ToggleShadowTrack();
+                Globals.theRenderer.ToggleShadowTrack();
             return;
         }
         if (command.equals("shadowoff"))
         {
             if (CameraPane.SHADOWTRACK)
-                CameraPane.theRenderer.ToggleShadowTrack();
+                Globals.theRenderer.ToggleShadowTrack();
             return;
         }
         if (command.equals("trackon"))
         {
             CameraPane.TRACK = false; // force selection to be used
             if (!CameraPane.TRACK)
-                CameraPane.theRenderer.ToggleTrack();
+                Globals.theRenderer.ToggleTrack();
             return;
         }
         if (command.equals("trackoff"))
         {
             if (CameraPane.TRACK)
-                CameraPane.theRenderer.ToggleTrack();
+                Globals.theRenderer.ToggleTrack();
             return;
         }
         if (command.equals("trackonceon"))
         {
             if (!CameraPane.TRACKONCE)
-                CameraPane.theRenderer.ToggleTrackOnce();
+                Globals.theRenderer.ToggleTrackOnce();
             return;
         }
         if (command.equals("trackonceoff"))
         {
             if (CameraPane.TRACKONCE)
-                CameraPane.theRenderer.ToggleTrackOnce();
+                Globals.theRenderer.ToggleTrackOnce();
             return;
         }
         if (command.equals("oeilon"))
         {
             if (!CameraPane.OEIL && !CameraPane.OEILONCE)
-                CameraPane.theRenderer.ToggleOeil();
+                Globals.theRenderer.ToggleOeil();
             return;
         }
         if (command.equals("oeiloff"))
         {
             if (CameraPane.OEIL && !CameraPane.OEILONCE)
-                CameraPane.theRenderer.ToggleOeil();
+                Globals.theRenderer.ToggleOeil();
             return;
         }
         
         if (command.equals("oeilonceon"))
         {
             if (!CameraPane.OEILONCE)
-                CameraPane.theRenderer.ToggleOeilOnce();
+                Globals.theRenderer.ToggleOeilOnce();
             return;
         }
         if (command.equals("oeilonceoff"))
         {
             if (CameraPane.OEILONCE)
-                CameraPane.theRenderer.ToggleOeilOnce();
+                Globals.theRenderer.ToggleOeilOnce();
             return;
         }
         
         if (command.equals("faston"))
         {
             if (!CameraPane.FAST)
-                CameraPane.theRenderer.ToggleFast();
+                Globals.theRenderer.ToggleFast();
             return;
         }
         if (command.equals("fastoff"))
         {
             if (CameraPane.FAST)
-                CameraPane.theRenderer.ToggleFast();
+                Globals.theRenderer.ToggleFast();
             return;
         }
         
         if (command.equals("slowposeon"))
         {
             if (!CameraPane.SLOWPOSE)
-                CameraPane.theRenderer.ToggleSlowPose();
+                Globals.theRenderer.ToggleSlowPose();
             return;
         }
         if (command.equals("slowposeoff"))
         {
             if (CameraPane.SLOWPOSE)
-                CameraPane.theRenderer.ToggleSlowPose();
+                Globals.theRenderer.ToggleSlowPose();
             return;
         }
         
         if (command.equals("supporton"))
         {
             if (!CameraPane.SUPPORT)
-                CameraPane.theRenderer.ToggleSupport();
+                Globals.theRenderer.ToggleSupport();
             return;
         }
         if (command.equals("supportoff"))
         {
             if (CameraPane.SUPPORT)
-                CameraPane.theRenderer.ToggleSupport();
+                Globals.theRenderer.ToggleSupport();
             return;
         }
         
@@ -756,13 +756,13 @@
         if (command.equals("aborton"))
         {
             if (!CameraPane.ABORTMODE)
-                CameraPane.theRenderer.ToggleAbort();
+                Globals.theRenderer.ToggleAbort();
             return;
         }
         if (command.equals("abortoff"))
         {
             if (CameraPane.ABORTMODE)
-                CameraPane.theRenderer.ToggleAbort();
+                Globals.theRenderer.ToggleAbort();
             return;
         }
         
@@ -770,7 +770,7 @@
         {
             if (!CameraPane.BOXMODE)
             {
-                CameraPane.theRenderer.ToggleBoxMode();
+                Globals.theRenderer.ToggleBoxMode();
                 GetRoot().editWindow.Recompile();
             }
             return;
@@ -779,7 +779,7 @@
         {
             if (CameraPane.BOXMODE)
             {
-                CameraPane.theRenderer.ToggleBoxMode();
+                Globals.theRenderer.ToggleBoxMode();
                 GetRoot().editWindow.Recompile();
             }
             return;
@@ -800,7 +800,7 @@
         {
             if (!CameraPane.textureon)
             {
-                CameraPane.theRenderer.ToggleTexture();
+                Globals.theRenderer.ToggleTexture();
             }
             return;
         }
@@ -808,7 +808,7 @@
         {
             if (CameraPane.textureon)
             {
-                CameraPane.theRenderer.ToggleTexture();
+                Globals.theRenderer.ToggleTexture();
             }
             return;
         }
@@ -1155,7 +1155,7 @@
                         boolean success = false;
 
                         if (cam instanceof Camera) // ?
-                            success = CameraPane.theRenderer.SetCamera((Camera) cam);
+                            success = Globals.theRenderer.SetCamera((Camera) cam);
 
                         if (success)
                         {
@@ -1462,7 +1462,7 @@
         }
         if (command.equals("select"))
         {
-            assert (GetRoot() == CameraPane.theRenderer.object);
+            // TODO assert (GetRoot() == Globals.theRenderer.object);
             String path = GetAlias(strs[index+1]);
             GetRoot().editWindow.Select(GetRoot().GetTreePath(path.split("/"), 0), false, false);
             return;
@@ -1558,7 +1558,7 @@
             boolean success = false;
             
             if (object instanceof Camera) // ?
-                success = CameraPane.theRenderer.SetCamera((Camera) object);
+                success = Globals.theRenderer.SetCamera((Camera) object);
             
             if (success && CameraPane.ABORTMODE)
             {
diff --git a/cTree.java b/cTree.java
index a8a43f2..198376c 100644
--- a/cTree.java
+++ b/cTree.java
@@ -24,7 +24,7 @@
     protected void processKeyEvent(java.awt.event.KeyEvent e)
     {
         //System.out.println("KEY PRESSED");
-        CameraPane.theRenderer.processKeyEvent(e);
+        Globals.theRenderer.processKeyEvent(e);
     }
     private int margin = 12;
 
diff --git a/iCameraPane.java b/iCameraPane.java
index 0ecb003..bfbe44c 100644
--- a/iCameraPane.java
+++ b/iCameraPane.java
@@ -42,6 +42,8 @@
     Camera ManipCamera();
     Camera RenderCamera();
     
+    boolean SetCamera(Camera c);
+            
     cVector TargetLookAt();
 
     // Should be cMaterial
@@ -61,4 +63,35 @@
     void DrawParticles(TriMesh geo, Object3D shape, boolean selected, boolean rotate);
     
     void PrepOcclusion(BoundaryRep br, double[][] transform);
+    
+    void setCursor(java.awt.Cursor cursor);
+    
+    com.sun.opengl.util.texture.TextureData GetTextureData(String tex, boolean bump, int resolution);
+            
+    void repaint();
+    
+    void processKeyEvent(java.awt.event.KeyEvent e);
+    
+    void keyPressed(int key);
+    
+    // For scripts
+    void ToggleLive();
+    void ToggleFrustum();
+    void ToggleTexture();
+    void ToggleBoxMode();
+    void ToggleSupport();
+    void ToggleSlowPose();
+    void ToggleAbort();
+    void ToggleFast();
+    void ToggleOeilOnce();
+    void ToggleOeil();
+    void ToggleTrackOnce();
+    void ToggleTrack();
+    void ToggleShadowTrack();
+    void ToggleInertia();
+    void ToggleSmoothFocus();
+    void ToggleImageFlip();
+    void ToggleSpeakerFocus();
+    void ToggleSpeakerCamera();
+    void ToggleSpeakerMocap();
 }

--
Gitblit v1.6.2