diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-06-30 07:04:39 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-06-30 07:04:39 +0400 |
commit | 5c3e73fd569604d19d579ce74eb5fa8ed3fb0a06 (patch) | |
tree | f45bcf34e63478a1f5cdcc058c1747a747cbd864 /source/blender/blenkernel | |
parent | c490baceedec99fdd3b6f5233be721b56185d1e3 (diff) |
replace inline loops for get_weights_array with calls to defvert_find_weight()
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/key.c | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 4b532362cd8..78bfe79bf9b 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -63,6 +63,7 @@ #include "BKE_library.h" #include "BKE_main.h" #include "BKE_object.h" +#include "BKE_deform.h" #include "RNA_access.h" @@ -1005,7 +1006,7 @@ static float *get_weights_array(Object *ob, char *vgroup) MDeformVert *dvert= NULL; EditMesh *em= NULL; EditVert *eve; - int totvert= 0, index= 0; + int totvert= 0, defgrp_index= 0; /* no vgroup string set? */ if(vgroup[0]==0) return NULL; @@ -1028,7 +1029,7 @@ static float *get_weights_array(Object *ob, char *vgroup) if(dvert==NULL) return NULL; /* find the group (weak loop-in-loop) */ - index= defgroup_name_index(ob, vgroup); + defgrp_index= defgroup_name_index(ob, vgroup); if(index >= 0) { float *weights; int i, j; @@ -1040,23 +1041,13 @@ static float *get_weights_array(Object *ob, char *vgroup) dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT); if(dvert) { - for(j=0; j<dvert->totweight; j++) { - if(dvert->dw[j].def_nr == index) { - weights[i]= dvert->dw[j].weight; - break; - } - } + weights[i]= defvert_find_weight(dvert, defgrp_index); } } } else { for(i=0; i < totvert; i++, dvert++) { - for(j=0; j<dvert->totweight; j++) { - if(dvert->dw[j].def_nr == index) { - weights[i]= dvert->dw[j].weight; - break; - } - } + weights[i]= defvert_find_weight(dvert, defgrp_index); } } |