[#29611] Crash when scale one vertex with snap.
authorMartin Poirier <theeth@yahoo.com>
Mon, 26 Dec 2011 19:03:32 +0000 (19:03 +0000)
committerMartin Poirier <theeth@yahoo.com>
Mon, 26 Dec 2011 19:03:32 +0000 (19:03 +0000)
Reported by Andrey Penyaz
Scale snap defaults to 1 when snapping is impossible (distance to center of transformation is zero).

source/blender/editors/transform/transform_snap.c

index 46792457f63af6fbc10117517dfc5faf3fb292ac..d341a21bc717baa5adc841835c8de4d1fb4884d0 100644 (file)
@@ -680,7 +680,7 @@ static float RotationBetween(TransInfo *t, float p1[3], float p2[3])
 
 static float ResizeBetween(TransInfo *t, float p1[3], float p2[3])
 {
-       float d1[3], d2[3], center[3];
+       float d1[3], d2[3], center[3], len_d1;
        
        copy_v3_v3(center, t->center);  
        if(t->flag & (T_EDIT|T_POSE)) {
@@ -696,7 +696,9 @@ static float ResizeBetween(TransInfo *t, float p1[3], float p2[3])
                mul_m3_v3(t->con.pmtx, d2);
        }
        
-       return len_v3(d2) / len_v3(d1);
+       len_d1 = len_v3(d1);
+
+       return len_d1 != 0.0f ? len_v3(d2) / len_d1 : 1;
 }
 
 /********************** CALC **************************/