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>2013-06-05 01:54:16 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-06-05 01:54:16 +0400
commit2230794e7347229e462ee8f8c57d6fd0330ee695 (patch)
tree5db1346ec00afb91044aceca19ea1af6b36ca103 /source/blender
parent98d327818936aff4e28bb42be803e8358598ee19 (diff)
yet another check for missing vertex groups needed (for 'Select/Deselect')
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/object/object_vgroup.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index 5329ec732be..9a6cc7e4340 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -1062,21 +1062,24 @@ static void vgroup_select_verts(Object *ob, int select)
if (me->edit_btmesh) {
BMEditMesh *em = me->edit_btmesh;
const int cd_dvert_offset = CustomData_get_offset(&em->bm->vdata, CD_MDEFORMVERT);
- BMIter iter;
- BMVert *eve;
- BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
- if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
- MDeformVert *dv = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
- if (defvert_find_index(dv, def_nr)) {
- BM_vert_select_set(em->bm, eve, select);
+ if (cd_dvert_offset != -1) {
+ BMIter iter;
+ BMVert *eve;
+
+ BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
+ if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
+ MDeformVert *dv = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
+ if (defvert_find_index(dv, def_nr)) {
+ BM_vert_select_set(em->bm, eve, select);
+ }
}
}
- }
- /* this has to be called, because this function operates on vertices only */
- if (select) EDBM_select_flush(em); /* vertices to edges/faces */
- else EDBM_deselect_flush(em);
+ /* this has to be called, because this function operates on vertices only */
+ if (select) EDBM_select_flush(em); /* vertices to edges/faces */
+ else EDBM_deselect_flush(em);
+ }
}
else {
if (me->dvert) {