diff options
author | Nivesh Rajbhandari | 2012-07-09 11:43:36 -0700 |
---|---|---|
committer | Nivesh Rajbhandari | 2012-07-09 11:43:36 -0700 |
commit | ac27d538af33ca8d67d3d88729f49c05793afda7 (patch) | |
tree | 4be9251ff087e93a37b1f463ae9eaaaf779caeeb /js/lib/geom | |
parent | eff1851b2189bea8b89065980d02541cecea5ddf (diff) | |
download | ninja-ac27d538af33ca8d67d3d88729f49c05793afda7.tar.gz |
PI, drawing and editing fixes for shapes and materials.
IKNinja-1841 - Cannot change webgl shape with LinearGradient and RadialGradient to solid color.
IKNINJA-1851 - Cannot draw webgl shapes with Linear/RadialGradient material.
IKNINJA-1864 - PI doesn't update the color of shape if WebGL material switches to Flat.
IKNINJA-1886 - Gradient edits not applied to WebGL Stage object.
Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/lib/geom')
-rwxr-xr-x | js/lib/geom/circle.js | 20 | ||||
-rwxr-xr-x | js/lib/geom/geom-obj.js | 25 | ||||
-rwxr-xr-x | js/lib/geom/line.js | 13 | ||||
-rwxr-xr-x | js/lib/geom/rectangle.js | 17 |
4 files changed, 47 insertions, 28 deletions
diff --git a/js/lib/geom/circle.js b/js/lib/geom/circle.js index 086c1058..848ae10d 100755 --- a/js/lib/geom/circle.js +++ b/js/lib/geom/circle.js | |||
@@ -61,14 +61,28 @@ exports.Circle = Object.create(GeomObj, { | |||
61 | } else { | 61 | } else { |
62 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); | 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 | if(strokeColor) { | ||
66 | if(this._strokeMaterial.hasProperty("color")) { | ||
67 | this._strokeMaterial.setProperty( "color", this._strokeColor ); | ||
68 | } else if (this._strokeMaterial && (this._strokeMaterial.gradientType === this._strokeColor.gradientMode)) { | ||
69 | this._strokeMaterial.setGradientData(this._strokeColor.color); | ||
70 | } | ||
71 | } | ||
65 | 72 | ||
66 | if(fillMaterial) { | 73 | if(fillMaterial) { |
67 | this._fillMaterial = fillMaterial.dup(); | 74 | this._fillMaterial = fillMaterial.dup(); |
68 | } else { | 75 | } else { |
69 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); | 76 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
77 | } | ||
78 | |||
79 | if(fillColor) { | ||
80 | if(this._fillMaterial.hasProperty("color")) { | ||
81 | this._fillMaterial.setProperty( "color", this._fillColor ); | ||
82 | } else if (this._fillMaterial && (this._fillMaterial.gradientType === this._fillColor.gradientMode)) { | ||
83 | this._fillMaterial.setGradientData(this._fillColor.color); | ||
84 | } | ||
70 | } | 85 | } |
71 | if (fillColor && this._fillMaterial.hasProperty( "color" )) this._fillMaterial.setProperty( "color", this._fillColor ); | ||
72 | } | 86 | } |
73 | }, | 87 | }, |
74 | 88 | ||
diff --git a/js/lib/geom/geom-obj.js b/js/lib/geom/geom-obj.js index 3a7a5619..66f557dd 100755 --- a/js/lib/geom/geom-obj.js +++ b/js/lib/geom/geom-obj.js | |||
@@ -191,27 +191,10 @@ exports.GeomObj = Object.create(Object.prototype, { | |||
191 | nMats = this._materialArray.length; | 191 | nMats = this._materialArray.length; |
192 | } | 192 | } |
193 | 193 | ||
194 | var stops = [], | 194 | if (nMats === this._materialTypeArray.length) { |
195 | colors = c.color; | 195 | for (i = 0; i < nMats; i++) { |
196 | 196 | if (this._materialTypeArray[i] == type) { | |
197 | var len = colors.length; | 197 | this._materialArray[i].setGradientData(c.color); |
198 | // TODO - Current shaders only support 4 color stops | ||
199 | if (len > 4) { | ||
200 | len = 4; | ||
201 | } | ||
202 | |||
203 | for (var n = 0; n < len; n++) { | ||
204 | var position = colors[n].position / 100; | ||
205 | var cs = colors[n].value; | ||
206 | var stop = [cs.r / 255, cs.g / 255, cs.b / 255, cs.a]; | ||
207 | stops.push(stop); | ||
208 | |||
209 | if (nMats === this._materialTypeArray.length) { | ||
210 | for (i = 0; i < nMats; i++) { | ||
211 | if (this._materialTypeArray[i] == type) { | ||
212 | this._materialArray[i].setProperty("color" + (n + 1), stop.slice(0)); | ||
213 | this._materialArray[i].setProperty("colorStop" + (n + 1), position); | ||
214 | } | ||
215 | } | 198 | } |
216 | } | 199 | } |
217 | } | 200 | } |
diff --git a/js/lib/geom/line.js b/js/lib/geom/line.js index a016d7a3..f782f2a8 100755 --- a/js/lib/geom/line.js +++ b/js/lib/geom/line.js | |||
@@ -63,8 +63,17 @@ exports.Line = Object.create(GeomObj, { | |||
63 | this._materialSpecular = [0.4, 0.4, 0.4, 1.0]; | 63 | this._materialSpecular = [0.4, 0.4, 0.4, 1.0]; |
64 | 64 | ||
65 | if(strokeMaterial) { | 65 | if(strokeMaterial) { |
66 | this._strokeMaterial = strokeMaterial; | 66 | this._strokeMaterial = strokeMaterial.dup(); |
67 | if (strokeColor && this._strokeMaterial.hasProperty( "color" )) this._strokeMaterial.setProperty( "color", this._strokeColor ); | 67 | } else { |
68 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); | ||
69 | } | ||
70 | |||
71 | if(strokeColor) { | ||
72 | if(this._strokeMaterial.hasProperty("color")) { | ||
73 | this._strokeMaterial.setProperty( "color", this._strokeColor ); | ||
74 | } else if (this._strokeMaterial && (this._strokeMaterial.gradientType === this._strokeColor.gradientMode)) { | ||
75 | this._strokeMaterial.setGradientData(this._strokeColor.color); | ||
76 | } | ||
68 | } | 77 | } |
69 | } | 78 | } |
70 | }, | 79 | }, |
diff --git a/js/lib/geom/rectangle.js b/js/lib/geom/rectangle.js index 81a8556d..3e4c469a 100755 --- a/js/lib/geom/rectangle.js +++ b/js/lib/geom/rectangle.js | |||
@@ -77,15 +77,28 @@ exports.Rectangle = Object.create(GeomObj, { | |||
77 | } else { | 77 | } else { |
78 | this._strokeMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); | 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 | ||
81 | if(strokeColor) { | ||
82 | if(this._strokeMaterial.hasProperty("color")) { | ||
83 | this._strokeMaterial.setProperty( "color", this._strokeColor ); | ||
84 | } else if (this._strokeMaterial && (this._strokeMaterial.gradientType === this._strokeColor.gradientMode)) { | ||
85 | this._strokeMaterial.setGradientData(this._strokeColor.color); | ||
86 | } | ||
87 | } | ||
82 | 88 | ||
83 | if(fillMaterial) { | 89 | if(fillMaterial) { |
84 | this._fillMaterial = fillMaterial.dup(); | 90 | this._fillMaterial = fillMaterial.dup(); |
85 | } else { | 91 | } else { |
86 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); | 92 | this._fillMaterial = MaterialsModel.getMaterial( MaterialsModel.getDefaultMaterialName() ).dup(); |
87 | } | 93 | } |
88 | if (fillColor && this._fillMaterial.hasProperty( "color" )) this._fillMaterial.setProperty( "color", this._fillColor ); | 94 | |
95 | if(fillColor) { | ||
96 | if(this._fillMaterial.hasProperty("color")) { | ||
97 | this._fillMaterial.setProperty( "color", this._fillColor ); | ||
98 | } else if (this._fillMaterial && (this._fillMaterial.gradientType === this._fillColor.gradientMode)) { | ||
99 | this._fillMaterial.setGradientData(this._fillColor.color); | ||
100 | } | ||
101 | } | ||
89 | } | 102 | } |
90 | }, | 103 | }, |
91 | 104 | ||