|
Blender V4.5
|
#include <algorithm>#include <optional>#include "MEM_guardedalloc.h"#include "BLI_heap.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_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 "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 |
Typedefs | |
| using | float3 |
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 wmOperatorStatus | edbm_select_similar_region_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_similar_region (wmOperatorType *ot) |
Select Mode Vert/Edge/Face Operator | |
| static wmOperatorStatus | edbm_select_mode_exec (bContext *C, wmOperator *op) |
| static wmOperatorStatus | 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 bool | walker_select (BMEditMesh *em, int walkercode, void *start, const bool select) |
| static wmOperatorStatus | 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 wmOperatorStatus | 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 wmOperatorStatus | edbm_select_all_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_all (wmOperatorType *ot) |
Select Interior Faces Operator | |
| static wmOperatorStatus | 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 ¶ms) |
Select Mode Utilities | |
| static void | edbm_strip_selections (BMEditMesh *em) |
| void | EDBM_selectmode_set (BMEditMesh *em, const short selectmode) |
| void | EDBM_selectmode_convert (BMEditMesh *em, const short selectmode_old, const short selectmode_new) |
| bool | EDBM_selectmode_toggle_multi (bContext *C, const short selectmode_toggle, const int action, const bool use_extend, const bool use_expand) |
| bool | EDBM_selectmode_set_multi_ex (Scene *scene, Span< Object * > objects, const short selectmode) |
| 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 wmOperatorStatus | 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 wmOperatorStatus | edbm_select_linked_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | MESH_OT_select_linked_pick (wmOperatorType *ot) |
Select by Pole Count Operator | |
| static wmOperatorStatus | edbm_select_by_pole_count_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_by_pole_count (wmOperatorType *ot) |
Select Face by Sides Operator | |
| static wmOperatorStatus | edbm_select_face_by_sides_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_face_by_sides (wmOperatorType *ot) |
Select Loose Operator | |
| static wmOperatorStatus | edbm_select_loose_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_loose (wmOperatorType *ot) |
Select Mirror Operator | |
| static wmOperatorStatus | edbm_select_mirror_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_mirror (wmOperatorType *ot) |
Select More Operator | |
| static wmOperatorStatus | edbm_select_more_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_more (wmOperatorType *ot) |
| static wmOperatorStatus | 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 wmOperatorStatus | 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 wmOperatorStatus | edbm_select_sharp_edges_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_edges_select_sharp (wmOperatorType *ot) |
Select Linked Flat Faces Operator | |
| static wmOperatorStatus | edbm_select_linked_flat_faces_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_faces_select_linked_flat (wmOperatorType *ot) |
Select Non-Manifold Operator | |
| static wmOperatorStatus | edbm_select_non_manifold_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_non_manifold (wmOperatorType *ot) |
Select Random Operator | |
| static wmOperatorStatus | 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 wmOperatorStatus | edbm_select_ungrouped_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_ungrouped (wmOperatorType *ot) |
Select Region to Loop Operator | |
| static wmOperatorStatus | 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 wmOperatorStatus | 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 wmOperatorStatus | 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 wmOperatorStatus | edbm_select_linked_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_linked (wmOperatorType *ot) |
Common functions to count elements | |
| enum | eElemCountType { ELEM_COUNT_LESS = 0 , ELEM_COUNT_EQUAL , ELEM_COUNT_GREATER , ELEM_COUNT_NOT_EQUAL } |
| static const EnumPropertyItem | elem_count_compare_items [] |
| static bool | is_count_a_match (const eElemCountType type, const int value_test, const int value_reference) |
Select Axis Operator | |
| enum | { SELECT_AXIS_POS = 0 , SELECT_AXIS_NEG = 1 , SELECT_AXIS_ALIGN = 2 } |
| static wmOperatorStatus | edbm_select_axis_exec (bContext *C, wmOperator *op) |
| void | MESH_OT_select_axis (wmOperatorType *ot) |
| #define BMO_ELE_TAG 1 |
use BMesh operator flags for a few operators.
Definition at line 66 of file editmesh_select.cc.
| #define FIND_NEAR_CYCLE_THRESHOLD_MIN 3 |
Definition at line 292 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 291 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 |
So we can have last-used default depend on selection mode (rare exception!).
Definition at line 3224 of file editmesh_select.cc.
| using blender::float3 |
Definition at line 619 of file BLI_math_vector_types.hh.
| anonymous enum |
| Enumerator | |
|---|---|
| SELECT_AXIS_POS | |
| SELECT_AXIS_NEG | |
| SELECT_AXIS_ALIGN | |
Definition at line 5099 of file editmesh_select.cc.
| enum eElemCountType |
| Enumerator | |
|---|---|
| ELEM_COUNT_LESS | |
| ELEM_COUNT_EQUAL | |
| ELEM_COUNT_GREATER | |
| ELEM_COUNT_NOT_EQUAL | |
Definition at line 99 of file editmesh_select.cc.
|
static |
Check if we're connected to another selected edge.
Definition at line 4342 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 2908 of file editmesh_select.cc.
References BM_elem_index_get, e, ELEM, BMLoop::f, i, and BMLoop::radial_next.
Referenced by EDBM_select_interior_faces().
|
static |
Calculate the cost of the face group. A higher value means it's more likely to remove first.
Definition at line 2932 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, i, LISTBASE_FOREACH, BMLoop::next, BMFace::no, and BMLoop::radial_next.
Referenced by EDBM_select_interior_faces().
|
static |
Definition at line 2901 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_TAG, and l.
Referenced by EDBM_select_interior_faces().
|
static |
Definition at line 4452 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 5573 of file editmesh_select.cc.
References BM_EDGES_OF_MESH, BM_FACES_OF_MESH, BM_VERTS_OF_MESH, blender::bke::Edge, blender::bke::Face, and blender::bke::Point.
Referenced by edbm_select_by_attribute_exec().
| bool EDBM_deselect_by_material | ( | BMEditMesh * | em, |
| const short | index, | ||
| const bool | select ) |
Definition at line 2764 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 4505 of file editmesh_select.cc.
References deselect_nth_active(), e, BMFace::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 705 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 572 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_edge_at_index_find_or_table(), data, ViewContext::depsgraph, NearestEdgeUserData_Hit::dist, NearestEdgeUserData_Hit::dist_center_px_manhattan, 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(), NearestEdgeUserData_Hit::edge, ViewContext::em, find_nearest_edge__doClosest(), find_nearest_edge_center__doZBuf(), FLT_MAX, NearestEdgeUserData_Hit::index, mesh_foreachScreenEdge(), ViewContext::mval, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, SCE_SELECT_EDGE, blender::Span< T >::size(), UINT_MAX, ViewContext::v3d, V3D_PROJ_TEST_CLIP_BB, 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 924 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 784 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_face_at_index_find_or_table(), data, ViewContext::depsgraph, NearestFaceUserData_Hit::dist, 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, NearestFaceUserData_Hit::face, find_nearest_face_center__doZBuf(), findnearestface__doClosest(), FLT_MAX, NearestFaceUserData_Hit::index, mesh_foreachScreenFace(), ViewContext::mval, 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 2081 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), C, 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 1623 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, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_selectmode_flush(), ID_RECALC_SELECT, MEM_freeN(), MEM_malloc_arrayN(), 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 5474 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(), C, 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 2843 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), C, 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 2825 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 5248 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(), C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), BMLoop::e, e, EDBM_flag_disable_all(), EDBM_selectmode_disable_multi(), BMLoop::f, ID_RECALC_GEOMETRY, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_region_to_loop().
|
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(), BMEditMesh::bm, BM_ELEM_SELECT, C, 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 5105 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, C, blender::ed::transform::calc_orientation_from_type_ex(), 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(), 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, sign(), v, V3D_AROUND_ACTIVE, and WM_event_add_notifier().
Referenced by MESH_OT_select_axis().
|
static |
Definition at line 5588 of file editmesh_select.cc.
References ATTR_DOMAIN_MASK_ALL, BKE_attribute_domain(), BKE_attribute_search(), BKE_attributes_active_name_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, C, CD_MASK_PROP_ALL, CD_PROP_BOOL, blender::bke::Corner, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), domain_to_iter_type(), EDBM_selectmode_flush(), AttributeOwner::from_id(), Mesh::id, ID_RECALC_SELECT, NC_GEOM, ND_SELECT, CustomDataLayer::offset, OPERATOR_FINISHED, CustomDataLayer::type, and WM_event_add_notifier().
Referenced by MESH_OT_select_by_attribute().
|
static |
Definition at line 5545 of file editmesh_select.cc.
References ATTR_DOMAIN_MASK_ALL, BKE_attribute_domain(), BKE_attribute_search(), BKE_attributes_active_name_get(), C, CD_MASK_PROP_ALL, CD_PROP_BOOL, blender::bke::Corner, CTX_data_edit_object(), CTX_wm_operator_poll_msg_set(), Object::data, ED_operator_editmesh(), AttributeOwner::from_id(), Mesh::id, and CustomDataLayer::type.
Referenced by MESH_OT_select_by_attribute().
|
static |
Definition at line 3859 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert_unreachable, BMEditMesh::bm, BM_edge_is_manifold(), BM_edge_select_set(), BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_VERT, BM_ITER_ELEM, BM_ITER_MESH, BM_vert_edge_count_at_most(), BM_vert_is_manifold(), BM_vert_select_set(), BM_VERTS_OF_MESH, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), e, EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, is_count_a_match(), NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, v, and WM_event_add_notifier().
Referenced by MESH_OT_select_by_pole_count().
|
static |
Definition at line 3987 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_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, is_count_a_match(), BMFace::len, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_get(), and WM_event_add_notifier().
Referenced by MESH_OT_select_face_by_sides().
|
static |
Definition at line 250 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 2982 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, BMLoop::f, BMFaceLink::face, FLT_MAX, i, LISTBASE_FOREACH, MEM_calloc_arrayN(), MEM_freeN(), MEM_malloc_arrayN(), BMLoop::next, POINTER_AS_INT, POINTER_FROM_INT, BMLoop::radial_next, STACK_CLEAR, STACK_DECLARE, STACK_INIT, STACK_PUSH, and STACK_SIZE.
Referenced by edbm_faces_select_interior_exec().
|
static |
Definition at line 4291 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), bm, BMEditMesh::bm, C, 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(), and WM_event_add_notifier().
Referenced by MESH_OT_select_less().
|
static |
Definition at line 3344 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, C, 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, ToolSettings::selectmode, Scene::toolsettings, v, BMEdge::v1, BMEdge::v2, and WM_event_add_notifier().
Referenced by MESH_OT_select_linked().
|
static |
Definition at line 4682 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(), C, 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(), and WM_event_add_notifier().
Referenced by MESH_OT_faces_select_linked_flat().
|
static |
Definition at line 3585 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 3783 of file editmesh_select.cc.
References BKE_editmesh_from_object(), C, 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 3700 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(), C, 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_gpu(), ViewContext::view_layer, and WM_event_add_notifier().
Referenced by MESH_OT_select_linked_pick().
|
static |
Definition at line 1941 of file editmesh_select.cc.
References C, mouse_mesh_loop(), wmEvent::mval, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), and view3d_operator_needs_gpu().
Referenced by MESH_OT_edgering_select(), and MESH_OT_loop_select().
|
static |
Definition at line 4062 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_flag_test, BM_ELEM_HIDDEN, 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, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), 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 4166 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BMEditMesh::bm, C, 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 139 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(), Mesh::editflag, ME_EDIT_MIRROR_TOPO, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and v.
Referenced by edbm_select_mirror_exec().
|
static |
Definition at line 1446 of file editmesh_select.cc.
References C, 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 1485 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 1459 of file editmesh_select.cc.
References C, 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 4243 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), bm, BMEditMesh::bm, C, 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(), and WM_event_add_notifier().
Referenced by MESH_OT_select_more().
|
static |
Definition at line 4782 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, C, 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 4529 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, C, 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 2126 of file editmesh_select.cc.
References 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, bm, 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(), C, 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, blender::ed::object::material_active_index_set(), ViewContext::mval, NC_GEOM, ND_SELECT, 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 4891 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, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_deselect_flush(), EDBM_selectmode_flush(), i, Object::id, ID_RECALC_SELECT, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), 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 4599 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, C, 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, l_b, 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 1357 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, C, CTX_data_edit_object(), Object::data, DEG_id_tag_update(), faces, i, ID_RECALC_SELECT, MEM_freeN(), MEM_malloc_arrayN(), NC_GEOM, ND_SELECT, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, RPT_WARNING, and WM_event_add_notifier().
Referenced by MESH_OT_select_similar_region().
| void EDBM_select_swap | ( | BMEditMesh * | em | ) |
Definition at line 2792 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_invert().
| void EDBM_select_toggle_all | ( | BMEditMesh * | em | ) |
Definition at line 2782 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_toggle_all().
|
static |
Definition at line 5026 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, C, 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 5005 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_object_defgroup_list(), BLI_listbase_is_empty(), BMEditMesh::bm, C, 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 2414 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, and SCE_SELECT_VERTEX.
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 2737 of file editmesh_select.cc.
References EDBM_selectmode_set(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, 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 2869 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), C, 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 edbm_region_to_loop_exec(), and 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 2852 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, |
| short | selectmode ) |
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 2359 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_selectmode_disable(), edbm_selectmode_ensure(), EDBM_selectmode_set_multi_ex(), edbm_selectmode_sync_multi_ex(), and EDBM_selectmode_toggle_multi().
| bool EDBM_selectmode_set_multi | ( | bContext * | C, |
| short | selectmode ) |
High level select-mode setting utility. This operates on tool-settings and all edit-mode objects.
Definition at line 2683 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_active_object_get(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BKE_view_layer_synced_ensure(), BLI_assert, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), EDBM_selectmode_set_multi_ex(), Object::mode, OB_MESH, OB_MODE_EDIT, and Object::type.
Referenced by blender::ed::object::object_mode_set_exec(), and blender::ed::transform::transformops_loopsel_hack().
| bool EDBM_selectmode_set_multi_ex | ( | Scene * | scene, |
| blender::Span< Object * > | objects, | ||
| const short | selectmode ) |
Select-mode setting utility. This operates on tool-settings and all objects passed in.
Definition at line 2653 of file editmesh_select.cc.
References BKE_editmesh_from_object(), DEG_id_tag_update(), EDBM_selectmode_set(), Scene::id, ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, and WM_main_add_notifier().
Referenced by EDBM_selectmode_set_multi().
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 its 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 2714 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, blender::Span< T >::size(), and WM_main_add_notifier().
Referenced by edbm_select_non_manifold_exec().
| bool EDBM_selectmode_toggle_multi | ( | bContext * | C, |
| short | selectmode_toggle, | ||
| int | action, | ||
| bool | use_extend, | ||
| bool | use_expand ) |
User facing function, handles notification.
| selectmode_toggle | The mode to adjust based on action, must not contain mixed flags. |
Definition at line 2525 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, C, 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(), ELEM, highest_order_bit_s(), Scene::id, 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 2323 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 1074 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 1093 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, copy_m3_m4(), DEG_get_evaluated(), 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(), 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, UNUSED_VARS, v, and ViewContext::v3d.
| BMVert * EDBM_vert_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 446 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 344 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_vert_at_index_find_or_table(), data, ViewContext::depsgraph, NearestVertUserData_Hit::dist, 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(), NearestVertUserData_Hit::index, 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_BB, V3D_PROJ_TEST_CLIP_DEFAULT, NearestVertUserData_Hit::vert, and XRAY_FLAG_ENABLED.
Referenced by EDBM_vert_find_nearest(), and unified_findnearest().
|
static |
Definition at line 76 of file editmesh_select.cc.
References BKE_editmesh_from_object(), C, 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 4582 of file editmesh_select.cc.
References BKE_editmesh_from_object(), C, 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 504 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, BMVert::co, copy_v2_v2(), data, 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 460 of file editmesh_select.cc.
References data, len_manhattan_v2v2(), and mid_v2_v2v2().
Referenced by EDBM_edge_find_nearest_ex().
|
static |
Definition at line 720 of file editmesh_select.cc.
References data, and len_manhattan_v2v2().
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 751 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, data, FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, and len_manhattan_v2v2().
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 311 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, data, FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, and len_manhattan_v2v2().
Referenced by EDBM_vert_find_nearest_ex().
|
inlinestatic |
Definition at line 114 of file editmesh_select.cc.
References BLI_assert_unreachable, ELEM_COUNT_EQUAL, ELEM_COUNT_GREATER, ELEM_COUNT_LESS, and ELEM_COUNT_NOT_EQUAL.
Referenced by edbm_select_by_pole_count_exec(), and edbm_select_face_by_sides_exec().
Definition at line 5329 of file editmesh_select.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), BLI_gset_add(), BLI_gset_insert(), BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_ELEM, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_FACE, blender::Vector< T, InlineBufferCapacity, Allocator >::data(), BMLoop::e, BMLoop::f, flag, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), l, MEM_malloc_arrayN(), blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by loop_find_regions().
|
static |
This function leaves faces tagged which are a part of the new region.
Definition at line 5392 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, e, i, l, loop_find_region(), MEM_freeN(), MEM_malloc_arrayN(), BMesh::totedgesel, and verg_radial().
Referenced by edbm_loop_to_region_exec().
| void MESH_OT_edgering_select | ( | wmOperatorType * | ot | ) |
Definition at line 1985 of file editmesh_select.cc.
References ED_operator_editmesh_region_view3d(), edbm_select_loop_invoke(), OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_boolean(), and RNA_def_property_flag().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_edges_select_sharp | ( | wmOperatorType * | ot | ) |
Definition at line 4646 of file editmesh_select.cc.
References DEG2RADF, ED_operator_editmesh(), edbm_select_sharp_edges_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_float_rotation(), and RNA_def_property_float_default().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_faces_select_linked_flat | ( | wmOperatorType * | ot | ) |
Definition at line 4746 of file editmesh_select.cc.
References DEG2RADF, ED_operator_editmesh(), edbm_select_linked_flat_faces_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_float_rotation(), and RNA_def_property_float_default().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_loop_multi_select | ( | wmOperatorType * | ot | ) |
Definition at line 1694 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_loop_multiselect_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_loop_select | ( | wmOperatorType * | ot | ) |
Definition at line 1958 of file editmesh_select.cc.
References ED_operator_editmesh_region_view3d(), edbm_select_loop_invoke(), OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_boolean(), and RNA_def_property_flag().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_loop_to_region | ( | wmOperatorType * | ot | ) |
Definition at line 5524 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_loop_to_region_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_region_to_loop | ( | wmOperatorType * | ot | ) |
Definition at line 5308 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_region_to_loop_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_all | ( | wmOperatorType * | ot | ) |
Definition at line 2058 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_all_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and WM_operator_properties_select_all().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_axis | ( | wmOperatorType * | ot | ) |
Definition at line 5203 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_axis_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, 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, and V3D_ORIENT_LOCAL.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_by_attribute | ( | wmOperatorType * | ot | ) |
Definition at line 5645 of file editmesh_select.cc.
References edbm_select_by_attribute_exec(), edbm_select_by_attribute_poll(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_by_pole_count | ( | wmOperatorType * | ot | ) |
Definition at line 3952 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_by_pole_count_exec(), elem_count_compare_items, ELEM_COUNT_NOT_EQUAL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_boolean(), RNA_def_enum(), and RNA_def_int().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_face_by_sides | ( | wmOperatorType * | ot | ) |
Definition at line 4030 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_face_by_sides_exec(), elem_count_compare_items, ELEM_COUNT_EQUAL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_boolean(), RNA_def_enum(), and RNA_def_int().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_interior_faces | ( | wmOperatorType * | ot | ) |
Definition at line 2102 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_faces_select_interior_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_less | ( | wmOperatorType * | ot | ) |
Definition at line 4315 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_less_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_linked | ( | wmOperatorType * | ot | ) |
Definition at line 3548 of file editmesh_select.cc.
References BMO_DELIM_SEAM, ED_operator_editmesh(), edbm_select_linked_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_enum_flag(), RNA_def_property_flag(), rna_enum_mesh_delimit_mode_items, and UNUSED_VARS.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_linked_pick | ( | wmOperatorType * | ot | ) |
Definition at line 3818 of file editmesh_select.cc.
References BMO_DELIM_SEAM, ED_operator_editmesh(), edbm_select_linked_pick_exec(), edbm_select_linked_pick_invoke(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_enum_flag(), RNA_def_int(), RNA_def_property_flag(), and rna_enum_mesh_delimit_mode_items.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_loose | ( | wmOperatorType * | ot | ) |
Definition at line 4142 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_loose_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_mirror | ( | wmOperatorType * | ot | ) |
Definition at line 4217 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_mirror_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_boolean(), RNA_def_enum_flag(), and rna_enum_axis_flag_xyz_items.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_mode | ( | wmOperatorType * | ot | ) |
Definition at line 1514 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_mode_exec(), edbm_select_mode_get_description(), edbm_select_mode_invoke(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_enum(), RNA_def_property_flag(), and rna_enum_mesh_select_mode_items.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_more | ( | wmOperatorType * | ot | ) |
Definition at line 4267 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_more_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_non_manifold | ( | wmOperatorType * | ot | ) |
Definition at line 4854 of file editmesh_select.cc.
References edbm_select_non_manifold_exec(), edbm_vert_or_edge_select_mode_poll(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_nth | ( | wmOperatorType * | ot | ) |
Definition at line 4565 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_nth_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and WM_operator_properties_checker_interval().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_random | ( | wmOperatorType * | ot | ) |
Definition at line 4981 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_random_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and WM_operator_properties_select_random().
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_similar_region | ( | wmOperatorType * | ot | ) |
Definition at line 1425 of file editmesh_select.cc.
References ED_operator_editmesh(), edbm_select_similar_region_exec(), OPTYPE_REGISTER, OPTYPE_UNDO, and ot.
Referenced by ED_operatortypes_mesh().
| void MESH_OT_select_ungrouped | ( | wmOperatorType * | ot | ) |
Definition at line 5076 of file editmesh_select.cc.
References edbm_select_ungrouped_exec(), edbm_select_ungrouped_poll(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and RNA_def_boolean().
Referenced by ED_operatortypes_mesh().
|
static |
Definition at line 1774 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, C, 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(), 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 1736 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 1727 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 1718 of file editmesh_select.cc.
References BM_ELEM_SELECT, BMW_FACELOOP, EDBM_flag_disable_all(), select, and walker_select().
Referenced by mouse_mesh_loop().
|
static |
Definition at line 3310 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, CD_PROP_FLOAT2, CustomData_get_offset(), e, 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 3281 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 3337 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 3231 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, e, BMLoop::f, BMFace::mat_nr, and BMLoop::radial_next.
Referenced by select_linked_delimit_begin().
|
static |
Definition at line 3301 of file editmesh_select.cc.
References bm, BMO_DELIM_UV, CD_PROP_FLOAT2, and CustomData_has_layer().
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Find the nearest using the best distance based on screen coords. Use em->selectmode to define how to use selected vertices and edges get disadvantage.
Definition at line 941 of file editmesh_select.cc.
References BLI_assert, 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 5369 of file editmesh_select.cc.
References b, and BM_edge_face_count().
Referenced by loop_find_regions().
|
static |
Definition at line 4363 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 1594 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 1559 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().
|
static |
Definition at line 106 of file editmesh_select.cc.
Referenced by MESH_OT_select_by_pole_count(), and MESH_OT_select_face_by_sides().