diff --git a/js/models/Lattice.js b/js/models/Lattice.js index 6a76406029810992455c8cf7437230ee1d7165e8..3acecb4ba37fe95b3b74dccf111699bebe5b3d3b 100644 --- a/js/models/Lattice.js +++ b/js/models/Lattice.js @@ -36,6 +36,7 @@ Lattice = Backbone.Model.extend({ //bind events this.listenTo(this, "change:scale", this._scaleDidChange); + this.listenTo(this, "change:gikLength", this._gikLengthDidChange); this.listenTo(options.appState, "change:cellMode", this._updateForMode); this.listenTo(this, "change:partType", this._updatePartType); this.listenTo(this, "change:cellType change:connectionType", this._updateLatticeType); @@ -369,6 +370,10 @@ Lattice = Backbone.Model.extend({ dmaGlobals.three.render(); }, + _gikLengthDidChange: function(){ + if (this.get("highlighter").updateGikLength) this.get("highlighter").updateGikLength(this.get("scale")); + }, + previewScaleChange: function(scale){ this.get("basePlane").updateScale(scale); }, diff --git a/js/threeViews/Highlighter.js b/js/threeViews/Highlighter.js index 2f448669733d4772e9cf23d9ac02432fe339a083..abbda29d50a36c92550257c6eee8403decc8f3a1 100644 --- a/js/threeViews/Highlighter.js +++ b/js/threeViews/Highlighter.js @@ -56,6 +56,7 @@ Highlighter = Backbone.View.extend({ this.highlightedObject = null; this.index = null; this.direction = null; + this.position = null; this.hide(); }, @@ -69,6 +70,7 @@ Highlighter = Backbone.View.extend({ var highlightedPos = highlighted.myParent.calcHighlighterPosition(intersection.face, intersection.point); this.index = highlightedPos.index; + this.position = highlightedPos.position; if (!highlightedPos.direction) {//may be hovering over a face that we shouldn't highlight this.hide(); return; @@ -230,6 +232,13 @@ GIKHighlighter = Highlighter.extend({ this.mesh.rotation.set(0, 0,0); this.mesh.translateX(-this.mesh.scale.x/2+this.mesh.scale.z/2); } + }, + + updateGikLength: function(scale){ + this.updateScale(scale); + this._setPosition(this.position, this.direction);//position of center point + this._setRotation(this.direction, this.index); + dmaGlobals.three.render(); } });