diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-03-14 10:32:13 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-03-14 10:32:13 +0400 |
commit | b37a355c8e0a79ea447cd0a4fd06dc30724a3374 (patch) | |
tree | a5ac218a9d197e14a3909dfdde075d80fd6f0035 /source/blender/modifiers | |
parent | 521e724eddc9bfcc3f4aaeac184ae6974bb922a4 (diff) |
Copy hidden flag to vertices when applying multires modifier.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r-- | source/blender/modifiers/intern/MOD_multires.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c index f983204945a..9a799c6974a 100644 --- a/source/blender/modifiers/intern/MOD_multires.c +++ b/source/blender/modifiers/intern/MOD_multires.c @@ -36,12 +36,14 @@ #include <stddef.h> #include "DNA_mesh_types.h" +#include "DNA_object_types.h" #include "BKE_cdderivedmesh.h" +#include "BKE_mesh.h" #include "BKE_multires.h" #include "BKE_modifier.h" #include "BKE_paint.h" -#include "BKE_particle.h" +#include "BKE_subsurf.h" #include "MOD_util.h" @@ -88,7 +90,28 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm, return dm; if(useRenderParams || !isFinalCalc) { - DerivedMesh *cddm= CDDM_copy(result); + DerivedMesh *cddm; + + cddm= CDDM_copy(result); + + /* copy hidden flag to vertices */ + if(!useRenderParams) { + struct MDisps *mdisps; + mdisps = CustomData_get_layer(&me->ldata, CD_MDISPS); + if(mdisps) { + subsurf_copy_grid_hidden(result, me->mpoly, + cddm->getVertArray(cddm), + mdisps); + + mesh_flush_hidden_from_verts(cddm->getVertArray(cddm), + cddm->getLoopArray(cddm), + cddm->getEdgeArray(cddm), + cddm->getNumEdges(cddm), + cddm->getPolyArray(cddm), + cddm->getNumPolys(cddm)); + } + } + result->release(result); result= cddm; } |