diff options
Diffstat (limited to 'js/tools/Rotate3DToolBase.js')
-rwxr-xr-x | js/tools/Rotate3DToolBase.js | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/js/tools/Rotate3DToolBase.js b/js/tools/Rotate3DToolBase.js index e65dc842..880eefc4 100755 --- a/js/tools/Rotate3DToolBase.js +++ b/js/tools/Rotate3DToolBase.js | |||
@@ -54,22 +54,19 @@ exports.Rotate3DToolBase = Montage.create(ModifierToolBase, { | |||
54 | { | 54 | { |
55 | if(this._activateOriginHandle) | 55 | if(this._activateOriginHandle) |
56 | { | 56 | { |
57 | // move the transform origin handle | 57 | // move the transform origin handle directly to the snap point (pt1) |
58 | var dx = pt1.x - pt0.x; | 58 | this._origin[0] = pt1.x; |
59 | var dy = pt1.y - pt0.y; | 59 | this._origin[1] = pt1.y; |
60 | var dz = pt1.z - pt0.z; | 60 | this._origin[2] = pt1.z; |
61 | 61 | ||
62 | this._origin[0] += dx; | 62 | var sw2gMat = viewUtils.getStageWorldToGlobalMatrix(); |
63 | this._origin[1] += dy; | 63 | var g2swMat = glmat4.inverse( sw2gMat, [] ); |
64 | this._origin[2] += dz; | 64 | var swOrigin = MathUtils.transformAndDivideHomogeneousPoint( this._origin, g2swMat ); |
65 | console.log( "modifyElements, _origin: " + this._origin ); | 65 | //console.log( "modifyElements, _origin: " + this._origin + ", in stageWorld: " + swOrigin ); |
66 | 66 | ||
67 | var len = this._targets.length; | 67 | var len = this._targets.length; |
68 | if(len === 1) | 68 | if(len === 1) |
69 | { | 69 | { |
70 | // this._startOriginArray[0][0] += dx; | ||
71 | // this._startOriginArray[0][1] += dy; | ||
72 | // this._startOriginArray[0][2] += dz; | ||
73 | var g2lMat = this._targets[0].g2l; | 70 | var g2lMat = this._targets[0].g2l; |
74 | var localOrigin = MathUtils.transformAndDivideHomogeneousPoint( this._origin, g2lMat ); | 71 | var localOrigin = MathUtils.transformAndDivideHomogeneousPoint( this._origin, g2lMat ); |
75 | var elt = this._targets[0].elt; | 72 | var elt = this._targets[0].elt; |