[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12492] trunk/blender/source/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Nov 6 12:25:49 CET 2007


Revision: 12492
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12492
Author:   blendix
Date:     2007-11-06 12:25:48 +0100 (Tue, 06 Nov 2007)

Log Message:
-----------

Bugfix:
Mesh deform modifier crashed when applied to lattices.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/modifier.c
    trunk/blender/source/blender/src/buttons_editing.c

Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c	2007-11-06 09:44:34 UTC (rev 12491)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c	2007-11-06 11:25:48 UTC (rev 12492)
@@ -5118,15 +5118,15 @@
 {
 	DerivedMesh *dm;
 
-	if(derivedData) dm = CDDM_copy(derivedData);
-	else dm = CDDM_from_mesh(ob->data, ob);
+	if(!derivedData && ob->type==OB_MESH)
+		dm= CDDM_from_mesh(ob->data, ob);
+	else
+		dm= derivedData;
 
-	CDDM_apply_vert_coords(dm, vertexCos);
-	CDDM_calc_normals(dm);
-
 	meshdeformModifier_do(md, ob, dm, vertexCos, numVerts);
 
-	dm->release(dm);
+	if(dm != derivedData)
+		dm->release(dm);
 }
 
 static void meshdeformModifier_deformVertsEM(
@@ -5135,15 +5135,15 @@
 {
 	DerivedMesh *dm;
 
-	if(derivedData) dm = CDDM_copy(derivedData);
-	else dm = CDDM_from_editmesh(editData, ob->data);
+	if(!derivedData && ob->type == OB_MESH)
+		dm = CDDM_from_editmesh(editData, ob->data);
+	else
+		dm = derivedData;
 
-	CDDM_apply_vert_coords(dm, vertexCos);
-	CDDM_calc_normals(dm);
-
 	meshdeformModifier_do(md, ob, dm, vertexCos, numVerts);
 
-	dm->release(dm);
+	if(dm != derivedData)
+		dm->release(dm);
 }
 
 /***/

Modified: trunk/blender/source/blender/src/buttons_editing.c
===================================================================
--- trunk/blender/source/blender/src/buttons_editing.c	2007-11-06 09:44:34 UTC (rev 12491)
+++ trunk/blender/source/blender/src/buttons_editing.c	2007-11-06 11:25:48 UTC (rev 12492)
@@ -1486,8 +1486,13 @@
 		mmd->needbind= 1;
 		mmd->modifier.mode |= eModifierMode_Realtime;
 
-		dm= mesh_create_derived_view(ob, 0);
-		dm->release(dm);
+		if(ob->type == OB_MESH) {
+			dm= mesh_create_derived_view(ob, 0);
+			dm->release(dm);
+		}
+		else if(ob->type == OB_LATTICE) {
+			lattice_calc_modifiers(ob);
+		}
 
 		mmd->needbind= 0;
 		mmd->modifier.mode= mode;





More information about the Bf-blender-cvs mailing list