forked from bartvdbraak/blender
Fix bevel bug #33906, unwanted distortion with skewed meshes.
The code for making a rounded profile edge at a vertex needed a special case for when that profile is on the third face (the one not touched by the beveled edge) when only one edge is beveled and the three faces are not orthogonal.
This commit is contained in:
parent
ad76a8a10c
commit
7d3c6b2760
@ -1654,7 +1654,13 @@ static void build_vmesh(BevelParams *bp, BMesh *bm, BevVert *bv)
|
|||||||
if (v->ebev) {
|
if (v->ebev) {
|
||||||
va = mesh_vert(vm, i, 0, 0)->co;
|
va = mesh_vert(vm, i, 0, 0)->co;
|
||||||
vb = mesh_vert(vm, i, 0, ns)->co;
|
vb = mesh_vert(vm, i, 0, ns)->co;
|
||||||
|
if (bv->edgecount == 3 && bv->selcount == 1) {
|
||||||
|
/* special case: profile cuts the third face, so line it up with that */
|
||||||
|
copy_v3_v3(midco, bv->v->co);
|
||||||
|
}
|
||||||
|
else {
|
||||||
project_to_edge(v->ebev->e, va, vb, midco);
|
project_to_edge(v->ebev->e, va, vb, midco);
|
||||||
|
}
|
||||||
for (k = 1; k < ns; k++) {
|
for (k = 1; k < ns; k++) {
|
||||||
get_point_on_round_edge(v->ebev, k, va, midco, vb, co);
|
get_point_on_round_edge(v->ebev, k, va, midco, vb, co);
|
||||||
copy_v3_v3(mesh_vert(vm, i, 0, k)->co, co);
|
copy_v3_v3(mesh_vert(vm, i, 0, k)->co, co);
|
||||||
|
Loading…
Reference in New Issue
Block a user