Revision: 28544
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28544
Author:   joeedh
Date:     2010-05-03 12:09:26 +0200 (Mon, 03 May 2010)

Log Message:
-----------
mask modifier properly works in weightpaint and edit modes now.  note that 
modifiers should not have to provide a applyModifierEM function, there's really 
no reason to not pull the result from applyModifier if applyModifierEM doesn't 
exist, it's not like we don't have a dozen *EM functions that do just that, 
anyway.  fixes 22192.  {merged 28543 into trunk}

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
    trunk/blender/source/blender/modifiers/intern/MOD_mask.c

Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c        
2010-05-03 10:04:25 UTC (rev 28543)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c        
2010-05-03 10:09:26 UTC (rev 28544)
@@ -2017,7 +2017,9 @@
                                }
                        }
 
-                       mti->deformVertsEM(md, ob, em, dm, deformedVerts, 
numVerts);
+                       if (mti->deformVertsEM)
+                               mti->deformVertsEM(md, ob, em, dm, 
deformedVerts, numVerts);
+                       else mti->deformVerts(md, ob, dm, deformedVerts, 
numVerts, 0, 0);
                } else {
                        DerivedMesh *ndm;
 
@@ -2053,8 +2055,12 @@
 
                                mask &= ~CD_MASK_ORCO;
                                DM_set_only_copy(orcodm, mask);
-                               ndm = mti->applyModifierEM(md, ob, em, orcodm);
 
+                               if (mti->applyModifierEM)
+                                       ndm = mti->applyModifierEM(md, ob, em, 
orcodm);
+                               else
+                                       ndm = mti->applyModifier(md, ob, 
orcodm, 0, 0);
+
                                if(ndm) {
                                        /* if the modifier returned a new dm, 
release the old one */
                                        if(orcodm && orcodm != ndm) 
orcodm->release(orcodm);
@@ -2069,7 +2075,10 @@
                                if(!CustomData_has_layer(&dm->faceData, 
CD_ORIGSPACE))
                                        DM_add_face_layer(dm, CD_ORIGSPACE, 
CD_DEFAULT, NULL);
                        
-                       ndm = mti->applyModifierEM(md, ob, em, dm);
+                       if (mti->applyModifierEM)
+                               ndm = mti->applyModifierEM(md, ob, em, dm);
+                       else
+                               ndm = mti->applyModifier(md, ob, dm, 0, 0);
 
                        if (ndm) {
                                if(dm && dm != ndm)

Modified: trunk/blender/source/blender/modifiers/intern/MOD_mask.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_mask.c    2010-05-03 
10:04:25 UTC (rev 28543)
+++ trunk/blender/source/blender/modifiers/intern/MOD_mask.c    2010-05-03 
10:09:26 UTC (rev 28544)
@@ -32,6 +32,7 @@
 
 #include "DNA_armature_types.h"
 #include "DNA_meshdata_types.h"
+#include "DNA_modifier_types.h"
 
 #include "BLI_ghash.h"
 
@@ -386,7 +387,7 @@
        /* structName */        "MaskModifierData",
        /* structSize */        sizeof(MaskModifierData),
        /* type */              eModifierTypeType_Nonconstructive,
-       /* flags */             eModifierTypeFlag_AcceptsMesh,
+       /* flags */             
eModifierTypeFlag_AcceptsMesh|eModifierTypeFlag_SupportsMapping|eModifierTypeFlag_SupportsEditmode,
 
        /* copyData */          copyData,
        /* deformVerts */       0,


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to