diff options
Diffstat (limited to 'js/lib/geom/geom-obj.js')
-rwxr-xr-x | js/lib/geom/geom-obj.js | 82 |
1 files changed, 42 insertions, 40 deletions
diff --git a/js/lib/geom/geom-obj.js b/js/lib/geom/geom-obj.js index 3c4e4bbf..df4a018d 100755 --- a/js/lib/geom/geom-obj.js +++ b/js/lib/geom/geom-obj.js | |||
@@ -141,54 +141,56 @@ var GeomObj = function GLGeomObj() { | |||
141 | this.setMaterialColor = function(c, type) { | 141 | this.setMaterialColor = function(c, type) { |
142 | var i = 0, | 142 | var i = 0, |
143 | nMats = 0; | 143 | nMats = 0; |
144 | if(c.gradientMode) { | 144 | if(c) { |
145 | // Gradient support | 145 | if(c.gradientMode) { |
146 | if (this._materialArray && this._materialTypeArray) { | 146 | // Gradient support |
147 | nMats = this._materialArray.length; | 147 | if (this._materialArray && this._materialTypeArray) { |
148 | } | 148 | nMats = this._materialArray.length; |
149 | } | ||
149 | 150 | ||
150 | var stops = [], | 151 | var stops = [], |
151 | colors = c.color; | 152 | colors = c.color; |
152 | 153 | ||
153 | var len = colors.length; | 154 | var len = colors.length; |
154 | // TODO - Current shaders only support 4 color stops | 155 | // TODO - Current shaders only support 4 color stops |
155 | if(len > 4) { | 156 | if(len > 4) { |
156 | len = 4; | 157 | len = 4; |
157 | } | 158 | } |
158 | 159 | ||
159 | for(var n=0; n<len; n++) { | 160 | for(var n=0; n<len; n++) { |
160 | var position = colors[n].position/100; | 161 | var position = colors[n].position/100; |
161 | var cs = colors[n].value; | 162 | var cs = colors[n].value; |
162 | var stop = [cs.r/255, cs.g/255, cs.b/255, cs.a]; | 163 | var stop = [cs.r/255, cs.g/255, cs.b/255, cs.a]; |
163 | stops.push(stop); | 164 | stops.push(stop); |
164 | 165 | ||
165 | if (nMats === this._materialTypeArray.length) { | 166 | if (nMats === this._materialTypeArray.length) { |
166 | for (i=0; i<nMats; i++) { | 167 | for (i=0; i<nMats; i++) { |
167 | if (this._materialTypeArray[i] == type) { | 168 | if (this._materialTypeArray[i] == type) { |
168 | this._materialArray[i].setProperty( "color"+(n+1), stop.slice(0) ); | 169 | this._materialArray[i].setProperty( "color"+(n+1), stop.slice(0) ); |
169 | this._materialArray[i].setProperty( "colorStop"+(n+1), position ); | 170 | this._materialArray[i].setProperty( "colorStop"+(n+1), position ); |
171 | } | ||
170 | } | 172 | } |
171 | } | 173 | } |
172 | } | 174 | } |
173 | } | 175 | if (type === "fill") { |
174 | if (type === "fill") { | 176 | this._fillColor = c; |
175 | this._fillColor = c; | 177 | } else { |
176 | } else { | 178 | this._strokeColor = c; |
177 | this._strokeColor = c; | 179 | } |
178 | } | ||
179 | } else { | ||
180 | if (type === "fill") { | ||
181 | this._fillColor = c.slice(0); | ||
182 | } else { | 180 | } else { |
183 | this._strokeColor = c.slice(0); | 181 | if (type === "fill") { |
184 | } | 182 | this._fillColor = c.slice(0); |
183 | } else { | ||
184 | this._strokeColor = c.slice(0); | ||
185 | } | ||
185 | 186 | ||
186 | if (this._materialArray && this._materialTypeArray) { | 187 | if (this._materialArray && this._materialTypeArray) { |
187 | nMats = this._materialArray.length; | 188 | nMats = this._materialArray.length; |
188 | if (nMats === this._materialTypeArray.length) { | 189 | if (nMats === this._materialTypeArray.length) { |
189 | for (i=0; i<nMats; i++) { | 190 | for (i=0; i<nMats; i++) { |
190 | if (this._materialTypeArray[i] == type) { | 191 | if (this._materialTypeArray[i] == type) { |
191 | this._materialArray[i].setProperty( "color", c.slice(0) ); | 192 | this._materialArray[i].setProperty( "color", c.slice(0) ); |
193 | } | ||
192 | } | 194 | } |
193 | } | 195 | } |
194 | } | 196 | } |