aboutsummaryrefslogtreecommitdiff
path: root/js/tools
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools')
-rwxr-xr-xjs/tools/SelectionTool.js24
-rwxr-xr-xjs/tools/TextTool.js2
-rwxr-xr-xjs/tools/ToolBase.js2
-rwxr-xr-xjs/tools/drawing-tool-base.js11
-rwxr-xr-xjs/tools/modifier-tool-base.js17
5 files changed, 38 insertions, 18 deletions
diff --git a/js/tools/SelectionTool.js b/js/tools/SelectionTool.js
index 8b644d4a..a0d5bc26 100755
--- a/js/tools/SelectionTool.js
+++ b/js/tools/SelectionTool.js
@@ -47,6 +47,20 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
47 } 47 }
48 }, 48 },
49 49
50 _areElementsIn2D : {
51 value: function () {
52 if(this.application.ninja.selectedElements.length) {
53 var len = this.application.ninja.selectedElements.length;
54 for(var i = 0; i < len; i++) {
55 if(!MathUtils.isIdentityMatrix(this.application.ninja.selectedElements[i].elementModel.getProperty("mat"))) {
56 return false;
57 }
58 }
59 }
60 return true;
61 }
62 },
63
50 startDraw: { 64 startDraw: {
51 value: function(event) { 65 value: function(event) {
52 this.drawData = null; 66 this.drawData = null;
@@ -70,7 +84,8 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
70 if(this._canSnap) 84 if(this._canSnap)
71 { 85 {
72 this.initializeSnapping(event); 86 this.initializeSnapping(event);
73 this._use3DMode = !this._areElementsOnSamePlane(); 87// this._use3DMode = !this._areElementsOnSamePlane();
88 this._use3DMode = !this._areElementsIn2D();
74// console.log("use3DMode = " + this._use3DMode); 89// console.log("use3DMode = " + this._use3DMode);
75 } 90 }
76 else 91 else
@@ -583,11 +598,8 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
583 this.mouseUpHitRec = DrawingToolBase.getUpdatedSnapPoint(point.x, point.y, do3DSnap, this.mouseDownHitRec); 598 this.mouseUpHitRec = DrawingToolBase.getUpdatedSnapPoint(point.x, point.y, do3DSnap, this.mouseDownHitRec);
584 if (this._mouseDownHitRec && this._mouseUpHitRec) 599 if (this._mouseDownHitRec && this._mouseUpHitRec)
585 { 600 {
586 data = this.getDrawingData(event); 601 this.modifyElements({pt0:this._mouseDownHitRec.calculateElementScreenPoint(),
587 if(data) 602 pt1:this._mouseUpHitRec.calculateElementScreenPoint()}, event);
588 {
589 this.modifyElements({pt0:data.mouseDownPos, pt1:data.mouseUpPos}, event);
590 }
591 } 603 }
592 } 604 }
593 } 605 }
diff --git a/js/tools/TextTool.js b/js/tools/TextTool.js
index 024a92ce..0aef6c1c 100755
--- a/js/tools/TextTool.js
+++ b/js/tools/TextTool.js
@@ -6,7 +6,7 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
6 6
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 RichTextEditor = require("node_modules/labs/rich-text-editor.reel").RichTextEditor, 9 //RichTextEditor = ("node_modules/labs/rich-text-editor.reel").RichTextEditor,
10 ElementsMediator = require("js/mediators/element-mediator").ElementMediator; 10 ElementsMediator = require("js/mediators/element-mediator").ElementMediator;
11 11
12exports.TextTool = Montage.create(DrawingTool, { 12exports.TextTool = Montage.create(DrawingTool, {
diff --git a/js/tools/ToolBase.js b/js/tools/ToolBase.js
index f43b1b58..88333c74 100755
--- a/js/tools/ToolBase.js
+++ b/js/tools/ToolBase.js
@@ -35,6 +35,8 @@ exports.toolBase = Montage.create(Component, {
35 _currentX: {value: 0, writable: true}, 35 _currentX: {value: 0, writable: true},
36 _currentY: {value: 0, writable: true}, 36 _currentY: {value: 0, writable: true},
37 37
38 _dragPlane: { value: null },
39
38 /** 40 /**
39 * This function is for specifying custom feedback routine 41 * This function is for specifying custom feedback routine
40 * upon mouse over. 42 * upon mouse over.
diff --git a/js/tools/drawing-tool-base.js b/js/tools/drawing-tool-base.js
index a752ad65..b5416a65 100755
--- a/js/tools/drawing-tool-base.js
+++ b/js/tools/drawing-tool-base.js
@@ -14,9 +14,16 @@ var drawUtils = require("js/helper-classes/3D/draw-utils").DrawUtils;
14 14
15exports.DrawingToolBase = Montage.create(Component, { 15exports.DrawingToolBase = Montage.create(Component, {
16 16
17 dragPlane: { 17 dragPlane:
18 value: null 18 {
19 get: function () {
20 return this.application.ninja.toolsData.selectedToolInstance._dragPlane;
21 },
22 set: function (value) {
23 this.application.ninja.toolsData.selectedToolInstance._dragPlane = value;
24 }
19 }, 25 },
26
20 /** 27 /**
21 * Used on the initial MouseDown for Drawing Tools 28 * Used on the initial MouseDown for Drawing Tools
22 * 29 *
diff --git a/js/tools/modifier-tool-base.js b/js/tools/modifier-tool-base.js
index 6c569f0a..14a7e619 100755
--- a/js/tools/modifier-tool-base.js
+++ b/js/tools/modifier-tool-base.js
@@ -21,7 +21,6 @@ exports.ModifierToolBase = Montage.create(DrawingTool, {
21 //------------------------------------------------------------------------- 21 //-------------------------------------------------------------------------
22 // Snapping-specific properties 22 // Snapping-specific properties
23 _canSnap: { value: true }, 23 _canSnap: { value: true },
24 _dragPlane: { value: null },
25 _snapParam: { value: null }, 24 _snapParam: { value: null },
26 _snapIndex: { value: -1 }, 25 _snapIndex: { value: -1 },
27 _useQuadPt: { value: false }, 26 _useQuadPt: { value: false },
@@ -163,15 +162,15 @@ exports.ModifierToolBase = Montage.create(DrawingTool, {
163 162
164 if(!this._dragPlane) 163 if(!this._dragPlane)
165 { 164 {
166// if( this._inLocalMode && (this._startMatArray.length === 1) ) 165 if((this._handleMode !== null) && (this.application.ninja.toolsData.selectedTool.action === "SelectionTool"))
167// { 166 {
168// this._dragPlane = viewUtils.getUnprojectedElementPlane(this._clickedObject); 167 this._dragPlane = viewUtils.getUnprojectedElementPlane(this.application.ninja.selectedElements[0]);
169// snapManager.setupDragPlaneFromPlane(this._dragPlane); 168 snapManager.setupDragPlaneFromPlane(this._dragPlane);
170// } 169 }
171// else 170 else
172// { 171 {
173 this._dragPlane = snapManager.setupDragPlanes( hitRec, true ); 172 this._dragPlane = snapManager.setupDragPlanes( hitRec, true );
174// } 173 }
175 } 174 }
176 175
177 // only do quadrant snapping if the 4 corners of the element are in the drag plane 176 // only do quadrant snapping if the 4 corners of the element are in the drag plane