From 0c4e74bf92d1d243a6ce78aaeb56a22e0555f776 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Thu, 4 Jun 2015 12:26:23 -0700 Subject: [PATCH] materials parent class --- js/main.js | 1 + js/materials/DMAMaterials.js | 36 +++++++++++++++++++++++++++++ js/materials/ElectronicMaterials.js | 33 +++++++------------------- 3 files changed, 45 insertions(+), 25 deletions(-) create mode 100644 js/materials/DMAMaterials.js diff --git a/js/main.js b/js/main.js index ee74f6f6..64760189 100644 --- a/js/main.js +++ b/js/main.js @@ -66,6 +66,7 @@ require.config({ gikSuperCell: 'cells/supercells/GIKSuperCell', //materials + materials: 'materials/DMAMaterials', electronicMaterials: 'materials/ElectronicMaterials', //UI diff --git a/js/materials/DMAMaterials.js b/js/materials/DMAMaterials.js new file mode 100644 index 00000000..c4197ffb --- /dev/null +++ b/js/materials/DMAMaterials.js @@ -0,0 +1,36 @@ +/** + * Created by aghassaei on 6/4/15. + */ + + +define(['underscore', 'three', 'appState'], function(_, THREE, appState){ + + function DMAMaterials(materialList){ + this.materials = {}; + this.materialList = materialList; + this.changeMaterials(); + } + + DMAMaterials.prototype.changeMaterials = function(){ + var self = this; + _.each(_.keys(self.materialList), function(material){ + if (appState.get("realisticColorScheme")) { + if (self.materials[material]) self.materials[material].color = new THREE.Color(self.materialList[material].color); + else self.materials[material] = new THREE.MeshLambertMaterial({color:self.materialList[material].color}); + if (self.materialList[material].opacity){ + self.materials[material].transparent = true; + self.materials[material].opacity = self.materialList[material].opacity; + } else { + self.materials[material].transparent = false; + } + } + else { + if (self.materials[material]) self.materials[material].color = new THREE.Color(self.materialList[material].altColor); + else self.materials[material] = new THREE.MeshLambertMaterial({color:self.materialList[material].altColor}); + self.materials[material].transparent = false; + } + }); + }; + + return DMAMaterials; +}); \ No newline at end of file diff --git a/js/materials/ElectronicMaterials.js b/js/materials/ElectronicMaterials.js index 93d0dc58..fce8178b 100644 --- a/js/materials/ElectronicMaterials.js +++ b/js/materials/ElectronicMaterials.js @@ -3,34 +3,17 @@ */ -define(['underscore', 'three', 'appState', 'plist'], function(_, THREE, appState, plist){ +define(['underscore', 'three', 'appState', 'plist', 'materials'], function(_, THREE, appState, plist, DMAMaterials){ - var materials = {}; - var materialList = plist.allMaterialTypes.cube.gik; - - function changeMaterials(){ - _.each(_.keys(materialList), function(material){ - if (appState.get("realisticColorScheme")) { - if (materials[material]) materials[material].color = new THREE.Color(materialList[material].color); - else materials[material] = new THREE.MeshLambertMaterial({color:materialList[material].color}); - if (materialList[material].opacity){ - materials[material].transparent = true; - materials[material].opacity = materialList[material].opacity; - } else { - materials[material].transparent = false; - } - } - else { - if (materials[material]) materials[material].color = new THREE.Color(materialList[material].altColor); - else materials[material] = new THREE.MeshLambertMaterial({color:materialList[material].altColor}); - materials[material].transparent = false; - } - }); + function ElectronicMaterials(){ + DMAMaterials.call(this, plist.allMaterialTypes.cube.gik); } - changeMaterials(); + ElectronicMaterials.prototype = Object.create(DMAMaterials.prototype); + + var material = new ElectronicMaterials(); return { - changeMaterials: changeMaterials, - materials: materials + changeMaterials: material.changeMaterials, + materials: material.materials } }); \ No newline at end of file -- GitLab