diff options
Diffstat (limited to 'js/helper-classes/RDGE/Materials')
-rw-r--r-- | js/helper-classes/RDGE/Materials/BumpMetalMaterial.js | 10 | ||||
-rw-r--r-- | js/helper-classes/RDGE/Materials/FlatMaterial.js | 48 | ||||
-rw-r--r-- | js/helper-classes/RDGE/Materials/UberMaterial.js | 6 |
3 files changed, 39 insertions, 25 deletions
diff --git a/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js b/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js index 17be0cd7..999d4676 100644 --- a/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js +++ b/js/helper-classes/RDGE/Materials/BumpMetalMaterial.js | |||
@@ -51,7 +51,7 @@ function BumpMetalMaterial() | |||
51 | /////////////////////////////////////////////////////////////////////// | 51 | /////////////////////////////////////////////////////////////////////// |
52 | // Material Property Accessors | 52 | // Material Property Accessors |
53 | /////////////////////////////////////////////////////////////////////// | 53 | /////////////////////////////////////////////////////////////////////// |
54 | this._propNames = ["lightDiff", "diffuseMap", "normalMap", "specularMap"]; | 54 | this._propNames = ["lightDiff", "diffuseTexture", "normalMap", "specularTexture"]; |
55 | this._propLabels = ["Diffuse Color", "Diffuse Map", "Bump Map", "Specular Map"]; | 55 | this._propLabels = ["Diffuse Color", "Diffuse Map", "Bump Map", "Specular Map"]; |
56 | this._propTypes = ["color", "file", "file", "file"]; | 56 | this._propTypes = ["color", "file", "file", "file"]; |
57 | this._propValues = []; | 57 | this._propValues = []; |
@@ -151,7 +151,7 @@ function BumpMetalMaterial() | |||
151 | exportStr += "lightDiff: " + this.getLightDiff() + "\n"; | 151 | exportStr += "lightDiff: " + this.getLightDiff() + "\n"; |
152 | exportStr += "diffuseTexture: " + this.getDiffuseTexture() + "\n"; | 152 | exportStr += "diffuseTexture: " + this.getDiffuseTexture() + "\n"; |
153 | exportStr += "specularTexture: " + this.getSpecularTexture() + "\n"; | 153 | exportStr += "specularTexture: " + this.getSpecularTexture() + "\n"; |
154 | exportStr += "normalTexture: " + this.getNormalTexture() + "\n"; | 154 | exportStr += "normalMap: " + this.getNormalTexture() + "\n"; |
155 | 155 | ||
156 | // every material needs to terminate like this | 156 | // every material needs to terminate like this |
157 | exportStr += "endMaterial\n"; | 157 | exportStr += "endMaterial\n"; |
@@ -172,12 +172,12 @@ function BumpMetalMaterial() | |||
172 | var lightDiff = eval( "[" + pu.nextValue( "lightDiff: " ) + "]" ), | 172 | var lightDiff = eval( "[" + pu.nextValue( "lightDiff: " ) + "]" ), |
173 | dt = pu.nextValue( "diffuseTexture: " ), | 173 | dt = pu.nextValue( "diffuseTexture: " ), |
174 | st = pu.nextValue( "specularTexture: " ), | 174 | st = pu.nextValue( "specularTexture: " ), |
175 | nt = pu.nextValue( "normalTexture: " ); | 175 | nt = pu.nextValue( "normalMap: " ); |
176 | 176 | ||
177 | this.setProperty( "lightDiff", lightDif); | 177 | this.setProperty( "lightDiff", lightDiff); |
178 | this.setProperty( "diffuseTexture", dt ); | 178 | this.setProperty( "diffuseTexture", dt ); |
179 | this.setProperty( "specularTexture", st ); | 179 | this.setProperty( "specularTexture", st ); |
180 | this.setProperty( "normalTexture", nt ); | 180 | this.setProperty( "normalMap", nt ); |
181 | 181 | ||
182 | var endKey = "endMaterial\n"; | 182 | var endKey = "endMaterial\n"; |
183 | var index = importStr.indexOf( endKey ); | 183 | var index = importStr.indexOf( endKey ); |
diff --git a/js/helper-classes/RDGE/Materials/FlatMaterial.js b/js/helper-classes/RDGE/Materials/FlatMaterial.js index de039231..a250dc0a 100644 --- a/js/helper-classes/RDGE/Materials/FlatMaterial.js +++ b/js/helper-classes/RDGE/Materials/FlatMaterial.js | |||
@@ -75,11 +75,12 @@ function FlatMaterial() | |||
75 | 75 | ||
76 | this.setProperty = function( prop, value ) | 76 | this.setProperty = function( prop, value ) |
77 | { | 77 | { |
78 | // make sure we have legitimate imput | 78 | // make sure we have legitimate input |
79 | if (this.validateProperty( prop, value )) | 79 | if (this.validateProperty( prop, value )) |
80 | { | 80 | { |
81 | this._color = value.slice(0); | 81 | this._propValues[prop] = value; |
82 | this._shader.colorMe[prop].set(value); | 82 | if (this._shader && this._shader.colorMe) |
83 | this._shader.colorMe[prop].set(value); | ||
83 | } | 84 | } |
84 | } | 85 | } |
85 | /////////////////////////////////////////////////////////////////////// | 86 | /////////////////////////////////////////////////////////////////////// |
@@ -88,7 +89,7 @@ function FlatMaterial() | |||
88 | { | 89 | { |
89 | // this function should be overridden by subclasses | 90 | // this function should be overridden by subclasses |
90 | var exportStr = "material: " + this.getShaderName() + "\n"; | 91 | var exportStr = "material: " + this.getShaderName() + "\n"; |
91 | exportStr = "name: " + this.getName() + "\n"; | 92 | exportStr += "name: " + this.getName() + "\n"; |
92 | 93 | ||
93 | if (this._shader) | 94 | if (this._shader) |
94 | exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; | 95 | exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; |
@@ -99,19 +100,32 @@ function FlatMaterial() | |||
99 | return exportStr; | 100 | return exportStr; |
100 | } | 101 | } |
101 | 102 | ||
102 | this.import = function( importStr ) | 103 | this.import = function( importStr ) |
103 | { | 104 | { |
104 | var pu = new ParseUtils( importStr ); | 105 | var pu = new ParseUtils( importStr ); |
105 | var material = pu.nextValue( "material: " ); | 106 | var material = pu.nextValue( "material: " ); |
106 | if (material != this.getShaderName()) throw new Error( "ill-formed material" ); | 107 | if (material != this.getShaderName()) throw new Error( "ill-formed material" ); |
107 | this.setName( pu.nextValue( "material: ") ); | 108 | this.setName( pu.nextValue( "name: ") ); |
108 | var color = pu.nextValue( "color: " ); | 109 | |
109 | 110 | var rtnStr; | |
110 | var endKey = "endMaterial\n"; | 111 | try |
111 | var index = importStr.indexOf( endKey ) + endKey.len; | 112 | { |
112 | var rtnStr = importStr.substr( index ); | 113 | var color = eval( "[" + pu.nextValue( "color: " ) + "]" ); |
113 | return rtnStr; | 114 | |
114 | } | 115 | this.setProperty( "color", color); |
116 | |||
117 | var endKey = "endMaterial\n"; | ||
118 | var index = importStr.indexOf( endKey ); | ||
119 | index += endKey.length; | ||
120 | rtnStr = importStr.substr( index ); | ||
121 | } | ||
122 | catch (e) | ||
123 | { | ||
124 | throw new Error( "could not import material: " + importStr ); | ||
125 | } | ||
126 | |||
127 | return rtnStr; | ||
128 | } | ||
115 | 129 | ||
116 | this.update = function( time ) | 130 | this.update = function( time ) |
117 | { | 131 | { |
diff --git a/js/helper-classes/RDGE/Materials/UberMaterial.js b/js/helper-classes/RDGE/Materials/UberMaterial.js index aa4c3d1c..8385f2d6 100644 --- a/js/helper-classes/RDGE/Materials/UberMaterial.js +++ b/js/helper-classes/RDGE/Materials/UberMaterial.js | |||
@@ -45,9 +45,9 @@ function UberMaterial() | |||
45 | /////////////////////////////////////////////////////////////////////// | 45 | /////////////////////////////////////////////////////////////////////// |
46 | // Material Property Accessors | 46 | // Material Property Accessors |
47 | /////////////////////////////////////////////////////////////////////// | 47 | /////////////////////////////////////////////////////////////////////// |
48 | this._propNames = ["ambientColor", "diffuseColor", "specularColor", "specularPower" , "diffuseMap", "normalMap", "specularMap", "environmentMap", "environmentAmount", "dummy" ]; | 48 | this._propNames = ["ambientColor", "diffuseColor", "specularColor", "specularPower" , "diffuseMap", "normalMap", "specularMap", "environmentMap", "environmentAmount" ]; |
49 | this._propLabels = ["Ambient Color", "Diffuse Color", "Specular Color", "Specular Power", "Texture Map", "Bump Map", "Specular Map", "Environment Map", "Environment Map Amount", "Dummy" ]; | 49 | this._propLabels = ["Ambient Color", "Diffuse Color", "Specular Color", "Specular Power", "Texture Map", "Bump Map", "Specular Map", "Environment Map", "Environment Map Amount" ]; |
50 | this._propTypes = ["color", "color", "color", "float", "file", "file", "file", "file", "float", "checkbox"]; | 50 | this._propTypes = ["color", "color", "color", "float", "file", "file", "file", "file", "float" ]; |
51 | this._propValues = []; | 51 | this._propValues = []; |
52 | 52 | ||
53 | this._propValues[ this._propNames[0] ] = this._ambientColor.slice(0); | 53 | this._propValues[ this._propNames[0] ] = this._ambientColor.slice(0); |