diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_mball.h')
-rw-r--r-- | source/blender/blenkernel/BKE_mball.h | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h index f40d0bb3004..7d265ceb102 100644 --- a/source/blender/blenkernel/BKE_mball.h +++ b/source/blender/blenkernel/BKE_mball.h @@ -24,14 +24,25 @@ struct MetaBall *BKE_mball_add(struct Main *bmain, const char *name); bool BKE_mball_is_any_selected(const struct MetaBall *mb); bool BKE_mball_is_any_selected_multi(struct Base **bases, int bases_len); bool BKE_mball_is_any_unselected(const struct MetaBall *mb); -bool BKE_mball_is_basis_for(struct Object *ob1, struct Object *ob2); + +/** + * Return `true` if `ob1` and `ob2` are part of the same metaBall group. + * + * \note Currently checks whether their two base names (without numerical suffix) is the same. + */ +bool BKE_mball_is_same_group(const struct Object *ob1, const struct Object *ob2); +/** + * Return `true` if `ob1` and `ob2` are part of the same metaBall group, and `ob1` is its + * basis. + */ +bool BKE_mball_is_basis_for(const struct Object *ob1, const struct Object *ob2); /** * Test, if \a ob is a basis meta-ball. * * It test last character of Object ID name. * If last character is digit it return 0, else it return 1. */ -bool BKE_mball_is_basis(struct Object *ob); +bool BKE_mball_is_basis(const struct Object *ob); /** * This function finds the basis meta-ball. * @@ -44,27 +55,20 @@ bool BKE_mball_is_basis(struct Object *ob); struct Object *BKE_mball_basis_find(struct Scene *scene, struct Object *ob); /** - * Compute bounding box of all meta-elements / meta-ball. - * - * Bounding box is computed from polygonized surface. \a ob is - * basic meta-balls (with name `Meta` for example). All other meta-ball objects - * (with names `Meta.001`, `Meta.002`, etc) are included in this bounding-box. - */ -void BKE_mball_texspace_calc(struct Object *ob); -/** * Return or compute bounding-box for given meta-ball object. */ struct BoundBox *BKE_mball_boundbox_get(struct Object *ob); -float *BKE_mball_make_orco(struct Object *ob, struct ListBase *dispbase); /** - * Copy some properties from object to other meta-ball object with same base name. + * Copy some properties from a meta-ball obdata to all other meta-ball obdata belonging to the same + * family (i.e. object sharing the same name basis). * * When some properties (wire-size, threshold, update flags) of meta-ball are changed, then this * properties are copied to all meta-balls in same "group" (meta-balls with same base name: * `MBall`, `MBall.001`, `MBall.002`, etc). The most important is to copy properties to the base - * meta-ball, because this meta-ball influence polygonization of meta-balls. */ -void BKE_mball_properties_copy(struct Scene *scene, struct Object *active_object); + * meta-ball, because this meta-ball influences polygonization of meta-balls. + */ +void BKE_mball_properties_copy(struct Main *bmain, struct MetaBall *active_metaball); bool BKE_mball_minmax_ex( const struct MetaBall *mb, float min[3], float max[3], const float obmat[4][4], short flag); @@ -97,18 +101,7 @@ bool BKE_mball_select_swap_multi_ex(struct Base **bases, int bases_len); /* **** Depsgraph evaluation **** */ -struct Depsgraph; - -/* Draw Cache */ - -enum { - BKE_MBALL_BATCH_DIRTY_ALL = 0, -}; -void BKE_mball_batch_cache_dirty_tag(struct MetaBall *mb, int mode); -void BKE_mball_batch_cache_free(struct MetaBall *mb); - -extern void (*BKE_mball_batch_cache_dirty_tag_cb)(struct MetaBall *mb, int mode); -extern void (*BKE_mball_batch_cache_free_cb)(struct MetaBall *mb); +void BKE_mball_data_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob); #ifdef __cplusplus } |