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 ********** */
|
/*********************** exported from transform_manipulator.c ********** */
|
||||||
void draw_manipulator_ext(struct ScrArea *sa, int type, char axis, int col, float vec[3], float mat[][3]);
|
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);
|
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 *********** */
|
/*********************** TransData Creation and General Handling *********** */
|
||||||
void createTransData(TransInfo *t);
|
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;
|
ScrArea *sa = v3d->area;
|
||||||
float size, vec[3], len1, len2;
|
float size, vec[3], len1, len2;
|
||||||
|
|
||||||
/* size calculus, depending ortho/persp settings, like initgrabz() */
|
/* 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]);
|
VECCOPY(vec, v3d->persinv[0]);
|
||||||
len1= Normalize(vec);
|
len1= Normalize(vec);
|
||||||
@ -1384,7 +1384,7 @@ float get_drawsize(View3D *v3d)
|
|||||||
static float get_manipulator_drawsize(ScrArea *sa)
|
static float get_manipulator_drawsize(ScrArea *sa)
|
||||||
{
|
{
|
||||||
View3D *v3d= sa->spacedata.first;
|
View3D *v3d= sa->spacedata.first;
|
||||||
float size = get_drawsize(v3d);
|
float size = get_drawsize(v3d, v3d->twmat[3]);
|
||||||
|
|
||||||
size*= (float)U.tw_size;
|
size*= (float)U.tw_size;
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ void drawSnapping(TransInfo *t)
|
|||||||
|
|
||||||
glDisable(GL_DEPTH_TEST);
|
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);
|
size *= 0.5f * BIF_GetThemeValuef(TH_VERTEX_SIZE);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user