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:
Diffstat (limited to 'source/blender/modifiers/intern/MOD_screw.c')
-rw-r--r--source/blender/modifiers/intern/MOD_screw.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index 5dc233c78b1..3ab80aecfca 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -174,7 +174,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* dont do anything? */
if (!totvert)
- return CDDM_from_template(dm, 0, 0, 0);
+ return CDDM_from_template(dm, 0, 0, 0, 0, 0);
switch(ltmd->axis) {
case 0:
@@ -292,17 +292,17 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
maxFaces = totedge * (step_tot-1);
}
- result= CDDM_from_template(dm, maxVerts, maxEdges, maxFaces);
+ result= CDDM_from_template(dm, maxVerts, maxEdges, maxFaces, 0, 0);
/* copy verts from mesh */
mvert_orig = dm->getVertArray(dm);
medge_orig = dm->getEdgeArray(dm);
mvert_new = result->getVertArray(result);
- mface_new = result->getFaceArray(result);
+ mface_new = result->getTessFaceArray(result);
medge_new = result->getEdgeArray(result);
- origindex= result->getFaceDataArray(result, CD_ORIGINDEX);
+ origindex= result->getTessFaceDataArray(result, CD_ORIGINDEX);
DM_copy_vert_data(dm, result, 0, 0, totvert); /* copy first otherwise this overwrites our own vertex normals */
@@ -823,7 +823,11 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
med_new->crease= med_new_firstloop->crease;
med_new++;
}
-
+
+ /* BMesh implimentation info - need to calculate polys before recalculating
+ * normals, since normal calc overwrites MFaces from Polys */
+ CDDM_tessfaces_to_faces(result);
+
if((ltmd->flag & MOD_SCREW_NORMAL_CALC) == 0) {
CDDM_calc_normals(result);
}
@@ -862,7 +866,7 @@ static void foreachObjectLink(
static DerivedMesh *applyModifierEM(
ModifierData *md,
Object *ob,
- struct EditMesh *UNUSED(editData),
+ struct BMEditMesh *UNUSED(editData),
DerivedMesh *derivedData)
{
return applyModifier(md, ob, derivedData, 0, 1);