diff options
Diffstat (limited to 'js/tools/RectTool.js')
-rwxr-xr-x | js/tools/RectTool.js | 64 |
1 files changed, 50 insertions, 14 deletions
diff --git a/js/tools/RectTool.js b/js/tools/RectTool.js index df049395..f53e78b6 100755 --- a/js/tools/RectTool.js +++ b/js/tools/RectTool.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, |
@@ -59,27 +83,37 @@ exports.RectTool = Montage.create(ShapeTool, { | |||
59 | var blRadius = ShapesController.GetValueInPixels(this.options.BLRadiusControl.value, this.options.BLRadiusControl.units, h); | 83 | var blRadius = ShapesController.GetValueInPixels(this.options.BLRadiusControl.value, this.options.BLRadiusControl.units, h); |
60 | var brRadius = ShapesController.GetValueInPixels(this.options.BRRadiusControl.value, this.options.BRRadiusControl.units, h); | 84 | var brRadius = ShapesController.GetValueInPixels(this.options.BRRadiusControl.value, this.options.BRRadiusControl.units, h); |
61 | 85 | ||
62 | var strokeColor = this.options.stroke.webGlColor; | 86 | var strokeColor = this.options.stroke.webGlColor || [0,0,0,1]; |
63 | var fillColor = this.options.fill.webGlColor; | 87 | var fillColor = this.options.fill.webGlColor || [1,1,1,1]; |
64 | // for default stroke and fill/no materials | 88 | // for default stroke and fill/no materials |
65 | var strokeMaterial = null; | 89 | var strokeMaterial = null; |
66 | var fillMaterial = null; | 90 | var fillMaterial = null; |
91 | var fillM = null; | ||
92 | var strokeM = null; | ||
67 | 93 | ||
68 | if(this.options.use3D) | 94 | if(this.options.use3D) |
69 | { | 95 | { |
70 | var strokeM = this.options.strokeMaterial; | 96 | strokeM = this.options.strokeMaterial; |
71 | if(strokeM) | 97 | if(strokeM) |
72 | { | 98 | { |
73 | strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); | 99 | strokeMaterial = Object.create(MaterialsModel.getMaterial(strokeM)); |
74 | } | 100 | } |
75 | strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; | 101 | if (strokeMaterial && this.options.stroke.color && (strokeMaterial.gradientType === this.options.stroke.color.gradientMode)) { |
102 | strokeColor = {gradientMode:strokeMaterial.gradientType, color:this.options.stroke.color.stops}; | ||
103 | } else { | ||
104 | strokeColor = ShapesController.getMaterialColor(strokeM) || strokeColor; | ||
105 | } | ||
76 | 106 | ||
77 | var fillM = this.options.fillMaterial; | 107 | fillM = this.options.fillMaterial; |
78 | if(fillM) | 108 | if(fillM) |
79 | { | 109 | { |
80 | fillMaterial = Object.create(MaterialsModel.getMaterial(fillM)); | 110 | fillMaterial = Object.create(MaterialsModel.getMaterial(fillM)); |
81 | } | 111 | } |
82 | fillColor = ShapesController.getMaterialColor(fillM) || fillColor; | 112 | if (fillMaterial && this.options.fill.color && (fillMaterial.gradientType === this.options.fill.color.gradientMode)) { |
113 | fillColor = {gradientMode:fillMaterial.gradientType, color:this.options.fill.color.stops}; | ||
114 | } else { | ||
115 | fillColor = ShapesController.getMaterialColor(fillM) || fillColor; | ||
116 | } | ||
83 | } | 117 | } |
84 | 118 | ||
85 | var world = this.getGLWorld(canvas, this.options.use3D); | 119 | var world = this.getGLWorld(canvas, this.options.use3D); |
@@ -118,14 +152,16 @@ exports.RectTool = Montage.create(ShapeTool, { | |||
118 | } | 152 | } |
119 | 153 | ||
120 | // TODO - This needs to be moved into geom obj's init routine instead of here | 154 | // TODO - This needs to be moved into geom obj's init routine instead of here |
121 | this.setColor(this.options.stroke, this.options.fill, canvas, "rectTool"); | 155 | if(!fillM) { |
122 | 156 | this.setColor(canvas, this.options.fill, true, "rectTool"); | |
157 | } | ||
158 | if(!strokeM) { | ||
159 | this.setColor(canvas, this.options.stroke, false, "rectTool"); | ||
160 | } | ||
123 | if(canvas.elementModel.isShape) | 161 | if(canvas.elementModel.isShape) |
124 | { | 162 | { |
125 | this.application.ninja.selectionController.selectElement(canvas); | 163 | this.application.ninja.selectionController.selectElement(canvas); |
126 | } | 164 | } |
127 | |||
128 | |||
129 | } | 165 | } |
130 | } | 166 | } |
131 | }); \ No newline at end of file | 167 | }); |