diff options
Diffstat (limited to 'js/tools/LineTool.js')
-rwxr-xr-x | js/tools/LineTool.js | 57 |
1 files changed, 47 insertions, 10 deletions
diff --git a/js/tools/LineTool.js b/js/tools/LineTool.js index fde09959..d2ee0b43 100755 --- a/js/tools/LineTool.js +++ b/js/tools/LineTool.js | |||
@@ -1,7 +1,31 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 2 | Copyright (c) 2012, Motorola Mobility, Inc |
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 3 | All Rights Reserved. |
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | BSD License. |
5 | |||
6 | Redistribution and use in source and binary forms, with or without | ||
7 | modification, are permitted provided that the following conditions are met: | ||
8 | |||
9 | - Redistributions of source code must retain the above copyright notice, | ||
10 | this list of conditions and the following disclaimer. | ||
11 | - Redistributions in binary form must reproduce the above copyright | ||
12 | notice, this list of conditions and the following disclaimer in the | ||
13 | documentation and/or other materials provided with the distribution. | ||
14 | - Neither the name of Motorola Mobility nor the names of its contributors | ||
15 | may be used to endorse or promote products derived from this software | ||
16 | without specific prior written permission. | ||
17 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
28 | POSSIBILITY OF SUCH DAMAGE. | ||
5 | </copyright> */ | 29 | </copyright> */ |
6 | 30 | ||
7 | var Montage = require("montage/core/core").Montage, | 31 | var Montage = require("montage/core/core").Montage, |
@@ -44,10 +68,16 @@ exports.LineTool = Montage.create(ShapeTool, { | |||
44 | } | 68 | } |
45 | 69 | ||
46 | this._strokeSize = ShapesController.GetValueInPixels(this.options.strokeSize.value, this.options.strokeSize.units, null); | 70 | this._strokeSize = ShapesController.GetValueInPixels(this.options.strokeSize.value, this.options.strokeSize.units, null); |
47 | if (this.options.stroke.color) | 71 | if (this.options.stroke.color) { |
48 | this._strokeColor = this.options.stroke.color.css; | 72 | if( (this.options.stroke.colorMode === "gradient") || (this.options.stroke.colorMode === "nocolor") ) { |
49 | else | 73 | this._strokeColor = [0,0,0,1]; |
50 | this._strokeColor = [0,0,0,1]; | 74 | } else { |
75 | this._strokeColor = this.options.stroke.color.css; | ||
76 | } | ||
77 | } else { | ||
78 | this._strokeColor = [0,0,0,1]; | ||
79 | } | ||
80 | |||
51 | this.startDraw(event); | 81 | this.startDraw(event); |
52 | } | 82 | } |
53 | }, | 83 | }, |
@@ -229,15 +259,20 @@ exports.LineTool = Montage.create(ShapeTool, { | |||
229 | var strokeColor = this.options.stroke.webGlColor; | 259 | var strokeColor = this.options.stroke.webGlColor; |
230 | // for default stroke and fill/no materials | 260 | // for default stroke and fill/no materials |
231 | var strokeMaterial = null; | 261 | var strokeMaterial = null; |
262 | var strokeM = null; | ||
232 | 263 | ||
233 | if(this.options.use3D) | 264 | if(this.options.use3D) |
234 | { | 265 | { |
235 | var strokeM = this.options.strokeMaterial; | 266 | strokeM = this.options.strokeMaterial; |
236 | if(strokeM) | 267 | if(strokeM) |
237 | { | 268 | { |
238 | strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); | 269 | strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); |
239 | } | 270 | } |
240 | strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; | 271 | if (strokeMaterial && this.options.stroke.color && (strokeMaterial.gradientType === this.options.stroke.color.gradientMode)) { |
272 | strokeColor = {gradientMode:strokeMaterial.gradientType, color:this.options.stroke.color.stops}; | ||
273 | } else { | ||
274 | strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; | ||
275 | } | ||
241 | } | 276 | } |
242 | 277 | ||
243 | var world = this.getGLWorld(canvas, this.options.use3D); | 278 | var world = this.getGLWorld(canvas, this.options.use3D); |
@@ -271,7 +306,9 @@ exports.LineTool = Montage.create(ShapeTool, { | |||
271 | } | 306 | } |
272 | 307 | ||
273 | // TODO - This needs to be moved into geom obj's init routine instead of here | 308 | // TODO - This needs to be moved into geom obj's init routine instead of here |
274 | this.setColor(this.options.stroke, null, canvas, "lineTool"); | 309 | if(!strokeM) { |
310 | this.setColor(canvas, this.options.stroke, false, "lineTool"); | ||
311 | } | ||
275 | 312 | ||
276 | if(canvas.elementModel.isShape) | 313 | if(canvas.elementModel.isShape) |
277 | { | 314 | { |