From b33ef80d78f01a6a61f4248b1bb7deaade42d503 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 16 Jun 2019 11:49:21 -0400
Subject: [PATCH] Attribute editor

---
 Object3D.java |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/Object3D.java b/Object3D.java
index d7a346f..28b696b 100644
--- a/Object3D.java
+++ b/Object3D.java
@@ -174,7 +174,7 @@
         {
             Object3D o = hashtable.get(GetUUID());
 
-            assert(this.bRep == o.bRep);
+            Grafreed.Assert(this.bRep == o.bRep);
             if (this.bRep != null)
                 assert(this.bRep.support == o.transientrep);
 
@@ -563,12 +563,14 @@
             toParent = LA.newMatrix();
             fromParent = LA.newMatrix();
         }
+        
         if (toParentMarked == null)
         {
             if (maxcount != 1)
             {
                 new Exception().printStackTrace();
             }
+            
             toParentMarked = LA.newMatrix();
             fromParentMarked = LA.newMatrix();
         }
@@ -5572,12 +5574,23 @@
     boolean NeedSupport()
     {
         return
-                CameraPane.SUPPORT && (!CameraPane.movingcamera || !Globals.FREEZEONMOVE) && link2master && /*live &&*/ support != null
+                CameraPane.SUPPORT && (!CameraPane.movingcamera || (!Globals.FREEZEONMOVE && Globals.isLIVE())) && link2master && /*live &&*/ support != null
                  // PROBLEM with CROWD!!
                     && (Globals.DrawMode() == iCameraPane.SHADOW || !Globals.RENDERSHADOW || Globals.CROWD);
     }
     
     static boolean DEBUG_SELECTION = false;
+    
+    boolean IsLive()
+    {
+        if (live)
+            return true;
+        
+        if (parent == null)
+            return false;
+        
+        return parent.IsLive();
+    }
     
     void Draw(iCameraPane display, Object3D /*Composite*/ root, boolean selected, boolean blocked)
     {
@@ -5640,7 +5653,7 @@
             support = support;
         
         //boolean usecalllists = IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !link2master); // !(this instanceof cSpring) && !(this instanceof BezierPatch);
-        boolean usecalllists = false; // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch);
+        boolean usecalllists = IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch);
         
         if (!usecalllists && bRep != null && bRep.displaylist > 0)
         {

--
Gitblit v1.6.2