Fix Bevel T64107 - width/depth value wrong for vertex only.
authorHoward Trickey <howard.trickey@gmail.com>
Tue, 7 May 2019 13:26:53 +0000 (09:26 -0400)
committerHoward Trickey <howard.trickey@gmail.com>
Tue, 7 May 2019 13:28:34 +0000 (09:28 -0400)
Code fix from George Vogiatzis (Gvgeo), via D4811.
Needed to initalize vert_axis.

source/blender/bmesh/tools/bmesh_bevel.c

index af5ce4ed9ac6b959def7ba220bf5a3953d1f2070..a559d13fc7000e7c0d94af5c540e7b284cba3f4f 100644 (file)
@@ -5222,7 +5222,7 @@ static BevVert *bevel_vert_construct(BMesh *bm, BevelParams *bp, BMVert *v)
   BMIter iter;
   EdgeHalf *e;
   float weight, z;
-  float vert_axis[3];
+  float vert_axis[3] = {0, 0, 0};
   int i, ccw_test_sum;
   int nsel = 0;
   int ntot = 0;
@@ -5357,7 +5357,6 @@ static BevVert *bevel_vert_construct(BMesh *bm, BevelParams *bp, BMVert *v)
         normalize_v3(edge_dir);
         add_v3_v3v3(vert_axis, vert_axis, edge_dir);
       }
-      mul_v3_fl(vert_axis, 1 / ntot);
     }
   }
 
@@ -5430,8 +5429,7 @@ static BevVert *bevel_vert_construct(BMesh *bm, BevelParams *bp, BMVert *v)
         case BEVEL_AMT_WIDTH: {
           v2 = BM_edge_other_vert(e->e, bv->v);
           sub_v3_v3v3(edge_dir, bv->v->co, v2->co);
-          normalize_v3(edge_dir);
-          z = fabsf(2.0f * sinf(angle_normalized_v3v3(vert_axis, edge_dir)));
+          z = fabsf(2.0f * sinf(angle_v3v3(vert_axis, edge_dir)));
           if (z < BEVEL_EPSILON) {
             e->offset_l_spec = 0.01f * bp->offset; /* undefined behavior, so tiny bevel. */
           }
@@ -5443,8 +5441,7 @@ static BevVert *bevel_vert_construct(BMesh *bm, BevelParams *bp, BMVert *v)
         case BEVEL_AMT_DEPTH: {
           v2 = BM_edge_other_vert(e->e, bv->v);
           sub_v3_v3v3(edge_dir, bv->v->co, v2->co);
-          normalize_v3(edge_dir);
-          z = fabsf(cosf(angle_normalized_v3v3(vert_axis, edge_dir)));
+          z = fabsf(cosf(angle_v3v3(vert_axis, edge_dir)));
           if (z < BEVEL_EPSILON) {
             e->offset_l_spec = 0.01f * bp->offset; /* undefined behavior, so tiny bevel. */
           }