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:
authorNicholas Bishop <nicholasbishop@gmail.com>2012-03-14 10:32:13 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2012-03-14 10:32:13 +0400
commitb37a355c8e0a79ea447cd0a4fd06dc30724a3374 (patch)
treea5ac218a9d197e14a3909dfdde075d80fd6f0035 /source/blender/modifiers
parent521e724eddc9bfcc3f4aaeac184ae6974bb922a4 (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.c27
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;
}