diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-07-03 19:31:59 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-07-03 19:39:10 +0300 |
commit | 2866c742080d455df2b28d2f25ed6aa78ef03565 (patch) | |
tree | 5f31c1272170069a912a4887f1d842c57de0ef79 /source/blender/modifiers/intern/MOD_screw.c | |
parent | c6a199e2542b41b8f75a967579b1180d25196084 (diff) |
Fix T59225 Screw modifier not displayed when using single vertex
Diffstat (limited to 'source/blender/modifiers/intern/MOD_screw.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_screw.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c index 79f7e52681b..3c84bb7ae15 100644 --- a/source/blender/modifiers/intern/MOD_screw.c +++ b/source/blender/modifiers/intern/MOD_screw.c @@ -438,6 +438,10 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes med_new->v2 = med_orig->v2; med_new->crease = med_orig->crease; med_new->flag = med_orig->flag & ~ME_LOOSEEDGE; + /* Tag mvert as not loose. + * NOTE: ME_VERT_TMP_TAG is given to be cleared by BKE_mesh_new_nomain_from_template. */ + mvert_new[med_orig->v1].flag |= ME_VERT_TMP_TAG; + mvert_new[med_orig->v2].flag |= ME_VERT_TMP_TAG; } /* build polygon -> edge map */ @@ -899,6 +903,9 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes med_new->v1 = varray_stride + j; med_new->v2 = med_new->v1 - totvert; med_new->flag = ME_EDGEDRAW | ME_EDGERENDER; + if ((mv_new_base->flag & ME_VERT_TMP_TAG) == 0) { + med_new->flag |= ME_LOOSEEDGE; + } med_new++; } } @@ -917,6 +924,9 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes med_new->v1 = i; med_new->v2 = varray_stride + i; med_new->flag = ME_EDGEDRAW | ME_EDGERENDER; + if ((mvert_new[i].flag & ME_VERT_TMP_TAG) == 0) { + med_new->flag |= ME_LOOSEEDGE; + } med_new++; } } |