From 547c9203ab5d8e4bee36d1cbb453dfa36bbec4ef Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Tue, 27 Aug 2019 23:45:18 -0400 Subject: [PATCH] Test has big data. --- Object3D.java | 44 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 38 insertions(+), 6 deletions(-) diff --git a/Object3D.java b/Object3D.java index 05d5865..87058be 100644 --- a/Object3D.java +++ b/Object3D.java @@ -33,7 +33,7 @@ String skyboxname; String skyboxext; - Object3D versionlist[]; + Object3D[] versionlist; int versionindex = -1; java.util.Hashtable<java.util.UUID, Object3D> versiontable; // = new java.util.Hashtable<java.util.UUID, Object3D>(); @@ -190,8 +190,39 @@ } } + boolean HasBigData() + { + if (blockloop) + return false; + + if (bRep != null) + { + return true; + } + + blockloop = true; + + for (int i = 0; i < Size(); i++) + { + Object3D child = (Object3D) get(i); + if (child == null) + continue; + if (child.HasBigData()) + { + blockloop = false; + return true; + } + } + + blockloop = false; + return false; + } + void ExtractBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) { + if (blockloop) + return; + Object3D o; boolean isnew = false; @@ -215,7 +246,7 @@ hashtable.put(GetUUID(), o); } - if (!blockloop) + //if (!blockloop) { blockloop = true; @@ -227,7 +258,7 @@ blockloop = false; } - if (isnew) + //if (isnew) ExtractBigData(o); } @@ -338,15 +369,15 @@ void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) { + if (blockloop) + return; + if (!hashtable.containsKey(GetUUID())) return; Object3D o = hashtable.get(GetUUID()); RestoreBigData(o); - - if (blockloop) - return; blockloop = true; @@ -363,6 +394,7 @@ void RestoreBigData(Object3D o) { //System.err.println("RestoreBigData : " + this + " <-- " + o); + Grafreed.Assert(this.bRep == null); this.bRep = o.bRep; if (this.support != null && o.transientrep != null) -- Gitblit v1.6.2