diff --git a/js/cells/DMACell.js b/js/cells/DMACell.js index e8bef73ae1995a9cafc4106e919ac6e8478ea5cb..e24a4b400b27cfc55d60c7198f38e7e46688939e 100644 --- a/js/cells/DMACell.js +++ b/js/cells/DMACell.js @@ -3,8 +3,8 @@ */ -define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'], - function(_, THREE, three, lattice, appState, globals){ +define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals', 'materials'], + function(_, THREE, three, lattice, appState, globals, materials){ var wireframeMaterial = new THREE.MeshBasicMaterial({color:0x000000, wireframe:true}); @@ -155,7 +155,7 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'], DMACell.prototype.setDeleteMode = function(state){ var material; - if (state) material = globals.materials.deleteMaterial; + if (state) material = materials.deleteMaterial; else material = this.getMaterial(true); if (!material) return;//cell may be deleted by now if (this.object3D.children[0].material == material) return; @@ -222,18 +222,20 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'], }; DMACell.prototype.getMaterial = function(returnTHREEObject){ - if (!this.material) return null; - var materialClass = appState.get("materialClass"); - if (!globals.materials[materialClass]) { - console.warn("no material class found of type " + materialClass); + if (!this.material) { + console.warn("no material type set for cell"); return null; } - var material = globals.materials[materialClass].materials[this.material]; - if (!material){ - console.warn("no material "+ this.material + " found for class "+ materialClass); + if (!returnTHREEObject) return this.material; + if (!materials[this.material]) { + console.warn("no material object found of type " + this.materials); return null; } - return material; + if (!materials[this.material].threeMaterial){ + console.warn("no three material object found for type "+ this.material); + return null; + } + return materials[this.material].threeMaterial; }; DMACell.prototype.setOpacity = function(opacity){ @@ -372,7 +374,7 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'globals'], var data = { material: this.material }; - if (globals.materials.compositeMaterials[this.material]) return data;//material definition in material composites + if (materials[this.material].cells) return data;//material definition in material composites if (this.cells) data.cells = this.cells; return data; }; diff --git a/js/cells/supercells/CompositeCell.js b/js/cells/supercells/CompositeCell.js index 743ac1837681a2ed82b3e5b4fa859c7948cd0fae..867326d5844280e829c94f8ebedcde746d15616b 100644 --- a/js/cells/supercells/CompositeCell.js +++ b/js/cells/supercells/CompositeCell.js @@ -3,8 +3,8 @@ */ -define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell', 'globals'], - function(_, THREE, three, lattice, appState, DMASuperCell, globals){ +define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell', 'globals', 'materials'], + function(_, THREE, three, lattice, appState, DMASuperCell, globals, materials){ CompositeCell = function(json, superCell){ DMASuperCell.call(this, json, superCell); @@ -12,7 +12,7 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell', CompositeCell.prototype = Object.create(DMASuperCell.prototype); CompositeCell.prototype._getGeometry = function(){ - var dimensions = globals.materials.compositeMaterials[this.material].dimensions; + var dimensions = materials[this.material].dimensions; var geo = new THREE.BoxGeometry(dimensions.x*lattice.xScale(), dimensions.y*lattice.yScale(), dimensions.z*lattice.zScale()); geo.applyMatrix(new THREE.Matrix4().makeTranslation(dimensions.x/2-0.5, dimensions.y/2-0.5, dimensions.z/2-0.5)); return geo; @@ -26,22 +26,5 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'superCell', return wireframe; }; - CompositeCell.prototype.getMaterial = function(returnTHREEObject){ - if (!this.material) return null; - var material = globals.materials.compositeMaterials[this.material]; - if (!material){ - console.warn("no material "+ this.material + " found"); - return null; - } - if (returnTHREEObject){ - if (material.material) return material.material; - else { - material.material = new THREE.MeshLambertMaterial({color:material.color, shading:THREE.FlatShading}); - return material.material; - } - } - return material; - }; - return CompositeCell; }); \ No newline at end of file diff --git a/js/lattice/CompositeEditorLattice.js b/js/lattice/CompositeEditorLattice.js index 38cb246f50a5a0b21e9b12c8ff021fbabbaaa56e..584de77c6c4f4bc7a36d01cd43998b0591b72de3 100644 --- a/js/lattice/CompositeEditorLattice.js +++ b/js/lattice/CompositeEditorLattice.js @@ -3,8 +3,8 @@ */ -define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'threeModel', 'latticeBase'], - function(_, Backbone, appState, globals, plist, THREE, three, LatticeBase){ +define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'threeModel', 'latticeBase', 'materials'], + function(_, Backbone, appState, globals, plist, THREE, three, LatticeBase, materials){ function makeRandomColor(){ return '#' + Math.floor(Math.random()*16777215).toString(16); @@ -74,14 +74,14 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre cellsMax: this.get("cellsMax").clone(), dimensions: dimensions }; - if (!globals.materials.compositeMaterials[id]) globals.materials.compositeMaterials[id] = {}; - _.extend(globals.materials.compositeMaterials[id], data);//todo trigger change on all instances - if (globals.materials.compositeMaterials[id].material) globals.materials.compositeMaterials[id].material.color = new THREE.Color(this.get("color")); + if (!materials[id]) materials[id] = {}; + _.extend(materials[id], data);//todo trigger change on all instances + if (materials[id].threeMaterial) materials[id].threeMaterial.color = new THREE.Color(this.get("color")); }, deleteComposite: function(){ var id = this.get("id"); - delete globals.materials.compositeMaterials[id];//todo trigger change on all instances + delete materials[id];//todo check if being used first }, diff --git a/js/lattice/LatticeBase.js b/js/lattice/LatticeBase.js index 0bb1395a4e34017d87b4e195e5f19853061ee358..8f695957ae40e43b25d31274d121eca58189626a 100644 --- a/js/lattice/LatticeBase.js +++ b/js/lattice/LatticeBase.js @@ -50,7 +50,6 @@ define(['underscore', 'backbone', 'appState', 'globals', 'plist', 'three', 'thre } if (this._setDefaultCellMode) this._setDefaultCellMode(); - appState._loadMaterialClass(); var cellsMin = this.get("cellsMin"); var cellsMax = this.get("cellsMax"); diff --git a/js/main.js b/js/main.js index 412b73faf3386ba8b1565a2cfc19143259cdc80f..96ea032bee3627e6e6f691e7b8efb94bec0e0ef2 100644 --- a/js/main.js +++ b/js/main.js @@ -85,8 +85,6 @@ require.config({ //materials materials: 'materials/DMAMaterials', - electronicMaterials: 'materials/ElectronicMaterials', - mechanicalMaterials: 'materials/MechanicalMaterials', //UI navbar: 'menus/Navbar', diff --git a/js/materials/DMAMaterials.js b/js/materials/DMAMaterials.js index b65c5baed350ab958e40dcdc1699e820500525cd..0f662e1b48813baa34dc1058b2cb4c165962e7fc 100644 --- a/js/materials/DMAMaterials.js +++ b/js/materials/DMAMaterials.js @@ -2,8 +2,8 @@ * Created by aghassaei on 6/4/15. */ - -define(['underscore', 'three', 'appState', 'globals'], function(_, THREE, appState, globals){ +//everything is a top level material with a threeMaterial object +define(['underscore', 'three', 'appState', 'lattice', 'plist', 'threeModel'], function(_, THREE, appState, lattice, plist, three){ var materials = { deleteMaterial: { @@ -12,66 +12,63 @@ define(['underscore', 'three', 'appState', 'globals'], function(_, THREE, appSta } }; - _.extend(materials, Backbone.Events); + var listener = {}; + _.extend(listener, Backbone.Events); - materials.listenTo(appState, "change:realisticColorScheme", changeColorScheme); - materials.listenTo(appState, "change:materialClass", loadMaterialClass); + listener.listenTo(appState, "change:realisticColorScheme", changeColorScheme); + listener.listenTo(appState, "change:materialClass", loadMaterialClass); + listener.listenTo(lattice, "change:connectionType cellType", loadMaterialClass); + listener.listenTo(appState, "change:materialType", setMaterialDefaults); - globals.materials = materials; + loadMaterialClass(); function loadMaterialClass(){ var materialClass = appState.get("materialClass"); - var materialType = appState.get("materialType"); - if (!plist.allMaterials[materialClass].materialType) this.set("materialType", _.keys(plist.allMaterials[materialClass])[0], {silent:true});//set to default silently - if (globals.materials[materialClass]) return;//already loaded - require([materialClass + "Materials"], function(MaterialClass){ - globals.materials[materialClass] = MaterialClass; + var newDefaultType = _.keys(plist.allMaterials[materialClass])[0]; + if (!materials[newDefaultType]) _.extend(materials, parseClassFromDefinitions(plist.allMaterials[materialClass])); + if (!materials[newDefaultType]) console.warn("material type " + newDefaultType + " not in definition for " + materialClass); + appState.set("materialType", newDefaultType, {silent:true});//set to default silently + } + + function parseClassFromDefinitions(definitions){ + var newMaterials = {}; + var state = appState.get("realisticColorScheme"); + _.each(_.keys(definitions), function(key){ + newMaterials[key] = definitions[key]; + var color = getMaterialColorForState(state, definitions[key], key); + newMaterials[key].threeMaterial = makeMaterialObject(color); }); + return newMaterials; } function changeColorScheme(){ var state = appState.get("realisticColorScheme"); _.each(_.keys(materials), function(name){ var materialInfo = materials[name]; - - var color = materialInfo.color; - if (!color) console.warn("no color for material type " + name); - if (!state && materialInfo.altColor) color = materialInfo.altColor; - + var color = getMaterialColorForState(state, materialInfo, name); if (materialInfo.threeMaterial) materialInfo.threeMaterial.color = new THREE.Color(color); - else materialInfo.threeMaterial = new THREE.MeshLambertMaterial({color:color, shading:THREE.FlatShading}); + else materialInfo.threeMaterial = makeMaterialObject(color); }); + three.render(); } + function getMaterialColorForState(state, definition, key){ + var color = definition.color; + if (!color) console.warn("no color for material type " + key); + if (!state && definition.altColor) color = definition.altColor; + return color; + } - function DMAMaterials(materialList){ - this.materials = {}; - this.materialList = materialList; - this.changeMaterials(); + function makeMaterialObject(color){ + return new THREE.MeshLambertMaterial({color:color, shading:THREE.FlatShading}); } - DMAMaterials.prototype.changeMaterials = function(){ - var self = this; - var state = appState.get("realisticColorScheme"); - _.each(_.keys(self.materialList), function(materialName){ - var materialData = self.materialList[materialName]; - if (state) { - if (self.materials[materialName]) self.materials[materialName].color = new THREE.Color(materialData.color); - else self.materials[materialName] = new THREE.MeshLambertMaterial({color:materialData.color, shading:THREE.FlatShading}); - if (materialData.opacity){ - self.materials[materialName].transparent = true; - self.materials[materialName].opacity = materialData.opacity; - } else { - self.materials[materialName].transparent = false; - } - } - else { - if (self.materials[materialName]) self.materials[materialName].color = new THREE.Color(materialData.altColor); - else self.materials[materialName] = new THREE.MeshLambertMaterial({color:materialData.altColor, shading:THREE.FlatShading}); - self.materials[materialName].transparent = false; - } - }); - }; + function setMaterialDefaults(){ + var materialType = appState.get("materialType"); + if (!materials[materialType].dimensions) return; + appState.set("superCellRange", materials[materialType].dimensions.clone()); + appState.set("superCellIndex", new THREE.Vector3(0,0,0)); + } return materials; }); \ No newline at end of file diff --git a/js/materials/ElectronicMaterials.js b/js/materials/ElectronicMaterials.js deleted file mode 100644 index f867833105d46c95627e495121d27ff0be66e73d..0000000000000000000000000000000000000000 --- a/js/materials/ElectronicMaterials.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Created by aghassaei on 6/3/15. - */ - - -define(['underscore', 'three', 'appState', 'plist', 'materials'], function(_, THREE, appState, plist, DMAMaterials){ - - function ElectronicMaterials(){ - DMAMaterials.call(this, plist.allMaterials.electronic); - } - ElectronicMaterials.prototype = Object.create(DMAMaterials.prototype); - - return new ElectronicMaterials(); -}); \ No newline at end of file diff --git a/js/materials/MechanicalMaterials.js b/js/materials/MechanicalMaterials.js deleted file mode 100644 index 5cf3560dc8d4377c0a0e303a83f5dc53f98ee36a..0000000000000000000000000000000000000000 --- a/js/materials/MechanicalMaterials.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Created by aghassaei on 6/4/15. - */ - - -define(['underscore', 'three', 'appState', 'plist', 'materials'], function(_, THREE, appState, plist, DMAMaterials){ - - function MechanicalMaterials(){ - DMAMaterials.call(this, plist.allMaterials.mechanical); - } - MechanicalMaterials.prototype = Object.create(DMAMaterials.prototype); - - return new MechanicalMaterials(); -}); \ No newline at end of file diff --git a/js/menus/CompositeMenuView.js b/js/menus/CompositeMenuView.js index c753fc3c2f364d6ce669607335069057d63eecaa..19462ee339c4f45322ce7175d66eacb23bc188ab 100644 --- a/js/menus/CompositeMenuView.js +++ b/js/menus/CompositeMenuView.js @@ -2,7 +2,7 @@ * Created by aghassaei on 6/10/15. */ -define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], function($, _, MenuParentView, plist, lattice, globals){ +define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'materials'], function($, _, MenuParentView, plist, lattice, globals, materials){ var dimensions; @@ -80,7 +80,8 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu _makeTemplateJSON: function(){ return _.extend(this.model.toJSON(), plist, globals, lattice.compositeEditor.toJSON(), { - dimensions: dimensions + dimensions: dimensions, + materials: materials }); }, @@ -96,19 +97,19 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu Available Materials:<br/>\ <% _.each(_.keys(allMaterials[materialClass]), function(key){ %>\ <label class="radio colorSwatches">\ - <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ + <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ <div class="materialColorSwatch">\ <div style="background-color:<% if(realisticColorScheme){ %><%= allMaterials[materialClass][key].color %><% }else{ %><%= allMaterials[materialClass][key].altColor %><% } %>"></div>\ <span><%= allMaterials[materialClass][key].name %></span></div>\ </label>\ <% }); %>\ - <% _.each(_.keys(materials.compositeMaterials), function(key){ \ - if (key == id) return; %>\ + <% _.each(_.keys(materials), function(key){ \ + if (key == id || key.substr(0,5) != "super") return; %>\ <label class="radio colorSwatches">\ - <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ + <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ <div class="materialColorSwatch">\ - <div style="background-color:<% if(realisticColorScheme){ %><%= materials.compositeMaterials[key].color %><% }else{ %><%= materials.compositeMaterials[key].altColor %><% } %>"></div>\ - <span><%= materials.compositeMaterials[key].name %></span></div>\ + <div style="background-color:<% if(realisticColorScheme){ %><%= materials[key].color %><% }else{ %><%= materials[key].altColor %><% } %>"></div>\ + <span><%= materials[key].name %></span></div>\ </label>\ <% }); %><br/>\ <a id="finishComposite" href="#" class="btn btn-block btn-lg btn-success">Save Composite</a><br/>\ diff --git a/js/menus/MaterialMenuView.js b/js/menus/MaterialMenuView.js index 092fb0ac10fe501470383fde690418ea021b2cef..44a7b16860117307401aace1930ada364f2baf26 100644 --- a/js/menus/MaterialMenuView.js +++ b/js/menus/MaterialMenuView.js @@ -2,7 +2,7 @@ * Created by aghassaei on 2/25/15. */ -define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], function($, _, MenuParentView, plist, lattice, globals){ +define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals', 'materials'], function($, _, MenuParentView, plist, lattice, globals, materials){ return MenuParentView.extend({ @@ -27,7 +27,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu e.stopPropagation(); e.preventDefault(); var id = $(e.target).data("id"); - lattice.setToCompositeMode(id, globals.materials.compositeMaterials[id]); + lattice.setToCompositeMode(id, materials[id]); }, _latticeToComposite: function(e){ @@ -37,7 +37,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu }, _makeTemplateJSON: function(){ - return _.extend(lattice.toJSON(), this.model.toJSON(), plist, globals); + return _.extend(lattice.toJSON(), this.model.toJSON(), plist, globals, {materials:materials}); }, template: _.template('\ @@ -46,7 +46,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu <button data-toggle="dropdown" class="btn dropdown-toggle" type="button"><%= allMaterialClasses[materialClass] %><span class="caret"></span></button>\ <ul role="menu" class="dropdown-menu">\ <% _.each(_.keys(allMaterialClasses), function(key){ %>\ - <li><a class="lattice dropdownSelector" data-property="materialClass" data-value="<%= key %>" href="#"><%= allMaterialClasses[key] %></a></li>\ + <li><a class="appState dropdownSelector" data-property="materialClass" data-value="<%= key %>" href="#"><%= allMaterialClasses[key] %></a></li>\ <% }); %>\ </ul>\ </div><br/><br/>\ @@ -54,7 +54,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu Materials:<br/>\ <% _.each(_.keys(allMaterials[materialClass]), function(key){ %>\ <label class="radio colorSwatches">\ - <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ + <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ <div class="materialColorSwatch">\ <div style="background-color:<% if(realisticColorScheme){ %><%= allMaterials[materialClass][key].color %><% }else{ %><%= allMaterials[materialClass][key].altColor %><% } %>"></div>\ <span><%= allMaterials[materialClass][key].name %></span></div>\ @@ -71,15 +71,16 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'lattice', 'globals'], fu <% if ((cellType == "octa" && connectionType != "vertex") || cellType == "tetra"){ %>\ not available for this lattice type\ <% } else { %> \ - <% _.each(_.keys(materials.compositeMaterials), function(key){ %>\ + <% _.each(_.keys(materials), function(key){ \ + if (key.substr(0,5) != "super") return; %>\ <label class="radio colorSwatches">\ - <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio lattice"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ + <input type="radio" <%if (key == materialType){ %>checked<%}%> name="materialType" value="<%= key %>" data-toggle="radio" class="custom-radio appState"><span class="icons"><span class="icon-unchecked"></span><span class="icon-checked"></span></span>\ <div class="materialColorSwatch">\ - <div style="background-color:<% if(realisticColorScheme){ %><%= materials.compositeMaterials[key].color %><% }else{ %><%= materials.compositeMaterials[key].altColor %><% } %>"></div>\ - <span><%= materials.compositeMaterials[key].name %><a data-id="<%= key %>" class="editComposite">Settings...<a/></span></div>\ + <div style="background-color:<% if(realisticColorScheme){ %><%= materials[key].color %><% }else{ %><%= materials[key].altColor %><% } %>"></div>\ + <span><%= materials[key].name %><a data-id="<%= key %>" class="editComposite">Settings...<a/></span></div>\ </label>\ <% }); %><br/>\ - <% if (_.keys(materials.compositeMaterials).length > 0) { %>\ + <% if (_.keys(materials).length > 0) { %>\ Offset (xyz): <input data-property="superCellIndex" data-key="x" value="<%= superCellIndex.x %>" placeholder="X" class="form-control intInput appState" type="text">\ <input data-property="superCellIndex" data-key="y" value="<%= superCellIndex.y %>" placeholder="Y" class="form-control intInput appState" type="text">\ <input data-property="superCellIndex" data-key="z" value="<%= superCellIndex.z %>" placeholder="Z" class="form-control intInput appState" type="text"><br/><br/>\ diff --git a/js/models/AppState.js b/js/models/AppState.js index a1f5d8d3bbd3176c093bb65089cefc838700aaa9..9aaa851ba4ab0ba846faf46b0a54dcaeff086e0a 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -57,7 +57,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu this.listenTo(this, "change:currentTab", this._tabChanged); this.listenTo(this, "change:currentNav", this._navChanged); - this.listenTo(this, "change:realisticColorScheme", this._updateColorScheme); this.listenTo(this, "change:materialType", this._materialTypeChanged); this.downKeys = {};//track keypresses to prevent repeat keystrokeson hold @@ -108,15 +107,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu } }, - _updateColorScheme: function(){ - require(['globals'], function(globals){ - _.each(_.keys(globals.materials), function(materialClass){ - if (globals.materials[materialClass].changeMaterials) globals.materials[materialClass].changeMaterials(); - }); - three.render(); - }); - }, - _materialTypeChanged: function(){ var materialType = this.get("materialType"); //verify that correct class is in sync @@ -130,8 +120,6 @@ define(['underscore', 'backbone', 'threeModel', 'three', 'plist', 'globals'], fu } //composite material - this.set("superCellRange", globals.materials.compositeMaterials[materialType].dimensions.clone()); - this.set("superCellIndex", new THREE.Vector3(0,0,0)); require(['superCellHighlighter'], function(SuperCellHighlighter){ globals.highlighter = new SuperCellHighlighter(); }); diff --git a/js/models/Globals.js b/js/models/Globals.js index 8d73d057cbcf2f65630709252906d8226e7edc5f..4d0060a466dd9fa089c72fe035a7bad2f692c476 100644 --- a/js/models/Globals.js +++ b/js/models/Globals.js @@ -9,6 +9,5 @@ define([], function(){ return { baseplane: null, highlighter: null, - materials: null }; }); \ No newline at end of file