aboutsummaryrefslogtreecommitdiff
path: root/js/tools/SelectionTool.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools/SelectionTool.js')
-rwxr-xr-xjs/tools/SelectionTool.js93
1 files changed, 47 insertions, 46 deletions
diff --git a/js/tools/SelectionTool.js b/js/tools/SelectionTool.js
index 03208dfe..923ed819 100755
--- a/js/tools/SelectionTool.js
+++ b/js/tools/SelectionTool.js
@@ -1,24 +1,25 @@
1/* <copyright> 1/* <copyright>
2Copyright (c) 2012, Motorola Mobility, Inc 2Copyright (c) 2012, Motorola Mobility LLC.
3All Rights Reserved. 3All Rights Reserved.
4BSD License.
5 4
6Redistribution and use in source and binary forms, with or without 5Redistribution and use in source and binary forms, with or without
7modification, are permitted provided that the following conditions are met: 6modification, are permitted provided that the following conditions are met:
8 7
9 - Redistributions of source code must retain the above copyright notice, 8* Redistributions of source code must retain the above copyright notice,
10 this list of conditions and the following disclaimer. 9 this list of conditions and the following disclaimer.
11 - Redistributions in binary form must reproduce the above copyright 10
12 notice, this list of conditions and the following disclaimer in the 11* Redistributions in binary form must reproduce the above copyright notice,
13 documentation and/or other materials provided with the distribution. 12 this list of conditions and the following disclaimer in the documentation
14 - Neither the name of Motorola Mobility nor the names of its contributors 13 and/or other materials provided with the distribution.
15 may be used to endorse or promote products derived from this software 14
16 without specific prior written permission. 15* Neither the name of Motorola Mobility LLC nor the names of its
16 contributors may be used to endorse or promote products derived from this
17 software without specific prior written permission.
17 18
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@@ -201,9 +202,9 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
201 selectedItems = []; 202 selectedItems = [];
202 203
203 box[0] = this.downPoint.x; 204 box[0] = this.downPoint.x;
204 box[1] = this.downPoint.y; 205 box[1] = this.downPoint.y;
205 box[2] = point.x; 206 box[2] = point.x;
206 box[3] = point.y; 207 box[3] = point.y;
207 208
208 //selectionManagerModule.selectionManager.marqueeSelection(box); 209 //selectionManagerModule.selectionManager.marqueeSelection(box);
209 var childNodes = this.application.ninja.currentDocument.model.documentRoot.childNodes, 210 var childNodes = this.application.ninja.currentDocument.model.documentRoot.childNodes,
@@ -403,11 +404,11 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
403 }, 404 },
404 405
405 _moveElements: { 406 _moveElements: {
406 value: function (transMat) { 407 value: function (transMat) {
407 var elt, curMat, targets = []; 408 var elt, curMat, targets = [];
408 409
409// var matInv = glmat4.inverse(this._startMat, []); 410// var matInv = glmat4.inverse(this._startMat, []);
410// var qMat = glmat4.multiply(matInv, nMat, []); 411// var qMat = glmat4.multiply(matInv, nMat, []);
411 this._startMat = glmat4.multiply(transMat, this._startMat, [] ); 412 this._startMat = glmat4.multiply(transMat, this._startMat, [] );
412 413
413 var self = this; 414 var self = this;
@@ -434,8 +435,8 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
434 } else { 435 } else {
435 ElementsMediator.setProperties(targets, "Changing", "SelectionTool" ); 436 ElementsMediator.setProperties(targets, "Changing", "SelectionTool" );
436 } 437 }
437 } 438 }
438 }, 439 },
439 440
440 //------------------------------------------------------------------------- 441 //-------------------------------------------------------------------------
441 //Routines to modify the selected objects 442 //Routines to modify the selected objects
@@ -630,17 +631,17 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
630 }, 631 },
631 632
632 /* 633 /*
633 * The parameterization is based on the position of the 634 * The parameterization is based on the position of the
634 * snap point in pre-transformed element screen space 635 * snap point in pre-transformed element screen space
635 */ 636 */
636 parameterizeSnap: 637 parameterizeSnap:
637 { 638 {
638 value: function( hitRec ) 639 value: function( hitRec )
639 { 640 {
640 var paramPt = [0,0,0]; 641 var paramPt = [0,0,0];
641 var elt = this._getObjectBeingTracked(hitRec); 642 var elt = this._getObjectBeingTracked(hitRec);
642 if (elt) 643 if (elt)
643 { 644 {
644 this.clickedObject = elt; 645 this.clickedObject = elt;
645 if(this._handleMode === null) 646 if(this._handleMode === null)
646 { 647 {
@@ -701,11 +702,11 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
701 break; 702 break;
702 } 703 }
703 } 704 }
704 } 705 }
705 706
706 return paramPt; 707 return paramPt;
707 } 708 }
708 }, 709 },
709 710
710 /** 711 /**
711 * This function is for specifying custom feedback routine 712 * This function is for specifying custom feedback routine
@@ -987,23 +988,23 @@ var SelectionTool = exports.SelectionTool = Montage.create(ModifierToolBase, {
987 // TODO : Use the new element mediator to get element offsets 988 // TODO : Use the new element mediator to get element offsets
988 _complicatedCollisionDetection: { 989 _complicatedCollisionDetection: {
989 value: function(elt, box) 990 value: function(elt, box)
990 { 991 {
991 var left, top, width, height; 992 var left, top, width, height;
992 993
993 left = box[0]; 994 left = box[0];
994 width = box[2] - left; 995 width = box[2] - left;
995 if (width < 0) 996 if (width < 0)
996 { 997 {
997 left = box[2]; 998 left = box[2];
998 width = -width; 999 width = -width;
999 } 1000 }
1000 top = box[1]; 1001 top = box[1];
1001 height = box[3] - top; 1002 height = box[3] - top;
1002 if (height < 0) 1003 if (height < 0)
1003 { 1004 {
1004 top = box[3]; 1005 top = box[3];
1005 height = -height; 1006 height = -height;
1006 } 1007 }
1007 1008
1008 var rtnVal = MathUtils.rectsOverlap( [left,top], width, height, elt ); 1009 var rtnVal = MathUtils.rectsOverlap( [left,top], width, height, elt );
1009 1010