|
Blender V4.5
|
Go to the source code of this file.
Definition at line 178 of file mball.cc.
References BKE_id_new(), and BKE_mball_add().
Referenced by BKE_mball_add(), and BKE_object_obdata_add_from_type().
This function finds the basis meta-ball.
Basis meta-ball doesn't include any number at the end of its name. All meta-balls with same base of name can be blended. meta-balls with different basic name can't be blended.
Definition at line 424 of file mball.cc.
References BASE_FROM_DUPLI, BKE_mball_basis_find(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), BLI_string_split_name_number(), Object::id, LISTBASE_FOREACH, MAX_ID_NAME, ID::name, OB_MBALL, STREQ, Object::type, and Scene::view_layers.
Referenced by BKE_mball_basis_find(), BKE_mball_data_update(), BKE_mball_is_any_selected_multi(), blender::deg::DepsgraphRelationBuilder::build_object_data_geometry(), blender::ed::object::convert_mball_to_mesh(), and blender::ed::object::object_convert_exec().
| bool BKE_mball_center_bounds | ( | const MetaBall * | mb, |
| float | r_cent[3] ) |
Definition at line 518 of file mball.cc.
References BKE_mball_center_bounds(), BKE_mball_minmax(), max, mid_v3_v3v3(), and min.
Referenced by BKE_mball_center_bounds(), BKE_mball_is_any_selected_multi(), and blender::ed::object::object_origin_set_exec().
| bool BKE_mball_center_median | ( | const MetaBall * | mb, |
| float | r_cent[3] ) |
Definition at line 500 of file mball.cc.
References add_v3_v3(), BKE_mball_center_median(), MetaBall::elems, LISTBASE_FOREACH, mul_v3_fl(), and zero_v3().
Referenced by BKE_mball_center_median(), BKE_mball_is_any_selected_multi(), and blender::ed::object::object_origin_set_exec().
Definition at line 655 of file mball.cc.
References BKE_lattice_deform_coords(), BKE_mball_basis_find(), BKE_mball_data_update(), BKE_mball_polygonize(), BKE_object_free_derived_caches(), BLI_assert, Object::data, GeometrySet::from_mesh(), GeometrySet::GeometrySet(), MetaBall::mat, MEM_dupallocN(), OB_LATTICE, OB_MBALL, Object::parent, PARSKEL, Object::partype, Object::runtime, MetaBall::totcol, and Object::type.
Referenced by BKE_mball_data_update(), BKE_mball_select_swap_multi_ex(), BKE_object_handle_data_update(), and blender::ed::object::object_force_modifier_update_for_bind().
| bool BKE_mball_deselect_all | ( | MetaBall * | mb | ) |
Definition at line 608 of file mball.cc.
References BKE_mball_deselect_all(), MetaBall::editelems, LISTBASE_FOREACH, and SELECT.
Referenced by BKE_mball_deselect_all(), BKE_mball_deselect_all_multi_ex(), BKE_mball_select_all_multi_ex(), do_lasso_select_meta(), do_meta_box_select(), and mball_circle_select().
| bool BKE_mball_deselect_all_multi_ex | ( | blender::Span< Base * > | bases | ) |
References BKE_mball_deselect_all_multi_ex(), and BKE_mball_select_swap().
Referenced by BKE_mball_deselect_all_multi_ex(), BKE_mball_deselect_all_multi_ex(), ED_mball_deselect_all_multi(), and mball_select_all_exec().
Most simple meta-element adding function.
Definition at line 184 of file mball.cc.
References BKE_mball_element_add(), BLI_addtail(), MetaBall::elems, MetaElem::expx, MetaElem::expy, MetaElem::expz, MetaElem::flag, MB_BALL, MB_CUBE, MB_ELIPSOID, MB_PLANE, MB_SCALE_RAD, MB_TUBE, MEM_callocN(), MetaElem::quat, MetaElem::rad, MetaElem::s, MetaElem::type, and unit_qt().
Referenced by BKE_mball_element_add(), BKE_mball_is_any_selected_multi(), and ED_mball_add_primitive().
| float BKE_mball_element_display_radius_calc | ( | const MetaElem * | ml | ) |
Calculate & return the display radius.
Definition at line 250 of file mball.cc.
References BKE_mball_element_display_radius_calc(), MetaElem::expx, MetaElem::expy, MetaElem::expz, M_SQRT2, MB_CUBE, min_fff(), MetaElem::rad, and MetaElem::type.
Referenced by BKE_mball_element_display_radius_calc(), BKE_mball_is_any_selected_multi(), and blender::draw::overlay::Metaballs::object_sync().
| blender::float2 BKE_mball_element_display_radius_calc_with_stiffness | ( | const MetaElem * | ml | ) |
Calculate & return the display radius & stiffness.
Definition at line 231 of file mball.cc.
References atanf, BKE_mball_element_display_radius_calc_with_stiffness(), MetaElem::expx, MetaElem::expy, MetaElem::expz, M_SQRT2, MB_CUBE, min_fff(), blender::math::numbers::pi, MetaElem::rad, MetaElem::s, and MetaElem::type.
Referenced by BKE_mball_element_display_radius_calc_with_stiffness(), BKE_mball_is_any_selected_multi(), and blender::draw::overlay::Metaballs::edit_object_sync().
| bool BKE_mball_is_any_selected | ( | const MetaBall * | mb | ) |
Definition at line 304 of file mball.cc.
References BKE_mball_is_any_selected(), MetaBall::editelems, LISTBASE_FOREACH, and SELECT.
Referenced by BKE_mball_is_any_selected(), BKE_mball_is_any_selected_multi(), delete_metaelems_exec(), and duplicate_metaelems_exec().
| bool BKE_mball_is_any_selected_multi | ( | blender::Span< Base * > | bases | ) |
References BKE_mball_basis_find(), BKE_mball_center_bounds(), BKE_mball_center_median(), BKE_mball_element_add(), BKE_mball_element_display_radius_calc(), BKE_mball_element_display_radius_calc_with_stiffness(), BKE_mball_is_any_selected_multi(), BKE_mball_is_any_unselected(), BKE_mball_is_basis(), BKE_mball_is_basis_for(), BKE_mball_is_same_group(), BKE_mball_minmax(), BKE_mball_minmax_ex(), BKE_mball_properties_copy(), BKE_mball_select_count(), BKE_mball_transform(), BKE_mball_translate(), max, and min.
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_is_any_selected_multi(), and mball_select_all_exec().
| bool BKE_mball_is_any_unselected | ( | const MetaBall * | mb | ) |
Definition at line 326 of file mball.cc.
References BKE_mball_is_any_unselected(), MetaBall::editelems, LISTBASE_FOREACH, and SELECT.
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_is_any_unselected(), and select_random_metaelems_exec().
| bool BKE_mball_is_basis | ( | const Object * | ob | ) |
Test, if 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.
Definition at line 260 of file mball.cc.
References BKE_mball_is_basis(), Object::id, len(), and ID::name.
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_is_basis(), BKE_mball_is_basis_for(), libblock_remap_data_postprocess_object_update(), blender::ed::object::object_convert_exec(), and blender::draw::overlay::Bounds::object_sync().
Return true if ob1 and ob2 are part of the same metaBall group, and ob1 is its basis.
Definition at line 299 of file mball.cc.
References BKE_mball_is_basis(), BKE_mball_is_basis_for(), and BKE_mball_is_same_group().
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_is_basis_for(), and libblock_remap_data_postprocess_object_update().
Return true if ob1 and ob2 are part of the same metaBall group.
Definition at line 283 of file mball.cc.
References BKE_mball_is_same_group(), BLI_string_split_name_number(), Object::id, MAX_ID_NAME, ID::name, and STREQ.
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_is_basis_for(), and BKE_mball_is_same_group().
| bool BKE_mball_minmax | ( | const MetaBall * | mb, |
| float | min[3], | ||
| float | max[3] ) |
Definition at line 489 of file mball.cc.
References BKE_mball_minmax(), BLI_listbase_is_empty(), MetaBall::elems, INIT_MINMAX, LISTBASE_FOREACH, max, min, and minmax_v3v3_v3().
Referenced by BKE_mball_center_bounds(), BKE_mball_is_any_selected_multi(), and BKE_mball_minmax().
| bool BKE_mball_minmax_ex | ( | const MetaBall * | mb, |
| float | min[3], | ||
| float | max[3], | ||
| const float | obmat[4][4], | ||
| short | flag ) |
Definition at line 456 of file mball.cc.
References add_v3_fl(), BKE_mball_minmax_ex(), copy_v3_v3(), MetaBall::elems, i, INIT_MINMAX, LISTBASE_FOREACH, mat4_to_scale(), max, min, minmax_v3v3_v3(), and mul_v3_m4v3().
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_minmax_ex(), and ED_view3d_minmax_verts().
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 influences polygonization of meta-balls.
WARNING: This code does not cover all potential corner-cases. E.g. if:
| Object | ObData | | ---------- | ---------- | | Meta_A | Meta_A | | Meta_A.001 | Meta_A.001 | | Meta_B | Meta_A | | Meta_B.001 | Meta_B.001 |
Calling this function with metaball_src being Meta_A.001 will update Meta_A, but NOT Meta_B.001. So in the 'Meta_B' family, the two metaballs will have unmatching settings now.
Solving this case would drastically increase the complexity of this code though, so don't think it would be worth it.
Definition at line 345 of file mball.cc.
References BKE_mball_properties_copy(), BLI_string_split_name_number(), Object::data, ListBase::first, Object::id, ID_IS_EDITABLE, MAX_ID_NAME, mball_data_properties_copy(), ID::name, ID::next, OB_MBALL, Main::objects, ID::prev, STREQ, and Object::type.
Referenced by BKE_mball_is_any_selected_multi(), and BKE_mball_properties_copy().
| bool BKE_mball_select_all | ( | MetaBall * | mb | ) |
Definition at line 585 of file mball.cc.
References BKE_mball_select_all(), MetaBall::editelems, LISTBASE_FOREACH, and SELECT.
Referenced by BKE_mball_select_all(), BKE_mball_select_all_multi_ex(), and BKE_mball_select_count_multi().
| bool BKE_mball_select_all_multi_ex | ( | blender::Span< Base * > | bases | ) |
References BKE_mball_deselect_all(), and BKE_mball_select_all_multi_ex().
Referenced by BKE_mball_select_all_multi_ex(), BKE_mball_select_all_multi_ex(), and mball_select_all_exec().
| int BKE_mball_select_count | ( | const MetaBall * | mb | ) |
Definition at line 563 of file mball.cc.
References BKE_mball_select_count(), MetaBall::editelems, LISTBASE_FOREACH, and SELECT.
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_select_count(), and BKE_mball_select_count_multi().
| int BKE_mball_select_count_multi | ( | blender::Span< Base * > | bases | ) |
References BKE_mball_select_all(), and BKE_mball_select_count_multi().
Referenced by BKE_mball_select_count_multi(), BKE_mball_select_count_multi(), and mball_select_similar_exec().
| bool BKE_mball_select_swap | ( | MetaBall * | mb | ) |
Definition at line 632 of file mball.cc.
References BKE_mball_select_swap(), MetaBall::editelems, LISTBASE_FOREACH, and SELECT.
Referenced by BKE_mball_deselect_all_multi_ex(), BKE_mball_select_swap(), and BKE_mball_select_swap_multi_ex().
| bool BKE_mball_select_swap_multi_ex | ( | blender::Span< Base * > | bases | ) |
References BKE_mball_data_update(), and BKE_mball_select_swap_multi_ex().
Referenced by BKE_mball_select_swap_multi_ex(), BKE_mball_select_swap_multi_ex(), and mball_select_all_exec().
| void BKE_mball_transform | ( | MetaBall * | mb, |
| const float | mat[4][4], | ||
| bool | do_props ) |
Definition at line 530 of file mball.cc.
References BKE_mball_transform(), MetaBall::elems, LISTBASE_FOREACH, mat4_to_quat(), mat4_to_scale(), MB_TYPE_SIZE_SQUARED, mul_m4_v3(), mul_qt_qtqt(), mul_v3_fl(), and sqrtf.
Referenced by blender::ed::object::apply_objects_internal(), BKE_mball_is_any_selected_multi(), BKE_mball_transform(), and blender::ed::object::metaball_coords_and_quats_apply_with_mat4().
| void BKE_mball_translate | ( | MetaBall * | mb, |
| const float | offset[3] ) |
Definition at line 556 of file mball.cc.
References add_v3_v3(), BKE_mball_translate(), MetaBall::elems, and LISTBASE_FOREACH.
Referenced by BKE_mball_is_any_selected_multi(), BKE_mball_translate(), and blender::ed::object::object_origin_set_exec().