diff --git a/js/cells/DMACell.js b/js/cells/DMACell.js index 7adc5cbafeb4099c2720d30b9c8e14b9a2fd4d97..2575f0f68cb5471e26a2cddc53ba908be8c7af86 100644 --- a/js/cells/DMACell.js +++ b/js/cells/DMACell.js @@ -156,7 +156,7 @@ DMACell.prototype.destroy = function(){ this.destroyStarted = true; if (this.object3D) { if (this.superCell) this.object3D.parent.remove(this.object3D); - else if (this.indices) globals.three.sceneRemove(this.object3D, "cell"); + if (this.indices) globals.three.sceneRemove(this.object3D, "cell"); this.object3D.myParent = null; // this.object3D.dispose(); // geometry.dispose(); diff --git a/js/lattice/Lattice.js b/js/lattice/Lattice.js index 79fa84da8838aad1faffb4fc7ef4cdda44b81b29..9c05d63369cf39cc22943404ada26ff72026bdda 100644 --- a/js/lattice/Lattice.js +++ b/js/lattice/Lattice.js @@ -376,6 +376,8 @@ Lattice = Backbone.Model.extend({ _updateLatticeType: function(arg1, arg2, arg3, loadingFromFile){//do not clear cells if loading from file (cells array contains important metadata) + if (this.previous("connectionType") == "gik") this.clearCells(); + this._setToDefaultsSilently(); this._setDefaultCellMode(); diff --git a/js/models/ThreeModel.js b/js/models/ThreeModel.js index 809f598b554e7292066b9d24034f4da2a11c22b9..4c96beec559ac1ae6159243cd7ca013d621ef69c 100644 --- a/js/models/ThreeModel.js +++ b/js/models/ThreeModel.js @@ -11,7 +11,7 @@ function ThreeModel(){ //store all meshes to highlight var cells = []; - var parts = []; +// var parts = []; var basePlane = []; var animationLoopRunning = false; @@ -63,7 +63,7 @@ function ThreeModel(){ cells.push(child.children[0]); }); } else if (type == "part"){//todo change this - parts.push(object); +// parts.push(object); } else if (type == "basePlane"){ basePlane.push(object); } @@ -71,36 +71,25 @@ function ThreeModel(){ function sceneRemove(object, type){ - var objectToRemove = getParentObject(object); - if (type == "cell"){ - cells.splice(cells.indexOf(objectToRemove.children[0]), 1); + cells.splice(cells.indexOf(object.children[0]), 1); } else if (type == "part"){ - parts.splice(parts.indexOf(objectToRemove), 1); +// parts.splice(parts.indexOf(object), 1); } else if (type == "basePlane"){ basePlane.splice(0, basePlane.length);//delete array without removing reference } - scene.remove(objectToRemove); + scene.remove(object); } function removeAllCells(){ _.each(cells, function(cell){ - var objectToRemove = getParentObject(cell); - scene.remove(objectToRemove); - }); - _.each(parts, function(part){ - scene.remove(part); + scene.remove(cell); }); +// _.each(parts, function(part){ +// scene.remove(part); +// }); cells.splice(0, cells.length); - parts.splice(0, parts.length); - } - - function getParentObject(object){ - var objectToRemove = object; - if (object.parent && object.parent.type != "Scene") { - objectToRemove = object.parent; - } - return objectToRemove; +// parts.splice(0, parts.length); } function startAnimationLoop(){ @@ -144,7 +133,7 @@ function ThreeModel(){ domElement: renderer.domElement, camera: camera, cells: cells, - parts: parts, +// parts: parts, basePlane: basePlane, removeAllCells: removeAllCells } diff --git a/js/threeViews/ThreeView.js b/js/threeViews/ThreeView.js index 779d9a69f2a335b70e66ad0c9c4f0a1043284c13..5661095bad1c426f2c92d4e74a400b366704fd9f 100644 --- a/js/threeViews/ThreeView.js +++ b/js/threeViews/ThreeView.js @@ -113,14 +113,14 @@ ThreeView = Backbone.View.extend({ } } - if (globals.appState.get("cellMode") == "part"){//additionally check for part intersections in part mode - var partIntersections = this.mouseProjection.intersectObjects(this.model.parts, false); - if (partIntersections.length == 0) { - this._setNoPartIntersections(); - return; - } - this._handlePartIntersections(partIntersections, intersections[0].distance); - } +// if (globals.appState.get("cellMode") == "part"){//additionally check for part intersections in part mode +// var partIntersections = this.mouseProjection.intersectObjects(this.model.parts, false); +// if (partIntersections.length == 0) { +// this._setNoPartIntersections(); +// return; +// } +// this._handlePartIntersections(partIntersections, intersections[0].distance); +// } }, ////////////////////////////////////////////////////////////////////////////////