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:
authorDalai Felinto <dfelinto@gmail.com>2018-11-07 04:30:30 +0300
committerDalai Felinto <dfelinto@gmail.com>2018-11-07 04:32:49 +0300
commit0a893c0901d6fba0501ea4b341c5b9c0747be2af (patch)
tree1c243e3277586f1a50eaaad899965c58cb7432a3 /source/blender/blenkernel
parentf6bec570c5cd87a1e8635837650217c783b158e0 (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.h4
-rw-r--r--source/blender/blenkernel/intern/mball.c41
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 */