diff options
author | Jonathan Duran | 2012-02-08 10:48:52 -0800 |
---|---|---|
committer | Jonathan Duran | 2012-02-08 10:48:52 -0800 |
commit | 8a2ef825490358f992d6d687174b0a16fd8302c1 (patch) | |
tree | 12cdf68a4f1de01fc33b9e23bbce0afab6c2d7ae /js/controllers | |
parent | a460855c2132bffc666582659520e575d687d0cd (diff) | |
download | ninja-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/controllers')
-rw-r--r-- | js/controllers/elements/shapes-controller.js | 100 |
1 files changed, 97 insertions, 3 deletions
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index 5efbccd0..e764de4e 100644 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -5,7 +5,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot | |||
5 | </copyright> */ | 5 | </copyright> */ |
6 | 6 | ||
7 | var Montage = require("montage/core/core").Montage, | 7 | var Montage = require("montage/core/core").Montage, |
8 | CanvasController = require("js/controllers/elements/canvas-controller").CanvasController; | 8 | CanvasController = require("js/controllers/elements/canvas-controller").CanvasController, |
9 | njModule = require("js/lib/NJUtils"); | ||
9 | 10 | ||
10 | exports.ShapesController = Montage.create(CanvasController, { | 11 | exports.ShapesController = Montage.create(CanvasController, { |
11 | 12 | ||
@@ -56,6 +57,35 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
56 | el.elementModel.shapeModel.GLWorld.setViewportFromCanvas(el); | 57 | el.elementModel.shapeModel.GLWorld.setViewportFromCanvas(el); |
57 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | 58 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); |
58 | break; | 59 | break; |
60 | case "useWebGl": | ||
61 | var canvas = njModule.NJUtils.makeNJElement("canvas", "Canvas", "shape", el.className, true); | ||
62 | canvas.width = el.width; | ||
63 | canvas.height = el.height; | ||
64 | this.application.ninja.elementMediator.replaceElement(el, canvas); | ||
65 | NJevent("elementDeleted", el); | ||
66 | this.application.ninja.selectionController.selectElement(canvas); | ||
67 | el = canvas; | ||
68 | this.toggleWebGlMode(el, value); | ||
69 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | ||
70 | break; | ||
71 | case "strokeMaterial": | ||
72 | var sm = Object.create(MaterialsLibrary.getMaterial(value)); | ||
73 | if(sm) | ||
74 | { | ||
75 | el.elementModel.shapeModel.GLGeomObj.setStrokeMaterial(sm); | ||
76 | el.elementModel.shapeModel.strokeMaterial = sm; | ||
77 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | ||
78 | } | ||
79 | break; | ||
80 | case "fillMaterial": | ||
81 | var fm = Object.create(MaterialsLibrary.getMaterial(value)); | ||
82 | if(fm) | ||
83 | { | ||
84 | el.elementModel.shapeModel.GLGeomObj.setFillMaterial(fm); | ||
85 | el.elementModel.shapeModel.fillMaterial = fm; | ||
86 | el.elementModel.shapeModel.GLGeomObj.buildBuffers(); | ||
87 | } | ||
88 | break; | ||
59 | default: | 89 | default: |
60 | CanvasController.setProperty(el, p, value); | 90 | CanvasController.setProperty(el, p, value); |
61 | } | 91 | } |
@@ -72,11 +102,21 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
72 | case "trRadius": | 102 | case "trRadius": |
73 | case "blRadius": | 103 | case "blRadius": |
74 | case "brRadius": | 104 | case "brRadius": |
75 | case "strokeMaterial": | ||
76 | case "fillMaterial": | ||
77 | case "border": | 105 | case "border": |
78 | case "background": | 106 | case "background": |
107 | case "useWebGl": | ||
79 | return this.getShapeProperty(el, p); | 108 | return this.getShapeProperty(el, p); |
109 | case "strokeMaterial": | ||
110 | case "fillMaterial": | ||
111 | var m = this.getShapeProperty(el, p); | ||
112 | if(m) | ||
113 | { | ||
114 | return this.getShapeProperty(el, p).getName(); | ||
115 | } | ||
116 | else | ||
117 | { | ||
118 | return "FlatMaterial"; | ||
119 | } | ||
80 | default: | 120 | default: |
81 | return CanvasController.getProperty(el, p); | 121 | return CanvasController.getProperty(el, p); |
82 | } | 122 | } |
@@ -275,6 +315,60 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
275 | { | 315 | { |
276 | return (el.elementModel && el.elementModel.isShape); | 316 | return (el.elementModel && el.elementModel.isShape); |
277 | } | 317 | } |
318 | }, | ||
319 | |||
320 | toggleWebGlMode: { | ||
321 | value: function(el, useWebGl) | ||
322 | { | ||
323 | if(useWebGl) | ||
324 | { | ||
325 | this.convertToWebGlWorld(el); | ||
326 | } | ||
327 | else | ||
328 | { | ||
329 | this.convertTo2DWorld(el); | ||
330 | } | ||
331 | } | ||
332 | }, | ||
333 | |||
334 | convertToWebGlWorld: { | ||
335 | value: function(el) | ||
336 | { | ||
337 | if(el.elementModel.shapeModel.useWebGl) | ||
338 | { | ||
339 | return; | ||
340 | } | ||
341 | var world, | ||
342 | worldData = el.elementModel.shapeModel.GLWorld.export(); | ||
343 | if(worldData) | ||
344 | { | ||
345 | world = new GLWorld(el, true); | ||
346 | el.elementModel.shapeModel.GLWorld = world; | ||
347 | el.elementModel.shapeModel.useWebGl = true; | ||
348 | world.import(worldData); | ||
349 | } | ||
350 | |||
351 | } | ||
352 | }, | ||
353 | |||
354 | convertTo2DWorld: { | ||
355 | value: function(el) | ||
356 | { | ||
357 | if(!el.elementModel.shapeModel.useWebGl) | ||
358 | { | ||
359 | return; | ||
360 | } | ||
361 | var world, | ||
362 | worldData = el.elementModel.shapeModel.GLWorld.export(); | ||
363 | if(worldData) | ||
364 | { | ||
365 | world = new GLWorld(el, false); | ||
366 | el.elementModel.shapeModel.GLWorld = world; | ||
367 | el.elementModel.shapeModel.useWebGl = false; | ||
368 | world.import(worldData); | ||
369 | } | ||
370 | |||
371 | } | ||
278 | } | 372 | } |
279 | 373 | ||
280 | }); | 374 | }); |