diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_screw.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_screw.c | 16 |
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); |