From 2866c742080d455df2b28d2f25ed6aa78ef03565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 3 Jul 2019 18:31:59 +0200 Subject: Fix T59225 Screw modifier not displayed when using single vertex --- source/blender/modifiers/intern/MOD_screw.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source/blender/modifiers') 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++; } } -- cgit v1.2.3