diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-05-12 23:16:09 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-05-12 23:16:09 +0300 |
commit | f897d953727074c6916c3a15b21a072cbc5ffa8a (patch) | |
tree | e4571c722cb834a3a9dae153518b784d763f1acb /source/blender/blenkernel | |
parent | 1422c0650c951f21bee2555e4e7f03bb8c64cace (diff) |
EditMBall: multi-object select random
D3356 by @Quetzal
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_mball.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mball.c | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h index a486e8319c6..41f04c09e69 100644 --- a/source/blender/blenkernel/BKE_mball.h +++ b/source/blender/blenkernel/BKE_mball.h @@ -47,6 +47,8 @@ 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_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); struct Object *BKE_mball_basis_find(struct Scene *scene, struct Object *ob); diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index d7fb2d0a17b..7fc289f8bf2 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -314,6 +314,26 @@ bool BKE_mball_is_basis_for(Object *ob1, Object *ob2) } } +bool BKE_mball_is_any_selected(const MetaBall *mb) +{ + for (const MetaElem *ml = mb->editelems->first; ml != NULL; ml = ml->next) { + if(ml->flag & SELECT) { + 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) { + if((ml->flag & SELECT) == 0) { + return true; + } + } + return false; +} + /* \brief copy some properties from object to other metaball object with same base name * * When some properties (wiresize, threshold, update flags) of metaball are changed, then this properties |