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:
authorCampbell Barton <ideasman42@gmail.com>2012-03-06 01:17:24 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-03-06 01:17:24 +0400
commitbd83487dab6e4be5facf9fefb476a4273c64e1df (patch)
treed9830dc6cb286f6e31c63258736428d45377657a /source/blender/modifiers
parent1ae27144f665efeed0b9cd0f07fbe50a25b494d4 (diff)
fix [#30459] BMesh Edge Split Hangs.
edge split result is still not correct in this case but at least avoid eternal loop. also - dont tag sharp edges with <2 faces for splitting.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_edgesplit.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c
index 1e275862b5c..c9831959adb 100644
--- a/source/blender/modifiers/intern/MOD_edgesplit.c
+++ b/source/blender/modifiers/intern/MOD_edgesplit.c
@@ -88,8 +88,13 @@ static DerivedMesh *doEdgeSplit(DerivedMesh *dm, EdgeSplitModifierData *emd, Obj
if (emd->flags & MOD_EDGESPLIT_FROMFLAG) {
BM_ITER(e, &iter, bm, BM_EDGES_OF_MESH, NULL) {
- if (!BM_elem_flag_test(e, BM_ELEM_SMOOTH)) {
- BMO_elem_flag_enable(bm, e, EDGE_MARK);
+ /* check for 2 or more edge users */
+ if ((e->l) &&
+ (e->l->next != e->l))
+ {
+ if (!BM_elem_flag_test(e, BM_ELEM_SMOOTH)) {
+ BMO_elem_flag_enable(bm, e, EDGE_MARK);
+ }
}
}
}