aboutsummaryrefslogtreecommitdiff
path: root/js/lib
diff options
context:
space:
mode:
Diffstat (limited to 'js/lib')
-rwxr-xr-xjs/lib/drawing/world.js2
-rwxr-xr-xjs/lib/geom/circle.js22
-rwxr-xr-xjs/lib/geom/geom-obj.js21
-rwxr-xr-xjs/lib/geom/rectangle.js23
-rwxr-xr-xjs/lib/rdge/materials/bump-metal-material.js2
-rw-r--r--js/lib/rdge/materials/cloud-material.js17
-rw-r--r--js/lib/rdge/materials/deform-material.js16
-rw-r--r--js/lib/rdge/materials/flag-material.js16
-rwxr-xr-xjs/lib/rdge/materials/flat-material.js18
-rw-r--r--js/lib/rdge/materials/fly-material.js1
-rwxr-xr-xjs/lib/rdge/materials/material.js219
-rw-r--r--js/lib/rdge/materials/pulse-material.js189
-rw-r--r--js/lib/rdge/materials/taper-material.js102
-rw-r--r--js/lib/rdge/materials/water-material.js45
14 files changed, 340 insertions, 353 deletions
diff --git a/js/lib/drawing/world.js b/js/lib/drawing/world.js
index 228c0d94..8068284e 100755
--- a/js/lib/drawing/world.js
+++ b/js/lib/drawing/world.js
@@ -484,11 +484,11 @@ World.prototype.updateObject = function (obj) {
484 for (var i = 1; i < nPrims; i++) 484 for (var i = 1; i < nPrims; i++)
485 { 485 {
486 // get the next primitive 486 // get the next primitive
487 var prim = prims[i];
488 childTrNode = RDGE.createTransformNode("objNode_" + this._nodeCounter++); 487 childTrNode = RDGE.createTransformNode("objNode_" + this._nodeCounter++);
489 ctrTrNode.insertAsChild(childTrNode); 488 ctrTrNode.insertAsChild(childTrNode);
490 489
491 // attach the instanced box goe 490 // attach the instanced box goe
491 var prim = prims[i];
492 childTrNode.attachMeshNode(this.renderer.id + "_prim_" + this._nodeCounter++, prim); 492 childTrNode.attachMeshNode(this.renderer.id + "_prim_" + this._nodeCounter++, prim);
493 childTrNode.attachMaterial(materialNodes[i]); 493 childTrNode.attachMaterial(materialNodes[i]);
494 } 494 }
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 }
diff --git a/js/lib/rdge/materials/bump-metal-material.js b/js/lib/rdge/materials/bump-metal-material.js
index 4d19c9c1..30624f7b 100755
--- a/js/lib/rdge/materials/bump-metal-material.js
+++ b/js/lib/rdge/materials/bump-metal-material.js
@@ -108,8 +108,6 @@ var BumpMetalMaterial = function BumpMetalMaterial() {
108 /////////////////////////////////////////////////////////////////////// 108 ///////////////////////////////////////////////////////////////////////
109 // Methods 109 // Methods
110 /////////////////////////////////////////////////////////////////////// 110 ///////////////////////////////////////////////////////////////////////
111 // duplcate method requirde
112 this.dup = function() { return new BumpMetalMaterial(); };
113