From bf2ba5152b4f343212d6f25210b370c4bb50a824 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Tue, 3 Mar 2015 11:28:31 -0500 Subject: [PATCH] more efficient scene clear --- js/models/ThreeModel.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/js/models/ThreeModel.js b/js/models/ThreeModel.js index ee30034f..39768f44 100644 --- a/js/models/ThreeModel.js +++ b/js/models/ThreeModel.js @@ -66,10 +66,7 @@ function ThreeModel(){ function sceneRemove(object, type){ - var objectToRemove = object; - if (object.parent && object.parent.type != "Scene") { - objectToRemove = object.parent; - } + var objectToRemove = getParentObject(object); if (type == "cell"){ cells.splice(cells.indexOf(objectToRemove.children[0]), 1); @@ -85,18 +82,28 @@ function ThreeModel(){ function removeAllCells(){ _.each(cells, function(cell){ - sceneRemove(cell, "cell"); + var objectToRemove = getParentObject(cell); + scene.remove(objectToRemove); }); _.each(parts, function(part){ - sceneRemove(part, "part"); + scene.remove(part); }); _.each(invCells, function(cell){ - sceneRemove(cell, "inverseCell"); + scene.remove(cell); }); cells.splice(0, cells.length); + invCells.splice(0, invCells.length); parts.splice(0, parts.length); } + function getParentObject(object){ + var objectToRemove = object; + if (object.parent && object.parent.type != "Scene") { + objectToRemove = object.parent; + } + return objectToRemove; + } + function render(){ renderer.render(scene, camera); } -- GitLab