|
Blender V4.3
|
#include <optional>#include "MEM_guardedalloc.h"#include "BLI_bitmap.h"#include "BLI_heap.h"#include "BLI_linklist.h"#include "BLI_listbase.h"#include "BLI_math_bits.h"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BLI_rand.h"#include "BLI_string.h"#include "BLI_utildefines_stack.h"#include "BLI_vector.hh"#include "BKE_attribute.hh"#include "BKE_context.hh"#include "BKE_customdata.hh"#include "BKE_deform.hh"#include "BKE_editmesh.hh"#include "BKE_layer.hh"#include "BKE_mesh.hh"#include "BKE_mesh_wrapper.hh"#include "BKE_object.hh"#include "BKE_report.hh"#include "WM_api.hh"#include "WM_types.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "RNA_enum_types.hh"#include "ED_mesh.hh"#include "ED_object.hh"#include "ED_screen.hh"#include "ED_select_utils.hh"#include "ED_transform.hh"#include "ED_view3d.hh"#include "BLT_translation.hh"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "DNA_object_types.h"#include "UI_resources.hh"#include "bmesh_tools.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"#include "DRW_select_buffer.hh"#include "mesh_intern.hh"Go to the source code of this file.
Classes | |
| struct | NearestVertUserData_Hit |
| struct | NearestVertUserData |
| struct | NearestEdgeUserData_ZBuf |
| struct | NearestEdgeUserData_Hit |
| struct | NearestEdgeUserData |
| struct | NearestFaceUserData_ZBuf |
| struct | NearestFaceUserData_Hit |
| struct | NearestFaceUserData |
| struct | BMFaceLink |
| struct | DelimitData |
Macros | |
| #define | BMO_ELE_TAG 1 |
| #define | USE_DELAY_FACE_GROUP_COST_CALC |
Functions | |
Generic Poll Functions | |
| static bool | edbm_vert_or_edge_select_mode_poll (bContext *C) |
Select Mirror | |
| void | EDBM_select_mirrored (BMEditMesh *em, const Mesh *mesh, const int axis, const bool extend, int *r_totmirr, int *r_totfail) |
Back-Buffer OpenGL Selection | |
| static BMElem * | edbm_select_id_bm_elem_get (const Span< Base * > bases, const uint sel_id, uint *r_base_index) |
Alternate Find Nearest Vert/Edge (optional boundary) | |
| |
| bool | EDBM_unified_findnearest_from_raycast (ViewContext *vc, const Span< Base * > bases, bool use_boundary_vertices, bool use_boundary_edges, int *r_base_index_vert, int *r_base_index_edge, int *r_base_index_face, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa) |
Select Similar Region Operator | |
| static int | edbm_select_similar_region_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_similar_region (wmOperatorType *ot) |
Select Mode Vert/Edge/Face Operator | |
| static int | edbm_select_mode_exec (bContext *C, wmOperator *op) |
| static int | edbm_select_mode_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| static std::string | edbm_select_mode_get_description (bContext *, wmOperatorType *, PointerRNA *ptr) |
| void | MESH_OT_select_mode (wmOperatorType *ot) |
Select Loop (Non Modal) Operator | |
| static void | walker_select_count (BMEditMesh *em, int walkercode, void *start, int r_count_by_select[2]) |
| static void | walker_select (BMEditMesh *em, int walkercode, void *start, const bool select) |
| static int | edbm_loop_multiselect_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_loop_multi_select (wmOperatorType *ot) |
Select Loop (Cursor Pick) Operator | |
| static void | mouse_mesh_loop_face (BMEditMesh *em, BMEdge *eed, bool select, bool select_clear) |
| static void | mouse_mesh_loop_edge_ring (BMEditMesh *em, BMEdge *eed, bool select, bool select_clear) |
| static void | mouse_mesh_loop_edge (BMEditMesh *em, BMEdge *eed, bool select, bool select_clear, bool select_cycle) |
| static bool | mouse_mesh_loop (bContext *C, const int mval[2], bool extend, bool deselect, bool toggle, bool ring) |
| static int | edbm_select_loop_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | MESH_OT_loop_select (wmOperatorType *ot) |
| void | MESH_OT_edgering_select (wmOperatorType *ot) |
(De)Select All Operator | |
| static int | edbm_select_all_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_all (wmOperatorType *ot) |
Select Interior Faces Operator | |
| static int | edbm_faces_select_interior_exec (bContext *C, wmOperator *) |
| void | MESH_OT_select_interior_faces (wmOperatorType *ot) |
Select Picking API | |
Here actual select happens, Gets called via generic mouse select operator. | |
| bool | EDBM_select_pick (bContext *C, const int mval[2], const SelectPick_Params *params) |
Select Mode Utilities | |
| static void | edbm_strip_selections (BMEditMesh *em) |
| void | EDBM_selectmode_set (BMEditMesh *em) |
| void | EDBM_selectmode_convert (BMEditMesh *em, const short selectmode_old, const short selectmode_new) |
| bool | EDBM_selectmode_toggle_multi (bContext *C, const short selectmode_new, const int action, const bool use_extend, const bool use_expand) |
| bool | EDBM_selectmode_set_multi (bContext *C, const short selectmode) |
| static bool | edbm_selectmode_sync_multi_ex (Span< Object * > objects) |
| bool | EDBM_selectmode_disable (Scene *scene, BMEditMesh *em, const short selectmode_disable, const short selectmode_fallback) |
Select Toggle | |
| bool | EDBM_deselect_by_material (BMEditMesh *em, const short index, const bool select) |
| void | EDBM_select_toggle_all (BMEditMesh *em) |
| void | EDBM_select_swap (BMEditMesh *em) |
| bool | EDBM_mesh_deselect_all_multi_ex (const Span< Base * > bases) |
| bool | EDBM_mesh_deselect_all_multi (bContext *C) |
| bool | EDBM_selectmode_disable_multi_ex (Scene *scene, const Span< Base * > bases, const short selectmode_disable, const short selectmode_fallback) |
| bool | EDBM_selectmode_disable_multi (bContext *C, const short selectmode_disable, const short selectmode_fallback) |
Select Interior Faces | |
Overview of the algorithm:
| |
| static bool | bm_interior_loop_filter_fn (const BMLoop *l, void *) |
| static bool | bm_interior_edge_is_manifold_except_face_index (BMEdge *e, int face_index, BMLoop *r_l_pair[2]) |
| static float | bm_interior_face_group_calc_cost (ListBase *ls, const float *edge_lengths) |
| bool | EDBM_select_interior_faces (BMEditMesh *em) |
Select Linked (Cursor Pick) Operator | |
| static int | edbm_select_linked_pick_exec (bContext *C, wmOperator *op) |
| static void | edbm_select_linked_pick_ex (BMEditMesh *em, BMElem *ele, bool sel, int delimit) |
| static int | edbm_select_linked_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | MESH_OT_select_linked_pick (wmOperatorType *ot) |
Select Face by Sides Operator | |
| static int | edbm_select_face_by_sides_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_face_by_sides (wmOperatorType *ot) |
Select Loose Operator | |
| static int | edbm_select_loose_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_loose (wmOperatorType *ot) |
Select Mirror Operator | |
| static int | edbm_select_mirror_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_mirror (wmOperatorType *ot) |
Select More Operator | |
| static int | edbm_select_more_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_more (wmOperatorType *ot) |
| static int | edbm_select_less_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_less (wmOperatorType *ot) |
Select N'th Operator | |
| static bool | bm_edge_is_select_isolated (BMEdge *e) |
| static void | walker_deselect_nth (BMEditMesh *em, const CheckerIntervalParams *op_params, BMHeader *h_act) |
| static void | deselect_nth_active (BMEditMesh *em, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa) |
| static bool | edbm_deselect_nth (BMEditMesh *em, const CheckerIntervalParams *op_params) |
| static int | edbm_select_nth_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_nth (wmOperatorType *ot) |
| ViewContext | em_setup_viewcontext (bContext *C) |
Select Sharp Edges Operator | |
| static int | edbm_select_sharp_edges_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_edges_select_sharp (wmOperatorType *ot) |
Select Linked Flat Faces Operator | |
| static int | edbm_select_linked_flat_faces_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_faces_select_linked_flat (wmOperatorType *ot) |
Select Non-Manifold Operator | |
| static int | edbm_select_non_manifold_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_non_manifold (wmOperatorType *ot) |
Select Random Operator | |
| static int | edbm_select_random_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_random (wmOperatorType *ot) |
Select Ungrouped Operator | |
| static bool | edbm_select_ungrouped_poll (bContext *C) |
| static int | edbm_select_ungrouped_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_ungrouped (wmOperatorType *ot) |
Select Region to Loop Operator | |
| static int | edbm_region_to_loop_exec (bContext *C, wmOperator *) |
| void | MESH_OT_region_to_loop (wmOperatorType *ot) |
Select Loop to Region Operator | |
| static int | loop_find_region (BMLoop *l, int flag, GSet *visit_face_set, BMFace ***region_out) |
| static int | verg_radial (const void *va, const void *vb) |
| static int | loop_find_regions (BMEditMesh *em, const bool selbigger) |
| static int | edbm_loop_to_region_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_loop_to_region (wmOperatorType *ot) |
| static bool | edbm_select_by_attribute_poll (bContext *C) |
| static std::optional< BMIterType > | domain_to_iter_type (const blender::bke::AttrDomain domain) |
| static int | edbm_select_by_attribute_exec (bContext *C, wmOperator *) |
| void | MESH_OT_select_by_attribute (wmOperatorType *ot) |
Find Nearest Vert/Edge/Face | |
| |
| #define | FIND_NEAR_SELECT_BIAS 5 |
| #define | FIND_NEAR_CYCLE_THRESHOLD_MIN 3 |
| static void | findnearestvert__doClosest (void *user_data, BMVert *eve, const float screen_co[2], int index) |
| BMVert * | EDBM_vert_find_nearest_ex (ViewContext *vc, float *dist_px_manhattan_p, const bool use_select_bias, bool use_cycle, const Span< Base * > bases, uint *r_base_index) |
| BMVert * | EDBM_vert_find_nearest (ViewContext *vc, float *dist_px_manhattan_p) |
| static void | find_nearest_edge_center__doZBuf (void *user_data, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int) |
| static void | find_nearest_edge__doClosest (void *user_data, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index) |
| BMEdge * | EDBM_edge_find_nearest_ex (ViewContext *vc, float *dist_px_manhattan_p, float *r_dist_center_px_manhattan, const bool use_select_bias, bool use_cycle, BMEdge **r_eed_zbuf, const Span< Base * > bases, uint *r_base_index) |
| BMEdge * | EDBM_edge_find_nearest (ViewContext *vc, float *dist_px_manhattan_p) |
| static void | find_nearest_face_center__doZBuf (void *user_data, BMFace *efa, const float screen_co[2], int) |
| static void | findnearestface__doClosest (void *user_data, BMFace *efa, const float screen_co[2], int index) |
| BMFace * | EDBM_face_find_nearest_ex (ViewContext *vc, float *dist_px_manhattan_p, float *r_dist_center, const bool use_zbuf_single_px, const bool use_select_bias, bool use_cycle, BMFace **r_efa_zbuf, const Span< Base * > bases, uint *r_base_index) |
| BMFace * | EDBM_face_find_nearest (ViewContext *vc, float *dist_px_manhattan_p) |
| static bool | unified_findnearest (ViewContext *vc, const Span< Base * > bases, int *r_base_index, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa) |
| bool | EDBM_unified_findnearest (ViewContext *vc, const Span< Base * > bases, int *r_base_index, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa) |
Select Linked Operator | |
Support delimiting on different edge properties. | |
| #define | USE_LINKED_SELECT_DEFAULT_HACK |
| static bool | select_linked_delimit_test (BMEdge *e, int delimit, const DelimitData *delimit_data) |
| static int | select_linked_delimit_default_from_op (wmOperator *op, const int select_mode) |
| static void | select_linked_delimit_validate (BMesh *bm, int *delimit) |
| static void | select_linked_delimit_begin (BMesh *bm, int delimit) |
| static void | select_linked_delimit_end (BMEditMesh *em) |
| static int | edbm_select_linked_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_linked (wmOperatorType *ot) |
Select Axis Operator | |
| enum | { SELECT_AXIS_POS = 0 , SELECT_AXIS_NEG = 1 , SELECT_AXIS_ALIGN = 2 } |
| static int | edbm_select_axis_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_axis (wmOperatorType *ot) |
| #define BMO_ELE_TAG 1 |
Definition at line 70 of file editmesh_select.cc.
Referenced by edbm_select_linked_exec(), edbm_select_linked_pick_ex(), select_linked_delimit_begin(), and walker_deselect_nth().
| #define FIND_NEAR_CYCLE_THRESHOLD_MIN 3 |
Definition at line 244 of file editmesh_select.cc.
Referenced by find_nearest_edge__doClosest(), findnearestface__doClosest(), and findnearestvert__doClosest().
| #define FIND_NEAR_SELECT_BIAS 5 |
Definition at line 243 of file editmesh_select.cc.
Referenced by find_nearest_edge__doClosest(), findnearestface__doClosest(), and findnearestvert__doClosest().
| #define USE_DELAY_FACE_GROUP_COST_CALC |
| #define USE_LINKED_SELECT_DEFAULT_HACK |
Definition at line 3157 of file editmesh_select.cc.
| anonymous enum |
| Enumerator | |
|---|---|
| SELECT_AXIS_POS | |
| SELECT_AXIS_NEG | |
| SELECT_AXIS_ALIGN | |
Definition at line 4886 of file editmesh_select.cc.
|
static |
Check if we're connected to another selected edge.
Definition at line 4142 of file editmesh_select.cc.
References BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, BM_VERTS_OF_EDGE, e, and v.
Referenced by walker_deselect_nth().
|
static |
Definition at line 2834 of file editmesh_select.cc.
References BM_elem_index_get, e, ELEM, BMLoop::f, and BMLoop::radial_next.
Referenced by EDBM_select_interior_faces().
Calculate the cost of the face group. A higher value means it's more likely to remove first.
Definition at line 2858 of file editmesh_select.cc.
References angle(), angle_normalized_v3v3(), BLI_assert, BM_edge_calc_length(), BM_elem_flag_test, BM_elem_index_get, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, DEG2RADF, BMLoop::e, ELEM, BMLoop::f, FLT_MAX, LISTBASE_FOREACH, BMLoop::next, BMFace::no, and BMLoop::radial_next.
Referenced by EDBM_select_interior_faces().
|
static |
Definition at line 2827 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_TAG, BMLoop::e, and l.
Referenced by EDBM_select_interior_faces().
|
static |
Definition at line 4252 of file editmesh_select.cc.
References BMEditMesh::bm, BM_EDGE, BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_FACE, BM_ITER_MESH, BM_mesh_active_elem_get(), BM_mesh_active_face_get(), BM_VERT, BM_VERTS_OF_MESH, e, EDBM_selectmode_flush(), BMElem::head, BMHeader::htype, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and v.
Referenced by edbm_deselect_nth().
|
static |
Definition at line 5351 of file editmesh_select.cc.
References BM_EDGES_OF_MESH, BM_FACES_OF_MESH, and BM_VERTS_OF_MESH.
Referenced by edbm_select_by_attribute_exec().
| bool EDBM_deselect_by_material | ( | BMEditMesh * | em, |
| const short | index, | ||
| const bool | select ) |
Definition at line 2690 of file editmesh_select.cc.
References BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BMFace::mat_nr, and select().
Referenced by material_slot_de_select().
|
static |
Definition at line 4305 of file editmesh_select.cc.
References deselect_nth_active(), e, BMFace::head, BMVert::head, v, and walker_deselect_nth().
Referenced by edbm_select_nth_exec().
| BMEdge * EDBM_edge_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 657 of file editmesh_select.cc.
References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), EDBM_edge_find_nearest_ex(), ViewContext::obact, ViewContext::scene, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest().
| BMEdge * EDBM_edge_find_nearest_ex | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p, | ||
| float * | r_dist_center_px_manhattan, | ||
| const bool | use_select_bias, | ||
| bool | use_cycle, | ||
| BMEdge ** | r_eed_zbuf, | ||
| const Span< Base * > | bases, | ||
| uint * | r_base_index ) |
Definition at line 524 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_edge_at_index_find_or_table(), data, ViewContext::depsgraph, DRW_select_buffer_context_create(), DRW_select_buffer_find_nearest_to_point(), ED_view3d_backbuf_sample_size_clamp(), ED_view3d_init_mats_rv3d(), ED_view3d_viewcontext_init_object(), edbm_select_id_bm_elem_get(), ViewContext::em, find_nearest_edge__doClosest(), find_nearest_edge_center__doZBuf(), FLT_MAX, mesh_foreachScreenEdge(), ViewContext::mval, NearestEdgeUserData_ZBuf::mval_fl, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, SCE_SELECT_EDGE, blender::Span< T >::size(), UINT_MAX, ViewContext::v3d, V3D_PROJ_TEST_CLIP_CONTENT_DEFAULT, V3D_PROJ_TEST_CLIP_DEFAULT, and XRAY_FLAG_ENABLED.
Referenced by EDBM_edge_find_nearest(), and unified_findnearest().
| BMFace * EDBM_face_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 878 of file editmesh_select.cc.
References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), EDBM_face_find_nearest_ex(), ViewContext::obact, ViewContext::scene, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest(), and knife_find_closest_face().
| BMFace * EDBM_face_find_nearest_ex | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p, | ||
| float * | r_dist_center, | ||
| const bool | use_zbuf_single_px, | ||
| const bool | use_select_bias, | ||
| bool | use_cycle, | ||
| BMFace ** | r_efa_zbuf, | ||
| const Span< Base * > | bases, | ||
| uint * | r_base_index ) |
Definition at line 738 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_face_at_index_find_or_table(), data, ViewContext::depsgraph, DRW_select_buffer_context_create(), DRW_select_buffer_find_nearest_to_point(), DRW_select_buffer_sample_point(), ED_view3d_backbuf_sample_size_clamp(), ED_view3d_init_mats_rv3d(), ED_view3d_viewcontext_init_object(), edbm_select_id_bm_elem_get(), ViewContext::em, find_nearest_face_center__doZBuf(), findnearestface__doClosest(), FLT_MAX, mesh_foreachScreenFace(), ViewContext::mval, NearestFaceUserData_ZBuf::mval_fl, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, SCE_SELECT_FACE, blender::Span< T >::size(), UINT_MAX, ViewContext::v3d, V3D_PROJ_TEST_CLIP_DEFAULT, and XRAY_FLAG_ENABLED.
Referenced by EDBM_face_find_nearest(), and unified_findnearest().
|
static |
Definition at line 2017 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_select_interior_faces(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, and WM_event_add_notifier().
Referenced by MESH_OT_select_interior_faces().
|
static |
Definition at line 1564 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_edge_face_count_is_over, BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_MESH, BMW_EDGELOOP, BMW_EDGELOOP_NONMANIFOLD, BMW_EDGERING, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_selectmode_flush(), ID_RECALC_SELECT, MEM_freeN(), MEM_mallocN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, walker_select(), and WM_event_add_notifier().
Referenced by MESH_OT_loop_multi_select().
|
static |
Definition at line 5261 of file editmesh_select.cc.
References b, BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_FACE, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_hflag_disable_all(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, loop_find_regions(), NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, and WM_event_add_notifier().
Referenced by MESH_OT_loop_to_region().
| bool EDBM_mesh_deselect_all_multi | ( | bContext * | C | ) |
Definition at line 2769 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), CTX_data_ensure_evaluated_depsgraph(), depsgraph, ED_view3d_viewcontext_init(), EDBM_mesh_deselect_all_multi_ex(), ViewContext::scene, ViewContext::v3d, and ViewContext::view_layer.
Definition at line 2751 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_SELECT, Object::data, DEG_id_tag_update(), EDBM_flag_disable_all(), ID_RECALC_SELECT, and BMesh::totvertsel.
Referenced by EDBM_mesh_deselect_all_multi().
|
static |
Definition at line 5035 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_EDGE, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), BMLoop::e, e, EDBM_flag_disable_all(), EDBM_selectmode_set(), EDBM_selectmode_to_scene(), BMLoop::f, ID_RECALC_GEOMETRY, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMEditMesh::selectmode, BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_region_to_loop().
|
static |
Definition at line 1953 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_ELEM_SELECT, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_flag_enable_all(), EDBM_select_swap(), EDBM_selectmode_flush(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and WM_event_add_notifier().
Referenced by MESH_OT_select_all().
|
static |
Definition at line 4892 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode(), bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ITER_MESH, BM_mesh_active_vert_get(), BM_vert_select_set(), BM_VERTS_OF_MESH, BMVert::co, CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region_view3d(), CTX_wm_view3d(), DEG_id_tag_update(), dot_v3v3(), ED_transform_calc_orientation_from_type_ex(), EDBM_selectmode_flush(), fabsf, ID_RECALC_SELECT, mul_v3_m4v3(), NC_GEOM, ND_DATA, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, wmOperator::reports, RNA_enum_get(), RNA_float_get(), RPT_WARNING, SELECT_AXIS_ALIGN, SELECT_AXIS_NEG, SELECT_AXIS_POS, BMesh::totvert, BMesh::totvertsel, v, V3D_AROUND_ACTIVE, and WM_event_add_notifier().
Referenced by MESH_OT_select_axis().
|
static |
Definition at line 5366 of file editmesh_select.cc.
References BKE_attribute_domain(), BKE_attributes_active_get(), BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_BOOL, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_elem_select_set(), BM_ITER_MESH, CD_PROP_BOOL, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), domain_to_iter_type(), EDBM_selectmode_flush(), AttributeOwner::from_id(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, and WM_event_add_notifier().
Referenced by MESH_OT_select_by_attribute().
|
static |
Definition at line 5325 of file editmesh_select.cc.
References BKE_attribute_domain(), BKE_attributes_active_get(), CD_PROP_BOOL, CTX_data_edit_object(), CTX_wm_operator_poll_msg_set(), Object::data, ED_operator_editmesh(), and AttributeOwner::from_id().
Referenced by MESH_OT_select_by_attribute().
|
static |
Definition at line 3790 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, BMEditMesh::bm, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, BMFace::len, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_get(), select(), and WM_event_add_notifier().
Referenced by MESH_OT_select_face_by_sides().
|
static |
Definition at line 202 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BLI_assert, BMEditMesh::bm, BM_edge_at_index_find_or_table(), BM_face_at_index_find_or_table(), BM_vert_at_index_find_or_table(), DRW_select_buffer_elem_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, and SCE_SELECT_VERTEX.
Referenced by EDBM_edge_find_nearest_ex(), EDBM_face_find_nearest_ex(), and EDBM_vert_find_nearest_ex().
| bool EDBM_select_interior_faces | ( | BMEditMesh * | em | ) |
Definition at line 2908 of file editmesh_select.cc.
References BMFaceLink::area, BLI_addtail(), BLI_assert, BLI_heap_free(), BLI_heap_insert(), BLI_heap_is_empty(), BLI_heap_new_ex(), BLI_heap_node_ptr(), BLI_heap_node_value(), BLI_heap_node_value_update(), BLI_heap_pop_min(), BLI_heap_remove(), BLI_heap_top(), BLI_movelisttolist(), BLI_pophead(), bm, BMEditMesh::bm, BM_EDGE, BM_edge_calc_length(), BM_edge_face_count_is_over, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_index_get, BM_elem_index_set, BM_ELEM_TAG, BM_FACE, BM_face_at_index(), BM_face_calc_area(), BM_FACE_FIRST_LOOP, BM_face_select_set(), BM_FACES_OF_MESH, bm_interior_edge_is_manifold_except_face_index(), bm_interior_face_group_calc_cost(), bm_interior_loop_filter_fn(), BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_mesh_calc_face_groups(), BM_mesh_elem_table_ensure(), BMLoop::e, e, ELEM, BMesh::elem_index_dirty, BMLoop::f, BMFaceLink::face, FLT_MAX, int, LISTBASE_FOREACH, MEM_callocN, MEM_freeN(), MEM_mallocN, BMLoop::next, POINTER_AS_INT, POINTER_FROM_INT, BMLoop::radial_next, STACK_CLEAR, STACK_DECLARE, STACK_INIT, STACK_PUSH, STACK_SIZE, BMesh::totedge, and BMesh::totface.
Referenced by edbm_faces_select_interior_exec().
|
static |
Definition at line 4091 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), bm, BMEditMesh::bm, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_select_less(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and WM_event_add_notifier().
Referenced by MESH_OT_select_less().
|
static |
Definition at line 3277 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, bm, BMEditMesh::bm, BM_EDGE, BM_edge_is_any_face_flag_test(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_LOOP, BM_vert_select_set(), BM_VERTS_OF_MESH, BMO_edge_flag_test, BMO_ELE_TAG, BMW_end(), BMW_FLAG_TEST_HIDDEN, BMW_init(), BMW_ISLAND, BMW_ITER, BMW_LOOP_SHELL_WIRE, BMW_MASK_NOP, BMW_NIL_LAY, BMW_VERT_SHELL, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), BMLoop::e, e, EDBM_selectmode_flush(), BMElem::head, BMHeader::htype, ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, BMLoop::prev, wmOperator::ptr, RNA_enum_get(), SCE_SELECT_EDGE, SCE_SELECT_VERTEX, select_linked_delimit_begin(), select_linked_delimit_default_from_op(), select_linked_delimit_end(), select_linked_delimit_validate(), BMEditMesh::selectmode, v, BMEdge::v1, BMEdge::v2, and WM_event_add_notifier().
Referenced by MESH_OT_select_linked().
|
static |
Definition at line 4479 of file editmesh_select.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, bm, BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_FACE, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_LOOPS_OF_LOOP, BM_mesh_elem_hflag_disable_all(), cosf, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), dot_v3v3(), BMLoop::f, ID_RECALC_SELECT, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), l, NC_GEOM, ND_SELECT, BMFace::no, OPERATOR_FINISHED, blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last(), wmOperator::ptr, RNA_float_get(), BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_faces_select_linked_flat().
|
static |
Definition at line 3518 of file editmesh_select.cc.
References BLI_assert, bm, BMEditMesh::bm, BM_EDGE, BM_edge_select_set(), BM_elem_flag_disable, BM_ELEM_TAG, BM_FACE, BM_face_select_set(), BM_LOOP, BM_VERT, BM_vert_select_set(), BMO_ELE_TAG, BMW_end(), BMW_FLAG_TEST_HIDDEN, BMW_init(), BMW_ISLAND, BMW_ITER, BMW_LOOP_SHELL_WIRE, BMW_MASK_NOP, BMW_NIL_LAY, BMW_VERT_SHELL, EDBM_selectmode_flush(), BMElem::head, BMHeader::htype, select_linked_delimit_begin(), select_linked_delimit_end(), and select_linked_delimit_validate().
Referenced by edbm_select_linked_pick_exec(), and edbm_select_linked_pick_invoke().
|
static |
Definition at line 3714 of file editmesh_select.cc.
References BKE_editmesh_from_object(), CTX_data_scene(), CTX_data_view_layer(), Object::data, DEG_id_tag_update(), EDBM_elem_from_index_any_multi(), edbm_select_linked_pick_ex(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_get(), select_linked_delimit_default_from_op(), BMEditMesh::selectmode, and WM_event_add_notifier().
Referenced by edbm_select_linked_pick_invoke(), and MESH_OT_select_linked_pick().
|
static |
Definition at line 3633 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode(), BLI_assert, bm, BMEditMesh::bm, BM_mesh_elem_index_ensure(), Object::data, DEG_id_tag_update(), ED_view3d_viewcontext_init_object(), EDBM_elem_from_selectmode(), EDBM_elem_to_index_any_multi(), edbm_select_linked_pick_ex(), edbm_select_linked_pick_exec(), ViewContext::em, em_setup_viewcontext(), BMElem::head, BMHeader::htype, ID_RECALC_SELECT, ViewContext::mval, NC_GEOM, ND_SELECT, Base::object, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_set(), RNA_struct_property_is_set(), ViewContext::scene, select_linked_delimit_default_from_op(), ToolSettings::selectmode, Scene::toolsettings, BMesh::totedge, unified_findnearest(), ViewContext::v3d, view3d_operator_needs_opengl(), ViewContext::view_layer, and WM_event_add_notifier().
Referenced by MESH_OT_select_linked_pick().
|
static |
Definition at line 1877 of file editmesh_select.cc.
References mouse_mesh_loop(), wmEvent::mval, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), and view3d_operator_needs_opengl().
Referenced by MESH_OT_edgering_select(), and MESH_OT_loop_select().
|
static |
Definition at line 3879 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), bm, BMEditMesh::bm, BM_edge_is_boundary(), BM_edge_is_wire(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_vert_select_set(), BM_VERTS_OF_MESH, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), BMLoop::e, BMVert::e, EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, l, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and WM_event_add_notifier().
Referenced by MESH_OT_select_loose().
|
static |
Definition at line 3966 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), ED_mesh_report_mirror_ex(), EDBM_select_mirrored(), EDBM_selectmode_flush(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), BMesh::selectmode, BMesh::totvertsel, and WM_event_add_notifier().
Referenced by MESH_OT_select_mirror().
| void EDBM_select_mirrored | ( | BMEditMesh * | em, |
| const Mesh * | mesh, | ||
| const int | axis, | ||
| const bool | extend, | ||
| int * | r_totmirr, | ||
| int * | r_totfail ) |
Definition at line 103 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, e, EDBM_flag_disable_all(), EDBM_verts_mirror_cache_begin(), EDBM_verts_mirror_cache_end(), EDBM_verts_mirror_get(), EDBM_verts_mirror_get_edge(), EDBM_verts_mirror_get_face(), ME_EDIT_MIRROR_TOPO, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, and v.
Referenced by edbm_select_mirror_exec().
|
static |
Definition at line 1390 of file editmesh_select.cc.
References EDBM_selectmode_toggle_multi(), OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), and RNA_enum_get().
Referenced by edbm_select_mode_invoke(), and MESH_OT_select_mode().
|
static |
Definition at line 1429 of file editmesh_select.cc.
References ptr, RNA_enum_get(), RNA_struct_property_is_set(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, and TIP_.
Referenced by MESH_OT_select_mode().
|
static |
Definition at line 1403 of file editmesh_select.cc.
References CTX_data_tool_settings(), CTX_wm_space_image(), edbm_select_mode_exec(), KM_CTRL, KM_SHIFT, wmEvent::modifier, OPERATOR_CANCELLED, OPERATOR_PASS_THROUGH, wmOperator::ptr, RNA_boolean_set(), RNA_struct_property_is_set(), ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by MESH_OT_select_mode().
|
static |
Definition at line 4043 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), bm, BMEditMesh::bm, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_select_more(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and WM_event_add_notifier().
Referenced by MESH_OT_select_more().
|
static |
Definition at line 4579 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, BMEditMesh::bm, BM_edge_face_count_is_over, BM_edge_is_boundary(), BM_edge_is_contiguous(), BM_edge_is_manifold(), BM_edge_is_wire(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ITER_MESH, BM_vert_is_manifold(), BM_vert_select_set(), BM_VERTS_OF_MESH, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), e, EDBM_flag_disable_all(), EDBM_selectmode_flush(), edbm_selectmode_sync_multi_ex(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), v, and WM_event_add_notifier().
Referenced by MESH_OT_select_non_manifold().
|
static |
Definition at line 4329 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), edbm_deselect_nth(), EDBM_update(), OPERATOR_CANCELLED, OPERATOR_FINISHED, params, wmOperator::reports, RPT_ERROR, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and WM_operator_properties_checker_interval_from_op().
Referenced by MESH_OT_select_nth().
| bool EDBM_select_pick | ( | bContext * | C, |
| const int | mval[2], | ||
| const SelectPick_Params * | params ) |
Definition at line 2062 of file editmesh_select.cc.
References Object::actcol, blender::ed::object::base_activate(), BKE_editmesh_from_object(), BKE_view_layer_active_base_get(), BKE_view_layer_array_from_bases_in_edit_mode(), BKE_view_layer_synced_ensure(), BLI_assert_unreachable, BMEditMesh::bm, BM_edge_select_set(), BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_mesh_active_face_set(), BM_select_history_remove, BM_select_history_store, BM_vert_select_set(), Object::data, DEG_id_tag_update(), ED_view3d_viewcontext_init_object(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ViewContext::em, em_setup_viewcontext(), ID_RECALC_SELECT, BMEditMesh::mat_nr, BMFace::mat_nr, ViewContext::mval, NC_GEOM, NC_MATERIAL, ND_SELECT, ND_SHADING_LINKS, ViewContext::obedit, Base::object, params, ViewContext::scene, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, SEL_OP_XOR, unified_findnearest(), ViewContext::v3d, ViewContext::view_layer, and WM_event_add_notifier().
Referenced by edbm_point_normals_modal(), edbm_shortest_path_pick_invoke(), and view3d_select_exec().
|
static |
Definition at line 4678 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_array_randomize(), BLI_ghashutil_strhash_p(), BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_deselect_flush(), EDBM_selectmode_flush(), Object::id, ID_RECALC_SELECT, MEM_freeN(), MEM_mallocN, ID::name, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), SCE_SELECT_EDGE, SCE_SELECT_VERTEX, seed, SEL_SELECT, select(), BMEditMesh::selectmode, BMesh::totedge, BMesh::totface, BMesh::totvert, WM_event_add_notifier(), and WM_operator_properties_select_random_seed_increment_get().
Referenced by MESH_OT_select_random().
|
static |
Definition at line 4399 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_edge_loop_pair(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ITER_MESH, cosf, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), dot_v3v3(), e, EDBM_selectmode_convert(), EDBM_selectmode_flush(), BMLoop::f, ID_RECALC_SELECT, NC_GEOM, ND_SELECT, BMFace::no, OPERATOR_FINISHED, wmOperator::ptr, RNA_float_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMesh::selectmode, and WM_event_add_notifier().
Referenced by MESH_OT_edges_select_sharp().
|
static |
Definition at line 1300 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_report(), BLI_pophead(), bm, BMEditMesh::bm, BM_ELEM_SELECT, BM_FACE, BM_face_at_index(), BM_face_select_set(), BM_mesh_calc_face_groups(), BM_mesh_elem_table_ensure(), BM_mesh_region_match(), BM_VERT, CTX_data_edit_object(), Object::data, DEG_id_tag_update(), ID_RECALC_SELECT, int, MEM_freeN(), MEM_mallocN, NC_GEOM, ND_SELECT, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, RPT_WARNING, BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_select_similar_region().
| void EDBM_select_swap | ( | BMEditMesh * | em | ) |
Definition at line 2718 of file editmesh_select.cc.
References BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and BMesh::selectmode.
Referenced by edbm_select_all_exec(), and uv_select_all_perform().
| void EDBM_select_toggle_all | ( | BMEditMesh * | em | ) |
Definition at line 2708 of file editmesh_select.cc.
References BMEditMesh::bm, BM_ELEM_SELECT, EDBM_flag_disable_all(), EDBM_flag_enable_all(), BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by uv_select_all_perform().
|
static |
Definition at line 4813 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, CD_MDEFORMVERT, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), CustomData_get_offset(), DEG_id_tag_update(), MDeformVert::dw, EDBM_flag_disable_all(), EDBM_selectmode_flush(), ELEM, ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totvertsel, BMesh::vdata, and WM_event_add_notifier().
Referenced by MESH_OT_select_ungrouped().
|
static |
Definition at line 4792 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_object_defgroup_list(), BLI_listbase_is_empty(), BMEditMesh::bm, CD_MDEFORMVERT, CTX_data_edit_object(), CTX_wm_operator_poll_msg_set(), CustomData_get_offset(), ED_operator_editmesh(), SCE_SELECT_VERTEX, BMEditMesh::selectmode, and BMesh::vdata.
Referenced by MESH_OT_select_ungrouped().
| void EDBM_selectmode_convert | ( | BMEditMesh * | em, |
| short | selectmode_old, | ||
| short | selectmode_new ) |
Expand & Contract the Selection (used when changing modes and Ctrl key held)
Flush the selection up:
Flush the selection down:
Definition at line 2350 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_edge_is_all_face_flag_test(), BM_edge_is_any_vert_flag_test(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_face_is_any_edge_flag_test(), BM_face_is_any_vert_flag_test(), BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_deselect_flush(), BM_vert_is_all_edge_flag_test(), BM_vert_is_all_face_flag_test(), BM_vert_select_set(), BM_VERTS_OF_MESH, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_select_sharp_edges_exec(), and EDBM_selectmode_toggle_multi().
| bool EDBM_selectmode_disable | ( | Scene * | scene, |
| BMEditMesh * | em, | ||
| short | selectmode_disable, | ||
| short | selectmode_fallback ) |
Use to disable a select-mode if its enabled, Using another mode as a fallback if the disabled mode is the only mode set.
Definition at line 2660 of file editmesh_select.cc.
References EDBM_selectmode_set(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, and WM_main_add_notifier().
Referenced by EDBM_selectmode_disable_multi_ex(), and knifeproject_exec().
| bool EDBM_selectmode_disable_multi | ( | bContext * | C, |
| const short | selectmode_disable, | ||
| const short | selectmode_fallback ) |
Definition at line 2795 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), depsgraph, ED_view3d_viewcontext_init(), EDBM_selectmode_disable_multi_ex(), ViewContext::scene, and ViewContext::view_layer.
Referenced by ringsel_finish().
| bool EDBM_selectmode_disable_multi_ex | ( | Scene * | scene, |
| const Span< Base * > | bases, | ||
| const short | selectmode_disable, | ||
| const short | selectmode_fallback ) |
Definition at line 2778 of file editmesh_select.cc.
References BKE_editmesh_from_object(), and EDBM_selectmode_disable().
Referenced by EDBM_selectmode_disable_multi().
| void EDBM_selectmode_set | ( | BMEditMesh * | em | ) |
When switching select mode, makes sure selection is consistent for editing also for paranoia checks to make sure edge or face mode works.
Definition at line 2296 of file editmesh_select.cc.
References BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, EDBM_select_flush(), EDBM_selectmode_flush(), edbm_strip_selections(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_region_to_loop_exec(), EDBM_selectmode_disable(), edbm_selectmode_ensure(), EDBM_selectmode_set_multi(), edbm_selectmode_sync_multi_ex(), and EDBM_selectmode_toggle_multi().
| bool EDBM_selectmode_set_multi | ( | bContext * | C, |
| short | selectmode ) |
User access this.
Definition at line 2577 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_selectmode_set(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, OB_MESH, BMEditMesh::selectmode, ToolSettings::selectmode, Object::type, WM_event_add_notifier(), and WM_main_add_notifier().
Referenced by blender::ed::object::object_mode_set_exec(), and transformops_loopsel_hack().
Ensure all edit-meshes have the same select-mode.
While this is almost always the case as the UI syncs the values when set, it's not guaranteed because objects can be shared across scenes and each scene has it's own select-mode which is applied to the object when entering edit-mode.
This function should only be used when the an operation would cause errors when applied in the wrong selection mode.
Definition at line 2636 of file editmesh_select.cc.
References BKE_editmesh_from_object(), DEG_id_tag_update(), EDBM_selectmode_set(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, ND_SELECT, BMEditMesh::selectmode, and WM_main_add_notifier().
Referenced by edbm_select_non_manifold_exec().
| bool EDBM_selectmode_toggle_multi | ( | bContext * | C, |
| short | selectmode_new, | ||
| int | action, | ||
| bool | use_extend, | ||
| bool | use_expand ) |
User facing function, does notification.
Definition at line 2456 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, CTX_data_edit_object(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_selectmode_convert(), EDBM_selectmode_set(), highest_order_bit_s(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, OB_MESH, ret, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, ToolSettings::selectmode, Object::type, WM_event_add_notifier(), and WM_main_add_notifier().
Referenced by edbm_select_mode_exec().
|
static |
Definition at line 2260 of file editmesh_select.cc.
References BLI_freelinkN(), BMEditMesh::bm, BM_EDGE, BM_FACE, BM_VERT, ListBase::first, BMEditSelection::htype, BMEditSelection::next, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMesh::selected, and BMEditMesh::selectmode.
Referenced by EDBM_selectmode_set().
| bool EDBM_unified_findnearest | ( | ViewContext * | vc, |
| const Span< Base * > | bases, | ||
| int * | r_base_index, | ||
| BMVert ** | r_eve, | ||
| BMEdge ** | r_eed, | ||
| BMFace ** | r_efa ) |
Definition at line 1027 of file editmesh_select.cc.
References unified_findnearest().
Referenced by mouse_mesh_loop().
| bool EDBM_unified_findnearest_from_raycast | ( | ViewContext * | vc, |
| const Span< Base * > | bases, | ||
| bool | use_boundary_vertices, | ||
| bool | use_boundary_edges, | ||
| int * | r_base_index_vert, | ||
| int * | r_base_index_edge, | ||
| int * | r_base_index_face, | ||
| BMVert ** | r_eve, | ||
| BMEdge ** | r_eed, | ||
| BMFace ** | r_efa ) |
Definition at line 1046 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_mesh_wrapper_vert_coords(), BKE_mesh_wrapper_vert_len(), BKE_object_get_editmesh_eval_cage(), bm, BMEditMesh::bm, BM_edge_is_boundary(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_face_calc_center_median(), BM_face_calc_center_median_vcos(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_index_ensure(), BM_VERT, BM_VERTS_OF_MESH, BMVert::co, copy_m3_m4(), DEG_get_evaluated_object(), ViewContext::depsgraph, dist_squared_ray_to_seg_v3(), dist_squared_to_ray_v3_normalized(), e, ED_view3d_viewcontext_init_object(), ED_view3d_win_to_ray_clipped(), float, FLT_MAX, blender::Span< T >::index_range(), invert_m3(), blender::Span< T >::is_empty(), mid_v3_v3v3(), mul_m4_v3(), mul_v3_m4v3(), ViewContext::mval, Base::object, ViewContext::region, BMesh::totvert, UNUSED_VARS, v, and ViewContext::v3d.
| BMVert * EDBM_vert_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 398 of file editmesh_select.cc.
References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), EDBM_vert_find_nearest_ex(), ViewContext::obact, ViewContext::scene, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest().
| BMVert * EDBM_vert_find_nearest_ex | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p, | ||
| const bool | use_select_bias, | ||
| bool | use_cycle, | ||
| const Span< Base * > | bases, | ||
| uint * | r_base_index ) |
Definition at line 296 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_vert_at_index_find_or_table(), ViewContext::depsgraph, DRW_select_buffer_context_create(), DRW_select_buffer_find_nearest_to_point(), ED_view3d_backbuf_sample_size_clamp(), ED_view3d_init_mats_rv3d(), ED_view3d_viewcontext_init_object(), edbm_select_id_bm_elem_get(), ViewContext::em, findnearestvert__doClosest(), mesh_foreachScreenVert(), ViewContext::mval, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, RV3D_CLIPPING_ENABLED, SCE_SELECT_VERTEX, blender::Span< T >::size(), UINT_MAX, ViewContext::v3d, V3D_PROJ_TEST_CLIP_DEFAULT, and XRAY_FLAG_ENABLED.
Referenced by EDBM_vert_find_nearest(), and unified_findnearest().
|
static |
Definition at line 80 of file editmesh_select.cc.
References BKE_editmesh_from_object(), CTX_data_edit_object(), CTX_wm_operator_poll_msg_set(), OB_MESH, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and Object::type.
Referenced by MESH_OT_select_non_manifold().
| ViewContext em_setup_viewcontext | ( | bContext * | C | ) |
Definition at line 4382 of file editmesh_select.cc.
References BKE_editmesh_from_object(), CTX_data_ensure_evaluated_depsgraph(), depsgraph, ED_view3d_viewcontext_init(), ViewContext::em, and ViewContext::obedit.
Referenced by edbm_dupli_extrude_cursor_invoke(), edbm_preselect_or_active_init_viewcontext(), edbm_select_linked_pick_invoke(), EDBM_select_pick(), edbm_shortest_path_pick_invoke(), gizmo_preselect_edgering_test_select(), gizmo_preselect_elem_test_select(), knifeproject_exec(), knifetool_invoke(), loopcut_modal(), mouse_mesh_loop(), ringsel_init(), and view3d_circle_select_recalc().
|
static |
Definition at line 456 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, BMVert::co, copy_v2_v2(), ED_view3d_clipping_test(), FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, interp_v2_v2v2(), interp_v3_v3v3(), len_manhattan_v2v2(), line_point_factor_v2(), mid_v2_v2v2(), RV3D_CLIPPING, BMEdge::v1, and BMEdge::v2.
Referenced by EDBM_edge_find_nearest_ex().
|
static |
Definition at line 412 of file editmesh_select.cc.
References len_manhattan_v2v2(), and mid_v2_v2v2().
Referenced by EDBM_edge_find_nearest_ex().
|
static |
Definition at line 672 of file editmesh_select.cc.
References len_manhattan_v2v2().
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 705 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, and len_manhattan_v2v2().
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 263 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, and len_manhattan_v2v2().
Referenced by EDBM_vert_find_nearest_ex().
|
static |
Definition at line 5115 of file editmesh_select.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_gset_add(), BLI_gset_insert(), BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_ELEM, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_FACE, BMLoop::e, BMLoop::f, flag, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), l, MEM_malloc_arrayN, and blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last().
Referenced by loop_find_regions().
|
static |
This function leaves faces tagged which are a part of the new region.
Definition at line 5179 of file editmesh_select.cc.
References BLI_gset_free(), BLI_gset_haskey(), BLI_gset_ptr_new_ex(), BMEditMesh::bm, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_FACE, count, BMLoop::e, e, BMLoop::f, l, loop_find_region(), MEM_freeN(), MEM_mallocN, BMesh::totedgesel, and verg_radial().
Referenced by edbm_loop_to_region_exec().
| void MESH_OT_edgering_select | ( | wmOperatorType * | ot | ) |
Definition at line 1921 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh_region_view3d(), edbm_select_loop_invoke(), wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_edges_select_sharp | ( | wmOperatorType * | ot | ) |
Definition at line 4443 of file editmesh_select.cc.
References DEG2RADF, wmOperatorType::description, ED_operator_editmesh(), edbm_select_sharp_edges_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_float_rotation(), RNA_def_property_float_default(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_faces_select_linked_flat | ( | wmOperatorType * | ot | ) |
Definition at line 4543 of file editmesh_select.cc.
References DEG2RADF, wmOperatorType::description, ED_operator_editmesh(), edbm_select_linked_flat_faces_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_float_rotation(), RNA_def_property_float_default(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_loop_multi_select | ( | wmOperatorType * | ot | ) |
Definition at line 1630 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_loop_multiselect_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_loop_select | ( | wmOperatorType * | ot | ) |
Definition at line 1894 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh_region_view3d(), edbm_select_loop_invoke(), wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_loop_to_region | ( | wmOperatorType * | ot | ) |
Definition at line 5304 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_loop_to_region_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_region_to_loop | ( | wmOperatorType * | ot | ) |
Definition at line 5094 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_region_to_loop_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_all | ( | wmOperatorType * | ot | ) |
Definition at line 1994 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_all_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_select_all().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_axis | ( | wmOperatorType * | ot | ) |
Definition at line 4990 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_axis_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_enum(), RNA_def_float(), rna_enum_axis_xyz_items, rna_enum_transform_orientation_items, SELECT_AXIS_ALIGN, SELECT_AXIS_NEG, SELECT_AXIS_POS, wmOperatorType::srna, and V3D_ORIENT_LOCAL.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_by_attribute | ( | wmOperatorType * | ot | ) |
Definition at line 5418 of file editmesh_select.cc.
References wmOperatorType::description, edbm_select_by_attribute_exec(), edbm_select_by_attribute_poll(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_face_by_sides | ( | wmOperatorType * | ot | ) |
Definition at line 3845 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_face_by_sides_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_enum(), RNA_def_int(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_interior_faces | ( | wmOperatorType * | ot | ) |
Definition at line 2038 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_faces_select_interior_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_less | ( | wmOperatorType * | ot | ) |
Definition at line 4115 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_less_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_linked | ( | wmOperatorType * | ot | ) |
Definition at line 3481 of file editmesh_select.cc.
References BMO_DELIM_SEAM, wmOperatorType::description, ED_operator_editmesh(), edbm_select_linked_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_enum_flag(), RNA_def_property_flag(), rna_enum_mesh_delimit_mode_items, wmOperatorType::srna, and UNUSED_VARS.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_linked_pick | ( | wmOperatorType * | ot | ) |
Definition at line 3749 of file editmesh_select.cc.
References BMO_DELIM_SEAM, wmOperatorType::description, ED_operator_editmesh(), edbm_select_linked_pick_exec(), edbm_select_linked_pick_invoke(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_enum_flag(), RNA_def_int(), RNA_def_property_flag(), rna_enum_mesh_delimit_mode_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_loose | ( | wmOperatorType * | ot | ) |
Definition at line 3942 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_loose_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_mirror | ( | wmOperatorType * | ot | ) |
Definition at line 4017 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_mirror_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_enum_flag(), rna_enum_axis_flag_xyz_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_mode | ( | wmOperatorType * | ot | ) |
Definition at line 1458 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_mode_exec(), edbm_select_mode_get_description(), edbm_select_mode_invoke(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::get_description, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, wmOperatorType::prop, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_enum(), RNA_def_property_flag(), rna_enum_mesh_select_mode_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_more | ( | wmOperatorType * | ot | ) |
Definition at line 4067 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_more_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_non_manifold | ( | wmOperatorType * | ot | ) |
Definition at line 4641 of file editmesh_select.cc.
References wmOperatorType::description, edbm_select_non_manifold_exec(), edbm_vert_or_edge_select_mode_poll(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_nth | ( | wmOperatorType * | ot | ) |
Definition at line 4365 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_nth_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_checker_interval().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_random | ( | wmOperatorType * | ot | ) |
Definition at line 4768 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_random_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_select_random().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_similar_region | ( | wmOperatorType * | ot | ) |
Definition at line 1369 of file editmesh_select.cc.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_similar_region_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_ungrouped | ( | wmOperatorType * | ot | ) |
Definition at line 4863 of file editmesh_select.cc.
References wmOperatorType::description, edbm_select_ungrouped_exec(), edbm_select_ungrouped_poll(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
|
static |
Definition at line 1710 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_bases_in_edit_mode(), BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_face_calc_center_median(), BM_FACES_OF_EDGE, BM_ITER_ELEM, BM_mesh_active_face_set(), BM_select_history_store, BMVert::co, Object::data, DEG_id_tag_update(), ED_view3d_init_mats_rv3d(), ED_view3d_project_float_object(), ED_view3d_viewcontext_init_object(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), EDBM_unified_findnearest(), ViewContext::em, em_setup_viewcontext(), float, FLT_MAX, ID_RECALC_SELECT, len_squared_v2v2(), mouse_mesh_loop_edge(), mouse_mesh_loop_edge_ring(), mouse_mesh_loop_face(), ViewContext::mval, NC_GEOM, ND_SELECT, ViewContext::obedit, Base::object, printf, ViewContext::region, ViewContext::rv3d, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, ViewContext::scene, select(), BMEditMesh::selectmode, BMesh::totvertsel, BMEdge::v1, BMEdge::v2, ViewContext::v3d, V3D_PROJ_RET_OK, V3D_PROJ_TEST_CLIP_NEAR, ViewContext::view_layer, and WM_event_add_notifier().
Referenced by edbm_select_loop_invoke().
|
static |
Definition at line 1672 of file editmesh_select.cc.
References BM_edge_face_count_is_over, BM_edge_is_boundary(), BM_ELEM_SELECT, BMW_EDGEBOUNDARY, BMW_EDGELOOP, BMW_EDGELOOP_NONMANIFOLD, EDBM_flag_disable_all(), select(), walker_select(), and walker_select_count().
Referenced by mouse_mesh_loop().
|
static |
Definition at line 1663 of file editmesh_select.cc.
References BM_ELEM_SELECT, BMW_EDGERING, EDBM_flag_disable_all(), select(), and walker_select().
Referenced by mouse_mesh_loop().
|
static |
Definition at line 1654 of file editmesh_select.cc.
References BM_ELEM_SELECT, BMW_FACELOOP, EDBM_flag_disable_all(), select(), and walker_select().
Referenced by mouse_mesh_loop().
Definition at line 3243 of file editmesh_select.cc.
References bm, BM_EDGES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_toolflags_ensure(), BMO_DELIM_UV, BMO_edge_flag_set, BMO_ELE_TAG, DelimitData::cd_loop_type, CD_PROP_FLOAT2, CustomData_get_offset(), e, BMesh::ldata, and select_linked_delimit_test().
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Gets the default from the operator fallback to own last-used value (selected based on mode)
Definition at line 3214 of file editmesh_select.cc.
References BMO_DELIM_SEAM, wmOperator::ptr, RNA_property_enum_get(), RNA_property_enum_set(), RNA_property_is_set(), RNA_struct_find_property(), SCE_SELECT_EDGE, and SCE_SELECT_VERTEX.
Referenced by edbm_select_linked_exec(), edbm_select_linked_pick_exec(), and edbm_select_linked_pick_invoke().
|
static |
Definition at line 3270 of file editmesh_select.cc.
References bm, BMEditMesh::bm, and BM_mesh_elem_toolflags_clear().
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Definition at line 3164 of file editmesh_select.cc.
References BLI_assert, BM_edge_is_contiguous(), BM_edge_is_contiguous_loop_cd(), BM_elem_flag_test, BM_ELEM_SEAM, BM_ELEM_SMOOTH, BMO_DELIM_MATERIAL, BMO_DELIM_NORMAL, BMO_DELIM_SEAM, BMO_DELIM_SHARP, BMO_DELIM_UV, DelimitData::cd_loop_offset, DelimitData::cd_loop_type, e, BMLoop::f, BMFace::mat_nr, and BMLoop::radial_next.
Referenced by select_linked_delimit_begin().
Definition at line 3234 of file editmesh_select.cc.
References bm, BMO_DELIM_UV, CD_PROP_FLOAT2, CustomData_has_layer(), and BMesh::ldata.
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Definition at line 894 of file editmesh_select.cc.
References BLI_assert, BMVert::e, e, ED_view3d_select_dist_px(), EDBM_edge_find_nearest_ex(), EDBM_face_find_nearest_ex(), EDBM_vert_find_nearest_ex(), ViewContext::em, min_ff(), ViewContext::mval, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, v, and WM_cursor_test_motion_and_update().
Referenced by edbm_select_linked_pick_invoke(), EDBM_select_pick(), and EDBM_unified_findnearest().
|
static |
Definition at line 5156 of file editmesh_select.cc.
References b, and BM_edge_face_count().
Referenced by loop_find_regions().
|
static |
Definition at line 4163 of file editmesh_select.cc.
References BLI_assert, bm, BMEditMesh::bm, BM_EDGE, bm_edge_is_select_isolated(), BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_SELECT, BM_elem_select_set(), BM_ELEM_TAG, BM_FACE, BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_toolflags_ensure(), BM_VERT, BM_VERTS_OF_MESH, BMO_ELE_TAG, BMO_elem_flag_enable, BMO_pop(), BMO_push(), BMW_begin(), BMW_BREADTH_FIRST, BMW_CONNECTED_VERTEX, BMW_current_depth(), BMW_end(), BMW_FACE_SHELL, BMW_FLAG_NOP, BMW_init(), BMW_ISLAND, BMW_NIL_LAY, BMW_step(), BMW_VERT_SHELL, EDBM_selectmode_flush_ex(), BMHeader::htype, BMWalker::order, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, and WM_operator_properties_checker_interval_test().
Referenced by edbm_deselect_nth().
|
static |
Definition at line 1538 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_elem_select_set(), BM_select_history_remove, BMW_begin(), BMW_end(), BMW_FLAG_TEST_HIDDEN, BMW_init(), BMW_MASK_NOP, BMW_NIL_LAY, BMW_step(), and select().
Referenced by edbm_loop_multiselect_exec(), mouse_mesh_loop_edge(), mouse_mesh_loop_edge_ring(), and mouse_mesh_loop_face().
|
static |
Definition at line 1503 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BMW_begin(), BMW_end(), BMW_FLAG_TEST_HIDDEN, BMW_init(), BMW_MASK_NOP, BMW_NIL_LAY, and BMW_step().
Referenced by mouse_mesh_loop_edge().