From f868664f7e7626f651e6ade9c9f6863851ef43b7 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 06 Nov 2019 23:12:57 -0500 Subject: [PATCH] Dangerous "reset". --- Composite.java | 48 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 32 insertions(+), 16 deletions(-) diff --git a/Composite.java b/Composite.java index 32ee24c..9301234 100644 --- a/Composite.java +++ b/Composite.java @@ -543,33 +543,49 @@ void SoftTouch() { - super.SoftTouch(); - for (int i = 0; i < Children().size(); i++) + if (blockloop) { - Object3D obj = (Object3D) Children().reserve(i); - - if (obj == null) - continue; - - if (obj.material == null) - { - obj.SoftTouch(); - } - Children().release(i); + return; } + + blockloop = true; + + super.SoftTouch(); + + for (int i = 0; i < Size(); i++) + { + Object3D child = (Object3D) get(i); + if (child == null) + continue; + if (child.material == null) + { + child.SoftTouch(); + } + } + + blockloop = false; } void HardTouch() { - super.HardTouch(); - for (int i = 0; i < Children().size(); i++) + if (blockloop) { - Object3D child = (Object3D) Children().reserve(i); + return; + } + + blockloop = true; + + super.HardTouch(); + + for (int i = 0; i < Size(); i++) + { + Object3D child = (Object3D) get(i); if (child == null) continue; child.HardTouch(); - Children().release(i); } + + blockloop = false; } // void ClearMaterial() -- Gitblit v1.6.2