diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2018-11-07 04:30:30 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2018-11-07 04:32:49 +0300 |
commit | 0a893c0901d6fba0501ea4b341c5b9c0747be2af (patch) | |
tree | 1c243e3277586f1a50eaaad899965c58cb7432a3 /source/blender/blenkernel | |
parent | f6bec570c5cd87a1e8635837650217c783b158e0 (diff) |
Multi-Objects: MBALL_OT_select_all
Based on D3893 by Habib Gahbiche.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_mball.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mball.c | 41 |
2 files changed, 45 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h index 2eee5f72c0f..ae86d978cb7 100644 --- a/source/blender/blenkernel/BKE_mball.h +++ b/source/blender/blenkernel/BKE_mball.h @@ -49,6 +49,7 @@ struct MetaBall *BKE_mball_copy(struct Main *bmain, const struct MetaBall *mb); void BKE_mball_make_local(struct Main *bmain, struct MetaBall *mb, const bool lib_local); bool BKE_mball_is_any_selected(const struct MetaBall *mb); +bool BKE_mball_is_any_selected_multi(struct Object **objects, int objects_len); bool BKE_mball_is_any_unselected(const struct MetaBall *mb); bool BKE_mball_is_basis_for(struct Object *ob1, struct Object *ob2); bool BKE_mball_is_basis(struct Object *ob); @@ -71,8 +72,11 @@ void BKE_mball_translate(struct MetaBall *mb, const float offset[3]); struct MetaElem *BKE_mball_element_add(struct MetaBall *mb, const int type); void BKE_mball_select_all(struct MetaBall *mb); +void BKE_mball_select_all_multi(struct Object **objects, int objects_len); void BKE_mball_deselect_all(struct MetaBall *mb); +void BKE_mball_deselect_all_multi(struct Object **objects, int objects_len); void BKE_mball_select_swap(struct MetaBall *mb); +void BKE_mball_select_swap_multi(struct Object **objects, int objects_len); /* **** Depsgraph evaluation **** */ diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index f39808231e1..5b1accd955d 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -338,6 +338,19 @@ bool BKE_mball_is_any_selected(const MetaBall *mb) return false; } + +bool BKE_mball_is_any_selected_multi(Object **objects, int objects_len) +{ + for (uint ob_index = 0; ob_index < objects_len; ob_index++) { + Object *obedit = objects[ob_index]; + MetaBall *mb = (MetaBall *)obedit->data; + if (BKE_mball_is_any_selected(mb)) { + return true; + } + } + return false; +} + bool BKE_mball_is_any_unselected(const MetaBall *mb) { for (const MetaElem *ml = mb->editelems->first; ml != NULL; ml = ml->next) { @@ -557,6 +570,15 @@ void BKE_mball_select_all(struct MetaBall *mb) } } +void BKE_mball_select_all_multi(Object **objects, int objects_len) +{ + for (uint ob_index = 0; ob_index < objects_len; ob_index++) { + Object *obedit = objects[ob_index]; + MetaBall *mb = (MetaBall *)obedit->data; + BKE_mball_select_all(mb); + } +} + void BKE_mball_deselect_all(MetaBall *mb) { MetaElem *ml; @@ -566,6 +588,16 @@ void BKE_mball_deselect_all(MetaBall *mb) } } +void BKE_mball_deselect_all_multi(Object **objects, int objects_len) +{ + for (uint ob_index = 0; ob_index < objects_len; ob_index++) { + Object *obedit = objects[ob_index]; + MetaBall *mb = (MetaBall *)obedit->data; + + BKE_mball_deselect_all(mb); + } +} + void BKE_mball_select_swap(struct MetaBall *mb) { MetaElem *ml; @@ -575,6 +607,15 @@ void BKE_mball_select_swap(struct MetaBall *mb) } } +void BKE_mball_select_swap_multi(Object **objects, int objects_len) +{ + for (uint ob_index = 0; ob_index < objects_len; ob_index++) { + Object *obedit = objects[ob_index]; + MetaBall *mb = (MetaBall *)obedit->data; + BKE_mball_select_swap(mb); + } +} + /* **** Depsgraph evaluation **** */ /* Draw Engine */ |