diff options
author | Martin Poirier <theeth@yahoo.com> | 2006-12-23 04:55:13 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2006-12-23 04:55:13 +0300 |
commit | 8dcf6c2602dbd6820e9275da5d3898859cf4dd8b (patch) | |
tree | 812791a68cb7489470f8e3c7936f480806e7220c /source/blender/src/transform_snap.c | |
parent | ea837b25e39a920f466d6acd6b2f490ba1d97382 (diff) |
=== Transform Snap ===
==== Rotation Snap ====
Bug fixes. "Should learn to test properly" * 100
It works ok now, not just when rotating around the Y axis...
Diffstat (limited to 'source/blender/src/transform_snap.c')
-rw-r--r-- | source/blender/src/transform_snap.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/src/transform_snap.c b/source/blender/src/transform_snap.c index 2ba69d8d524..0754058a5da 100644 --- a/source/blender/src/transform_snap.c +++ b/source/blender/src/transform_snap.c @@ -277,16 +277,16 @@ float RotationBetween(TransInfo *t, float p1[3], float p2[3]) else { float mtx[3][3]; - Mat3CpyMat4(mtx, t->viewinv); - + Mat3CpyMat4(mtx, t->viewmat); + Mat3MulVecfl(mtx, end); Mat3MulVecfl(mtx, start); - - angle = atan2(end[1],end[0]) - atan2(start[1],start[0]); + + angle = atan2(start[1],start[0]) - atan2(end[1],end[0]); } if (angle > M_PI) { - angle = 2 * M_PI - angle; + angle = angle - 2 * M_PI; } else if (angle < -(M_PI)) { angle = 2 * M_PI + angle; @@ -422,7 +422,7 @@ void TargetSnapClosest(TransInfo *t) VECCOPY(loc, td->iloc); Mat4MulVecfl(G.obedit->obmat, loc); - dist = t->tsnap.distance(t, td->iloc, t->tsnap.snapPoint); + dist = t->tsnap.distance(t, loc, t->tsnap.snapPoint); if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) { |