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:
authorClément Foucault <foucault.clem@gmail.com>2019-07-03 19:31:59 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-07-03 19:39:10 +0300
commit2866c742080d455df2b28d2f25ed6aa78ef03565 (patch)
tree5f31c1272170069a912a4887f1d842c57de0ef79 /source/blender/modifiers
parentc6a199e2542b41b8f75a967579b1180d25196084 (diff)
Fix T59225 Screw modifier not displayed when using single vertex
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_screw.c10
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++;
}
}