Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_array.h"
#include "BLI_bitmap.h"
#include "BLI_heap.h"
#include "BLI_linklist.h"
#include "BLI_linklist_stack.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_math_bits.h"
#include "BLI_rand.h"
#include "BLI_string.h"
#include "BLI_utildefines_stack.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_deform.h"
#include "BKE_editmesh.h"
#include "BKE_layer.h"
#include "BKE_report.h"
#include "WM_api.h"
#include "WM_types.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
#include "ED_transform.h"
#include "ED_view3d.h"
#include "BLT_translation.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "UI_resources.h"
#include "bmesh_tools.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "DRW_select_buffer.h"
#include "mesh_intern.h"
Go to the source code of this file.
Classes | |
struct | NearestVertUserData_Hit |
struct | NearestVertUserData |
struct | NearestEdgeUserData_ZBuf |
struct | NearestEdgeUserData_Hit |
struct | NearestEdgeUserData |
struct | NearestFaceUserData_ZBuf |
struct | NearestFaceUserData_Hit |
struct | NearestFaceUserData |
struct | BMFaceLink |
struct | DelimitData |
Macros | |
#define | BMO_ELE_TAG 1 |
#define | USE_DELAY_FACE_GROUP_COST_CALC |
Functions | |
Select Mirror | |
void | EDBM_select_mirrored (BMEditMesh *em, const Mesh *me, const int axis, const bool extend, int *r_totmirr, int *r_totfail) |
Back-Buffer OpenGL Selection | |
static BMElem * | edbm_select_id_bm_elem_get (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, Base **bases, const uint bases_len, bool use_boundary_vertices, bool use_boundary_edges, int *r_base_index_vert, int *r_base_index_edge, int *r_base_index_face, struct BMVert **r_eve, struct BMEdge **r_eed, struct BMFace **r_efa) |
Select Similar Region Operator | |
static int | edbm_select_similar_region_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_similar_region (wmOperatorType *ot) |
Select Mode Vert/Edge/Face Operator | |
static int | edbm_select_mode_exec (bContext *C, wmOperator *op) |
static int | edbm_select_mode_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
static char * | edbm_select_mode_get_description (struct bContext *UNUSED(C), struct wmOperatorType *UNUSED(op), struct PointerRNA *values) |
void | MESH_OT_select_mode (wmOperatorType *ot) |
Select Loop (Non Modal) Operator | |
static void | walker_select_count (BMEditMesh *em, int walkercode, void *start, int r_count_by_select[2]) |
static void | walker_select (BMEditMesh *em, int walkercode, void *start, const bool select) |
static int | edbm_loop_multiselect_exec (bContext *C, wmOperator *op) |
void | MESH_OT_loop_multi_select (wmOperatorType *ot) |
Select Loop (Cursor Pick) Operator | |
static void | mouse_mesh_loop_face (BMEditMesh *em, BMEdge *eed, bool select, bool select_clear) |
static void | mouse_mesh_loop_edge_ring (BMEditMesh *em, BMEdge *eed, bool select, bool select_clear) |
static void | mouse_mesh_loop_edge (BMEditMesh *em, BMEdge *eed, bool select, bool select_clear, bool select_cycle) |
static bool | mouse_mesh_loop (bContext *C, const int mval[2], bool extend, bool deselect, bool toggle, bool ring) |
static int | edbm_select_loop_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
void | MESH_OT_loop_select (wmOperatorType *ot) |
void | MESH_OT_edgering_select (wmOperatorType *ot) |
(De)Select All Operator | |
static int | edbm_select_all_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_all (wmOperatorType *ot) |
Select Interior Faces Operator | |
static int | edbm_faces_select_interior_exec (bContext *C, wmOperator *UNUSED(op)) |
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 struct SelectPick_Params *params) |
Select Mode Utilities | |
static void | edbm_strip_selections (BMEditMesh *em) |
void | EDBM_selectmode_set (BMEditMesh *em) |
void | EDBM_selectmode_convert (BMEditMesh *em, const short selectmode_old, const short selectmode_new) |
bool | EDBM_selectmode_toggle_multi (bContext *C, const short selectmode_new, const int action, const bool use_extend, const bool use_expand) |
bool | EDBM_selectmode_set_multi (bContext *C, const short selectmode) |
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 (struct Base **bases, const uint bases_len) |
bool | EDBM_mesh_deselect_all_multi (struct bContext *C) |
bool | EDBM_selectmode_disable_multi_ex (Scene *scene, struct Base **bases, const uint bases_len, const short selectmode_disable, const short selectmode_fallback) |
bool | EDBM_selectmode_disable_multi (struct 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 *UNUSED(user_data)) |
static bool | bm_interior_edge_is_manifold_except_face_index (BMEdge *e, int face_index, BMLoop *r_l_pair[2]) |
static float | bm_interior_face_group_calc_cost (ListBase *ls, const float *edge_lengths) |
bool | EDBM_select_interior_faces (BMEditMesh *em) |
Select Linked (Cursor Pick) Operator | |
static int | edbm_select_linked_pick_exec (bContext *C, wmOperator *op) |
static void | edbm_select_linked_pick_ex (BMEditMesh *em, BMElem *ele, bool sel, int delimit) |
static int | edbm_select_linked_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
void | MESH_OT_select_linked_pick (wmOperatorType *ot) |
Select Face by Sides Operator | |
static int | edbm_select_face_by_sides_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_face_by_sides (wmOperatorType *ot) |
Select Loose Operator | |
static int | edbm_select_loose_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_loose (wmOperatorType *ot) |
Select Mirror Operator | |
static int | edbm_select_mirror_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_mirror (wmOperatorType *ot) |
Select More Operator | |
static int | edbm_select_more_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_more (wmOperatorType *ot) |
static int | edbm_select_less_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_less (wmOperatorType *ot) |
Select N'th Operator | |
static bool | bm_edge_is_select_isolated (BMEdge *e) |
static void | walker_deselect_nth (BMEditMesh *em, const struct 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 struct CheckerIntervalParams *op_params) |
static int | edbm_select_nth_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_nth (wmOperatorType *ot) |
void | em_setup_viewcontext (bContext *C, ViewContext *vc) |
Select Sharp Edges Operator | |
static int | edbm_select_sharp_edges_exec (bContext *C, wmOperator *op) |
void | MESH_OT_edges_select_sharp (wmOperatorType *ot) |
Select Linked Flat Faces Operator | |
static int | edbm_select_linked_flat_faces_exec (bContext *C, wmOperator *op) |
void | MESH_OT_faces_select_linked_flat (wmOperatorType *ot) |
Select Non-Manifold Operator | |
static int | edbm_select_non_manifold_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_non_manifold (wmOperatorType *ot) |
Select Random Operator | |
static int | edbm_select_random_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_random (wmOperatorType *ot) |
Select Ungrouped Operator | |
static bool | edbm_select_ungrouped_poll (bContext *C) |
static int | edbm_select_ungrouped_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_ungrouped (wmOperatorType *ot) |
Select Region to Loop Operator | |
static int | edbm_region_to_loop_exec (bContext *C, wmOperator *UNUSED(op)) |
void | MESH_OT_region_to_loop (wmOperatorType *ot) |
Select Loop to Region Operator | |
static int | loop_find_region (BMLoop *l, int flag, GSet *visit_face_set, BMFace ***region_out) |
static int | verg_radial (const void *va, const void *vb) |
static int | loop_find_regions (BMEditMesh *em, const bool selbigger) |
static int | edbm_loop_to_region_exec (bContext *C, wmOperator *op) |
void | MESH_OT_loop_to_region (wmOperatorType *ot) |
Find Nearest Vert/Edge/Face | |
| |
#define | FIND_NEAR_SELECT_BIAS 5 |
#define | FIND_NEAR_CYCLE_THRESHOLD_MIN 3 |
static void | findnearestvert__doClosest (void *userData, 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, Base **bases, uint bases_len, uint *r_base_index) |
BMVert * | EDBM_vert_find_nearest (ViewContext *vc, float *dist_px_manhattan_p) |
static void | find_nearest_edge_center__doZBuf (void *userData, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int UNUSED(index)) |
static void | find_nearest_edge__doClosest (void *userData, 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, Base **bases, uint bases_len, uint *r_base_index) |
BMEdge * | EDBM_edge_find_nearest (ViewContext *vc, float *dist_px_manhattan_p) |
static void | find_nearest_face_center__doZBuf (void *userData, BMFace *efa, const float screen_co[2], int UNUSED(index)) |
static void | findnearestface__doClosest (void *userData, 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, Base **bases, uint bases_len, uint *r_base_index) |
BMFace * | EDBM_face_find_nearest (ViewContext *vc, float *dist_px_manhattan_p) |
static bool | unified_findnearest (ViewContext *vc, Base **bases, const uint bases_len, int *r_base_index, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa) |
bool | EDBM_unified_findnearest (ViewContext *vc, Base **bases, const uint bases_len, int *r_base_index, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa) |
Select Linked Operator | |
#define | USE_LINKED_SELECT_DEFAULT_HACK |
static bool | select_linked_delimit_test (BMEdge *e, int delimit, const struct DelimitData *delimit_data) |
static int | select_linked_delimit_default_from_op (wmOperator *op, const int select_mode) |
static void | select_linked_delimit_validate (BMesh *bm, int *delimit) |
static void | select_linked_delimit_begin (BMesh *bm, int delimit) |
static void | select_linked_delimit_end (BMEditMesh *em) |
static int | edbm_select_linked_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_linked (wmOperatorType *ot) |
Select Axis Operator | |
enum | { SELECT_AXIS_POS = 0 , SELECT_AXIS_NEG = 1 , SELECT_AXIS_ALIGN = 2 } |
static int | edbm_select_axis_exec (bContext *C, wmOperator *op) |
void | MESH_OT_select_axis (wmOperatorType *ot) |
#define BMO_ELE_TAG 1 |
Definition at line 61 of file editmesh_select.c.
#define FIND_NEAR_CYCLE_THRESHOLD_MIN 3 |
Definition at line 206 of file editmesh_select.c.
#define FIND_NEAR_SELECT_BIAS 5 |
Definition at line 205 of file editmesh_select.c.
#define USE_DELAY_FACE_GROUP_COST_CALC |
#define USE_LINKED_SELECT_DEFAULT_HACK |
Definition at line 3113 of file editmesh_select.c.
anonymous enum |
Enumerator | |
---|---|
SELECT_AXIS_POS | |
SELECT_AXIS_NEG | |
SELECT_AXIS_ALIGN |
Definition at line 4872 of file editmesh_select.c.
Check if we're connected to another selected edge.
Definition at line 4112 of file editmesh_select.c.
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 2795 of file editmesh_select.c.
References BM_elem_index_get, e, ELEM, BMLoop::f, and BMLoop::radial_next.
Referenced by EDBM_select_interior_faces().
Calculate the cost of the face group. A higher value means it's more likely to remove first.
Definition at line 2819 of file editmesh_select.c.
References angle(), angle_normalized_v3v3(), blender::compositor::area(), 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, LISTBASE_FOREACH, BMLoop::next, BMFace::no, and BMLoop::radial_next.
Referenced by EDBM_select_interior_faces().
Definition at line 2788 of file editmesh_select.c.
References BM_elem_flag_test, BM_ELEM_TAG, BMLoop::e, and l.
Referenced by EDBM_select_interior_faces().
|
static |
Definition at line 4220 of file editmesh_select.c.
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, NULL, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and v.
Referenced by edbm_deselect_nth().
bool EDBM_deselect_by_material | ( | BMEditMesh * | em, |
const short | index, | ||
const bool | select | ||
) |
Definition at line 2639 of file editmesh_select.c.
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 4273 of file editmesh_select.c.
References deselect_nth_active(), e, BMVert::head, 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 613 of file editmesh_select.c.
References BKE_view_layer_base_find(), EDBM_edge_find_nearest_ex(), NULL, ViewContext::obact, 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, | ||
Base ** | bases, | ||
uint | bases_len, | ||
uint * | r_base_index | ||
) |
Definition at line 480 of file editmesh_select.c.
References BMEditMesh::bm, 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(), if(), NearestEdgeUserData_Hit::index, mesh_foreachScreenEdge(), ViewContext::mval, NULL, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, SCE_SELECT_EDGE, UINT_MAX, ViewContext::v3d, V3D_PROJ_TEST_CLIP_BB, V3D_PROJ_TEST_CLIP_CONTENT_DEFAULT, V3D_PROJ_TEST_CLIP_DEFAULT, NearestEdgeUserData::vc, and XRAY_FLAG_ENABLED.
Referenced by EDBM_edge_find_nearest(), gizmo_preselect_edgering_test_select(), loopcut_mouse_move(), and unified_findnearest().
BMFace* EDBM_face_find_nearest | ( | ViewContext * | vc, |
float * | dist_px_manhattan_p | ||
) |
Definition at line 832 of file editmesh_select.c.
References BKE_view_layer_base_find(), EDBM_face_find_nearest_ex(), NULL, ViewContext::obact, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest(), and knife_find_closest_face().
BMFace* EDBM_face_find_nearest_ex | ( | struct ViewContext * | vc, |
float * | dist_px_manhattan, | ||
float * | r_dist_center, | ||
bool | use_zbuf_single_px, | ||
bool | use_select_bias, | ||
bool | use_cycle, | ||
struct BMFace ** | r_efa_zbuf, | ||
struct Base ** | bases, | ||
uint | bases_len, | ||
uint * | r_base_index | ||
) |
use_zbuf_single_px | Special case, when using the back-buffer selection, only use the pixel at vc->mval instead of using dist_px_manhattan_p to search over a larger region. This is needed because historically selection worked this way for a long time, however it's reasonable that some callers might want to expand the region too. So add an argument to do this, |
Definition at line 692 of file editmesh_select.c.
References BMEditMesh::bm, 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(), if(), NearestFaceUserData_Hit::index, mesh_foreachScreenFace(), ViewContext::mval, NULL, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, SCE_SELECT_FACE, 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 1972 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_select_interior_faces(), ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, and WM_event_add_notifier().
Referenced by MESH_OT_select_interior_faces().
|
static |
Definition at line 1512 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_selectmode_flush(), ID_RECALC_SELECT, MEM_freeN, MEM_mallocN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, walker_select(), and WM_event_add_notifier().
Referenced by MESH_OT_loop_multi_select().
|
static |
Definition at line 5254 of file editmesh_select.c.
References Freestyle::a, usdtokens::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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, loop_find_regions(), MEM_freeN, 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().
Definition at line 2719 of file editmesh_select.c.
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(), MEM_freeN, ViewContext::v3d, and ViewContext::view_layer.
Definition at line 2700 of file editmesh_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_SELECT, Object::data, DEG_id_tag_update(), EDBM_flag_disable_all(), ID_RECALC_SELECT, Base::object, and BMesh::totvertsel.
Referenced by EDBM_mesh_deselect_all_multi().
|
static |
Definition at line 5024 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), BMLoop::e, e, EDBM_flag_disable_all(), EDBM_selectmode_set(), EDBM_selectmode_to_scene(), BMLoop::f, Object::id, ID_RECALC_GEOMETRY, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMEditMesh::selectmode, BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_region_to_loop().
|
static |
Definition at line 1904 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BMEditMesh::bm, BM_ELEM_SELECT, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_flag_enable_all(), EDBM_select_swap(), EDBM_selectmode_flush(), ID_RECALC_SELECT, MEM_freeN, 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 4878 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode, BMEditMesh::bm, 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, BMVert::co, CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region_view3d(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), dot_v3v3(), ED_transform_calc_orientation_from_type_ex(), EDBM_selectmode_flush(), fabsf, ID_RECALC_SELECT, MEM_freeN, mul_v3_m4v3(), NC_GEOM, ND_DATA, NULL, Object::obmat, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, wmOperator::reports, RNA_enum_get(), RNA_float_get(), RPT_WARNING, scene, SELECT_AXIS_ALIGN, SELECT_AXIS_NEG, SELECT_AXIS_POS, KDL::sign(), BMesh::totvert, BMesh::totvertsel, v, V3D_AROUND_ACTIVE, and WM_event_add_notifier().
Referenced by MESH_OT_select_axis().
|
static |
Definition at line 3754 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_assert, BMEditMesh::bm, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, BMFace::len, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_get(), select(), type, and WM_event_add_notifier().
Referenced by MESH_OT_select_face_by_sides().
|
static |
Definition at line 166 of file editmesh_select.c.
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(), NULL, Base::object, 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 2869 of file editmesh_select.c.
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(), BMEditMesh::bm, bm, BM_EDGE, BM_edge_calc_length(), BM_edge_face_count_is_over, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_index_get, BM_elem_index_set, BM_ELEM_TAG, BM_FACE, BM_face_at_index(), BM_face_calc_area(), BM_FACE_FIRST_LOOP, BM_face_select_set(), BM_FACES_OF_MESH, bm_interior_edge_is_manifold_except_face_index(), bm_interior_face_group_calc_cost(), bm_interior_loop_filter_fn(), BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_mesh_calc_face_groups(), BM_mesh_elem_table_ensure(), BMLoop::e, e, ELEM, BMesh::elem_index_dirty, BMLoop::f, BMFaceLink::face, LISTBASE_FOREACH, MEM_callocN, MEM_freeN, MEM_mallocN, BMLoop::next, NULL, POINTER_AS_INT, POINTER_FROM_INT, BMLoop::radial_next, STACK_CLEAR, STACK_DECLARE, STACK_INIT, STACK_PUSH, STACK_SIZE, SWAP, BMesh::totedge, and BMesh::totface.
Referenced by edbm_faces_select_interior_exec().
|
static |
Definition at line 4059 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BMEditMesh::bm, bm, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_select_less(), ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and WM_event_add_notifier().
Referenced by MESH_OT_select_less().
|
static |
Definition at line 3234 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_assert, BMEditMesh::bm, 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(), Object::data, DEG_id_tag_update(), BMLoop::e, e, EDBM_selectmode_flush(), BMElem::head, BMHeader::htype, ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, BMLoop::prev, wmOperator::ptr, RNA_enum_get(), SCE_SELECT_EDGE, SCE_SELECT_VERTEX, scene, 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 4451 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BLI_assert, BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, BLI_LINKSTACK_SIZE, BMEditMesh::bm, 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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), dot_v3v3(), BMLoop::f, ID_RECALC_SELECT, l, MEM_freeN, NC_GEOM, ND_SELECT, BMFace::no, OPERATOR_FINISHED, wmOperator::ptr, RNA_float_get(), BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_faces_select_linked_flat().
|
static |
Definition at line 3479 of file editmesh_select.c.
References BLI_assert, BMEditMesh::bm, 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 3679 of file editmesh_select.c.
References BKE_editmesh_from_object(), C, 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, NULL, 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 3594 of file editmesh_select.c.
References BKE_view_layer_array_from_bases_in_edit_mode, BLI_assert, BMEditMesh::bm, 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, MEM_freeN, ViewContext::mval, NC_GEOM, ND_SELECT, NULL, Base::object, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), RNA_int_set(), RNA_struct_property_is_set(), ViewContext::scene, select_linked_delimit_default_from_op(), ToolSettings::selectmode, Scene::toolsettings, BMesh::totedge, unified_findnearest(), ViewContext::v3d, view3d_operator_needs_opengl(), ViewContext::view_layer, and WM_event_add_notifier().
Referenced by MESH_OT_select_linked_pick().
|
static |
Definition at line 1829 of file editmesh_select.c.
References C, mouse_mesh_loop(), wmEvent::mval, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), and view3d_operator_needs_opengl().
Referenced by MESH_OT_edgering_select(), and MESH_OT_loop_select().
|
static |
Definition at line 3845 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BMEditMesh::bm, bm, BM_edge_is_boundary(), BM_edge_is_wire(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_vert_select_set(), BM_VERTS_OF_MESH, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), BMVert::e, BMLoop::e, EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, l, MEM_freeN, 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 3935 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), ED_mesh_report_mirror_ex(), EDBM_select_mirrored(), EDBM_selectmode_flush(), ID_RECALC_SELECT, MEM_freeN, 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 * | me, | ||
const int | axis, | ||
const bool | extend, | ||
int * | r_totmirr, | ||
int * | r_totfail | ||
) |
Definition at line 67 of file editmesh_select.c.
References BMEditMesh::bm, 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, BMesh::selectmode, and v.
Referenced by edbm_select_mirror_exec().
|
static |
Definition at line 1340 of file editmesh_select.c.
References C, EDBM_selectmode_toggle_multi(), OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), and type.
Referenced by edbm_select_mode_invoke(), and MESH_OT_select_mode().
|
static |
Definition at line 1379 of file editmesh_select.c.
References BLI_strdup(), NULL, RNA_enum_get(), RNA_struct_property_is_set(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, TIP_, and type.
Referenced by MESH_OT_select_mode().
|
static |
Definition at line 1353 of file editmesh_select.c.
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 4009 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BMEditMesh::bm, bm, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_select_more(), ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and WM_event_add_notifier().
Referenced by MESH_OT_select_more().
|
static |
Definition at line 4557 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_report(), 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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), e, EDBM_flag_disable_all(), EDBM_selectmode_flush(), ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, wmOperator::reports, RNA_boolean_get(), RPT_ERROR, SCE_SELECT_FACE, BMEditMesh::selectmode, v, and WM_event_add_notifier().
Referenced by MESH_OT_select_non_manifold().
|
static |
Definition at line 4297 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data, BMEditMesh::bm, C, CTX_data_view_layer(), CTX_wm_view3d(), Object::data, edbm_deselect_nth(), EDBM_update(), MEM_freeN, OPERATOR_CANCELLED, OPERATOR_FINISHED, 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 struct SelectPick_Params * | params | ||
) |
Definition at line 2019 of file editmesh_select.c.
References Object::actcol, Object::actfmap, ViewLayer::basact, BKE_editmesh_from_object(), BKE_view_layer_array_from_bases_in_edit_mode, BLI_assert_unreachable, BLI_listbase_count_at_most(), BLI_listbase_is_empty(), BMEditMesh::bm, BM_edge_select_set(), BM_ELEM_CD_GET_VOID_P, 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, CD_FACEMAP, CustomData_get_offset(), Object::data, DEG_id_tag_update(), ED_object_base_activate(), ED_view3d_viewcontext_init_object(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ViewContext::em, em_setup_viewcontext(), Object::fmaps, ID_RECALC_SELECT, map, BMEditMesh::mat_nr, BMFace::mat_nr, MEM_freeN, ViewContext::mval, NC_GEOM, NC_MATERIAL, ND_SELECT, ND_SHADING_LINKS, NULL, ViewContext::obedit, Base::object, params, BMesh::pdata, 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 4664 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_deselect_flush(), EDBM_selectmode_flush(), Object::id, ID_RECALC_SELECT, MEM_freeN, MEM_mallocN, ID::name, NC_GEOM, ND_SELECT, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), SCE_SELECT_EDGE, SCE_SELECT_VERTEX, seed, SEL_SELECT, select(), BMEditMesh::selectmode, BMesh::totedge, BMesh::totface, BMesh::totvert, WM_event_add_notifier(), and WM_operator_properties_select_random_seed_increment_get().
Referenced by MESH_OT_select_random().
|
static |
Definition at line 4369 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), dot_v3v3(), e, EDBM_selectmode_convert(), EDBM_selectmode_flush(), BMLoop::f, ID_RECALC_SELECT, MEM_freeN, 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 1249 of file editmesh_select.c.
References BKE_editmesh_from_object(), BKE_report(), BLI_pophead(), BMEditMesh::bm, 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(), LinkData::data, Object::data, DEG_id_tag_update(), faces, ID_RECALC_SELECT, MEM_freeN, MEM_mallocN, NC_GEOM, ND_SELECT, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, RPT_WARNING, BMesh::totfacesel, and WM_event_add_notifier().
Referenced by MESH_OT_select_similar_region().
void EDBM_select_swap | ( | BMEditMesh * | em | ) |
Definition at line 2667 of file editmesh_select.c.
References BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and BMesh::selectmode.
Referenced by edbm_select_all_exec(), and uv_select_all_perform().
void EDBM_select_toggle_all | ( | BMEditMesh * | em | ) |
Definition at line 2657 of file editmesh_select.c.
References BMEditMesh::bm, BM_ELEM_SELECT, EDBM_flag_disable_all(), EDBM_flag_enable_all(), BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by uv_select_all_perform().
|
static |
Definition at line 4797 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), CustomData_get_offset(), Object::data, DEG_id_tag_update(), MDeformVert::dw, EDBM_flag_disable_all(), EDBM_selectmode_flush(), ELEM, ID_RECALC_SELECT, MEM_freeN, NC_GEOM, ND_SELECT, NULL, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), BMesh::totvertsel, BMesh::vdata, and WM_event_add_notifier().
Referenced by MESH_OT_select_ungrouped().
Definition at line 4776 of file editmesh_select.c.
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 | ( | struct 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 2328 of file editmesh_select.c.
References BMEditMesh::bm, bm, BM_edge_is_all_face_flag_test(), BM_edge_is_any_vert_flag_test(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_face_is_any_edge_flag_test(), BM_face_is_any_vert_flag_test(), BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_deselect_flush(), BM_vert_is_all_edge_flag_test(), BM_vert_is_all_face_flag_test(), BM_vert_select_set(), BM_VERTS_OF_MESH, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_select_sharp_edges_exec(), and EDBM_selectmode_toggle_multi().
bool EDBM_selectmode_disable | ( | struct Scene * | scene, |
struct 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 2609 of file editmesh_select.c.
References EDBM_selectmode_set(), NC_SCENE, ND_TOOLSETTINGS, scene, 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 | ( | struct bContext * | C, |
const short | selectmode_disable, | ||
const short | selectmode_fallback | ||
) |
Definition at line 2751 of file editmesh_select.c.
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(), MEM_freeN, NULL, scene, and ViewContext::view_layer.
Referenced by ringsel_finish().
bool EDBM_selectmode_disable_multi_ex | ( | Scene * | scene, |
struct Base ** | bases, | ||
const uint | bases_len, | ||
const short | selectmode_disable, | ||
const short | selectmode_fallback | ||
) |
Definition at line 2732 of file editmesh_select.c.
References BKE_editmesh_from_object(), EDBM_selectmode_disable(), Base::object, and scene.
Referenced by edbm_offset_edgeloop_exec(), and EDBM_selectmode_disable_multi().
void EDBM_selectmode_set | ( | struct BMEditMesh * | em | ) |
When switching select mode, makes sure selection is consistent for editing also for paranoia checks to make sure edge or face mode works.
Definition at line 2274 of file editmesh_select.c.
References BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, EDBM_select_flush(), EDBM_selectmode_flush(), edbm_strip_selections(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_region_to_loop_exec(), EDBM_selectmode_disable(), edbm_selectmode_ensure(), EDBM_selectmode_set_multi(), and EDBM_selectmode_toggle_multi().
User access this.
Definition at line 2560 of file editmesh_select.c.
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_view_layer(), CTX_wm_view3d(), Object::data, DEG_id_tag_update(), EDBM_selectmode_set(), Scene::id, ID_RECALC_COPY_ON_WRITE, ID_RECALC_SELECT, MEM_freeN, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, NULL, OB_MESH, scene, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, Object::type, WM_event_add_notifier(), and WM_main_add_notifier().
Referenced by object_mode_set_exec(), and transformops_loopsel_hack().
bool EDBM_selectmode_toggle_multi | ( | struct bContext * | C, |
short | selectmode_new, | ||
int | action, | ||
bool | use_extend, | ||
bool | use_expand | ||
) |
User facing function, does notification.
Definition at line 2434 of file editmesh_select.c.
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(), Object::data, DEG_id_tag_update(), EDBM_selectmode_convert(), EDBM_selectmode_set(), highest_order_bit_s(), Scene::id, ID_RECALC_COPY_ON_WRITE, ID_RECALC_SELECT, MEM_freeN, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, NULL, OB_MESH, ret, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, scene, 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 2238 of file editmesh_select.c.
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, |
Base ** | bases, | ||
const uint | bases_len, | ||
int * | r_base_index, | ||
BMVert ** | r_eve, | ||
BMEdge ** | r_eed, | ||
BMFace ** | r_efa | ||
) |
Definition at line 982 of file editmesh_select.c.
References unified_findnearest().
Referenced by edbm_shortest_path_pick_invoke(), and mouse_mesh_loop().
bool EDBM_unified_findnearest_from_raycast | ( | ViewContext * | vc, |
Base ** | bases, | ||
const uint | bases_len, | ||
bool | use_boundary_vertices, | ||
bool | use_boundary_edges, | ||
int * | r_base_index_vert, | ||
int * | r_base_index_edge, | ||
int * | r_base_index_face, | ||
struct BMVert ** | r_eve, | ||
struct BMEdge ** | r_eed, | ||
struct BMFace ** | r_efa | ||
) |
Definition at line 1002 of file editmesh_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, bm, BM_edge_is_boundary(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_face_calc_center_median(), BM_face_calc_center_median_vcos(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_index_ensure(), BM_VERT, BM_VERTS_OF_MESH, BMVert::co, copy_m3_m4(), Object::data, DEG_get_evaluated_id(), 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(), Mesh_Runtime::edit_data, float(), invert_m3(), mid_v3_v3v3(), mul_m4_v3(), mul_v3_m4v3(), ViewContext::mval, NULL, Base::object, Object::obmat, point, ViewContext::region, Mesh::runtime, UNPACK2, UNUSED_VARS, v, ViewContext::v3d, and EditMeshData::vertexCos.
Referenced by gizmo_preselect_elem_test_select().
BMVert* EDBM_vert_find_nearest | ( | ViewContext * | vc, |
float * | dist_px_manhattan_p | ||
) |
Definition at line 359 of file editmesh_select.c.
References BKE_view_layer_base_find(), EDBM_vert_find_nearest_ex(), NULL, ViewContext::obact, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest().
BMVert* EDBM_vert_find_nearest_ex | ( | struct ViewContext * | vc, |
float * | dist_px_manhattan_p, | ||
bool | use_select_bias, | ||
bool | use_cycle, | ||
struct Base ** | bases, | ||
uint | bases_len, | ||
uint * | r_base_index | ||
) |
Nearest vertex under the cursor.
dist_px_manhattan_p | (in/out), minimal distance to the nearest and at the end, actual distance. |
use_select_bias |
|
use_cycle | Cycle over elements within FIND_NEAR_CYCLE_THRESHOLD_MIN in order of index. |
Definition at line 257 of file editmesh_select.c.
References BMEditMesh::bm, 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(), if(), NearestVertUserData_Hit::index, mesh_foreachScreenVert(), ViewContext::mval, NULL, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, RV3D_CLIPPING_ENABLED, SCE_SELECT_VERTEX, 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().
void em_setup_viewcontext | ( | bContext * | C, |
ViewContext * | vc | ||
) |
Definition at line 4353 of file editmesh_select.c.
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 416 of file editmesh_select.c.
References BM_elem_flag_test, BM_ELEM_SELECT, BMVert::co, copy_v2_v2(), data, NearestEdgeUserData_Hit::dist_bias, ED_view3d_clipping_test(), FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, NearestEdgeUserData::hit, interp_v2_v2v2(), interp_v3_v3v3(), len_manhattan_v2v2(), line_point_factor_v2(), mid_v2_v2v2(), NULL, RV3D_CLIPPING, BMEdge::v1, and BMEdge::v2.
Referenced by EDBM_edge_find_nearest_ex().
|
static |
Definition at line 372 of file editmesh_select.c.
References data, NearestEdgeUserData_ZBuf::dist, len_manhattan_v2v2(), and mid_v2_v2v2().
Referenced by EDBM_edge_find_nearest_ex().
|
static |
Definition at line 627 of file editmesh_select.c.
References data, NearestFaceUserData_ZBuf::dist_px_manhattan, and len_manhattan_v2v2().
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 660 of file editmesh_select.c.
References BM_elem_flag_test, BM_ELEM_SELECT, data, NearestFaceUserData_Hit::dist_bias, FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, NearestFaceUserData::hit, len_manhattan_v2v2(), and NULL.
Referenced by EDBM_face_find_nearest_ex().
|
static |
Definition at line 225 of file editmesh_select.c.
References BM_elem_flag_test, BM_ELEM_SELECT, data, NearestVertUserData_Hit::dist_bias, FIND_NEAR_CYCLE_THRESHOLD_MIN, FIND_NEAR_SELECT_BIAS, NearestVertUserData::hit, len_manhattan_v2v2(), and NULL.
Referenced by EDBM_vert_find_nearest_ex().
|
static |
Definition at line 5106 of file editmesh_select.c.
References BLI_array_append, BLI_array_declare, BLI_array_free, BLI_array_len, BLI_array_pop, BLI_gset_add(), BLI_gset_insert(), BM_elem_flag_test, BM_ELEM_TAG, BM_ITER_ELEM, BM_LOOPS_OF_EDGE, BM_LOOPS_OF_FACE, BMLoop::e, BMLoop::f, l, and NULL.
Referenced by loop_find_regions().
|
static |
This function leaves faces tagged which are a part of the new region.
Definition at line 5172 of file editmesh_select.c.
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, Freestyle::c, count, BMLoop::e, e, BMLoop::f, l, loop_find_region(), MEM_freeN, MEM_mallocN, NULL, BMesh::totedgesel, and verg_radial().
Referenced by edbm_loop_to_region_exec().
void MESH_OT_edgering_select | ( | wmOperatorType * | ot | ) |
Definition at line 1872 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh_region_view3d(), edbm_select_loop_invoke(), wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_edges_select_sharp | ( | wmOperatorType * | ot | ) |
Definition at line 4415 of file editmesh_select.c.
References DEG2RADF, wmOperatorType::description, ED_operator_editmesh(), edbm_select_sharp_edges_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_float_rotation(), RNA_def_property_float_default(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_faces_select_linked_flat | ( | wmOperatorType * | ot | ) |
Definition at line 4521 of file editmesh_select.c.
References DEG2RADF, wmOperatorType::description, ED_operator_editmesh(), edbm_select_linked_flat_faces_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_float_rotation(), RNA_def_property_float_default(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_loop_multi_select | ( | wmOperatorType * | ot | ) |
Definition at line 1580 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_loop_multiselect_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_loop_select | ( | wmOperatorType * | ot | ) |
Definition at line 1845 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh_region_view3d(), edbm_select_loop_invoke(), wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_loop_to_region | ( | wmOperatorType * | ot | ) |
Definition at line 5299 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_loop_to_region_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_region_to_loop | ( | wmOperatorType * | ot | ) |
Definition at line 5085 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_region_to_loop_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_all | ( | wmOperatorType * | ot | ) |
Definition at line 1949 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_all_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_select_all().
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_axis | ( | wmOperatorType * | ot | ) |
Definition at line 4979 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_axis_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_enum(), RNA_def_float(), rna_enum_axis_xyz_items, rna_enum_transform_orientation_items, SELECT_AXIS_ALIGN, SELECT_AXIS_NEG, SELECT_AXIS_POS, wmOperatorType::srna, and V3D_ORIENT_LOCAL.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_face_by_sides | ( | wmOperatorType * | ot | ) |
Definition at line 3811 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_face_by_sides_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_enum(), RNA_def_int(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_interior_faces | ( | wmOperatorType * | ot | ) |
Definition at line 1995 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_faces_select_interior_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_less | ( | wmOperatorType * | ot | ) |
Definition at line 4085 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_less_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_linked | ( | wmOperatorType * | ot | ) |
Definition at line 3442 of file editmesh_select.c.
References BMO_DELIM_SEAM, wmOperatorType::description, ED_operator_editmesh(), edbm_select_linked_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_enum_flag(), RNA_def_property_flag(), rna_enum_mesh_delimit_mode_items, wmOperatorType::srna, and UNUSED_VARS.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_linked_pick | ( | wmOperatorType * | ot | ) |
Definition at line 3713 of file editmesh_select.c.
References BMO_DELIM_SEAM, wmOperatorType::description, ED_operator_editmesh(), edbm_select_linked_pick_exec(), edbm_select_linked_pick_invoke(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_enum_flag(), RNA_def_int(), RNA_def_property_flag(), rna_enum_mesh_delimit_mode_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_loose | ( | wmOperatorType * | ot | ) |
Definition at line 3911 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_loose_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_mirror | ( | wmOperatorType * | ot | ) |
Definition at line 3983 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_mirror_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_enum_flag(), rna_enum_axis_flag_xyz_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_mode | ( | wmOperatorType * | ot | ) |
Definition at line 1410 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_mode_exec(), edbm_select_mode_get_description(), edbm_select_mode_invoke(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::get_description, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, wmOperatorType::prop, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_enum(), RNA_def_property_flag(), rna_enum_mesh_select_mode_items, and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_more | ( | wmOperatorType * | ot | ) |
Definition at line 4035 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_more_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_non_manifold | ( | wmOperatorType * | ot | ) |
Definition at line 4627 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_non_manifold_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_nth | ( | wmOperatorType * | ot | ) |
Definition at line 4336 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_nth_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_checker_interval().
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_random | ( | wmOperatorType * | ot | ) |
Definition at line 4752 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_random_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and WM_operator_properties_select_random().
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_similar_region | ( | wmOperatorType * | ot | ) |
Definition at line 1319 of file editmesh_select.c.
References wmOperatorType::description, ED_operator_editmesh(), edbm_select_similar_region_exec(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, and wmOperatorType::poll.
Referenced by ED_operatortypes_mesh().
void MESH_OT_select_ungrouped | ( | wmOperatorType * | ot | ) |
Definition at line 4849 of file editmesh_select.c.
References wmOperatorType::description, edbm_select_ungrouped_exec(), edbm_select_ungrouped_poll(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), and wmOperatorType::srna.
Referenced by ED_operatortypes_mesh().
|
static |
Definition at line 1660 of file editmesh_select.c.
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(), float(), ID_RECALC_SELECT, len_squared_v2v2(), MEM_freeN, mouse_mesh_loop_edge(), mouse_mesh_loop_edge_ring(), mouse_mesh_loop_face(), ViewContext::mval, NC_GEOM, ND_SELECT, NULL, ViewContext::obedit, Base::object, ViewContext::region, ViewContext::rv3d, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, 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 1622 of file editmesh_select.c.
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 1613 of file editmesh_select.c.
References BM_ELEM_SELECT, BMW_EDGERING, EDBM_flag_disable_all(), select(), and walker_select().
Referenced by mouse_mesh_loop().
|
static |
Definition at line 1604 of file editmesh_select.c.
References BM_ELEM_SELECT, BMW_FACELOOP, EDBM_flag_disable_all(), select(), and walker_select().
Referenced by mouse_mesh_loop().
Definition at line 3200 of file editmesh_select.c.
References bm, BM_EDGES_OF_MESH, BM_ITER_MESH, BM_mesh_elem_toolflags_ensure(), BMO_DELIM_UV, BMO_edge_flag_set, BMO_ELE_TAG, DelimitData::cd_loop_offset, DelimitData::cd_loop_type, CD_MLOOPUV, CustomData_get_offset(), e, BMesh::ldata, and select_linked_delimit_test().
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Gets the default from the operator fallback to own last-used value (selected based on mode)
Definition at line 3171 of file editmesh_select.c.
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 3227 of file editmesh_select.c.
References BMEditMesh::bm, bm, and BM_mesh_elem_toolflags_clear().
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Definition at line 3120 of file editmesh_select.c.
References BLI_assert, BM_edge_is_contiguous(), BM_edge_is_contiguous_loop_cd(), BM_elem_flag_test, BM_ELEM_SEAM, BM_ELEM_SMOOTH, BMO_DELIM_MATERIAL, BMO_DELIM_NORMAL, BMO_DELIM_SEAM, BMO_DELIM_SHARP, BMO_DELIM_UV, DelimitData::cd_loop_offset, DelimitData::cd_loop_type, e, BMLoop::f, BMFace::mat_nr, and BMLoop::radial_next.
Referenced by select_linked_delimit_begin().
Definition at line 3191 of file editmesh_select.c.
References bm, BMO_DELIM_UV, CD_MLOOPUV, CustomData_has_layer(), and BMesh::ldata.
Referenced by edbm_select_linked_exec(), and edbm_select_linked_pick_ex().
|
static |
Definition at line 847 of file editmesh_select.c.
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, NULL, 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().
Definition at line 5149 of file editmesh_select.c.
References Freestyle::a, usdtokens::b(), and BM_edge_face_count().
Referenced by loop_find_regions().
|
static |
Definition at line 4133 of file editmesh_select.c.
References BLI_assert, BMEditMesh::bm, 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, NULL, 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 1488 of file editmesh_select.c.
References BMEditMesh::bm, 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 1455 of file editmesh_select.c.
References BMEditMesh::bm, 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().