From 89da025f40680d9cea46f2b0a7c8c6829a0d0451 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Sun, 12 Apr 2015 19:37:37 -0400 Subject: [PATCH] Height fields. --- Object3D.java | 61 +++++++++++++++++++++--------- 1 files changed, 43 insertions(+), 18 deletions(-) diff --git a/Object3D.java b/Object3D.java index 1b4f39c..8f3990d 100644 --- a/Object3D.java +++ b/Object3D.java @@ -3717,7 +3717,7 @@ boolean getCentroid(cVector centroid, boolean xform) { - assert(false); +// for speaker assert(false); if (blockloop) return false; @@ -4515,16 +4515,28 @@ Object3D GetFileRoot() { + if (overflow) + return null; + + overflow = true; + + Object3D pfr = null; + if (parent == null && fileparent == null) - return this; + pfr = this; if (parent == null && fileparent != null) // V4.gfd??? - return fileparent; + pfr = fileparent; - if (parent == null) - return this; + if (pfr == null && parent == null) + pfr = this; - return parent.GetFileRoot(); + if (pfr == null) + pfr = parent.GetFileRoot(); + + overflow = false; + + return pfr; } cTreePath GetPath() @@ -5280,7 +5292,7 @@ if (name != null && name.contains("sclera")) name = name; - if (this instanceof CheckerIG) + if (this instanceof Checker) return; if (display.drawMode == display.SHADOW && PASSTEST) @@ -7735,8 +7747,15 @@ info.pane.repaint(); } + boolean overflow = false; + void TransformToWorld(cVector out) // , cVector out) { + if (overflow) + return; + + overflow = true; + // june 2013 ??? assert (in == out); cVector in = out; if (toParent != null && !(this instanceof Texture || this instanceof TextureNode)) @@ -7753,6 +7772,8 @@ { (parent!=null?parent:fileparent).TransformToWorld(out); //, out); } + + overflow = false; } void TransformToLocal(cVector out) //, cVector out) @@ -7995,19 +8016,22 @@ max = new cVector(); } - Object3D sourcenode = GetFileRoot(); - - if (!sourcenode.name.contains("rclab")) + if (false) // Can crawl!! { - getBounds(min, max, true); + Object3D sourcenode = GetFileRoot(); - if (min.y != Double.POSITIVE_INFINITY && min.y > 2) + if (sourcenode != null && !sourcenode.name.contains("rclab")) { -// sourcenode.getBounds(min, max, true); - sourcenode.getBounds(v0, v1, true); -// sourcenode.toParent = sourcenode.toParent; -// get(0).toParent = get(0).toParent; -// sourcenode.GlobalTransform(); + getBounds(min, max, true); + + if (min.y != Double.POSITIVE_INFINITY && min.y > 2) + { + // sourcenode.getBounds(min, max, true); + sourcenode.getBounds(v0, v1, true); + // sourcenode.toParent = sourcenode.toParent; + // get(0).toParent = get(0).toParent; + // sourcenode.GlobalTransform(); + } } } @@ -8016,7 +8040,8 @@ if (support != null) { assert(bRep != null); - GraphreeD.Assert(support.bRep == bRep.support); + if (!(support instanceof GenericJoint)) // support.bRep != null) + GraphreeD.Assert(support.bRep == bRep.support); } else { -- Gitblit v1.6.2