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:
authorCampbell Barton <ideasman42@gmail.com>2011-12-15 02:54:38 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-15 02:54:38 +0400
commit40a2c1a2921b50edd8b798e79b6bd2a6d94d7bba (patch)
treef28bc2e08718bbf7e8fee729330c5c1e675c180e /source/blender/modifiers/intern/MOD_meshdeform.c
parent3d5330f789c287666b875706c84228520473add5 (diff)
more vertex weight edits,
* replace inline loops with api calls. * change constraints so verts with 0.0 weight are ignored like they are everywhere else.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_meshdeform.c')
-rw-r--r--source/blender/modifiers/intern/MOD_meshdeform.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c
index c211efd64b8..bcbb6c630a6 100644
--- a/source/blender/modifiers/intern/MOD_meshdeform.c
+++ b/source/blender/modifiers/intern/MOD_meshdeform.c
@@ -188,7 +188,6 @@ static void meshdeformModifier_do(
struct EditMesh *em = (me)? BKE_mesh_get_editmesh(me): NULL;
DerivedMesh *tmpdm, *cagedm;
MDeformVert *dvert = NULL;
- MDeformWeight *dw;
MDefInfluence *influences;
int *offsets;
float imat[4][4], cagemat[4][4], iobmat[4][4], icagemat[3][3], cmat[4][4];
@@ -293,21 +292,14 @@ static void meshdeformModifier_do(
continue;
if(dvert) {
- for(dw=NULL, a=0; a<dvert[b].totweight; a++) {
- if(dvert[b].dw[a].def_nr == defgrp_index) {
- dw = &dvert[b].dw[a];
- break;
- }
- }
+ fac= defvert_find_weight(&dvert[b], defgrp_index);
- if(mmd->flag & MOD_MDEF_INVERT_VGROUP) {
- if(!dw) fac= 1.0f;
- else if(dw->weight == 1.0f) continue;
- else fac=1.0f-dw->weight;
+ if (mmd->flag & MOD_MDEF_INVERT_VGROUP) {
+ fac= 1.0f - fac;
}
- else {
- if(!dw) continue;
- else fac= dw->weight;
+
+ if (fac <= 0.0) {
+ continue;
}
}