From 13c45a8d77eec6b6e0eaafd1aad39ff136724bf7 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Tue, 11 Aug 2015 12:56:07 -0400 Subject: [PATCH] arrows move up and down e sim --- js/models/AppState.js | 14 +++++++++++++- js/simulation/electronics/LatticeEsim.js | 3 +-- js/simulation/electronics/eSim.js | 6 ++++++ js/simulation/electronics/eSimField.js | 5 +++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/js/models/AppState.js b/js/models/AppState.js index 0a4a7c1c..a1271a8e 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -157,7 +157,7 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu this.downKeys[e.keyCode] = true; } else this.downKeys[e.keyCode] = false; - // console.log(e); +// console.log(e); // console.log(e.keyCode); switch(e.keyCode){ case 8://delete key - causes back nav in chrome, super annoying @@ -230,6 +230,18 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu case 90://z - decrease supercell index if (state) this.set("superCellIndex", this._decrementSuperCellIndex("z", this.get("superCellIndex").clone())); break; + case 38://up arrow + if (!state || this.get("currentNav") != "electronicNavSim") return; + require(['eSim'], function(eSim){ + eSim.setZSimHeight(eSim.get("simZHeight")+1); + }); + break; + case 40://down arrow + if (!state || this.get("currentNav") != "electronicNavSim") return; + require(['eSim'], function(eSim){ + eSim.setZSimHeight(eSim.get("simZHeight")-1); + }); + break; default: break; } diff --git a/js/simulation/electronics/LatticeEsim.js b/js/simulation/electronics/LatticeEsim.js index 7df2d321..54724a79 100644 --- a/js/simulation/electronics/LatticeEsim.js +++ b/js/simulation/electronics/LatticeEsim.js @@ -188,8 +188,7 @@ define(['lattice', 'appState', 'three', 'threeModel', 'numeric', 'eSim', 'eSimFi } else { eSim.set("chargeField", new ESimField(chargeMat, offset, resolution, eSim.get("simZHeight"), dataRange)); } - eSim.set("visibleStaticSim", "chargeField");//will cause render -// -10*(P15+Q14+R15+Q16-4*Q15) +// eSim.set("visibleStaticSim", "chargeField");//will cause render }, diff --git a/js/simulation/electronics/eSim.js b/js/simulation/electronics/eSim.js index e66f1a79..b72432b1 100644 --- a/js/simulation/electronics/eSim.js +++ b/js/simulation/electronics/eSim.js @@ -35,6 +35,12 @@ define(['underscore', 'backbone', 'threeModel'], function(_, Backbone, three){ }, + setZSimHeight: function(height){ + if (height < 0) return; + var field = this.get(this.get("visibleStaticSim")); + if (field && height<field.getMaxHeight()) this.set("simZHeight", height); + }, + _hideAllFields: function(){ if (this.get("rawPotentialField")) this.get("rawPotentialField").hide(); if (this.get("potentialField")) this.get("potentialField").hide(); diff --git a/js/simulation/electronics/eSimField.js b/js/simulation/electronics/eSimField.js index 7659963b..802f3a5a 100644 --- a/js/simulation/electronics/eSimField.js +++ b/js/simulation/electronics/eSimField.js @@ -30,6 +30,11 @@ define(['underscore', 'threeModel'], function(_, three){ this._threeObjects = this._createThreeObjects(data, offset, 1/resolution, height, this._object3D); }; + ESimField.prototype.getMaxHeight = function(){ + if (!this._data) return 0; + return this._data[0][0].length; + }; + ESimField.prototype._setObject3DPosition = function(offset, resolution, height){ this._object3D.position.set(offset.x, offset.y, offset.z+height/resolution); }; -- GitLab