diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-02-21 17:28:20 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-02-21 17:28:20 +0300 |
commit | 36c41c96e73a77af9c59c36fc27b74e6e139fff7 (patch) | |
tree | 200f7993610d7c56d04dcf92da5723981ff14456 /source/blender/src/transform_manipulator.c | |
parent | 9be47ba25cce3976881fd24f15e8fae58f762f2f (diff) |
Fix for bug #5986: snap circle too big when far away from the origin
(e.g. 1000 blender units).
Diffstat (limited to 'source/blender/src/transform_manipulator.c')
-rw-r--r-- | source/blender/src/transform_manipulator.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/src/transform_manipulator.c b/source/blender/src/transform_manipulator.c index 36e5da7f51e..8fcb329f2f9 100644 --- a/source/blender/src/transform_manipulator.c +++ b/source/blender/src/transform_manipulator.c @@ -1359,13 +1359,13 @@ static void draw_manipulator_rotate_cyl(float mat[][4], int moving, int drawflag /* ********************************************* */ -float get_drawsize(View3D *v3d) +float get_drawsize(View3D *v3d, float *co) { ScrArea *sa = v3d->area; float size, vec[3], len1, len2; /* size calculus, depending ortho/persp settings, like initgrabz() */ - size= v3d->persmat[0][3]*v3d->twmat[3][0]+ v3d->persmat[1][3]*v3d->twmat[3][1]+ v3d->persmat[2][3]*v3d->twmat[3][2]+ v3d->persmat[3][3]; + size= v3d->persmat[0][3]*co[0]+ v3d->persmat[1][3]*co[1]+ v3d->persmat[2][3]*co[2]+ v3d->persmat[3][3]; VECCOPY(vec, v3d->persinv[0]); len1= Normalize(vec); @@ -1384,7 +1384,7 @@ float get_drawsize(View3D *v3d) static float get_manipulator_drawsize(ScrArea *sa) { View3D *v3d= sa->spacedata.first; - float size = get_drawsize(v3d); + float size = get_drawsize(v3d, v3d->twmat[3]); size*= (float)U.tw_size; |