forked from bartvdbraak/blender
Fix for bug #5986: snap circle too big when far away from the origin
(e.g. 1000 blender units).
This commit is contained in:
parent
9be47ba25c
commit
36c41c96e7
@ -376,7 +376,7 @@ int clipUVTransform(TransInfo *t, float *vec, int resize);
|
||||
/*********************** exported from transform_manipulator.c ********** */
|
||||
void draw_manipulator_ext(struct ScrArea *sa, int type, char axis, int col, float vec[3], float mat[][3]);
|
||||
int calc_manipulator_stats(struct ScrArea *sa);
|
||||
float get_drawsize(struct View3D *v3d);
|
||||
float get_drawsize(struct View3D *v3d, float *co);
|
||||
|
||||
/*********************** TransData Creation and General Handling *********** */
|
||||
void createTransData(TransInfo *t);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -126,7 +126,7 @@ void drawSnapping(TransInfo *t)
|
||||
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
||||
size = get_drawsize(G.vd);
|
||||
size = get_drawsize(G.vd, t->tsnap.snapPoint);
|
||||
|
||||
size *= 0.5f * BIF_GetThemeValuef(TH_VERTEX_SIZE);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user