diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2010-07-21 23:12:18 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2010-07-21 23:12:18 +0400 |
commit | 8cdb241be0f5b7ac94223d062993c889262c6bce (patch) | |
tree | 8d4798d7244e680abfbf493abcb37a1e892dfd1b /source/blender/editors/transform | |
parent | 930f2fa89848c60efd2a2083bad36ff7c98369dd (diff) | |
parent | 969c0fd718ed500fedfdeb1b4a5c0026febdb975 (diff) |
Merged changes in the trunk up to revision 30594.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r-- | source/blender/editors/transform/transform.c | 5 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_constraints.c | 11 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_input.c | 6 |
3 files changed, 14 insertions, 8 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index c177f2789d0..ce9dcd9b740 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -4780,10 +4780,11 @@ int doEdgeSlide(TransInfo *t, float perc) //Non prop code look = vertlist; while(look) { - float newlen; + float newlen, edgelen; ev = look->link; tempsv = BLI_ghash_lookup(vertgh,ev); - newlen = (len / len_v3v3(editedge_getOtherVert(tempsv->up,ev)->co,editedge_getOtherVert(tempsv->down,ev)->co)); + edgelen = len_v3v3(editedge_getOtherVert(tempsv->up,ev)->co,editedge_getOtherVert(tempsv->down,ev)->co); + newlen = (edgelen != 0.0f)? (len / edgelen): 0.0f; if(newlen > 1.0) {newlen = 1.0;} if(newlen < 0.0) {newlen = 0.0;} if(flip == 0) { diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index fd5e0580911..0177d458868 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -620,6 +620,8 @@ void drawConstraint(const struct bContext *C, TransInfo *t) if (tc->mode & CON_SELECT) { float vec[3]; char col2[3] = {255,255,255}; + int depth_test_enabled; + convertViewVec(t, vec, (short)(t->mval[0] - t->con.imval[0]), (short)(t->mval[1] - t->con.imval[1])); add_v3_v3(vec, tc->center); @@ -629,15 +631,18 @@ void drawConstraint(const struct bContext *C, TransInfo *t) glColor3ubv((GLubyte *)col2); - glDisable(GL_DEPTH_TEST); + depth_test_enabled = glIsEnabled(GL_DEPTH_TEST); + if(depth_test_enabled) + glDisable(GL_DEPTH_TEST); + setlinestyle(1); glBegin(GL_LINE_STRIP); glVertex3fv(tc->center); glVertex3fv(vec); glEnd(); setlinestyle(0); - // TRANSFORM_FIX_ME - //if(G.vd->zbuf) + + if(depth_test_enabled) glEnable(GL_DEPTH_TEST); } diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c index d7ebd28f604..b7cb34802cc 100644 --- a/source/blender/editors/transform/transform_input.c +++ b/source/blender/editors/transform/transform_input.c @@ -197,17 +197,17 @@ void InputCustomRatio(TransInfo *t, MouseInput *mi, short mval[2], float output[ mdx = (mi->precision_mval[0] + (float)(mval[0] - mi->precision_mval[0]) / 10.0f) - data[2]; mdy = (mi->precision_mval[1] + (float)(mval[1] - mi->precision_mval[1]) / 10.0f) - data[3]; - distance = (mdx*dx + mdy*dy) / length; + distance = (length != 0.0f)? (mdx*dx + mdy*dy) / length: 0.0f; } else { short mdx, mdy; mdx = mval[0] - data[2]; mdy = mval[1] - data[3]; - distance = (mdx*dx + mdy*dy) / length; + distance = (length != 0.0f)? (mdx*dx + mdy*dy) / length: 0.0f; } - output[0] = distance / length; + output[0] = (length != 0.0f)? distance / length: 0.0f; } } |