Blender
V3.3
|
#include <math.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_kdtree.h"
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLI_utildefines.h"
#include "DNA_defs.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "BKE_context.h"
#include "BKE_layer.h"
#include "BKE_mball.h"
#include "BKE_object.h"
#include "DEG_depsgraph.h"
#include "GPU_select.h"
#include "ED_mball.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
#include "ED_view3d.h"
#include "WM_api.h"
#include "WM_types.h"
#include "mball_intern.h"
Go to the source code of this file.
Select Similar Operator | |
enum | { SIMMBALL_TYPE = 1 , SIMMBALL_RADIUS , SIMMBALL_STIFFNESS , SIMMBALL_ROTATION } |
static const EnumPropertyItem | prop_similar_types [] |
static void | mball_select_similar_type_get (Object *obedit, MetaBall *mb, int type, KDTree_1d *tree_1d, KDTree_3d *tree_3d) |
static bool | mball_select_similar_type (Object *obedit, MetaBall *mb, int type, const KDTree_1d *tree_1d, const KDTree_3d *tree_3d, const float thresh) |
static int | mball_select_similar_exec (bContext *C, wmOperator *op) |
void | MBALL_OT_select_similar (wmOperatorType *ot) |
anonymous enum |
Enumerator | |
---|---|
SIMMBALL_TYPE | |
SIMMBALL_RADIUS | |
SIMMBALL_STIFFNESS | |
SIMMBALL_ROTATION |
Definition at line 204 of file mball_edit.c.
|
static |
Definition at line 587 of file mball_edit.c.
References BKE_mball_is_any_selected(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_remlink(), C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), MetaBall::editelems, ListBase::first, MetaElem::flag, if(), MetaBall::lastelem, MEM_freeN, NC_GEOM, ND_DATA, MetaElem::next, next, NULL, OPERATOR_FINISHED, SELECT, and WM_event_add_notifier().
Referenced by MBALL_OT_delete_metaelems().
|
static |
Definition at line 530 of file mball_edit.c.
References BKE_mball_is_any_selected(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_addtail(), C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), MetaBall::editelems, MetaElem::flag, if(), ListBase::last, MetaBall::lastelem, MEM_dupallocN, MEM_freeN, NC_GEOM, ND_DATA, OPERATOR_FINISHED, MetaElem::prev, SELECT, and WM_event_add_notifier().
Referenced by MBALL_OT_duplicate_metaelems().
MetaElem* ED_mball_add_primitive | ( | bContext * | UNUSEDC, |
Object * | obedit, | ||
bool | obedit_is_new, | ||
float | mat[4][4], | ||
float | dia, | ||
int | type | ||
) |
Definition at line 105 of file mball_edit.c.
References BKE_mball_element_add(), copy_v3_v3(), Object::data, MetaBall::editelems, ListBase::first, MetaBall::lastelem, MB_ELIPSOID, mul_v3_fl(), MetaBall::rendersize, SELECT, type, and MetaBall::wiresize.
Base* ED_mball_base_and_elem_from_select_buffer | ( | Base ** | bases, |
uint | bases_len, | ||
const uint | select_id, | ||
MetaElem ** | r_ml | ||
) |
Definition at line 739 of file mball_edit.c.
References BLI_findlink(), Object::data, MetaBall::editelems, MBALLSEL_ANY, NULL, and Base::object.
Referenced by ed_mball_findnearest_metaelem().
Definition at line 86 of file mball_edit.c.
References BKE_mball_deselect_all_multi_ex(), BKE_view_layer_array_from_bases_in_edit_mode_unique_data, C, CTX_data_ensure_evaluated_depsgraph(), depsgraph, ED_view3d_viewcontext_init(), MEM_freeN, ViewContext::v3d, and ViewContext::view_layer.
Referenced by ED_mball_select_pick().
This function is used to free all MetaElems from MetaBall.
Definition at line 51 of file mball_edit.c.
References Object::data, MetaBall::editelems, MetaBall::lastelem, and NULL.
Referenced by ED_object_editmode_load_free_ex().
Definition at line 76 of file mball_edit.c.
This function is called, when MetaBall Object is switched from object mode to edit mode.
Definition at line 59 of file mball_edit.c.
References Object::data, MetaBall::editelems, MetaBall::elems, ListBase::first, MetaBall::lastelem, MetaElem::next, and SELECT.
Referenced by ED_object_editmode_enter_ex().
|
static |
Definition at line 763 of file mball_edit.c.
References Freestyle::a, ARRAY_SIZE, BKE_view_layer_array_from_bases_in_edit_mode, BLI_assert, BLI_findindex(), BLI_rcti_init_pt_radius(), buffer, C, CTX_data_ensure_evaluated_depsgraph(), Object::data, depsgraph, ED_mball_base_and_elem_from_select_buffer(), ED_view3d_viewcontext_init(), MetaBall::editelems, if(), MetaBall::lastelem, MAXPICKELEMS, MBALLSEL_ANY, MEM_freeN, NULL, ViewContext::obact, Object::runtime, SELECT, Object_Runtime::select_id, ViewContext::v3d, view3d_opengl_select(), VIEW3D_SELECT_FILTER_NOP, VIEW3D_SELECT_PICK_ALL, VIEW3D_SELECT_PICK_NEAREST, and ViewContext::view_layer.
Referenced by ED_mball_select_pick().
bool ED_mball_select_pick | ( | struct bContext * | C, |
const int | mval[2], | ||
const struct SelectPick_Params * | params | ||
) |
Select meta-element with mouse click (user can select radius circle or stiffness circle).
Definition at line 847 of file mball_edit.c.
References ViewLayer::basact, BLI_assert_unreachable, C, CTX_data_view_layer(), Object::data, DEG_id_tag_update(), ED_mball_deselect_all_multi(), ed_mball_findnearest_metaelem(), ED_object_base_activate(), MetaElem::flag, MetaBall::id, ID_RECALC_SELECT, MetaBall::lastelem, MB_SCALE_RAD, MBALLSEL_RADIUS, MBALLSEL_STIFF, NC_GEOM, ND_SELECT, NULL, Base::object, params, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, SEL_OP_XOR, SELECT, and WM_event_add_notifier().
Referenced by view3d_select_exec().
|
static |
Definition at line 645 of file mball_edit.c.
References C, CTX_data_edit_object(), Object::data, DEG_id_tag_update(), MetaBall::editelems, ListBase::first, invert(), MB_HIDE, NC_GEOM, ND_DATA, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), SELECT, and WM_event_add_notifier().
Referenced by MBALL_OT_hide_metaelems().
void MBALL_OT_delete_metaelems | ( | wmOperatorType * | ot | ) |
Definition at line 623 of file mball_edit.c.
References delete_metaelems_exec(), wmOperatorType::description, ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_confirm().
Referenced by ED_operatortypes_metaball().
void MBALL_OT_duplicate_metaelems | ( | wmOperatorType * | ot | ) |
Definition at line 564 of file mball_edit.c.
References wmOperatorType::description, duplicate_metaelems_exec(), ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_metaball().
void MBALL_OT_hide_metaelems | ( | wmOperatorType * | ot | ) |
Definition at line 668 of file mball_edit.c.
References wmOperatorType::description, ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, hide_metaelems_exec(), wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_metaball().
void MBALL_OT_reveal_metaelems | ( | wmOperatorType * | ot | ) |
Definition at line 715 of file mball_edit.c.
References wmOperatorType::description, ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, reveal_metaelems_exec(), RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_metaball().
void MBALL_OT_select_all | ( | wmOperatorType * | ot | ) |
Definition at line 181 of file mball_edit.c.
References wmOperatorType::description, ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, mball_select_all_exec(), wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_select_all().
Referenced by ED_operatortypes_metaball().
void MBALL_OT_select_random_metaelems | ( | struct wmOperatorType * | ot | ) |
Definition at line 505 of file mball_edit.c.
References wmOperatorType::description, ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, select_random_metaelems_exec(), and WM_operator_properties_select_random().
Referenced by ED_operatortypes_metaball().
void MBALL_OT_select_similar | ( | wmOperatorType * | ot | ) |
Definition at line 433 of file mball_edit.c.
References wmOperatorType::description, ED_operator_editmball(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, mball_select_similar_exec(), wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, wmOperatorType::prop, prop_similar_types, RNA_def_enum(), RNA_def_float(), wmOperatorType::srna, and WM_menu_invoke().
Referenced by ED_operatortypes_metaball().
|
static |
Definition at line 144 of file mball_edit.c.
References BKE_mball_deselect_all_multi_ex(), BKE_mball_is_any_selected_multi(), BKE_mball_select_all_multi_ex(), BKE_mball_select_swap_multi_ex(), BKE_view_layer_array_from_bases_in_edit_mode_unique_data, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), MetaBall::id, ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, Base::object, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, and WM_event_add_notifier().
Referenced by MBALL_OT_select_all().
|
static |
Definition at line 327 of file mball_edit.c.
References BKE_mball_select_count_multi(), BKE_view_layer_array_from_bases_in_edit_mode_unique_data, BLI_assert, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), MetaBall::editelems, ListBase::first, MetaElem::flag, MetaBall::id, ID_RECALC_SELECT, mball_select_similar_type(), mball_select_similar_type_get(), MEM_freeN, NC_GEOM, ND_SELECT, MetaElem::next, NULL, Base::object, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), SELECT, SIMMBALL_RADIUS, SIMMBALL_ROTATION, SIMMBALL_STIFFNESS, SIMMBALL_TYPE, type, MetaElem::type, and WM_event_add_notifier().
Referenced by MBALL_OT_select_similar().
|
static |
Definition at line 263 of file mball_edit.c.
References angle_normalized_v3v3(), BKE_object_rot_to_mat3(), BKE_object_scale_to_mat3(), cosf, ED_select_similar_compare_float(), ED_select_similar_compare_float_tree(), MetaBall::editelems, fabsf, ListBase::first, MetaElem::flag, M_PI_2, mul_m3_v3(), mul_qt_v3(), MetaElem::next, MetaElem::quat, MetaElem::rad, MetaElem::s, select(), SELECT, SIM_CMP_EQ, SIMMBALL_RADIUS, SIMMBALL_ROTATION, SIMMBALL_STIFFNESS, and type.
Referenced by mball_select_similar_exec().
|
static |
Definition at line 219 of file mball_edit.c.
References BKE_object_rot_to_mat3(), BKE_object_scale_to_mat3(), copy_v3_v3(), MetaBall::editelems, ListBase::first, MetaElem::flag, mul_m3_v3(), mul_qt_v3(), MetaElem::next, MetaElem::quat, MetaElem::rad, MetaElem::s, SELECT, SIMMBALL_RADIUS, SIMMBALL_ROTATION, SIMMBALL_STIFFNESS, and type.
Referenced by mball_select_similar_exec().
|
static |
Definition at line 693 of file mball_edit.c.
References C, CTX_data_edit_object(), Object::data, DEG_id_tag_update(), MetaBall::editelems, LISTBASE_FOREACH, MB_HIDE, NC_GEOM, ND_DATA, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), select(), SELECT, SET_FLAG_FROM_TEST, and WM_event_add_notifier().
Referenced by MBALL_OT_reveal_metaelems().
|
static |
Definition at line 460 of file mball_edit.c.
References BKE_mball_is_any_unselected(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_ghashutil_strhash_p(), BLI_rng_free(), BLI_rng_get_float(), BLI_rng_new_srandom(), C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), MetaBall::editelems, MetaBall::id, Object::id, ID_RECALC_SELECT, if(), LISTBASE_FOREACH, MEM_freeN, ID::name, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), seed, SEL_SELECT, select(), SELECT, WM_event_add_notifier(), and WM_operator_properties_select_random_seed_increment_get().
Referenced by MBALL_OT_select_random_metaelems().
|
static |
Definition at line 211 of file mball_edit.c.
Referenced by MBALL_OT_select_similar().