diff options
Diffstat (limited to 'js/tools/SelectionTool.js')
-rwxr-xr-x | js/tools/SelectionTool.js | 93 |
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> |
2 | Copyright (c) 2012, Motorola Mobility, Inc | 2 | Copyright (c) 2012, Motorola Mobility LLC. |
3 | All Rights Reserved. | 3 | All Rights Reserved. |
4 | BSD License. | ||
5 | 4 | ||
6 | Redistribution and use in source and binary forms, with or without | 5 | Redistribution and use in source and binary forms, with or without |
7 | modification, are permitted provided that the following conditions are met: | 6 | modification, 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 | ||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 22 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | SUBSTITUTE 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 | ||