From 19115d65a309ccbeab8e07d426ac398dae8a9d68 Mon Sep 17 00:00:00 2001 From: hwc487 Date: Mon, 16 Apr 2012 13:10:27 -0700 Subject: snapping for stage rotation tool --- js/tools/RotateStage3DTool.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'js/tools/RotateStage3DTool.js') diff --git a/js/tools/RotateStage3DTool.js b/js/tools/RotateStage3DTool.js index f5cc4040..c0808de3 100755 --- a/js/tools/RotateStage3DTool.js +++ b/js/tools/RotateStage3DTool.js @@ -72,9 +72,11 @@ exports.RotateStage3DTool = Montage.create(Rotate3DToolBase, { var eltCtr = viewUtils.getCenterOfProjection(); viewUtils.popViewportObj(); - eltCtr = viewUtils.localToGlobal(eltCtr, elt); - - this._targets.push({elt:elt, mat:curMat, matInv:curMatInv, ctr:eltCtr}); + // cache the local to global and global to local matrices + var l2gMat = viewUtils.getLocalToGlobalMatrix( elt ); + var g2lMat = glmat4.inverse( l2gMat, [] ); + eltCtr = MathUtils.transformAndDivideHomogeneousPoint( eltCtr, l2gMat ); + this._targets.push({elt:elt, mat:curMat, matInv:curMatInv, ctr:eltCtr, l2g:l2gMat, g2l:g2lMat}); ElementsMediator.setMatrix(elt, curMat, false, "rotateStage3DTool"); } -- cgit v1.2.3