Fix for bug #11698: mesh deform modifier not working on extruded curves.

The modifier work on the tesselated result rather than the curve itself.
This commit is contained in:
2008-05-22 17:06:46 +00:00
parent 1b00877051
commit 7bae2af95c
2 changed files with 11 additions and 3 deletions

View File

@@ -1171,7 +1171,7 @@ static ModifierData *curve_get_tesselate_point(Object *ob, int forRender, int ed
if ((md->mode & required_mode) != required_mode) continue;
if (mti->isDisabled && mti->isDisabled(md)) continue;
if (md->type==eModifierType_Hook || md->type==eModifierType_Softbody) {
if (ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) {
preTesselatePoint = md;
}
}

View File

@@ -6850,8 +6850,16 @@ static void meshdeformModifier_do(
Mat3CpyMat4(icagemat, iobmat);
/* bind weights if needed */
if(!mmd->bindcos)
harmonic_coordinates_bind(mmd, vertexCos, numVerts, cagemat);
if(!mmd->bindcos) {
static int recursive = 0;
/* progress bar redraw can make this recursive .. */
if(!recursive) {
recursive = 1;
harmonic_coordinates_bind(mmd, vertexCos, numVerts, cagemat);
recursive = 0;
}
}
/* verify we have compatible weights */
totvert= numVerts;