|
Blender V5.0
|
#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_uvedit.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 |
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 67 of file editmesh_select.cc.
| #define FIND_NEAR_CYCLE_THRESHOLD_MIN 3 |
Definition at line 388 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 387 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 3414 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 5597 of file editmesh_select.cc.
| enum eElemCountType |
| Enumerator | |
|---|---|
| ELEM_COUNT_LESS | |
| ELEM_COUNT_EQUAL | |
| ELEM_COUNT_GREATER | |
| ELEM_COUNT_NOT_EQUAL | |
Definition at line 100 of file editmesh_select.cc.
|
static |
Check if we're connected to another selected edge.
Definition at line 4542 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 |
Check if the selected edges form a loop cyclic chain.
Definition at line 4662 of file editmesh_select.cc.
References BM_edge_other_vert(), bm_step_over_vert_to_next_selected_edge_in_chain(), and BMEdge::v1.
Referenced by walker_deselect_nth().
|
static |
Check if the selected faces form a loop cyclic chain.
Definition at line 4683 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, BM_FACES_OF_EDGE, BM_ITER_ELEM, BM_LOOPS_OF_FACE, bm_step_over_shared_edge_to_next_selected_face_in_chain(), and l.
Referenced by walker_deselect_nth().
|
static |
Definition at line 3098 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().
Calculate the cost of the face group. A higher value means it's more likely to remove first.
Definition at line 3122 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 3091 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 4600 of file editmesh_select.cc.
References BM_elem_flag_test, BM_ELEM_SELECT, BM_FACES_OF_EDGE, BM_ITER_ELEM, BM_LOOPS_OF_FACE, count, ELEM, and l.
Referenced by bm_faces_form_cyclic_chain(), and walker_deselect_nth_face_chain().
|
static |
Definition at line 4560 of file editmesh_select.cc.
References BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, count, and v.
Referenced by bm_edges_form_cyclic_chain(), and walker_deselect_nth_edge_chain().
Definition at line 4579 of file editmesh_select.cc.
References BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, count, and e.
Referenced by bm_verts_form_cyclic_chain(), and walker_deselect_nth_vertex_chain().
|
static |
Check if the selected vertices form a loop cyclic chain.
Definition at line 4628 of file editmesh_select.cc.
References BM_edge_other_vert(), BM_EDGES_OF_VERT, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, bm_step_to_next_selected_vert_in_chain(), and e.
Referenced by walker_deselect_nth().
|
static |
Definition at line 4942 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 6074 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 2954 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 4995 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 801 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 668 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 1020 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 880 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 2186 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 1719 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(), EDBM_uvselect_clear(), 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 5974 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(), EDBM_uvselect_clear(), 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 3033 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 3015 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 5748 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 2116 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(), ED_uvedit_deselect_all(), 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, BMesh::uv_select_sync_valid, and WM_event_add_notifier().
Referenced by MESH_OT_select_all().
|
static |
Definition at line 5603 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(), EDBM_uvselect_clear(), 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 6089 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(), EDBM_uvselect_clear(), AttributeOwner::from_id(), Mesh::id, ID_RECALC_SELECT, name, 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 6046 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, name, and CustomDataLayer::type.
Referenced by MESH_OT_select_by_attribute().
|
static |
Definition at line 4053 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(), EDBM_uvselect_clear(), 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 4183 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(), EDBM_uvselect_clear(), 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 346 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 3172 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 4491 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 3534 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(), EDBM_uvselect_clear(), 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 5176 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 3777 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(), EDBM_uvselect_clear(), 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 3977 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 3894 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 2040 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 4260 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(), EDBM_uvselect_clear(), 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 4365 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(), EDBM_uvselect_clear(), ID_RECALC_SELECT, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, wmOperator::reports, 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 140 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 245 of file editmesh_select.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), bm, BM_EDGE, BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_FACE, BM_FACES_OF_MESH, BM_ITER_MESH, BM_VERT, BM_VERTS_OF_MESH, EditMeshSymmetryHelper::create_if_needed(), e, EDBM_select_mirrored_extend_all(), EDBM_selectmode_flush(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, and v.
Referenced by edbm_hide_exec(), and EDBM_select_mirrored_extend_all().
|
static |
Definition at line 1542 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 1581 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 1555 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_FLAG_SELECT_SYNC.
Referenced by MESH_OT_select_mode().
|
static |
Definition at line 4443 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 5276 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(), EDBM_uvselect_clear(), 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 5019 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(), EDBM_uvselect_clear(), 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 2231 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_edge_uvselect_set_pick(), BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_face_uvselect_set_pick(), BM_mesh_active_face_set(), BM_select_history_remove, BM_select_history_store, BM_vert_select_set(), BM_vert_uvselect_set_pick(), C, CD_PROP_FLOAT2, CustomData_get_offset(), 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, Scene::toolsettings, unified_findnearest(), ToolSettings::uv_sticky, UV_STICKY_LOCATION, 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 5386 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_select_flush_from_verts(), EDBM_selectmode_flush(), EDBM_uvselect_clear(), 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 5091 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(), EDBM_uvselect_clear(), 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 1453 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 2982 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 2972 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.
|
static |
Definition at line 5522 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(), EDBM_uvselect_clear(), 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 5501 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 2567 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_select_flush_from_verts(), 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 2927 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 3059 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 3042 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 2504 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_mesh_uvselect_mode_flush_update(), BM_vert_select_set(), BM_VERTS_OF_MESH, CD_PROP_FLOAT2, CustomData_get_offset(), EDBM_select_flush_from_verts(), EDBM_selectmode_flush(), edbm_strip_selections(), BMesh::ldata, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and BMesh::uv_select_sync_valid.
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 2873 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 2843 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(), and uv_rip_exec().
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 an operation would cause errors when applied in the wrong selection mode.
Definition at line 2904 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 2678 of file editmesh_select.cc.
References bitscan_forward_i(), BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, BMEditMesh::bm, BM_mesh_select_is_mixed(), C, CTX_data_edit_object(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), ED_uvedit_sync_uvselect_ensure_if_needed(), EDBM_selectmode_convert(), EDBM_selectmode_set(), EDBM_uvselect_clear(), 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, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, WM_event_add_notifier(), and WM_main_add_notifier().
Referenced by edbm_select_mode_exec().
|
static |
Definition at line 2468 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 1170 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 1189 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(), 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, UNUSED_VARS, v, and ViewContext::v3d.
| BMVert * EDBM_vert_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 542 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 440 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 77 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 5074 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 600 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 556 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 816 of file editmesh_select.cc.
References data, and len_manhattan_v2v2().
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 847 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 407 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 115 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 5829 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 5892 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 2084 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 5140 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 5240 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 1792 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 2057 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 6025 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 5808 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 2163 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 5703 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 6147 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 4148 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 4228 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 2207 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 4515 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 3740 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 4012 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 4341 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 4417 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 1610 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 4467 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 5349 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 5057 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 5477 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 1521 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 5574 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 1872 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(), EDBM_uvselect_clear(), 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 1834 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 1825 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 1816 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 3500 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 3471 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 3527 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 3421 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 3491 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 1037 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 5869 of file editmesh_select.cc.
References b, and BM_edge_face_count().
Referenced by loop_find_regions().
|
static |
Definition at line 4819 of file editmesh_select.cc.
References BLI_assert, bm, BMEditMesh::bm, BM_EDGE, bm_edge_is_select_isolated(), bm_edges_form_cyclic_chain(), 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_form_cyclic_chain(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_toolflags_ensure(), BM_VERT, bm_verts_form_cyclic_chain(), 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, walker_deselect_nth_edge_chain(), walker_deselect_nth_face_chain(), walker_deselect_nth_vertex_chain(), and WM_operator_properties_checker_interval_test().
Referenced by edbm_deselect_nth().
|
static |
Definition at line 4751 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_EDGE, BM_edge_other_vert(), BM_elem_flag_enable, BM_elem_flag_test, BM_elem_select_set(), BM_ELEM_TAG, BM_mesh_elem_hflag_disable_all(), bm_step_over_vert_to_next_selected_edge_in_chain(), ELEM, BMEdge::v1, and WM_operator_properties_checker_interval_test().
Referenced by walker_deselect_nth().
|
static |
Definition at line 4784 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_elem_select_set(), BM_ELEM_TAG, BM_FACE, BM_mesh_elem_hflag_disable_all(), bm_step_over_shared_edge_to_next_selected_face_in_chain(), ELEM, and WM_operator_properties_checker_interval_test().
Referenced by walker_deselect_nth().
|
static |
Definition at line 4718 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_elem_select_set(), BM_ELEM_TAG, BM_mesh_elem_hflag_disable_all(), bm_step_to_next_selected_vert_in_chain(), BM_VERT, ELEM, and WM_operator_properties_checker_interval_test().
Referenced by walker_deselect_nth().
|
static |
Definition at line 1690 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 1655 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 107 of file editmesh_select.cc.
Referenced by MESH_OT_select_by_pole_count(), and MESH_OT_select_face_by_sides().