aboutsummaryrefslogtreecommitdiff
path: root/js/tools/ShapeTool.js
diff options
context:
space:
mode:
authorNivesh Rajbhandari2012-04-04 17:24:27 -0700
committerNivesh Rajbhandari2012-04-04 17:24:27 -0700
commit01cf259da7aaa7d70789d9a7c32111d88b477463 (patch)
tree0bff3395ac681e5f685d2267f7dbc03a8e32bc4a /js/tools/ShapeTool.js
parent331ea08655245e3532e48bf160d5f68a04d8723f (diff)
parent13368ca6ebbc13adeafccd898dfffd7ce37cb28a (diff)
downloadninja-01cf259da7aaa7d70789d9a7c32111d88b477463.tar.gz
Merge branch 'refs/heads/ToolFixes' into WebGLMaterials
Conflicts: js/document/templates/montage-html/default_html.css js/mediators/element-mediator.js js/panels/properties.reel/properties.js js/tools/BrushTool.js js/tools/LineTool.js js/tools/PenTool.js js/tools/SelectionTool.js js/tools/ShapeTool.js js/tools/TranslateObject3DTool.js Signed-off-by: Nivesh Rajbhandari <mqg734@motorola.com>
Diffstat (limited to 'js/tools/ShapeTool.js')
-rwxr-xr-xjs/tools/ShapeTool.js47
1 files changed, 24 insertions, 23 deletions
diff --git a/js/tools/ShapeTool.js b/js/tools/ShapeTool.js
index 2124376d..00d36528 100755
--- a/js/tools/ShapeTool.js
+++ b/js/tools/ShapeTool.js
@@ -7,7 +7,6 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
7var Montage = require("montage/core/core").Montage, 7var Montage = require("montage/core/core").Montage,
8 DrawingTool = require("js/tools/drawing-tool").DrawingTool, 8 DrawingTool = require("js/tools/drawing-tool").DrawingTool,
9 NJUtils = require("js/lib/NJUtils").NJUtils, 9 NJUtils = require("js/lib/NJUtils").NJUtils,
10 ElementMediator = require("js/mediators/element-mediator").ElementMediator,
11 ShapesController = require("js/controllers/elements/shapes-controller").ShapesController, 10 ShapesController = require("js/controllers/elements/shapes-controller").ShapesController,
12 ShapeModel = require("js/models/shape-model").ShapeModel, 11 ShapeModel = require("js/models/shape-model").ShapeModel,
13 TagTool = require("js/tools/TagTool").TagTool; 12 TagTool = require("js/tools/TagTool").TagTool;
@@ -60,30 +59,24 @@ exports.ShapeTool = Montage.create(DrawingTool, {
60 { 59 {
61 var drawData; 60 var drawData;
62 61
63 drawData = this.getDrawingData(); 62 drawData = this.getDrawingData();
64 63
65 if(drawData) { 64 if(drawData) {
66 var canvas; 65 var canvas;
67 if(!this._useExistingCanvas()) 66 if(!this._useExistingCanvas()) {
68 {
69 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true); 67 canvas = NJUtils.makeNJElement("canvas", "Canvas", "shape", {"data-RDGE-id": NJUtils.generateRandom()}, true);
70 var elementModel = TagTool.makeElement(~~drawData.width, ~~drawData.height, 68 var elementModel = TagTool.makeElement(~~drawData.width, ~~drawData.height,
71 drawData.planeMat, drawData.midPt, canvas, this.options.use3D); 69 drawData.planeMat, drawData.midPt, canvas, this.options.use3D);
72 70
73 ElementMediator.addElement(canvas, elementModel.data, true);
74 canvas.elementModel.isShape = true; 71 canvas.elementModel.isShape = true;
75 } 72 this.application.ninja.elementMediator.addElements(canvas, elementModel.data);
76 else 73 } else {
77 {
78 canvas = this._targetedElement; 74 canvas = this._targetedElement;
79 canvas.elementModel.controller = ShapesController; 75 canvas.elementModel.controller = ShapesController;
80 if(!canvas.elementModel.shapeModel) 76 if(!canvas.elementModel.shapeModel) {
81 {
82 canvas.elementModel.shapeModel = Montage.create(ShapeModel); 77 canvas.elementModel.shapeModel = Montage.create(ShapeModel);
83 } 78 }
84 } 79 }
85 this.RenderShape(drawData.width, drawData.height, drawData.planeMat, drawData.midPt, canvas);
86 NJevent("elementAdded", canvas);
87 } 80 }
88 81
89 this.endDraw(event); 82 this.endDraw(event);
@@ -91,17 +84,28 @@ exports.ShapeTool = Montage.create(DrawingTool, {
91 this._isDrawing = false; 84 this._isDrawing = false;
92 this._hasDraw=false; 85 this._hasDraw=false;
93 86
94
95 this.DrawHandles(); 87 this.DrawHandles();
96 } 88 }
97 }, 89 },
98 90
91 onAddElements: {
92 value: function(el) {
93 var drawData;
94
95 if(drawData = this.getDrawingData()) {
96 this.RenderShape(drawData.width, drawData.height, drawData.planeMat, drawData.midPt, el);
97 }
98 }
99 },
100
99 Configure: { 101 Configure: {
100 value: function(wasSelected) { 102 value: function(wasSelected) {
101 if(wasSelected) { 103 if(wasSelected) {
102 this.AddCustomFeedback(); 104 this.AddCustomFeedback();
105 this.application.ninja.elementMediator.addDelegate = this;
103 } else { 106 } else {
104 this.RemoveCustomFeedback(); 107 this.RemoveCustomFeedback();
108 this.application.ninja.elementMediator.addDelegate = null;
105 } 109 }
106 } 110 }
107 }, 111 },
@@ -117,7 +121,7 @@ exports.ShapeTool = Montage.create(DrawingTool, {
117 RemoveCustomFeedback: { 121 RemoveCustomFeedback: {
118 value: function (event) { 122 value: function (event) {
119 if (this._targetedElement) { 123 if (this._targetedElement) {
120 this._targetedElement.classList.remove("elem-red-outline"); 124 this._targetedElement.classList.remove("active-element-outline");
121 this._targetedElement = null; 125 this._targetedElement = null;
122 } 126 }
123 127
@@ -134,23 +138,22 @@ exports.ShapeTool = Montage.create(DrawingTool, {
134 _showFeedbackOnMouseMove: { 138 _showFeedbackOnMouseMove: {
135 value: function (event) { 139 value: function (event) {
136 // TODO - This call is causing the canvas to redraw 3 times per mouse move 140 // TODO - This call is causing the canvas to redraw 3 times per mouse move
137 var targetedObject = this.application.ninja.stage.GetElement(event); 141 var targetedObject = this.application.ninja.stage.GetSelectableElement(event);
138 142
139 if (targetedObject) { 143 if (targetedObject) {
140 // TODO - Clean this up
141 if((targetedObject.nodeName === "CANVAS") && !ShapesController.isElementAShape(targetedObject)) 144 if((targetedObject.nodeName === "CANVAS") && !ShapesController.isElementAShape(targetedObject))
142 { 145 {
143 if (targetedObject !== this._targetedElement) { 146 if (targetedObject !== this._targetedElement) {
144 if(this._targetedElement) 147 if(this._targetedElement)
145 { 148 {
146 this._targetedElement.classList.remove("elem-red-outline"); 149 this._targetedElement.classList.remove("active-element-outline");
147 } 150 }
148 this._targetedElement = targetedObject; 151 this._targetedElement = targetedObject;
149 this._targetedElement.classList.add("elem-red-outline"); 152 this._targetedElement.classList.add("active-element-outline");
150 } 153 }
151 } 154 }
152 else if (this._targetedElement) { 155 else if (this._targetedElement) {
153 this._targetedElement.classList.remove("elem-red-outline"); 156 this._targetedElement.classList.remove("active-element-outline");
154 this._targetedElement = null; 157 this._targetedElement = null;
155 } 158 }
156 } 159 }
@@ -172,12 +175,12 @@ exports.ShapeTool = Montage.create(DrawingTool, {
172 getGLWorld: { 175 getGLWorld: {
173 value: function (canvas, use3D) 176 value: function (canvas, use3D)
174 { 177 {
175 var world = ElementMediator.getShapeProperty(canvas, "GLWorld"); 178 var world = this.application.ninja.elementMediator.getShapeProperty(canvas, "GLWorld");
176 if(!world) 179 if(!world)
177 { 180 {
178 // create all the GL stuff 181 // create all the GL stuff
179 var world = new World(canvas, use3D); 182 var world = new World(canvas, use3D);
180 ElementMediator.setShapeProperty(canvas, "GLWorld", world); 183 this.application.ninja.elementMediator.setShapeProperty(canvas, "GLWorld", world);
181 } 184 }
182 185
183 return world; 186 return world;
@@ -204,8 +207,6 @@ exports.ShapeTool = Montage.create(DrawingTool, {
204 } 207 }
205 }, 208 },
206 209
207
208
209 // We can draw on an existing canvas unless it has only a single shape object 210 // We can draw on an existing canvas unless it has only a single shape object
210 _useExistingCanvas: { 211 _useExistingCanvas: {
211 value: function() 212 value: function()