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>2010-09-09 04:14:51 +0400
committerNicholas Bishop <nicholasbishop@gmail.com>2010-09-09 04:14:51 +0400
commit4eaa10aa02994c4609e1c12e38d0eda6355f9077 (patch)
treed2a8fcc7adc471dee1c5b2f29e2431c8afbfa469 /source/blender/blenkernel/intern/modifier.c
parent2d4e8ba22fc4fd304c35af629480e80d4cb8bac2 (diff)
== Multires ==
Fixed bug #23657, "Modifiers dosen't work when you select diffrent mesh for object" Multires modifier now adds empty mdisps if they're missing, rather than displaying a warning Switching an object's mesh will now check for a multires modifier; if found the modifier's total number of levels are reset to match the mesh's mdisps Switching the mesh also forces a multires update so that sculpted changes aren't lost
Diffstat (limited to 'source/blender/blenkernel/intern/modifier.c')
-rw-r--r--source/blender/blenkernel/intern/modifier.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index 63f0f1fa091..43d26f26d1f 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -49,6 +49,7 @@
#include "BKE_bmesh.h"
#include "BKE_cloth.h"
#include "BKE_key.h"
+#include "BKE_multires.h"
#include "MOD_modifiertypes.h"
@@ -526,5 +527,21 @@ void modifier_freeTemporaryData(ModifierData *md)
}
}
+/* ensure modifier correctness when changing ob->data */
+void test_object_modifiers(Object *ob)
+{
+ ModifierData *md;
+
+ /* just multires checked for now, since only multires
+ modifies mesh data */
+
+ if(ob->type != OB_MESH) return;
+ for(md = ob->modifiers.first; md; md = md->next) {
+ if(md->type == eModifierType_Multires) {
+ MultiresModifierData *mmd = (MultiresModifierData*)md;
+ multiresModifier_set_levels_from_disps(mmd, ob);
+ }
+ }
+}