Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / intern / mball.c
index d7fb2d0a17b59388391761d5309a1f538e486b3a..3afaf2d569ec929830b6c495c538e72ca25128ae 100644 (file)
@@ -277,7 +277,7 @@ float *BKE_mball_make_orco(Object *ob, ListBase *dispbase)
  * This really needs a rewrite/refactor its totally broken in anything other then basic cases
  * Multiple Scenes + Set Scenes & mixing mball basis SHOULD work but fails to update the depsgraph on rename
  * and linking into scenes or removal of basis mball. so take care when changing this code.
- * 
+ *
  * Main idiot thing here is that the system returns find_basis_mball() objects which fail a is_basis_mball() test.
  *
  * Not only that but the depsgraph and their areas depend on this behavior!, so making small fixes here isn't worth it.
@@ -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
@@ -543,11 +563,6 @@ void BKE_mball_select_swap(struct MetaBall *mb)
 
 /* **** Depsgraph evaluation **** */
 
-void BKE_mball_eval_geometry(struct Depsgraph *UNUSED(depsgraph),
-                             MetaBall *UNUSED(mball))
-{
-}
-
 /* Draw Engine */
 
 void (*BKE_mball_batch_cache_dirty_cb)(MetaBall *mb, int mode) = NULL;