From f2460bf93a1ff85a36407da2c599808e9e7a7091 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Wed, 04 Sep 2019 22:33:41 -0400
Subject: [PATCH] Fix cameras and new.

---
 ObjEditor.java  |   13 +++++++++++--
 CameraPane.java |    2 +-
 Object3D.java   |   33 +++++++++++++++++----------------
 Composite.java  |    2 ++
 Grafreed.java   |    4 ++--
 5 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index f3a1537..422bb57 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -224,7 +224,7 @@
         SetCamera(cam);
 
         // Warning: not used.
-        SetLight(new Camera(new cVector(15, 10, -20)));
+        //SetLight(new Camera(new cVector(15, 10, -20)));
 
         object = o;
 
diff --git a/Composite.java b/Composite.java
index 363d4ac..32ee24c 100644
--- a/Composite.java
+++ b/Composite.java
@@ -286,6 +286,8 @@
         for (int i = 0; i < Children().size(); i++)
         {
             Object3D obj = (Object3D) Children().reserve(i);
+            if (obj == null)
+                continue;
             compo.addChild(obj.copyExpand());
             Children().release(i);
         }
diff --git a/Grafreed.java b/Grafreed.java
index 40116a4..83452e7 100644
--- a/Grafreed.java
+++ b/Grafreed.java
@@ -1027,13 +1027,13 @@
         grafreed.universe = new cGroup();
         grafreed.universe.name = "Grafreed";
         grafreed.universe.material = new cMaterial();
-        grafreed.universe.skyboxname = "cubemaps/penguins-skyboxes/yonder";
-        grafreed.universe.skyboxext = "jpg";
         
         //   theApplet3D.universe.textures = CameraPane.DEFAULT_TEXTURE;
 
         grafreed.universe.root = true;
         grafreed.universe.openEditWindow(null, true); //, true);
+        grafreed.universe.editWindow.New();
+        
         //mon.stop();
         //System.out.println(mon);
         //timeflow.app.TimeflowAppLauncher.GetTimeFlow();
diff --git a/ObjEditor.java b/ObjEditor.java
index 7f5ac09..eb9a304 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -4386,6 +4386,12 @@
 
     void New()
     {
+        copy.skyboxname = "cubemaps/penguins-skyboxes/yonder";
+        copy.skyboxext = "jpg";
+        
+        copy.versionlist = null;
+        copy.versionindex = -1;
+        
         while (copy.Size() > 0)
         {
             copy.remove(0);
@@ -4397,8 +4403,11 @@
         {
             CreateCameras();
             cameraView.SetCamera(GetCamera(copy, 0));
+            cameraView.SetLight(GetCamera(copy, 4));
         }
+        
         ResetModel();
+        this.SetVersionStates();
         objEditor.refreshContents();
     }
     
@@ -4739,7 +4748,7 @@
             replaceButton.setEnabled(copy.versionindex != -1);
 
             previousVersionButton.setEnabled(copy.versionindex > 0);
-            nextVersionButton.setEnabled(copy.versionlist[copy.versionindex + 1] != null);
+            nextVersionButton.setEnabled(copy.versionlist != null && copy.versionlist[copy.versionindex + 1] != null);
 
             deleteVersionButton.setEnabled(copy.versionindex != -1);
                                             //copy.versionlist[copy.versionindex + 1] != null);
@@ -4862,7 +4871,7 @@
     {
         if (copy == Grafreed.grafreed.universe)
         {
-            Camera neweye = (Camera)copy.GetObject(cameraView.cameras[0].GetUUID());
+            Camera neweye = (Camera)copy.GetObject(cameraView.cameras[cameraView.cameracount^1].GetUUID());
             Camera newlight = (Camera)copy.GetObject(cameraView.LightCamera().GetUUID());
 
             cameraView.SetCamera(neweye);
diff --git a/Object3D.java b/Object3D.java
index f53b360..7209513 100644
--- a/Object3D.java
+++ b/Object3D.java
@@ -116,11 +116,12 @@
     {
         int count = 0;
         
-        for (int i = versionlist.length; --i >= 0;)
-        {
-            if (versionlist[i] != null)
-                count++;
-        }
+        if (versionlist != null)
+            for (int i = versionlist.length; --i >= 0;)
+            {
+                if (versionlist[i] != null)
+                    count++;
+            }
         
         return count;
     }
@@ -6463,16 +6464,16 @@
                 
                 assert (!(this instanceof Composite));
                 {
-                    for (int i = 0; i < size(); i++)
-                    {
-                        Object3D child = (Object3D) reserve(i);
-                        if (child == null)
-                            continue;
-
-                        child.draw(display, root, selected, blocked);
-
-                        release(i);
-                    }
+// CRASH MOCAP!!                   for (int i = 0; i < size(); i++)
+//                    {
+//                        Object3D child = (Object3D) reserve(i);
+//                        if (child == null)
+//                            continue;
+//
+//                        child.draw(display, root, selected, blocked);
+//
+//                        release(i);
+//                    }
                 }
             }
 
@@ -8285,7 +8286,7 @@
 //        if (!Globals.ADVANCED)
 //            return objname;
         
-        return objname; // + " " + System.identityHashCode(this); // + GetUUID()
+        return objname; // + " " + System.identityHashCode(this) + " " + GetUUID();
     }
 
     public int hashCode()

--
Gitblit v1.6.2