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