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