diff --git a/js/fea/DmaCell.js b/js/fea/DmaCell.js index f0af65e22aa6d9b9cad135d1a8a1814aa22656cf..bdfaae56cf175c0f9f4b80a09f2c2af6d44a37ca 100644 --- a/js/fea/DmaCell.js +++ b/js/fea/DmaCell.js @@ -55,7 +55,8 @@ DMACell.prototype._setCellMeshVisibility = function(visibility){ this.cellMesh.visible = visibility; }; -DMACell.prototype.updateForScale = function(scale){ +DMACell.prototype.updateForScale = function(){ + var scale = this.getScale(); this.cellMesh.scale.set(scale, scale, scale); var position = this._calcPosition(scale, this.indices); this._setMeshPosition(this.cellMesh, position); @@ -114,7 +115,7 @@ DMACell.prototype.destroy = function(){ function DMASideOctaCell(mode, indices, scale, lattice){ - DMACell.call(this, mode, indices, scale, lattice); + DMACell.call(this, mode, indices, scale*(1-lattice.get("columnSeparation")), lattice); } DMASideOctaCell.prototype = Object.create(DMACell.prototype); @@ -130,6 +131,10 @@ DMACell.prototype.destroy = function(){ return position; }; + DMACell.prototype.getScale = function(){ + return this.lattice.get("scale")*(1-this.lattice.get("columnSeparation")); + }; + DMASideOctaCell.prototype._initParts = function(zIndex){ var parts = []; for (var i=0;i<3;i++){ diff --git a/js/menus/PartMenuView.js b/js/menus/PartMenuView.js index 0cd12c3e46c19e6c63191265020685c717f4bcbc..ac6a8c8a67daf7240959f0ae2aa4b77ea66ee74a 100644 --- a/js/menus/PartMenuView.js +++ b/js/menus/PartMenuView.js @@ -20,7 +20,7 @@ PartMenuView = Backbone.View.extend({ }, _changeColSeparation: function(e){ - this.model.set("columnSeparation", $(e.target).val()); + this.model.set("columnSeparation", $(e.target).val()/100); }, render: function(){ @@ -44,7 +44,7 @@ PartMenuView = Backbone.View.extend({ <% }); %>\ </ul>\ </div><br/><br/>\ - Column Separation: <input id="columnSepSlider" data-slider-id="ex1Slider" type="text" data-slider-min="0" data-slider-max="50" data-slider-step="0.1" data-slider-value="<%= scale %>"/>\ + Column Separation: <input id="columnSepSlider" data-slider-id="ex1Slider" type="text" data-slider-min="0" data-slider-max="35" data-slider-step="0.1" data-slider-value="<%= columnSeparation*100 %>"/>\ ') }); \ No newline at end of file diff --git a/js/models/BasePlane.js b/js/models/BasePlane.js index 4ec7eb79337bee1f679122de2633b42e56a92f1a..ec0ba7c5e4be9b9bc592c11a504c99ecec5ae564 100644 --- a/js/models/BasePlane.js +++ b/js/models/BasePlane.js @@ -30,7 +30,7 @@ BasePlane = Backbone.Model.extend({ updateColSeparation: function(colSep){ var geometry = this.get("mesh").geometry; - geometry.vertices = this._calcOctaFaceVertices(); + geometry.vertices = this._calcOctaFaceVertices(colSep); geometry.verticesNeedUpdate = true; }, @@ -69,11 +69,12 @@ BasePlane = Backbone.Model.extend({ } }, - _createOctaFaceMesh: function(){ + _createOctaFaceMesh: function(colSep){ + colSep = colSep || 0; var geometry = new THREE.Geometry(); geometry.dynamic = true; - geometry.vertices = this._calcOctaFaceVertices(0.2); + geometry.vertices = this._calcOctaFaceVertices(colSep); var faces = geometry.faces; var dimX = this.get("dimX"); diff --git a/js/models/Lattice.js b/js/models/Lattice.js index b2f7570ac1a4d30691e2763779972d20b813dd5a..b4b77df75c3decf3da77fb92adae0edb8678f3ca 100644 --- a/js/models/Lattice.js +++ b/js/models/Lattice.js @@ -214,7 +214,7 @@ Lattice = Backbone.Model.extend({ var scale = this.get("scale"); this.get("basePlane").updateScale(scale); this._iterCells(this.get("cells"), function(cell){ - if (cell) cell.updateForScale(scale); + if (cell) cell.updateForScale(); }); window.three.render(); }, @@ -259,16 +259,19 @@ OctaFaceLattice = Lattice.extend({ _initialize: function(){ - this.set("columnSeparation", 0.2); - //bind events this.listenTo(this, "change:columnSeparation", this._changeColSeparation); + + this.set("columnSeparation", 0.2); }, _changeColSeparation: function(){ var colSep = this.get("columnSeparation"); - console.log(colSep); this.get("basePlane").updateColSeparation(colSep); + this._iterCells(this.get("cells"), function(cell){ + if (cell) cell.updateForScale(); + }); + window.three.render(); }, addCellAtPosition: function(absPosition){ @@ -287,7 +290,7 @@ OctaFaceLattice = Lattice.extend({ }, _makeCellForLatticeType: function(indices, scale){ - return new DMASideOctaCell(this.get("cellMode"), indices, scale, this); + return new DMASideOctaCell(this.get("cellMode"), indices, scale*(1.0-this.get("columnSeparation")), this); } });