From 803383457346a6ff3b362ddc7880283d0907c1bd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 26 Feb 2013 14:32:53 +0000 Subject: [PATCH] fix own regression since 2.65 [#34438] Solidify crease bug --- source/blender/blenkernel/intern/DerivedMesh.c | 2 +- source/blender/modifiers/intern/MOD_solidify.c | 5 +++++ source/blender/modifiers/intern/MOD_subsurf.c | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 6b3c95a5cd3..ffd86ea9ce0 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -491,7 +491,7 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob) CustomData_copy(&dm->edgeData, &tmp.edata, CD_MASK_MESH, CD_DUPLICATE, totedge); CustomData_copy(&dm->loopData, &tmp.ldata, CD_MASK_MESH, CD_DUPLICATE, totloop); CustomData_copy(&dm->polyData, &tmp.pdata, CD_MASK_MESH, CD_DUPLICATE, totpoly); - me->cd_flag = dm->cd_flag; + tmp.cd_flag = dm->cd_flag; if (CustomData_has_layer(&dm->vertData, CD_SHAPEKEY)) { KeyBlock *kb; diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c index 038fb4913ec..a198eaf8ca9 100644 --- a/source/blender/modifiers/intern/MOD_solidify.c +++ b/source/blender/modifiers/intern/MOD_solidify.c @@ -29,6 +29,7 @@ * \ingroup modifiers */ +#include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "MEM_guardedalloc.h" @@ -598,6 +599,10 @@ static DerivedMesh *applyModifier( int *orig_ed; int j; + if (crease_rim || crease_outer || crease_inner) { + result->cd_flag |= ME_CDFLAG_EDGE_CREASE; + } + /* add faces & edges */ origindex_edge = result->getEdgeDataArray(result, CD_ORIGINDEX); ed = &medge[numEdges * 2]; diff --git a/source/blender/modifiers/intern/MOD_subsurf.c b/source/blender/modifiers/intern/MOD_subsurf.c index c0d46b14aa8..c48682b877e 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.c +++ b/source/blender/modifiers/intern/MOD_subsurf.c @@ -107,6 +107,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, subsurf_flags |= SUBSURF_IN_EDIT_MODE; result = subsurf_make_derived_from_derived(derivedData, smd, NULL, subsurf_flags); + result->cd_flag = derivedData->cd_flag; if (useRenderParams || !isFinalCalc) { DerivedMesh *cddm = CDDM_copy(result);