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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-07-05 15:48:13 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-07-05 15:48:13 +0400
commit052ab934aa3adb3ab3ce8e875618986fb69f0d57 (patch)
treeed4fb5bc334fe1c4ad223a6e4c3b284d01948681 /source/blender/modifiers
parent462d889720a5562fa01040f4d2a70269904edd77 (diff)
Fix #20383: mesh deform modifier wasn't working on lattices.
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r--source/blender/modifiers/intern/MOD_meshdeform.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c
index 623f4a5ddeb..9ae86ac4ec0 100644
--- a/source/blender/modifiers/intern/MOD_meshdeform.c
+++ b/source/blender/modifiers/intern/MOD_meshdeform.c
@@ -227,7 +227,7 @@ static void meshdeformModifier_do(
/* 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 @@ static void meshdeformModifier_do(
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 @@ static void deformVerts(
{
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 @@ static void deformVertsEM(
ModifierData *md, Object *ob, struct EditMesh *editData,
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
- DerivedMesh *dm;
-
- if(!derivedData && ob->type == OB_MESH)
- dm = CDDM_from_editmesh(editData, ob->data);
- else
- dm = derivedData;
+ DerivedMesh *dm= get_dm(md->scene, ob, NULL, derivedData, NULL, 0);;
meshdeformModifier_do(md, ob, dm, vertexCos, numVerts);
- if(dm != derivedData)
+ if(dm && dm != derivedData)
dm->release(dm);
}