diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-05-27 16:42:48 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-05-27 16:42:48 +0400 |
commit | 083115c5e790d5c6e87a7a4a42daea70da1ded1b (patch) | |
tree | 75314e71ff24b7de4a8508e76662b3afbc3e5ddf /source/blender/blenkernel/intern/key.c | |
parent | e51ee75e826846d44dcbb7028ee44e8f3e7b6858 (diff) |
bmesh optimization: use offsets for deform-vert lookups to avoid customdata layer lookups within loops.
Diffstat (limited to 'source/blender/blenkernel/intern/key.c')
-rw-r--r-- | source/blender/blenkernel/intern/key.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index 74bf36adc6e..dfa5fcff94c 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1067,12 +1067,10 @@ static float *get_weights_array(Object *ob, char *vgroup) weights = MEM_callocN(totvert * sizeof(float), "weights"); if (em) { + const int cd_dvert_offset = CustomData_get_offset(&em->bm->vdata, CD_MDEFORMVERT); BM_ITER_MESH_INDEX (eve, &iter, em->bm, BM_VERTS_OF_MESH, i) { - dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT); - - if (dvert) { - weights[i] = defvert_find_weight(dvert, defgrp_index); - } + dvert = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset); + weights[i] = defvert_find_weight(dvert, defgrp_index); } } else { |