aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js')
-rwxr-xr-xjs/helper-classes/backup-delete/Materials/BumpMetalMaterial.js307
1 files changed, 0 insertions, 307 deletions
diff --git a/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js b/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js
deleted file mode 100755
index 52332ab8..00000000
--- a/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js
+++ /dev/null
@@ -1,307 +0,0 @@
1/* <copyright>
2 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */
6
7
8///////////////////////////////////////////////////////////////////////
9// Class GLMaterial
10// RDGE representation of a material.
11///////////////////////////////////////////////////////////////////////
12function BumpMetalMaterial()
13{
14 // initialize the inherited members
15 this.inheritedFrom = GLMaterial;
16 this.inheritedFrom();
17
18 ///////////////////////////////////////////////////////////////////////
19 // Instance variables
20 ///////////////////////////////////////////////////////////////////////
21 this._name = "BumpMetalMaterial";
22 this._shaderName = "bumpMetal";
23
24 this._lightDiff = [0.3, 0.3, 0.3, 1.0];
25 this._diffuseTexture = "assets/images/metal.png";
26 this._specularTexture = "assets/images/silver.png";
27 this._normalTexture = "assets/images/normalMap.png";
28
29 ///////////////////////////////////////////////////////////////////////
30 // Property Accessors
31 ///////////////////////////////////////////////////////////////////////
32 this.getName = function() { return this._name; };
33 this.getShaderName = function() { return this._shaderName; };
34
35 this.getLightDiff = function() { return this._lightDiff; };
36 this.setLightDiff = function(ld) { this._lightDiff = ld;
37 if (this._shader && this._shader.default)
38 this._shader.default.u_light0Diff.set( ld ); };
39
40 this.getDiffuseTexture = function() { return this._propValues[this._propNames[1]] ? this._propValues[this._propNames[1]].slice() : null };
41 this.setDiffuseTexture = function(m) { this._propValues[this._propNames[1]] = m ? m.slice(0) : null; this.updateTexture(1); };
42
43 this.getNormalTexture = function() { return this._propValues[this._propNames[2]] ? this._propValues[this._propNames[2]].slice() : null };
44 this.setNormalTexture = function(m) { this._propValues[this._propNames[2]] = m ? m.slice(0) : null; this.updateTexture(2); };
45
46 this.getSpecularTexture = function() { return this._propValues[this._propNames[3]] ? this._propValues[this._propNames[3]].slice() : null };
47 this.setSpecularTexture = function(m) { this._propValues[this._propNames[3]] = m ? m.slice(0) : null; this.updateTexture(3); };
48
49 this.isAnimated = function() { return true; };
50
51 ///////////////////////////////////////////////////////////////////////
52 // Material Property Accessors
53 ///////////////////////////////////////////////////////////////////////
54 this._propNames = ["lightDiff", "diffuseTexture", "normalMap", "specularTexture"];
55 this._propLabels = ["Diffuse Color", "Diffuse Map", "Bump Map", "Specular Map"];
56 this._propTypes = ["color", "file", "file", "file"];
57 this._propValues = [];
58
59 this._propValues[ this._propNames[0] ] = this._lightDiff.slice(0);
60 this._propValues[ this._propNames[1] ] = this._diffuseTexture.slice(0);
61 this._propValues[ this._propNames[2] ] = this._normalTexture.slice(0);
62 this._propValues[ this._propNames[3] ] = this._specularTexture.slice(0);
63
64 // TODO - shader techniques are not all named the same, i.e., FlatMaterial uses "colorMe" and BrickMaterial uses "default"
65 this.setProperty = function( prop, value )
66 {
67 // every material should do something with the "color" property
68 if (prop === "color") return; //prop = "lightDiff";
69
70 // make sure we have legitimate imput
71 var ok = this.validateProperty( prop, value );
72 if (!ok)
73 {
74 console.log( "invalid property in Bump Metal Materia;" + prop + " : " + value );
75 return;
76 }
77
78 switch (prop)
79 {
80 case "lightDiff": this.setLightDiff( value ); break;
81 case "diffuseTexture": this.setDiffuseTexture( value ); break;
82 case "specularTexture": this.setSpecularTexture( value ); break;
83 case "normalMap": this.setNormalTexture( value ); break;
84
85 default:
86 console.log( "invalid property to Bump Metal Material: " + prop + ", value: " + value );
87 break;
88 }
89 };
90
91 ///////////////////////////////////////////////////////////////////////
92 // Methods
93 ///////////////////////////////////////////////////////////////////////
94 // duplcate method requirde
95 this.dup = function() { return new BumpMetalMaterial(); };
96
97 this.init = function( world )
98 {
99 // save the world
100 if (world)
101 {
102 this.setWorld( world );
103
104 // set up the shader
105 this._shader = new jshader();
106 this._shader.def = bumpMetalMaterialDef;
107 this._shader.init();
108 this._shader.default.u_light0Diff.set( this.getLightDiff() );
109
110 // set up the material node
111 this._materialNode = createMaterialNode( this.getShaderName() + "_" + world.generateUniqueNodeID() );
112 this._materialNode.setShader(this._shader);
113
114 // set some image maps
115 this.updateTexture(1);
116 this.updateTexture(2);
117 this.updateTexture(3);
118 }
119 else
120 throw new Error( "GLWorld not supplied to material initialization" );
121 };
122
123 this.updateTexture = function( index )
124 {
125 var material = this._materialNode;
126 if (material)
127 {
128 var technique = material.shaderProgram.default;
129 var renderer = g_Engine.getContext().renderer;
130 if (renderer && technique)
131 {
132 var texMapName = this._propValues[this._propNames[index]];
133 var wrap = 'REPEAT', mips = true;
134 var tex = this.loadTexture( texMapName, wrap, mips );
135
136 if (tex)
137 {
138 switch (index)
139 {
140 case 1: technique.u_colMap.set( tex ); break;
141 case 2: technique.u_normalMap.set( tex ); break;
142 case 3: technique.u_glowMap.set( tex ); break;
143 default: console.log( "invalid map index in BumpMetalMaterial, " + index );
144 }
145 }
146 }
147 }
148 };
149
150 this.export = function()
151 {
152 // every material needs the base type and instance name
153 var exportStr = "material: " + this.getShaderName() + "\n";
154 exportStr += "name: " + this.getName() + "\n";
155
156 exportStr += "lightDiff: " + this.getLightDiff() + "\n";
157 exportStr += "diffuseTexture: " + this.getDiffuseTexture() + "\n";
158 exportStr += "specularTexture: " + this.getSpecularTexture() + "\n";
159 exportStr += "normalMap: " + this.getNormalTexture() + "\n";
160
161 // every material needs to terminate like this
162 exportStr += "endMaterial\n";
163
164 return exportStr;
165 };
166
167 this.import = function( importStr )
168 {
169 var pu = new ParseUtils( importStr );
170 var material = pu.nextValue( "material: " );
171 if (material != this.getShaderName()) throw new Error( "ill-formed material" );
172 this.setName( pu.nextValue( "name: ") );
173
174 var rtnStr;
175 try
176 {
177 var lightDiff = eval( "[" + pu.nextValue( "lightDiff: " ) + "]" ),
178 dt = pu.nextValue( "diffuseTexture: " ),
179 st = pu.nextValue( "specularTexture: " ),
180 nt = pu.nextValue( "normalMap: " );
181
182 this.setProperty( "lightDiff", lightDiff);
183 this.setProperty( "diffuseTexture", dt );
184 this.setProperty( "specularTexture", st );
185 this.setProperty( "normalMap", nt );
186
187 var endKey = "endMaterial\n";
188 var index = importStr.indexOf( endKey );
189 index += endKey.length;
190 rtnStr = importStr.substr( index );
191 }
192 catch (e)
193 {
194 throw new Error( "could not import material: " + importStr );
195 }
196
197 return rtnStr;
198 };
199}