aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/RDGE
diff options
context:
space:
mode:
authorJonathan Duran2012-02-08 10:48:52 -0800
committerJonathan Duran2012-02-08 10:48:52 -0800
commit8a2ef825490358f992d6d687174b0a16fd8302c1 (patch)
tree12cdf68a4f1de01fc33b9e23bbce0afab6c2d7ae /js/helper-classes/RDGE
parenta460855c2132bffc666582659520e575d687d0cd (diff)
downloadninja-8a2ef825490358f992d6d687174b0a16fd8302c1.tar.gz
Squashed commit of the following:
commit 763910b9d074137eb7dee80447b89407ce5750c9 Merge: e557937 329a859 Author: Valerio Virgillito <valerio@motorola.com> Date: Wed Feb 8 10:18:36 2012 -0800 Merge pull request #20 from mqg734/ToolFixes Hooked up materials code to go through the ShapesController and updated the PI to reflect the currently selected shape's materials. Also fixed the following bugs: commit e5579374ff39b80b8c0c69faba37f6f581758fe0 Author: Valerio Virgillito <valerio@motorola.com> Date: Tue Feb 7 13:28:17 2012 -0800 updated montage v.0.6 to the latest changes. Signed-off-by: Valerio Virgillito <valerio@motorola.com> commit 329a859e2666716c3a1d99c6bd2679e10c81fc8d Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 15:25:11 2012 -0800 Added ability to toggle combobox's visibility so we can show/hide materials comboboxes in the tool options. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 668510892537eaaeb2e11520831d87b44b2489b7 Merge: 8950b34 c066fb4 Author: Valerio Virgillito <valerio@motorola.com> Date: Tue Feb 7 14:19:22 2012 -0800 Merge pull request #19 from ericguzman/TreeComponents Tree Components - Added copyright comments commit aec849d91e4b697d496b9ede28b5d89cf2283781 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 14:18:13 2012 -0800 id's must start with a letter, so our workaround for using uuid for RDGE canvas id's won't work because they often start with a number. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit e8e21367e59bb521801fe2e843f42ad5bca5ea9f Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 13:52:54 2012 -0800 Fixing some typos and undeclared variables in GLRectangle and ShapesController. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit c066fb41ebee85bacf9b2155366b16831af41d76 Author: Eric Guzman <ericg@motorola.com> Date: Tue Feb 7 13:46:05 2012 -0800 Tree Components - Added copyright comments commit 3a8875c288049b466bfeb8b7f0510fd8cbfb970d Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 13:30:08 2012 -0800 Supporting switching materials in the PI. Also, moved makeFillMaterial and makeStrokeMaterial functions into GLGeomObj so shapes other than GLRectangle can use these routines. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 8ad767b61460984a4031ba630f76ac8247a61857 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 11:42:10 2012 -0800 Fixed PI to support WebGL materials. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 486842239c71e7964f38a09aacda4970f2a82e1a Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 10:58:14 2012 -0800 Updated tools and PI to get/set materials by binding to appModel's materials property. This requires us to add FlatMaterial to the list of materials in the MaterialsLibrary. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 789eaf5a92c903f27462c69a8890fbec695ab14e Merge: 92ae17b 8950b34 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Tue Feb 7 09:36:29 2012 -0800 Merge branch 'refs/heads/ninja-internal' into ToolFixes commit 92ae17bc800cf82cdbd1482ef1af1a5fd7bd632a Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Mon Feb 6 16:35:12 2012 -0800 Force layout canvas and SelectionController to update their info when a 2d canvas is replaced by a 3d canvas (and vice-versa). Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 75486be2839494c9b54833aff8f5eef3f9542151 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Mon Feb 6 15:41:48 2012 -0800 Support toggling between 2d and 3d canvas context. This requires us to create a new canvas with all the same values as the canvas being replaced and copying over all the shape data. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit f94b0c5ada403379b3ff8a900c2a2aabcecce49e Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Mon Feb 6 14:03:40 2012 -0800 Add enabled property for ComboBox to support enabling/disabling materials dropdowns in the PI. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 5737864d1d55d96e3cc3c1bc9b38ec58303b3981 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Mon Feb 6 13:35:30 2012 -0800 Allow users to switch between 2d and webGL mode. Note that this doesn't currently work. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> commit 486d9a31a85dd833a1c798049a00403756703034 Author: Nivesh Rajbhandari <mqg734@motorola.com> Date: Mon Feb 6 11:35:49 2012 -0800 Support use WebGL checkbox in the PI. Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com> Signed-off-by: Jonathan Duran <jduran@motorola.com>
Diffstat (limited to 'js/helper-classes/RDGE')
-rw-r--r--js/helper-classes/RDGE/GLCircle.js79
-rw-r--r--js/helper-classes/RDGE/GLGeomObj.js51
-rw-r--r--js/helper-classes/RDGE/GLLine.js27
-rw-r--r--js/helper-classes/RDGE/GLRectangle.js65
-rw-r--r--js/helper-classes/RDGE/GLWorld.js2
-rw-r--r--js/helper-classes/RDGE/MaterialsLibrary.js2
6 files changed, 75 insertions, 151 deletions
diff --git a/js/helper-classes/RDGE/GLCircle.js b/js/helper-classes/RDGE/GLCircle.js
index fc2e6460..e6bcba89 100644
--- a/js/helper-classes/RDGE/GLCircle.js
+++ b/js/helper-classes/RDGE/GLCircle.js
@@ -33,14 +33,6 @@ function GLCircle()
33 33
34 this._ovalHeight = this._ovalHeight = 2.0*this.radius; 34 this._ovalHeight = this._ovalHeight = 2.0*this.radius;
35 35
36 // stroke and fill colors
37 this._strokeColor = [0.4, 0.4, 0.4, 1.0];
38 this._fillColor = [0.0, 0.6, 0.0, 1.0];
39
40 // stroke and fill materials
41 this._fillMaterial;
42 this._strokeMaterial;
43
44 this._strokeStyle = "Solid"; 36 this._strokeStyle = "Solid";
45 37
46 this._aspectRatio = 1.0; 38 this._aspectRatio = 1.0;
@@ -189,19 +181,19 @@ function GLCircle()
189 var reverseRotMat = Matrix.RotationZ( -angle ); 181 var reverseRotMat = Matrix.RotationZ( -angle );
190 182
191 // calculate matrices to scale the circle and stroke to fit the bounds of the ellipse 183 // calculate matrices to scale the circle and stroke to fit the bounds of the ellipse
192 strokeScaleMat = Matrix.I(4); 184 var strokeScaleMat = Matrix.I(4);
193 strokeScaleMat[0] = xRad; 185 strokeScaleMat[0] = xRad;
194 strokeScaleMat[5] = yRad; 186 strokeScaleMat[5] = yRad;
195 187
196 fillScaleMat = Matrix.I(4); 188 var fillScaleMat = Matrix.I(4);
197 fillScaleMat[0] = xRad - xStroke; 189 fillScaleMat[0] = xRad - xStroke;
198 fillScaleMat[5] = yRad - yStroke; 190 fillScaleMat[5] = yRad - yStroke;
199 191
200 innerRadiusScaleMat = Matrix.I(4); 192 var innerRadiusScaleMat = Matrix.I(4);
201 innerRadiusScaleMat[0] = xInnRad; 193 innerRadiusScaleMat[0] = xInnRad;
202 innerRadiusScaleMat[5] = yInnRad; 194 innerRadiusScaleMat[5] = yInnRad;
203 195
204 innerStrokeScaleMat = Matrix.I(4); 196 var innerStrokeScaleMat = Matrix.I(4);
205 innerStrokeScaleMat[0] = xInnRad - xStroke; 197 innerStrokeScaleMat[0] = xInnRad - xStroke;
206 innerStrokeScaleMat[5] = yInnRad - yStroke; 198 innerStrokeScaleMat[5] = yInnRad - yStroke;
207 199
@@ -233,69 +225,24 @@ function GLCircle()
233 225
234 if (fillPrim) 226 if (fillPrim)
235 { 227 {
236 this._primArray.push( fillPrim ); 228 fillMaterial = this.makeFillMaterial();
237
238 if (this.getFillMaterial())
239 fillMaterial = this.getFillMaterial().dup();
240 else
241 fillMaterial = new FlatMaterial();
242 229
243 if (fillMaterial) 230 this._primArray.push( fillPrim );
244 { 231 this._materialNodeArray.push( fillMaterial.getMaterialNode() );
245 fillMaterial.init( this.getWorld() );
246 if(!this.getFillMaterial() && this._fillColor)
247 {
248 fillMaterial.setProperty("color", this._fillColor);
249 }
250 this._materialArray.push( fillMaterial );
251 this._materialTypeArray.push( "fill" );
252 var matNode = fillMaterial.getMaterialNode();
253 this._materialNodeArray.push( matNode );
254 }
255 } 232 }
256 if (strokePrim0) 233 if (strokePrim0)
257 { 234 {
258 if (this.getStrokeMaterial()) 235 strokeMaterial0 = this.makeStrokeMaterial();
259 strokeMaterial = this.getStrokeMaterial().dup();
260 else
261 strokeMaterial = new FlatMaterial();
262 236
263 if (strokeMaterial) 237 this._primArray.push( strokePrim0 );
264 { 238 this._materialNodeArray.push( strokeMaterial0.getMaterialNode() );
265 strokeMaterial.init( this.getWorld() );
266 if(!this.getStrokeMaterial() && this._strokeColor)
267 {
268 strokeMaterial.setProperty("color", this._strokeColor);
269 }
270 this._primArray.push( strokePrim0 );
271
272 var materialNode = createMaterialNode("ovalFillMaterial");
273 this._materialArray.push( strokeMaterial );
274 this._materialTypeArray.push( "stroke" );
275 this._materialNodeArray.push( strokeMaterial.getMaterialNode() );
276 }
277 } 239 }
278 if (strokePrim1) 240 if (strokePrim1)
279 { 241 {
280 if (this.getStrokeMaterial()) 242 strokeMaterial2 = this.makeStrokeMaterial();
281 strokeMaterial = this.getStrokeMaterial().dup();
282 else
283 strokeMaterial = new FlatMaterial();
284 243
285 if (strokeMaterial) 244 this._primArray.push( strokePrim1 );
286 { 245 this._materialNodeArray.push( strokeMaterial2.getMaterialNode() );
287 strokeMaterial.init( this.getWorld() );
288 if(!this.getStrokeMaterial() && this._strokeColor)
289 {
290 strokeMaterial.setProperty("color", this._strokeColor);
291 }
292 this._primArray.push( strokePrim1 );
293
294 var materialNode = createMaterialNode("ovalFillMaterial");
295 this._materialArray.push( strokeMaterial );
296 this._materialTypeArray.push( "stroke" );
297 this._materialNodeArray.push( strokeMaterial.getMaterialNode() );
298 }
299 } 246 }
300 247
301 world.updateObject(this); 248 world.updateObject(this);
diff --git a/js/helper-classes/RDGE/GLGeomObj.js b/js/helper-classes/RDGE/GLGeomObj.js
index 72019703..62fbf562 100644
--- a/js/helper-classes/RDGE/GLGeomObj.js
+++ b/js/helper-classes/RDGE/GLGeomObj.js
@@ -37,6 +37,10 @@ function GLGeomObj()
37 37
38 this.m_world = null; 38 this.m_world = null;
39 39
40 // stroke and fill colors
41 this._strokeColor;
42 this._fillColor;
43
40 // stroke and fill materials 44 // stroke and fill materials
41 this._fillMaterial; 45 this._fillMaterial;
42 this._strokeMaterial; 46 this._strokeMaterial;
@@ -104,6 +108,53 @@ function GLGeomObj()
104 this.setFillColor = function(c) { this.setMaterialColor(c, "fill"); } 108 this.setFillColor = function(c) { this.setMaterialColor(c, "fill"); }
105 this.setStrokeColor = function(c) { this.setMaterialColor(c, "stroke"); } 109 this.setStrokeColor = function(c) { this.setMaterialColor(c, "stroke"); }
106 110
111 this.makeStrokeMaterial = function()
112 {
113 var strokeMaterial;
114 if (this.getStrokeMaterial())
115 strokeMaterial = this.getStrokeMaterial().dup();
116 else
117 strokeMaterial = new FlatMaterial();
118
119 if (strokeMaterial)
120 {
121 strokeMaterial.init( this.getWorld() );
122 if(this._strokeColor)
123 {
124 strokeMaterial.setProperty("color", this._strokeColor);
125 }
126 }
127
128 this._materialArray.push( strokeMaterial );
129 this._materialTypeArray.push( "stroke" );
130
131 return strokeMaterial;
132 }
133
134 this.makeFillMaterial = function()
135 {
136 var fillMaterial;
137 if (this.getFillMaterial())
138 fillMaterial = this.getFillMaterial().dup();
139 else
140 fillMaterial = new FlatMaterial();
141
142 if (fillMaterial)
143 {
144 fillMaterial.init( this.getWorld() );
145 //if(!this.getFillMaterial() && this._fillColor)
146 if (this._fillColor)
147 {
148 fillMaterial.setProperty("color", this._fillColor);
149 }
150 }
151
152 this._materialArray.push( fillMaterial );
153 this._materialTypeArray.push( "fill" );
154
155 return fillMaterial;
156 }