diff options
Diffstat (limited to 'js/tools/OvalTool.js')
-rwxr-xr-x | js/tools/OvalTool.js | 62 |
1 files changed, 50 insertions, 12 deletions
diff --git a/js/tools/OvalTool.js b/js/tools/OvalTool.js index 33bf763d..44598ed7 100755 --- a/js/tools/OvalTool.js +++ b/js/tools/OvalTool.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, |
@@ -39,28 +63,37 @@ exports.OvalTool = Montage.create(ShapeTool, { | |||
39 | 63 | ||
40 | var innerRadius = this.options.innerRadius.value / 100; | 64 | var innerRadius = this.options.innerRadius.value / 100; |
41 | 65 | ||
42 | var strokeColor = this.options.stroke.webGlColor; | 66 | var strokeColor = this.options.stroke.webGlColor || [0,0,0,1]; |
43 | var fillColor = this.options.fill.webGlColor; | 67 | var fillColor = this.options.fill.webGlColor || [1,1,1,1]; |
44 | |||
45 | // for default stroke and fill/no materials | 68 | // for default stroke and fill/no materials |
46 | var strokeMaterial = null; | 69 | var strokeMaterial = null; |
47 | var fillMaterial = null; | 70 | var fillMaterial = null; |
71 | var fillM = null; | ||
72 | var strokeM = null; | ||
48 | 73 | ||
49 | if(this.options.use3D) | 74 | if(this.options.use3D) |
50 | { | 75 | { |
51 | var strokeM = this.options.strokeMaterial; | 76 | strokeM = this.options.strokeMaterial; |
52 | if(strokeM) | 77 | if(strokeM) |
53 | { | 78 | { |
54 | strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); | 79 | strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); |
55 | } | 80 | } |
56 | strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; | 81 | if (strokeMaterial && this.options.stroke.color && (strokeMaterial.gradientType === this.options.stroke.color.gradientMode)) { |
82 | strokeColor = {gradientMode:strokeMaterial.gradientType, color:this.options.stroke.color.stops}; | ||
83 | } else { | ||
84 | strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; | ||
85 | } | ||
57 | 86 | ||
58 | var fillM = this.options.fillMaterial; | 87 | fillM = this.options.fillMaterial; |
59 | if(fillM) | 88 | if(fillM) |
60 | { | 89 | { |
61 | fillMaterial = Object.create(MaterialsModel.getMaterial(fillM)); | 90 | fillMaterial = Object.create(MaterialsModel.getMaterial(fillM)); |
62 | } | 91 | } |
63 | fillColor = ShapesController.getMaterialColor(fillM) || fillColor; | 92 | if (fillMaterial && this.options.fill.color && (fillMaterial.gradientType === this.options.fill.color.gradientMode)) { |
93 | fillColor = {gradientMode:fillMaterial.gradientType, color:this.options.fill.color.stops}; | ||
94 | } else { | ||
95 | fillColor = ShapesController.getMaterialColor(fillM) || fillColor; | ||
96 | } | ||
64 | } | 97 | } |
65 | 98 | ||
66 | var world = this.getGLWorld(canvas, this.options.use3D); | 99 | var world = this.getGLWorld(canvas, this.options.use3D); |
@@ -95,7 +128,12 @@ exports.OvalTool = Montage.create(ShapeTool, { | |||
95 | } | 128 | } |
96 | 129 | ||
97 | // TODO - This needs to be moved into geom obj's init routine instead of here | 130 | // TODO - This needs to be moved into geom obj's init routine instead of here |
98 | this.setColor(this.options.stroke, this.options.fill, canvas, "ovalTool"); | 131 | if(!fillM) { |
132 | this.setColor(canvas, this.options.fill, true, "ovalTool"); | ||
133 | } | ||
134 | if(!strokeM) { | ||
135 | this.setColor(canvas, this.options.stroke, false, "ovalTool"); | ||
136 | } | ||
99 | 137 | ||
100 | if(canvas.elementModel.isShape) | 138 | if(canvas.elementModel.isShape) |
101 | { | 139 | { |
@@ -104,4 +142,4 @@ exports.OvalTool = Montage.create(ShapeTool, { | |||
104 | 142 | ||
105 | } | 143 | } |
106 | } | 144 | } |
107 | }); \ No newline at end of file | 145 | }); |