From 0eae8a92e04720f92a8690d5f436e483aa4f8056 Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Sat, 17 Jan 2015 13:05:28 -0500
Subject: [PATCH] listento insted of bind, simplifying code

---
 js/main.js                |  7 ++++---
 js/models/fillGeometry.js |  2 +-
 js/persistentWorkers.js   |  1 -
 js/views/importView.js    |  2 +-
 js/views/threeView.js     | 24 ++++++++++++++----------
 5 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/js/main.js b/js/main.js
index e322e127..094b51c6 100644
--- a/js/main.js
+++ b/js/main.js
@@ -5,22 +5,23 @@
 
 $(function(){
 
+    window.workers = persistentWorkers(8);
+
     three = new ThreeView();
 
     //init models and views
     var fillGeometry = new FillGeometry();//singleton
+    three.setFillGeometry(fillGeometry);
     new ImportView({model: fillGeometry});
 
     lattice = new Lattice();
 
 
-    three.setFillGeometry(fillGeometry);
 
 
-    //window.fillGeometry.set({geometry:"stuff"});
 
     setupNavBar();
-    workers = persistentWorkers(8);
+
 
 
 
diff --git a/js/models/fillGeometry.js b/js/models/fillGeometry.js
index 4ccbd281..c21c220a 100644
--- a/js/models/fillGeometry.js
+++ b/js/models/fillGeometry.js
@@ -48,7 +48,7 @@ FillGeometry = Backbone.Model.extend({
         var helper = new THREE.BoundingBoxHelper(this.get("mesh"), 0x000000);
         this.set("boundingBoxHelper", helper);
         helper.update();
-        three.scene.add(helper.object);
+//        three.scene.add(helper.object);
         this.trigger("change:boundingBoxHelper");
     },
 
diff --git a/js/persistentWorkers.js b/js/persistentWorkers.js
index 31d65056..23349ec1 100644
--- a/js/persistentWorkers.js
+++ b/js/persistentWorkers.js
@@ -105,5 +105,4 @@ function persistentWorkers(numWorkers){
     }
 
     return {map:map, allWorkers:allWorkers};//return all public methods and vars
-
 }
\ No newline at end of file
diff --git a/js/views/importView.js b/js/views/importView.js
index e0b2e212..a1b023cd 100644
--- a/js/views/importView.js
+++ b/js/views/importView.js
@@ -17,7 +17,7 @@ ImportView = Backbone.View.extend({
     initialize: function(){
 
         _.bindAll(this, "render", "onMeshLoad");
-        this.model.bind("change:filename change:boundingBoxHelper", this.render);//boundingBoxHelper covers orientation
+        this.listenTo(this.model, "change:filename change:boundingBoxHelper", this.render);//boundingBoxHelper covers orientation
 
         this.render();
     },
diff --git a/js/views/threeView.js b/js/views/threeView.js
index a71cc965..8684c4f5 100644
--- a/js/views/threeView.js
+++ b/js/views/threeView.js
@@ -1,4 +1,6 @@
-
+/**
+ * Created by aghassaei on 1/16/15.
+ */
 
 ThreeView = Backbone.View.extend({
 
@@ -10,7 +12,7 @@ ThreeView = Backbone.View.extend({
 
     initialize: function(){
 
-        _.bindAll(this, "render", "animate", "onWindowResize");
+        _.bindAll(this, "render", "animate", "onWindowResize", "clearAll");
 
         this.camera.position.z = 500;
         this.scene.fog = new THREE.FogExp2( 0xcccccc, 0.002);
@@ -55,14 +57,16 @@ ThreeView = Backbone.View.extend({
         }
     },
 
-    setFillGeometry: function(fillGeometry){
-        var self = this;
-        fillGeometry.bind("change:geometry", function(){
-            if (fillGeometry.previous("mesh")) self.scene.remove(fillGeometry.previous("mesh"));
-            self.render();
-        });
-        this.scene.add(fillGeometry.get("mesh"));
-        fillGeometry.bind("change:mesh change:orientation", this.render);
+    setFillGeometry: function(fillGeometry){//call this once
+        this.fillGeometry = fillGeometry;
+        this.listenTo(fillGeometry, "change:geometry", this.replaceFillGeometry);
+        this.listenTo(fillGeometry, "change:orientation", this.render);
+        this.replaceFillGeometry();
+    },
+
+    replaceFillGeometry: function(){
+        if (this.fillGeometry.previous("mesh")) this.scene.remove(this.fillGeometry.previous("mesh"));
+        this.scene.add(this.fillGeometry.get("mesh"));
         this.render();
     },
 
-- 
GitLab