diff options
author | hwc487 | 2012-06-06 16:34:41 -0700 |
---|---|---|
committer | hwc487 | 2012-06-06 16:34:41 -0700 |
commit | 6c994c4b90023cecf4fd0caafb404b859fe28f54 (patch) | |
tree | 75a4d813441ca6a3eb529dc88a749776459bb76e /js/lib/geom | |
parent | 920436977433ea55c01ce1e73895d1db0a6abac1 (diff) | |
download | ninja-6c994c4b90023cecf4fd0caafb404b859fe28f54.tar.gz |
material cleanup and rearchitecture
Diffstat (limited to 'js/lib/geom')
-rwxr-xr-x | js/lib/geom/circle.js | 22 | ||||
-rwxr-xr-x | js/lib/geom/geom-obj.js | 21 | ||||
-rwxr-xr-x | js/lib/geom/rectangle.js | 23 |
3 files changed, 42 insertions, 24 deletions
diff --git a/js/lib/geom/circle.js b/js/lib/geom/circle.js index b2709ce4..6627b4b7 100755 --- a/js/lib/geom/circle.js +++ b/js/lib/geom/circle.js | |||
@@ -57,16 +57,18 @@ exports.Circle = Object.create(GeomObj, { | |||
57 | this.m_world = world; | 57 | this.m_world = world; |
58 | 58 | ||
59 | if(strokeMaterial) { | 59 | if(strokeMaterial) { |
60 | this._strokeMaterial = strokeMaterial; | 60 | this._strokeMaterial = strokeMaterial.dup(); |
61 | } else { | 61 | } else { |
62 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 62 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
63 | } | 63 | } |
64 | if (strokeColor && this._strokeMaterial.hasProperty( "color" )) this._strokeMaterial.setProperty( "color", this._strokeColor ); | ||
64 | 65 | ||
65 | if(fillMaterial) { | 66 | if(fillMaterial) { |
66 | this._fillMaterial = fillMaterial; | 67 | this._fillMaterial = fillMaterial.dup(); |
67 | } else { | 68 | } else { |
68 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 69 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
69 | } | 70 | } |
71 | if (fillColor && this._fillMaterial.hasProperty( "color" )) this._fillMaterial.setProperty( "color", this._fillColor ); | ||
70 | } | 72 | } |
71 | }, | 73 | }, |
72 | 74 | ||
@@ -702,19 +704,23 @@ exports.Circle = Object.create(GeomObj, { | |||
702 | var strokeMaterialName = jObj.strokeMat; | 704 | var strokeMaterialName = jObj.strokeMat; |
703 | var fillMaterialName = jObj.fillMat; | 705 | var fillMaterialName = jObj.fillMat; |
704 | 706 | ||
705 | var strokeMat = MaterialsModel.getMaterial( strokeMaterialName ); | 707 | var strokeMat = MaterialsModel.getMaterial( strokeMaterialName ).dup(); |
706 | if (!strokeMat) { | 708 | if (!strokeMat) { |
707 | console.log( "object material not found in library: " + strokeMaterialName ); | 709 | console.log( "object material not found in library: " + strokeMaterialName ); |
708 | strokeMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 710 | strokeMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
709 | } | 711 | } |
710 | this._strokeMaterial = strokeMat; | 712 | this._strokeMaterial = strokeMat; |
713 | if (this._strokeMaterial.hasProperty( 'color' )) | ||
714 | this._strokeMaterial.setProperty( 'color', this._strokeColor ); | ||
711 | 715 | ||
712 | var fillMat = MaterialsModel.getMaterial( fillMaterialName ); | 716 | var fillMat = MaterialsModel.getMaterial( fillMaterialName ).dup(); |
713 | if (!fillMat) { | 717 | if (!fillMat) { |
714 | console.log( "object material not found in library: " + fillMaterialName ); | 718 | console.log( "object material not found in library: " + fillMaterialName ); |
715 | fillMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 719 | fillMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
716 | } | 720 | } |
717 | this._fillMaterial = fillMat; | 721 | this._fillMaterial = fillMat; |
722 | if (this._fillMaterial.hasProperty( 'color' )) | ||
723 | this._fillMaterial.setProperty( 'color', this._fillColor ); | ||
718 | 724 | ||
719 | this.importMaterialsJSON( jObj.materials ); | 725 | this.importMaterialsJSON( jObj.materials ); |
720 | } | 726 | } |
diff --git a/js/lib/geom/geom-obj.js b/js/lib/geom/geom-obj.js index 417c8731..3a7a5619 100755 --- a/js/lib/geom/geom-obj.js +++ b/js/lib/geom/geom-obj.js | |||
@@ -281,9 +281,11 @@ exports.GeomObj = Object.create(Object.prototype, { | |||
281 | this._materialArray.push(strokeMaterial); | 281 | this._materialArray.push(strokeMaterial); |
282 | this._materialTypeArray.push("stroke"); | 282 | this._materialTypeArray.push("stroke"); |
283 | 283 | ||
284 | if (this._strokeColor) { | 284 | // don't set the value here. The material editor may set a color directly |
285 | this.setStrokeColor(this._strokeColor); | 285 | // to the material without setting this value in the obj. The following |
286 | } | 286 | // lines of code will clobber the value in the material |
287 | //if (this._strokeColor) | ||
288 | // this.setStrokeColor(this._strokeColor); | ||
287 | 289 | ||
288 | this._strokeMaterial = strokeMaterial; | 290 | this._strokeMaterial = strokeMaterial; |
289 | 291 | ||
@@ -306,12 +308,14 @@ exports.GeomObj = Object.create(Object.prototype, { | |||
306 | 308 | ||
307 | this._materialArray.push(fillMaterial); | 309 | this._materialArray.push(fillMaterial); |
308 | this._materialTypeArray.push("fill"); | 310 | this._materialTypeArray.push("fill"); |
311 | |||
312 | // don't set the value here. The material editor may set a color directly | ||
313 | // to the material without setting this value in the obj. The following | ||
314 | // lines of code will clobber the value in the material | ||
315 | //if (this._fillColor) | ||
316 | // this.setFillColor(this._fillColor); | ||
309 | 317 | ||
310 | if (this._fillColor) { | 318 | this._fillMaterial = fillMaterial; |
311 | this.setFillColor(this._fillColor); | ||
312 | } | ||
313 | |||
314 | this._fillMaterial = fillMaterial; | ||
315 | 319 | ||
316 | return fillMaterial; | 320 | return fillMaterial; |
317 | } | 321 | } |
@@ -389,6 +393,7 @@ exports.GeomObj = Object.create(Object.prototype, { | |||
389 | case "radialBlur": | 393 | case "radialBlur": |
390 | case "pulse": | 394 | case "pulse": |
391 | case "twistVert": | 395 | case "twistVert": |
396 | case "taper": | ||
392 | mat = MaterialsModel.getMaterialByShader(shaderName); | 397 | mat = MaterialsModel.getMaterialByShader(shaderName); |
393 | if (mat) mat = mat.dup(); | 398 | if (mat) mat = mat.dup(); |
394 | break; | 399 | break; |
diff --git a/js/lib/geom/rectangle.js b/js/lib/geom/rectangle.js index 42d51e74..81a8556d 100755 --- a/js/lib/geom/rectangle.js +++ b/js/lib/geom/rectangle.js | |||
@@ -73,16 +73,19 @@ exports.Rectangle = Object.create(GeomObj, { | |||
73 | this._materialSpecular = [0.4, 0.4, 0.4, 1.0]; | 73 | this._materialSpecular = [0.4, 0.4, 0.4, 1.0]; |
74 | 74 | ||
75 | if(strokeMaterial) { | 75 | if(strokeMaterial) { |
76 | this._strokeMaterial = strokeMaterial; | 76 | this._strokeMaterial = strokeMaterial.dup(); |
77 | } else { | 77 | } else { |
78 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 78 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
79 | } | 79 | } |
80 | if (strokeColor && this._strokeMaterial.hasProperty( "color" )) this._strokeMaterial.setProperty( "color", this._strokeColor ); | ||
81 | |||
80 | 82 | ||
81 | if(fillMaterial) { | 83 | if(fillMaterial) { |
82 | this._fillMaterial = fillMaterial; | 84 | this._fillMaterial = fillMaterial.dup(); |
83 | } else { | 85 | } else { |
84 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 86 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
85 | } | 87 | } |
88 | if (fillColor && this._fillMaterial.hasProperty( "color" )) this._fillMaterial.setProperty( "color", this._fillColor ); | ||
86 | } | 89 | } |
87 | }, | 90 | }, |
88 | 91 | ||
@@ -289,19 +292,23 @@ exports.Rectangle = Object.create(GeomObj, { | |||
289 | var strokeMaterialName = jObj.strokeMat; | 292 | var strokeMaterialName = jObj.strokeMat; |
290 | var fillMaterialName = jObj.fillMat; | 293 | var fillMaterialName = jObj.fillMat; |
291 | 294 | ||
292 | var strokeMat = MaterialsModel.getMaterial( strokeMaterialName ); | 295 | var strokeMat = MaterialsModel.getMaterial( strokeMaterialName ).dup(); |
293 | if (!strokeMat) { | 296 | if (!strokeMat) { |
294 | console.log( "object material not found in library: " + strokeMaterialName ); | 297 | console.log( "object material not found in library: " + strokeMaterialName ); |
295 | strokeMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 298 | strokeMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
296 | } | 299 | } |
297 | this._strokeMaterial = strokeMat; | 300 | this._strokeMaterial = strokeMat; |
301 | if (this._strokeMaterial.hasProperty( 'color' )) | ||
302 | this._strokeMaterial.setProperty( 'color', this._strokeColor ); | ||
298 | 303 | ||
299 | var fillMat = MaterialsModel.getMaterial( fillMaterialName ); | 304 | var fillMat = MaterialsModel.getMaterial( fillMaterialName ).dup(); |
300 | if (!fillMat) { | 305 | if (!fillMat) { |
301 | console.log( "object material not found in library: " + fillMaterialName ); | 306 | console.log( "object material not found in library: " + fillMaterialName ); |
302 | fillMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ); | 307 | fillMat = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
303 | } | 308 | } |
304 | this._fillMaterial = fillMat; | 309 | this._fillMaterial = fillMat; |
310 | if (this._fillMaterial.hasProperty( 'color' )) | ||
311 | this._fillMaterial.setProperty( 'color', this._fillColor ); | ||
305 | 312 | ||
306 | this.importMaterialsJSON( jObj.materials ); | 313 | this.importMaterialsJSON( jObj.materials ); |
307 | } | 314 | } |