Revision: 29984
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29984
Author:   blendix
Date:     2010-07-05 13:48:13 +0200 (Mon, 05 Jul 2010)

Log Message:
-----------
Fix #20383: mesh deform modifier wasn't working on lattices.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/armature/meshlaplacian.c
    trunk/blender/source/blender/editors/armature/meshlaplacian.h
    trunk/blender/source/blender/editors/include/ED_armature.h
    trunk/blender/source/blender/makesdna/DNA_modifier_types.h
    trunk/blender/source/blender/modifiers/intern/MOD_meshdeform.c

Modified: trunk/blender/source/blender/editors/armature/meshlaplacian.c
===================================================================
--- trunk/blender/source/blender/editors/armature/meshlaplacian.c       
2010-07-05 10:32:14 UTC (rev 29983)
+++ trunk/blender/source/blender/editors/armature/meshlaplacian.c       
2010-07-05 11:48:13 UTC (rev 29984)
@@ -1922,7 +1922,7 @@
 }
 #endif
 
-void mesh_deform_bind(Scene *scene, DerivedMesh *dm, MeshDeformModifierData 
*mmd, float *vertexcos, int totvert, float cagemat[][4])
+void mesh_deform_bind(Scene *scene, MeshDeformModifierData *mmd, float 
*vertexcos, int totvert, float cagemat[][4])
 {
        MeshDeformBind mdb;
        MVert *mvert;

Modified: trunk/blender/source/blender/editors/armature/meshlaplacian.h
===================================================================
--- trunk/blender/source/blender/editors/armature/meshlaplacian.h       
2010-07-05 10:32:14 UTC (rev 29983)
+++ trunk/blender/source/blender/editors/armature/meshlaplacian.h       
2010-07-05 11:48:13 UTC (rev 29984)
@@ -78,7 +78,7 @@
 
 /* Harmonic Coordinates */
 
-void mesh_deform_bind(struct Scene *scene, struct DerivedMesh *dm,
+void mesh_deform_bind(struct Scene *scene,
        struct MeshDeformModifierData *mmd,
        float *vertexcos, int totvert, float cagemat[][4]);
 

Modified: trunk/blender/source/blender/editors/include/ED_armature.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_armature.h  2010-07-05 
10:32:14 UTC (rev 29983)
+++ trunk/blender/source/blender/editors/include/ED_armature.h  2010-07-05 
11:48:13 UTC (rev 29984)
@@ -165,7 +165,7 @@
 int BDR_drawSketchNames(struct ViewContext *vc);
 
 /* meshlaplacian.c */
-void mesh_deform_bind(struct Scene *scene, struct DerivedMesh *dm,
+void mesh_deform_bind(struct Scene *scene,
        struct MeshDeformModifierData *mmd,
        float *vertexcos, int totvert, float cagemat[][4]);
 

Modified: trunk/blender/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_modifier_types.h  2010-07-05 
10:32:14 UTC (rev 29983)
+++ trunk/blender/source/blender/makesdna/DNA_modifier_types.h  2010-07-05 
11:48:13 UTC (rev 29984)
@@ -538,7 +538,7 @@
        float *bindcos;                                 /* deprecated storage 
of cage coords */
 
        /* runtime */
-       void (*bindfunc)(struct Scene *scene, struct DerivedMesh *dm,
+       void (*bindfunc)(struct Scene *scene,
                struct MeshDeformModifierData *mmd,
                float *vertexcos, int totvert, float cagemat[][4]);
 } MeshDeformModifierData;

Modified: trunk/blender/source/blender/modifiers/intern/MOD_meshdeform.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_meshdeform.c      
2010-07-05 10:32:14 UTC (rev 29983)
+++ trunk/blender/source/blender/modifiers/intern/MOD_meshdeform.c      
2010-07-05 11:48:13 UTC (rev 29984)
@@ -227,7 +227,7 @@
                /* progress bar redraw can make this recursive .. */
                if(!recursive) {
                        recursive = 1;
-                       mmd->bindfunc(md->scene, dm, mmd, (float*)vertexCos, 
numVerts, cagemat);
+                       mmd->bindfunc(md->scene, mmd, (float*)vertexCos, 
numVerts, cagemat);
                        recursive = 0;
                }
        }
@@ -275,7 +275,7 @@
 
        defgrp_index = defgroup_name_index(ob, mmd->defgrp_name);
 
-       if (defgrp_index >= 0)
+       if(dm && defgrp_index >= 0)
                dvert= dm->getVertDataArray(dm, CD_MDEFORMVERT);
 
        /* do deformation */
@@ -343,14 +343,11 @@
 {
        DerivedMesh *dm= get_dm(md->scene, ob, NULL, derivedData, NULL, 0);;
 
-       if(!dm)
-               return;
-
        modifier_vgroup_cache(md, vertexCos); /* if next modifier needs 
original vertices */
        
        meshdeformModifier_do(md, ob, dm, vertexCos, numVerts);
 
-       if(dm != derivedData)
+       if(dm && dm != derivedData)
                dm->release(dm);
 }
 
@@ -358,16 +355,11 @@
                                                 ModifierData *md, Object *ob, 
struct EditMesh *editData,
          DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
 {
-       DerivedMesh *dm;
+       DerivedMesh *dm= get_dm(md->scene, ob, NULL, derivedData, NULL, 0);;
 
-       if(!derivedData && ob->type == OB_MESH)
-               dm = CDDM_from_editmesh(editData, ob->data);
-       else
-               dm = derivedData;
-
        meshdeformModifier_do(md, ob, dm, vertexCos, numVerts);
 
-       if(dm != derivedData)
+       if(dm && dm != derivedData)
                dm->release(dm);
 }
 


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to