Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-11-15 13:02:57 +0300
committerTon Roosendaal <ton@blender.org>2006-11-15 13:02:57 +0300
commit95c7c41bd060a55fb2679d53635474dc69703ed7 (patch)
tree628320b2a9914bb96a64f6a757c1967db5d6fd3d /source/blender/src/editmesh_loop.c
parent3d7e802c6c3a0efe686a4ee6213a47f1b0ad3aab (diff)
Bugfix #5224
Prob: selection sometimes gave wrong edges/faces Selection code for editmesh was still using a short for calculating the distance of a projected vertex/edge/face from the mouse position. In zoomed in cases that'll give overflows and unpredictable results. It was fixed only half before... now all shorts are removed for distance calculus.
Diffstat (limited to 'source/blender/src/editmesh_loop.c')
-rw-r--r--source/blender/src/editmesh_loop.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/source/blender/src/editmesh_loop.c b/source/blender/src/editmesh_loop.c
index aeabf3e2b7d..885c64891cb 100644
--- a/source/blender/src/editmesh_loop.c
+++ b/source/blender/src/editmesh_loop.c
@@ -222,12 +222,12 @@ void CutEdgeloop(int numcuts)
{
EditMesh *em = G.editMesh;
EditEdge *nearest=NULL, *eed;
- int keys = 0, holdnum=0, selectmode;
+ float fac;
+ int keys = 0, holdnum=0, selectmode, dist;
short mvalo[2] = {0,0}, mval[2];
- short event,val,choosing=1,cancel=0,dist,cuthalf = 0,smooth=0;
- char msg[128];
+ short event, val, choosing=1, cancel=0, cuthalf = 0, smooth=0;
short hasHidden = 0;
- float fac;
+ char msg[128];
selectmode = G.scene->selectmode;
@@ -487,16 +487,15 @@ typedef struct CutCurve {
static CutCurve *get_mouse_trail(int *len, char mode, char cutmode, struct GHash *gh)
{
CutCurve *curve,*temp;
+ EditVert *snapvert;
+ float *scr, mval[2], lastx=0, lasty=0;
int i=0, j, blocks=1, lasti=0;
+ int dist, tolerance;
short event, val, qual, vsnap=0, ldown=0, restart=0, rubberband=0;
short mval1[2], lockaxis=0, lockx=0, locky=0, oldmode;
- EditVert *snapvert;
- short sdist, stolerance;
- float *scr, mval[2], lastx=0, lasty=0;
-
*len=0;
- stolerance = 75;
+ tolerance = 75;
curve=(CutCurve *)MEM_callocN(1024*sizeof(CutCurve), "MouseTrail");
@@ -562,12 +561,12 @@ static CutCurve *get_mouse_trail(int *len, char mode, char cutmode, struct GHash
if(vsnap){
persp(PERSP_VIEW);
- sdist = stolerance;
- snapvert = findnearestvert(&sdist, SELECT);
+ dist = tolerance;
+ snapvert = findnearestvert(&dist, SELECT);
glColor3ub(255, 0, 255);
glDrawBuffer(GL_FRONT);
persp(PERSP_WIN);
- if(snapvert && (sdist < stolerance)){
+ if(snapvert && (dist < tolerance)){
scr = BLI_ghash_lookup(gh, snapvert);
mval[0] = scr[0];
mval[1] = scr[1];