diff --git a/js/simulation/electronics/eSim.js b/js/simulation/electronics/eSim.js index f6d086e7762a8bfd27b8795d82e71058315f9031..8ea1fee2988ed1f130d1343833d25d112056dad8 100644 --- a/js/simulation/electronics/eSim.js +++ b/js/simulation/electronics/eSim.js @@ -3,7 +3,7 @@ */ -define(['underscore', 'backbone'], function(_, Backbone){ +define(['underscore', 'backbone', 'threeModel'], function(_, Backbone, three){ var eSim = Backbone.Model.extend({ @@ -35,9 +35,9 @@ define(['underscore', 'backbone'], function(_, Backbone){ }, _hideAllFields: function(){ - if (this.get("electricField")) this.get("electricField").hide(); - if (this.get("chargeField")) this.get("chargeField").hide(); - if (this.get("capacitanceField")) this.get("capacitanceField").hide(); + if (this.get("electricField")) this.get("electricField").hide(true); + if (this.get("chargeField")) this.get("chargeField").hide(true); + if (this.get("capacitanceField")) this.get("capacitanceField").hide(true); }, _refreshVisibleField: function(){ @@ -45,10 +45,11 @@ define(['underscore', 'backbone'], function(_, Backbone){ var height = this.get("simZHeight"); var visibleSim = this.get("visibleStaticSim"); if (visibleSim == "none") { + three.render(); console.warn("no visible simulation selected"); return; } - this.get(visibleSim).show(height); + if (this.get(visibleSim)) this.get(visibleSim).show(height); } diff --git a/js/simulation/electronics/eSimField.js b/js/simulation/electronics/eSimField.js index 972d52d3bb5d216dba0429276e7aba366cfde4ed..d584587037912bc5d5a111585e6fdb16f14808e8 100644 --- a/js/simulation/electronics/eSimField.js +++ b/js/simulation/electronics/eSimField.js @@ -5,14 +5,14 @@ //hold and display data for various fields -define(['underscore', 'threeModel'], function(_, threeModel){ +define(['underscore', 'threeModel'], function(_, three){ function ESimField(data, offset, resolution, height){ this._object3D = new THREE.Object3D(); this._setData(data, offset, resolution, height); - threeModel.sceneAdd(this._object3D); + three.sceneAdd(this._object3D); this.hide(); } @@ -75,11 +75,12 @@ define(['underscore', 'threeModel'], function(_, threeModel){ this._setObject3DPosition(this._offset, this._resolution, height); this._object3D.visible = true; - threeModel.render(); + three.render(); }; - ESimField.prototype.hide = function(){ + ESimField.prototype.hide = function(noRender){ this._object3D.visible = false; + if (!noRender) three.render(); }; ESimField.prototype._loop = function(data, callback){ @@ -94,7 +95,7 @@ define(['underscore', 'threeModel'], function(_, threeModel){ ESimField.prototype.destroy = function(){ this._destroyData(); - threeModel.sceneRemove(this._object3D); + three.sceneRemove(this._object3D); this._object3D = null; };