diff options
author | Howard Trickey <howard.trickey@gmail.com> | 2019-05-07 16:26:53 +0300 |
---|---|---|
committer | Howard Trickey <howard.trickey@gmail.com> | 2019-05-07 16:28:34 +0300 |
commit | cbcc2c22d92b05f4cfe5d5ae049c3c45f043a099 (patch) | |
tree | 9aa99aad0ef918c3cd9e975a2269a1ad642b9057 /source | |
parent | f2b7582b27fa1235a013b2d92af72428c0fc1623 (diff) |
Fix Bevel T64107 - width/depth value wrong for vertex only.
Code fix from George Vogiatzis (Gvgeo), via D4811.
Needed to initalize vert_axis.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/bmesh/tools/bmesh_bevel.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c index af5ce4ed9ac..a559d13fc70 100644 --- a/source/blender/bmesh/tools/bmesh_bevel.c +++ b/source/blender/bmesh/tools/bmesh_bevel.c @@ -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. */ } |