diff options
Diffstat (limited to 'js/tools/modifier-tool-base.js')
-rwxr-xr-x | js/tools/modifier-tool-base.js | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/js/tools/modifier-tool-base.js b/js/tools/modifier-tool-base.js index de73c861..2e006c35 100755 --- a/js/tools/modifier-tool-base.js +++ b/js/tools/modifier-tool-base.js | |||
@@ -125,8 +125,7 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
125 | // } | 125 | // } |
126 | // } | 126 | // } |
127 | 127 | ||
128 | 128 | if(this.application.ninja.selectedElements.length) | |
129 | if(this._targets) | ||
130 | { | 129 | { |
131 | var point = webkitConvertPointFromPageToNode(this.application.ninja.stage.canvas, | 130 | var point = webkitConvertPointFromPageToNode(this.application.ninja.stage.canvas, |
132 | new WebKitPoint(event.pageX, event.pageY)); | 131 | new WebKitPoint(event.pageX, event.pageY)); |
@@ -142,11 +141,10 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
142 | } | 141 | } |
143 | 142 | ||
144 | // we don't want to snap to selected objects during the drag | 143 | // we don't want to snap to selected objects during the drag |
145 | var len = this._targets.length; | 144 | this.application.ninja.selectedElements.forEach(function(element) { |
146 | for(var i=0; i<len; i++) | 145 | snapManager.addToAvoidList(element); |
147 | { | 146 | }); |
148 | snapManager.addToAvoidList( this._targets[i].elt ); | 147 | |
149 | } | ||
150 | if (hitRec) | 148 | if (hitRec) |
151 | { | 149 | { |
152 | // disable snap attributes | 150 | // disable snap attributes |
@@ -404,7 +402,7 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
404 | { | 402 | { |
405 | var index = this._snapIndex; | 403 | var index = this._snapIndex; |
406 | var pt0; | 404 | var pt0; |
407 | var useViewPoint = (this._inLocalMode && (this._targets.length === 1)); | 405 | var useViewPoint = this.rotateStage || (this._inLocalMode && (this.application.ninja.selectedElements.length === 1)); |
408 | if (this._useQuadPt) | 406 | if (this._useQuadPt) |
409 | { | 407 | { |
410 | pt0 = this.GetQuadrantPoint(useViewPoint); | 408 | pt0 = this.GetQuadrantPoint(useViewPoint); |
@@ -427,6 +425,7 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
427 | pt1 = MathUtils.transformPoint( pt1, this._startMat ); | 425 | pt1 = MathUtils.transformPoint( pt1, this._startMat ); |
428 | } | 426 | } |
429 | 427 | ||
428 | //console.log( "getMousePoints, useViewPoint: " + useViewPoint + ", " + pt0 + " => " + pt1 ); | ||
430 | return {pt0:pt0, pt1:pt1}; | 429 | return {pt0:pt0, pt1:pt1}; |
431 | } | 430 | } |
432 | else | 431 | else |
@@ -564,6 +563,7 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
564 | var pt = hitRec.getScreenPoint(); | 563 | var pt = hitRec.getScreenPoint(); |
565 | this.upPoint.x = pt[0]; | 564 | this.upPoint.x = pt[0]; |
566 | this.upPoint.y = pt[1]; | 565 | this.upPoint.y = pt[1]; |
566 | this.upPoint.z = pt[2]; | ||
567 | } | 567 | } |
568 | } | 568 | } |
569 | } | 569 | } |
@@ -691,25 +691,6 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
691 | }, | 691 | }, |
692 | 692 | ||
693 | _startMat: { value: Matrix.I(4) }, | 693 | _startMat: { value: Matrix.I(4) }, |
694 | |||
695 | _targets: { value: null }, | ||
696 | targets: | ||
697 | { | ||
698 | get: function () { | ||
699 | return this._targets; | ||
700 | }, | ||
701 | set: function (value) { | ||
702 | this._targets = value; | ||
703 | if (value !== null && value.length) | ||
704 | { | ||
705 | this.target = value[0]; | ||
706 | } | ||
707 | else | ||
708 | { | ||
709 | this.target = null; | ||
710 | } | ||
711 | } | ||
712 | }, | ||
713 | 694 | ||
714 | _undoArray: { value: [] }, | 695 | _undoArray: { value: [] }, |
715 | 696 | ||
@@ -752,7 +733,6 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
752 | } else { | 733 | } else { |
753 | this.eventManager.removeEventListener("selectionChange", this, true); | 734 | this.eventManager.removeEventListener("selectionChange", this, true); |
754 | this.application.ninja.stage._iframeContainer.removeEventListener("scroll", this, false); | 735 | this.application.ninja.stage._iframeContainer.removeEventListener("scroll", this, false); |
755 | this._targets = []; | ||
756 | 736 | ||
757 | // Clean up | 737 | // Clean up |
758 | NJevent("disableStageMove"); | 738 | NJevent("disableStageMove"); |
@@ -783,7 +763,6 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
783 | 763 | ||
784 | captureSelectionDrawn: { | 764 | captureSelectionDrawn: { |
785 | value: function(event){ | 765 | value: function(event){ |
786 | this._targets = []; | ||
787 | this._origin = null; | 766 | this._origin = null; |
788 | this._delta = null; | 767 | this._delta = null; |
789 | 768 | ||
@@ -832,7 +811,10 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
832 | if(!this._activateOriginHandle) | 811 | if(!this._activateOriginHandle) |
833 | { | 812 | { |
834 | this.application.ninja.stage.drawNow = true; | 813 | this.application.ninja.stage.drawNow = true; |
814 | var canSnap = this._canSnap; | ||
815 | this._canSnap = true; | ||
835 | this.doSelection(event); | 816 | this.doSelection(event); |
817 | this._canSnap = canSnap; | ||
836 | } | 818 | } |
837 | } | 819 | } |
838 | 820 | ||
@@ -858,7 +840,9 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
858 | } | 840 | } |
859 | } | 841 | } |
860 | 842 | ||
843 | if (!this._isDrawing || (this.application.ninja.selectedElements.length == 1)) | ||
861 | this.DrawHandles(this._delta); | 844 | this.DrawHandles(this._delta); |
845 | |||
862 | if(this._canSnap) | 846 | if(this._canSnap) |
863 | { | 847 | { |
864 | snapManager.drawLastHit(); | 848 | snapManager.drawLastHit(); |
@@ -898,10 +882,21 @@ exports.ModifierToolBase = Montage.create(DrawingTool, { | |||
898 | this._delta = null; | 882 | this._delta = null; |
899 | } | 883 | } |
900 | this.endDraw(event); | 884 | this.endDraw(event); |
885 | |||
886 | this.application.ninja.stage.draw(); | ||
887 | if (this.application.ninja.selectedElements.length > 1) | ||
888 | { | ||
889 | //this._origin = null; | ||
890 | this._updateHandlesOrigin(); | ||
891 | } | ||
901 | this.DrawHandles(); | 892 | this.DrawHandles(); |
902 | } | 893 | } |
903 | }, | 894 | }, |
904 | 895 | ||
896 | _updateHandlesOrigin: { | ||
897 | value: function () { } | ||
898 | }, | ||
899 | |||
905 | handleToolDoubleClick: { | 900 | handleToolDoubleClick: { |
906 | value: function(event) { | 901 | value: function(event) { |
907 | if(!this._target) | 902 | if(!this._target) |