Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Trickey <howard.trickey@gmail.com>2013-01-31 16:54:06 +0400
committerHoward Trickey <howard.trickey@gmail.com>2013-01-31 16:54:06 +0400
commit7d3c6b27601e761b4aa4122a273bd9d308bff25d (patch)
tree2ca3ad7faf7ba57da020743d1d8ee3197ad99bbe /source/blender
parentad76a8a10c22e251c9d22dc20cdc9613e0c785e8 (diff)
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.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/bmesh/tools/bmesh_bevel.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/bmesh/tools/bmesh_bevel.c b/source/blender/bmesh/tools/bmesh_bevel.c
index 5461e5fe788..d82cd678787 100644
--- a/source/blender/bmesh/tools/bmesh_bevel.c
+++ b/source/blender/bmesh/tools/bmesh_bevel.c
@@ -1654,7 +1654,13 @@ static void build_vmesh(BevelParams *bp, BMesh *bm, BevVert *bv)
if (v->ebev) {
va = mesh_vert(vm, i, 0, 0)->co;
vb = mesh_vert(vm, i, 0, ns)->co;
- project_to_edge(v->ebev->e, va, vb, midco);
+ 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);
+ }
for (k = 1; k < ns; k++) {
get_point_on_round_edge(v->ebev, k, va, midco, vb, co);
copy_v3_v3(mesh_vert(vm, i, 0, k)->co, co);