|
Blender V4.5
|
#include <cmath>#include <cstdlib>#include <cstring>#include "MEM_guardedalloc.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_space_types.h"#include "BLI_hash.h"#include "BLI_heap.h"#include "BLI_kdopbvh.hh"#include "BLI_kdtree.h"#include "BLI_lasso_2d.hh"#include "BLI_listbase.h"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_vector.h"#include "BLI_memarena.h"#include "BLI_polyfill_2d.h"#include "BLI_polyfill_2d_beautify.h"#include "BLI_utildefines.h"#include "BLT_translation.hh"#include "BKE_context.hh"#include "BKE_customdata.hh"#include "BKE_editmesh.hh"#include "BKE_layer.hh"#include "BKE_material.hh"#include "BKE_mesh.hh"#include "BKE_mesh_mapping.hh"#include "BKE_report.hh"#include "DEG_depsgraph.hh"#include "DEG_depsgraph_query.hh"#include "ED_image.hh"#include "ED_mesh.hh"#include "ED_screen.hh"#include "ED_select_utils.hh"#include "ED_uvedit.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "RNA_enum_types.hh"#include "WM_api.hh"#include "WM_types.hh"#include "UI_view2d.hh"#include "uvedit_intern.hh"Go to the source code of this file.
Classes | |
| struct | UVOverlapData |
Macros | |
| #define | SET_SELECTION(value) |
| #define | NEIGHBORING_FACE_IS_SEL 1 |
| #define | CURR_FACE_IS_UNSEL 2 |
Typedefs | |
| using | int2 |
Enumerations | |
| enum | eUVSelectSimilar { UV_SSIM_AREA_UV = 1000 , UV_SSIM_AREA_3D , UV_SSIM_FACE , UV_SSIM_LENGTH_UV , UV_SSIM_LENGTH_3D , UV_SSIM_MATERIAL , UV_SSIM_OBJECT , UV_SSIM_PIN , UV_SSIM_SIDES , UV_SSIM_WINDING } |
Functions | |
| static void | uv_select_all_perform_multi_ex (const Scene *scene, Span< Object * > objects, int action, const Object *ob_exclude) |
(De)Select All Operator | |
| static void | uv_select_all_perform (const Scene *scene, Object *obedit, int action) |
| static void | uv_select_all_perform_multi (const Scene *scene, Span< Object * > objects, int action) |
| bool | uvedit_select_is_any_selected (const Scene *scene, BMesh *bm) |
| bool | uvedit_select_is_any_selected_multi (const Scene *scene, const Span< Object * > objects) |
| static void | uv_select_all (const Scene *scene, BMEditMesh *em, bool select_all) |
| static void | uv_select_toggle_all (const Scene *scene, BMEditMesh *em) |
| static void | uv_select_invert (const Scene *scene, BMEditMesh *em) |
| static void | uv_select_all_perform_multi_ex (const Scene *scene, const Span< Object * > objects, int action, const Object *ob_exclude) |
| static wmOperatorStatus | uv_select_all_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_all (wmOperatorType *ot) |
Select/Tag Flushing Utils | |
Utility functions to flush the uv-selection from tags. | |
| static void | uv_select_flush_from_tag_face (const Scene *scene, Object *obedit, const bool select) |
| static void | uv_select_flush_from_tag_loop (const Scene *scene, Object *obedit, const bool select) |
| static void | uv_select_flush_from_loop_edge_flag (const Scene *scene, BMesh *bm) |
| static void | uv_select_flush_from_tag_sticky_loc_internal (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
Select Split Operator | |
| static void | uv_select_tag_update_for_object (Depsgraph *depsgraph, const ToolSettings *ts, Object *obedit) |
| static wmOperatorStatus | uv_select_split_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_split (wmOperatorType *ot) |
Active Selection Tracking | |
Currently we don't store loops in the selection history, store face/edge/vert combinations (needed for UV path selection). | |
| void | ED_uvedit_active_vert_loop_set (BMesh *bm, BMLoop *l) |
| BMLoop * | ED_uvedit_active_vert_loop_get (BMesh *bm) |
| void | ED_uvedit_active_edge_loop_set (BMesh *bm, BMLoop *l) |
| BMLoop * | ED_uvedit_active_edge_loop_get (BMesh *bm) |
Visibility and Selection Utilities | |
| char | ED_uvedit_select_mode_get (const Scene *scene) |
| void | ED_uvedit_select_sync_flush (const ToolSettings *ts, BMesh *bm, const bool select) |
| static void | uvedit_vertex_select_tagged (BMesh *bm, Scene *scene, bool select, const BMUVOffsets &offsets) |
| bool | uvedit_face_visible_test_ex (const ToolSettings *ts, const BMFace *efa) |
| bool | uvedit_face_visible_test (const Scene *scene, const BMFace *efa) |
| bool | uvedit_face_select_test_ex (const ToolSettings *ts, const BMFace *efa, const BMUVOffsets &offsets) |
| bool | uvedit_face_select_test (const Scene *scene, const BMFace *efa, const BMUVOffsets &offsets) |
| void | uvedit_face_select_set_with_sticky (const Scene *scene, BMesh *bm, BMFace *efa, const bool select, const BMUVOffsets &offsets) |
| void | uvedit_face_select_shared_vert (const Scene *scene, BMesh *bm, BMFace *efa, const bool select, const BMUVOffsets &offsets) |
| void | uvedit_face_select_set (const Scene *scene, BMesh *bm, BMFace *efa, const bool select, const BMUVOffsets &offsets) |
| Select UV Face. | |
| void | uvedit_face_select_enable (const Scene *scene, BMesh *bm, BMFace *efa, const BMUVOffsets &offsets) |
| void | uvedit_face_select_disable (const Scene *scene, BMesh *bm, BMFace *efa, const BMUVOffsets &offsets) |
| bool | uvedit_edge_select_test_ex (const ToolSettings *ts, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_edge_select_test (const Scene *scene, const BMLoop *l, const BMUVOffsets &offsets) |
| void | uvedit_edge_select_set_with_sticky (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
| void | uvedit_edge_select_shared_vert (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const int sticky_flag, const BMUVOffsets &offsets) |
| void | uvedit_edge_select_set_noflush (const Scene *scene, BMLoop *l, const bool select, const int sticky_flag, const BMUVOffsets &offsets) |
| void | uvedit_edge_select_set (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
| Select UV Edge. | |
| void | uvedit_edge_select_enable (const Scene *scene, BMesh *bm, BMLoop *l, const BMUVOffsets &offsets) |
| void | uvedit_edge_select_disable (const Scene *scene, BMesh *bm, BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_uv_select_test_ex (const ToolSettings *ts, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_uv_select_test (const Scene *scene, const BMLoop *l, const BMUVOffsets &offsets) |
| void | uvedit_uv_select_set_with_sticky (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
| void | uvedit_uv_select_shared_vert (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const int sticky_flag, const BMUVOffsets &offsets) |
| void | uvedit_uv_select_set (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
| Select UV Vertex. | |
| void | uvedit_uv_select_enable (const Scene *scene, BMesh *bm, BMLoop *l, const BMUVOffsets &offsets) |
| void | uvedit_uv_select_disable (const Scene *scene, BMesh *bm, BMLoop *l, const BMUVOffsets &offsets) |
| static BMLoop * | uvedit_loop_find_other_radial_loop_with_visible_face (const Scene *scene, BMLoop *l_src, const BMUVOffsets &offsets) |
| static BMLoop * | uvedit_loop_find_other_boundary_loop_with_visible_face (const Scene *scene, BMLoop *l_edge, BMVert *v_pivot, const BMUVOffsets &offsets) |
Find Nearest Elements | |
| UvNearestHit | uv_nearest_hit_init_dist_px (const View2D *v2d, const float dist_px) |
| UvNearestHit | uv_nearest_hit_init_max (const View2D *v2d) |
| UvNearestHit | uv_nearest_hit_init_max_default () |
| bool | uv_find_nearest_edge (Scene *scene, Object *obedit, const float co[2], const float penalty, UvNearestHit *hit) |
| bool | uv_find_nearest_edge_multi (Scene *scene, const Span< Object * > objects, const float co[2], const float penalty, UvNearestHit *hit) |
| bool | uv_find_nearest_face_ex (Scene *scene, Object *obedit, const float co[2], UvNearestHit *hit, const bool only_in_face) |
| bool | uv_find_nearest_face (Scene *scene, Object *obedit, const float co[2], UvNearestHit *hit) |
| bool | uv_find_nearest_face_multi_ex (Scene *scene, const Span< Object * > objects, const float co[2], UvNearestHit *hit, const bool only_in_face) |
| bool | uv_find_nearest_face_multi (Scene *scene, const Span< Object * > objects, const float co[2], UvNearestHit *hit) |
| static bool | uv_nearest_between (const BMLoop *l, const float co[2], const int cd_loop_uv_offset) |
| bool | uv_find_nearest_vert (Scene *scene, Object *obedit, float const co[2], const float penalty_dist, UvNearestHit *hit) |
| bool | uv_find_nearest_vert_multi (Scene *scene, const Span< Object * > objects, float const co[2], const float penalty_dist, UvNearestHit *hit) |
| static bool | uvedit_nearest_uv (const Scene *scene, Object *obedit, const float co[2], const float scale[2], const bool ignore_selected, float *dist_sq, float r_uv[2]) |
| bool | ED_uvedit_nearest_uv_multi (const View2D *v2d, const Scene *scene, const Span< Object * > objects, const float mval_fl[2], const bool ignore_selected, float *dist_sq, float r_uv[2]) |
Find Nearest to Element | |
These functions are quite specialized, useful when sync select is enabled and we want to pick an active UV vertex/edge from the active element which may have multiple UVs split out. | |
| BMLoop * | uv_find_nearest_loop_from_vert (Scene *scene, Object *obedit, BMVert *v, const float co[2]) |
| BMLoop * | uv_find_nearest_loop_from_edge (Scene *scene, Object *obedit, BMEdge *e, const float co[2]) |
Helper functions for UV selection. | |
| void | uvedit_select_prepare_custom_data (const Scene *scene, BMesh *bm) |
| bool | uvedit_vert_is_edge_select_any_other (const ToolSettings *ts, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_edge_is_face_select_any_other (const ToolSettings *ts, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_vert_is_face_select_any_other (const ToolSettings *ts, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_vert_is_all_other_faces_selected (const ToolSettings *ts, const BMLoop *l, const BMUVOffsets &offsets) |
| static void | bm_clear_uv_vert_selection (const Scene *scene, BMesh *bm, const BMUVOffsets &offsets) |
UV Select-Mode Flushing | |
| void | ED_uvedit_selectmode_flush (const Scene *scene, BMesh *bm) |
| UV Select Mode Flush. | |
UV Flush selection (up/down) | |
| void | uvedit_select_flush (const Scene *scene, BMesh *bm) |
| void | uvedit_deselect_flush (const Scene *scene, BMesh *bm) |
Face Loop Select | |
| static int | uv_select_faceloop (Scene *scene, Object *obedit, UvNearestHit *hit, const bool extend) |
Edge Ring Select | |
| static int | uv_select_edgering (Scene *scene, Object *obedit, UvNearestHit *hit, const bool extend) |
Select Linked | |
| static void | uv_select_linked_multi (Scene *scene, const Span< Object * > objects, UvNearestHit *hit, const bool extend, bool deselect, const bool toggle, const bool select_faces) |
| const float * | uvedit_first_selected_uv_from_vertex (Scene *scene, BMVert *eve, const BMUVOffsets &offsets) |
Select More/Less Operator | |
| static wmOperatorStatus | uv_select_more_less (bContext *C, const bool select) |
| static wmOperatorStatus | uv_select_more_exec (bContext *C, wmOperator *) |
| void | UV_OT_select_more (wmOperatorType *ot) |
| static wmOperatorStatus | uv_select_less_exec (bContext *C, wmOperator *) |
| void | UV_OT_select_less (wmOperatorType *ot) |
Mouse Select Operator | |
| static bool | uv_mouse_select_multi (bContext *C, const Span< Object * > objects, const float co[2], const SelectPick_Params ¶ms) |
| static bool | uv_mouse_select (bContext *C, const float co[2], const SelectPick_Params ¶ms) |
| static wmOperatorStatus | uv_select_exec (bContext *C, wmOperator *op) |
| static wmOperatorStatus | uv_select_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | UV_OT_select (wmOperatorType *ot) |
Edge Loop Select Operator | |
| static wmOperatorStatus | uv_select_loop_exec (bContext *C, wmOperator *op) |
| static wmOperatorStatus | uv_select_loop_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | UV_OT_select_loop (wmOperatorType *ot) |
Edge Ring Select Operator | |
| static wmOperatorStatus | uv_select_edge_ring_exec (bContext *C, wmOperator *op) |
| static wmOperatorStatus | uv_select_edge_ring_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | UV_OT_select_edge_ring (wmOperatorType *ot) |
Select Linked Operator | |
| static wmOperatorStatus | uv_select_linked_internal (bContext *C, wmOperator *op, const wmEvent *event, bool pick) |
| static wmOperatorStatus | uv_select_linked_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_linked (wmOperatorType *ot) |
Select Linked (Cursor Pick) Operator | |
| static wmOperatorStatus | uv_select_linked_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| static wmOperatorStatus | uv_select_linked_pick_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_linked_pick (wmOperatorType *ot) |
Box Select Operator | |
| static wmOperatorStatus | uv_box_select_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_box (wmOperatorType *ot) |
Circle Select Operator | |
| static bool | uv_circle_select_is_point_inside (const float uv[2], const float offset[2], const float ellipse[2]) |
| static bool | uv_circle_select_is_edge_inside (const float uv_a[2], const float uv_b[2], const float offset[2], const float ellipse[2]) |
| static wmOperatorStatus | uv_circle_select_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_circle (wmOperatorType *ot) |
Lasso Select Operator | |
| static bool | do_lasso_select_mesh_uv_is_point_inside (const ARegion *region, const rcti *clip_rect, const Span< int2 > mcoords, const float co_test[2]) |
| static bool | do_lasso_select_mesh_uv_is_edge_inside (const ARegion *region, const rcti *clip_rect, const Span< int2 > mcoords, const float co_test_a[2], const float co_test_b[2]) |
| static bool | do_lasso_select_mesh_uv (bContext *C, const Span< int2 > mcoords, const eSelectOp sel_op) |
| static wmOperatorStatus | uv_lasso_select_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_lasso (wmOperatorType *ot) |
Select Pinned UVs Operator | |
| static wmOperatorStatus | uv_select_pinned_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_pinned (wmOperatorType *ot) |
Select Overlap Operator | |
| BLI_INLINE uint | overlap_hash (const void *overlap_v) |
| BLI_INLINE bool | overlap_cmp (const void *a_v, const void *b_v) |
| static bool | overlap_tri_tri_uv_test (const float t1[3][2], const float t2[3][2], const float endpoint_bias) |
| static wmOperatorStatus | uv_select_overlap (bContext *C, const bool extend) |
| static wmOperatorStatus | uv_select_overlap_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_overlap (wmOperatorType *ot) |
Selected Elements as Arrays (Vertex, Edge & Faces) | |
These functions return single elements per connected vertex/edge. So an edge that has two connected edge loops only assigns one loop in the array. | |
| BMFace ** | ED_uvedit_selected_faces (const Scene *scene, BMesh *bm, int len_max, int *r_faces_len) |
| BMLoop ** | ED_uvedit_selected_edges (const Scene *scene, BMesh *bm, int len_max, int *r_edges_len) |
| BMLoop ** | ED_uvedit_selected_verts (const Scene *scene, BMesh *bm, int len_max, int *r_verts_len) |
Select Mode UV Vert/Edge/Face/Island Operator | |
| static void | uv_isolate_selected_islands (const Scene *scene, BMesh *bm, const BMUVOffsets &offsets) |
| void | ED_uvedit_selectmode_clean (const Scene *scene, Object *obedit) |
| UV Select Mode set. | |
| void | ED_uvedit_selectmode_clean_multi (bContext *C) |
| void | ED_uvedit_sticky_selectmode_update (bContext *C) |
| static wmOperatorStatus | uv_select_mode_exec (bContext *C, wmOperator *op) |
| static wmOperatorStatus | uv_select_mode_invoke (bContext *C, wmOperator *op, const wmEvent *) |
| void | UV_OT_select_mode (wmOperatorType *ot) |
Edge Loop Select | |
| enum | eUVEdgeLoopBoundaryMode { UV_EDGE_LOOP_BOUNDARY_LOOP = 1 , UV_EDGE_LOOP_BOUNDARY_ALL = 2 } |
| static BMLoop * | bm_select_edgeloop_double_side_next (const Scene *scene, BMLoop *l_step, BMVert *v_from, const BMUVOffsets &offsets) |
| static BMLoop * | bm_select_edgeloop_single_side_next (const Scene *scene, BMLoop *l_step, BMVert *v_from, const BMUVOffsets &offsets) |
| static void | bm_loop_tags_clear (BMesh *bm) |
| static void | uv_select_edgeloop_double_side_tag (const Scene *scene, BMesh *bm, BMLoop *l_init_pair[2], const BMUVOffsets &offsets) |
| static void | uv_select_edgeloop_single_side_tag (const Scene *scene, BMesh *bm, BMLoop *l_init, const BMUVOffsets &offsets, enum eUVEdgeLoopBoundaryMode boundary_mode, int r_count_by_select[2]) |
| static int | uv_select_edgeloop (Scene *scene, Object *obedit, UvNearestHit *hit, const bool extend) |
Shared Edge Loop/Ring Select Operator Functions | |
| enum | eUVLoopGenericType { UV_LOOP_SELECT = 1 , UV_RING_SELECT = 2 } |
| static wmOperatorStatus | uv_mouse_select_loop_generic_multi (bContext *C, const Span< Object * > objects, const float co[2], const bool extend, enum eUVLoopGenericType loop_type) |
| static wmOperatorStatus | uv_mouse_select_loop_generic (bContext *C, const float co[2], const bool extend, enum eUVLoopGenericType loop_type) |
| #define CURR_FACE_IS_UNSEL 2 |
Referenced by uv_select_more_less().
| #define NEIGHBORING_FACE_IS_SEL 1 |
Referenced by uv_select_more_less().
| #define SET_SELECTION | ( | value | ) |
Referenced by uv_select_linked_multi().
| using blender::int2 |
Definition at line 601 of file BLI_math_vector_types.hh.
Mode for selecting edge loops at boundaries.
| Enumerator | |
|---|---|
| UV_EDGE_LOOP_BOUNDARY_LOOP | Delimit at face corners (don't walk over multiple edges in the same face). |
| UV_EDGE_LOOP_BOUNDARY_ALL | Don't delimit, walk over the all connected boundary loops. |
Definition at line 1445 of file uvedit_select.cc.
| enum eUVLoopGenericType |
| Enumerator | |
|---|---|
| UV_LOOP_SELECT | |
| UV_RING_SELECT | |
Definition at line 2851 of file uvedit_select.cc.
| enum eUVSelectSimilar |
| Enumerator | |
|---|---|
| UV_SSIM_AREA_UV | |
| UV_SSIM_AREA_3D | |
| UV_SSIM_FACE | |
| UV_SSIM_LENGTH_UV | |
| UV_SSIM_LENGTH_3D | |
| UV_SSIM_MATERIAL | |
| UV_SSIM_OBJECT | |
| UV_SSIM_PIN | |
| UV_SSIM_SIDES | |
| UV_SSIM_WINDING | |
Definition at line 86 of file uvedit_select.cc.
|
static |
Definition at line 1326 of file uvedit_select.cc.
References bm, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, BMUVOffsets::select_vert, and uvedit_face_visible_test().
Referenced by uv_select_flush_from_loop_edge_flag().
|
static |
Definition at line 1480 of file uvedit_select.cc.
References bm, BM_elem_flag_disable, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, and BM_LOOPS_OF_FACE.
Referenced by ED_uvedit_selectmode_clean(), uv_select_edgeloop_double_side_tag(), and uv_select_edgeloop_single_side_tag().
|
static |
Definition at line 1452 of file uvedit_select.cc.
References BM_edge_other_vert(), BMLoop::e, BMLoop::f, BMFace::len, BMLoop::next, BMLoop::prev, uvedit_loop_find_other_radial_loop_with_visible_face(), and BMLoop::v.
Referenced by uv_select_edgeloop_double_side_tag().
|
static |
Definition at line 1469 of file uvedit_select.cc.
References BM_edge_other_vert(), BMLoop::e, and uvedit_loop_find_other_boundary_loop_with_visible_face().
Referenced by uv_select_edgeloop_single_side_tag().
|
static |
Definition at line 4056 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), BLI_lasso_boundbox(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_face_uv_calc_center_median(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_uv_map_offsets_get(), BM_VERT, C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), depsgraph, do_lasso_select_mesh_uv_is_edge_inside(), do_lasso_select_mesh_uv_is_point_inside(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), UvNearestHit::efa, l, UvNearestHit::ob, BMLoop::prev, SCE_SELECT_EDGE, SCE_SELECT_FACE, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select, ToolSettings::selectmode, SI_STICKY_VERTEX, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_uv_select_set(), uvedit_uv_select_test(), and uvedit_vertex_select_tagged().
Referenced by uv_lasso_select_exec().
|
static |
Definition at line 4038 of file uvedit_select.cc.
References BLI_lasso_is_edge_inside(), BLI_rcti_isect_segment(), UI_view2d_view_to_region_segment_clip(), UNPACK2, ARegion::v2d, and V2D_IS_CLIPPED.
Referenced by do_lasso_select_mesh_uv().
|
static |
Definition at line 4022 of file uvedit_select.cc.
References BLI_lasso_is_point_inside(), BLI_rcti_isect_pt_v(), UI_view2d_view_to_region_clip(), ARegion::v2d, and V2D_IS_CLIPPED.
Referenced by do_lasso_select_mesh_uv().
Definition at line 137 of file uvedit_select.cc.
References bm, BM_EDGE, BM_FACE, BM_face_edge_share_loop(), BMEditSelection::ele, BMEditSelection::htype, and BMEditSelection::prev.
Referenced by uv_shortest_path_pick_exec(), and uv_shortest_path_pick_invoke().
Definition at line 128 of file uvedit_select.cc.
References bm, BM_select_history_clear(), BM_select_history_remove, BM_select_history_store_notest, and l.
Referenced by mouse_mesh_uv_shortest_path_edge(), and uv_mouse_select_multi().
Definition at line 115 of file uvedit_select.cc.
References bm, BM_FACE, BM_face_vert_share_loop(), BM_VERT, BMEditSelection::ele, BMEditSelection::htype, and BMEditSelection::prev.
Referenced by uv_shortest_path_pick_exec(), and uv_shortest_path_pick_invoke().
Definition at line 106 of file uvedit_select.cc.
References bm, BM_select_history_clear(), BM_select_history_remove, BM_select_history_store_notest, and l.
Referenced by mouse_mesh_uv_shortest_path_vert(), and uv_mouse_select_multi().
| bool ED_uvedit_nearest_uv_multi | ( | const View2D * | v2d, |
| const Scene * | scene, | ||
| const Span< Object * > | objects, | ||
| const float | mval_fl[2], | ||
| const bool | ignore_selected, | ||
| float * | dist_sq, | ||
| float | r_uv[2] ) |
Definition at line 1133 of file uvedit_select.cc.
References sub_v2_v2v2(), UI_view2d_scale_get(), UI_view2d_view_to_region_fl(), and uvedit_nearest_uv().
| char ED_uvedit_select_mode_get | ( | const Scene * | scene | ) |
Intentionally don't return UV_SELECT_ISLAND as it's not an element type. In this case return UV_SELECT_VERTEX as a fallback.
Definition at line 156 of file uvedit_select.cc.
References SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), uv_mouse_select_loop_generic_multi(), uv_shortest_path_pick_ex(), uv_shortest_path_pick_exec(), uv_shortest_path_pick_invoke(), and uv_shortest_path_select_exec().
| void ED_uvedit_select_sync_flush | ( | const ToolSettings * | ts, |
| BMesh * | bm, | ||
| const bool | select ) |
Definition at line 186 of file uvedit_select.cc.
References bm, BM_mesh_deselect_flush(), BM_mesh_select_flush(), BM_mesh_select_mode_flush(), BM_select_history_validate(), SCE_SELECT_FACE, SCE_SELECT_VERTEX, select, ToolSettings::selectmode, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), and uv_shortest_path_pick_ex().
| BMLoop ** ED_uvedit_selected_edges | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| int | len_max, | ||
| int * | r_edges_len ) |
Definition at line 5406 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_loop_uv_share_edge_check(), BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), CLAMP_MAX, MEM_malloc_arrayN(), MEM_reallocN, BMLoop::radial_next, BMUVOffsets::uv, uvedit_edge_select_test(), and uvedit_face_visible_test().
Referenced by uv_shortest_path_select_exec().
| BMFace ** ED_uvedit_selected_faces | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| int | len_max, | ||
| int * | r_faces_len ) |
Definition at line 5377 of file uvedit_select.cc.
References bm, BM_FACES_OF_MESH, BM_ITER_MESH, BM_uv_map_offsets_get(), CLAMP_MAX, faces, MEM_malloc_arrayN(), MEM_reallocN, uvedit_face_select_test(), and uvedit_face_visible_test().
Referenced by uv_shortest_path_select_exec().
| BMLoop ** ED_uvedit_selected_verts | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| int | len_max, | ||
| int * | r_verts_len ) |
Definition at line 5464 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_GET_BOOL, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_FACE, BM_LOOPS_OF_VERT, BM_uv_map_offsets_get(), CLAMP_MAX, MEM_malloc_arrayN(), MEM_reallocN, BMUVOffsets::select_vert, BMUVOffsets::uv, uvedit_face_visible_test(), BMLoop::v, and verts.
Referenced by uv_shortest_path_select_exec().
UV Select Mode set.
Updates selection state for UVs based on the select mode and sticky mode. Similar to EDBM_selectmode_set.
Definition at line 5585 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, bm_loop_tags_clear(), BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), ED_uvedit_selectmode_flush(), l, SI_STICKY_DISABLE, Scene::toolsettings, ToolSettings::uv_flag, uv_isolate_selected_islands(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), UV_SELECT_ISLAND, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_noflush(), uvedit_edge_select_test(), uvedit_face_select_set(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and uvedit_uv_select_test().
Referenced by ED_uvedit_selectmode_clean_multi().
| void ED_uvedit_selectmode_clean_multi | ( | bContext * | C | ) |
Definition at line 5655 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), depsgraph, ED_uvedit_selectmode_clean(), Scene::toolsettings, and uv_select_tag_update_for_object().
Referenced by uv_select_mode_exec().
UV Select Mode Flush.
Flushes selections upwards as dictated by the UV select mode.
Definition at line 1351 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_prepare_custom_data().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selectmode_clean(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), uv_select_pinned_exec(), and uv_shortest_path_pick_ex().
| void ED_uvedit_sticky_selectmode_update | ( | bContext * | C | ) |
Definition at line 5671 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), depsgraph, SCE_SELECT_VERTEX, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, uv_select_tag_update_for_object(), and UV_SYNC_SELECTION.
|
static |
Definition at line 4681 of file uvedit_select.cc.
References BLI_assert, BLI_assert_unreachable, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_GET_FLOAT_P, BM_face_calc_area_uv(), BM_face_calc_area_with_mat3(), BM_FACES_OF_EDGE, BM_ITER_ELEM, BMVert::co, e, len_v2v2(), len_v3v3(), BMUVOffsets::pin, result, BMUVOffsets::uv, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, UV_SSIM_LENGTH_3D, UV_SSIM_LENGTH_UV, UV_SSIM_PIN, UV_SSIM_SIDES, BMEdge::v1, and BMEdge::v2.
Referenced by uv_select_similar_edge_exec().
|
static |
Definition at line 4740 of file uvedit_select.cc.
References BLI_assert, BLI_assert_unreachable, BM_ELEM_CD_GET_BOOL, BM_face_calc_area_uv(), BM_face_calc_area_uv_signed(), BM_face_calc_area_with_mat3(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, l, BMFace::len, BMFace::mat_nr, BMUVOffsets::pin, result, signum_i(), BMUVOffsets::uv, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, UV_SSIM_MATERIAL, UV_SSIM_OBJECT, UV_SSIM_PIN, UV_SSIM_SIDES, and UV_SSIM_WINDING.
Referenced by uv_select_similar_face_exec().
|
static |
Definition at line 4779 of file uvedit_select.cc.
References BLI_assert, BLI_assert_unreachable, BM_face_calc_area_uv(), BM_face_calc_area_with_mat3(), FaceIsland::faces, FaceIsland::faces_len, i, result, BMUVOffsets::uv, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, and UV_SSIM_FACE.
Referenced by uv_select_similar_island_exec().
|
static |
Definition at line 4636 of file uvedit_select.cc.
References BLI_assert, BLI_assert_unreachable, BM_EDGES_OF_VERT, BM_ELEM_CD_GET_BOOL, BM_face_calc_area_uv(), BM_face_calc_area_with_mat3(), BM_FACES_OF_VERT, BM_ITER_ELEM, e, BMUVOffsets::pin, result, BMUVOffsets::uv, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, UV_SSIM_PIN, and UV_SSIM_SIDES.
Referenced by uv_select_similar_vert_exec().
| BLI_INLINE bool overlap_cmp | ( | const void * | a_v, |
| const void * | b_v ) |
Definition at line 4353 of file uvedit_select.cc.
References b, BLI_INLINE, BVHTreeOverlap::indexA, and BVHTreeOverlap::indexB.
Referenced by py_bvhtree_overlap(), and uv_select_overlap().
| BLI_INLINE uint overlap_hash | ( | const void * | overlap_v | ) |
Definition at line 4340 of file uvedit_select.cc.
References BLI_hash_int_2d(), BLI_INLINE, BVHTreeOverlap::indexA, BVHTreeOverlap::indexB, x, and y.
Referenced by py_bvhtree_overlap(), and uv_select_overlap().
|
static |
Specialized 2D triangle intersection for detecting UV overlap:
Definition at line 4374 of file uvedit_select.cc.
References isect_point_tri_v2(), isect_seg_seg_v2_point_ex(), mid_v2_v2v2v2(), and UNPACK3.
Referenced by uv_select_overlap().
|
static |
Definition at line 3594 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), BLI_rctf_isect_pt_v(), BLI_rctf_isect_segment(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_GET_FLOAT_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_face_uv_calc_center_median(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_uv_map_attr_pin_ensure(), BM_uv_map_offsets_get(), BM_VERT, C, CD_PROP_FLOAT2, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), CustomData_get_active_layer_name(), depsgraph, ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), UvNearestHit::efa, l, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, BMUVOffsets::pin, BMLoop::prev, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select, ToolSettings::selectmode, SI_STICKY_VERTEX, Scene::toolsettings, UI_view2d_region_to_view_rctf(), BMUVOffsets::uv, ToolSettings::uv_flag, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_uv_select_set(), uvedit_uv_select_test(), uvedit_vertex_select_tagged(), ARegion::v2d, and WM_operator_properties_border_to_rctf().
Referenced by UV_OT_select_box().
|
static |
Definition at line 3838 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_face_uv_calc_center_median(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_uv_map_offsets_get(), BM_VERT, C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), CTX_wm_space_image(), wmOperator::customdata, depsgraph, ED_select_op_modal(), ED_space_image_get_size(), ED_space_image_get_zoom(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), UvNearestHit::efa, l, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, BMLoop::prev, wmOperator::ptr, RNA_enum_get(), RNA_int_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select, ToolSettings::selectmode, SI_STICKY_VERTEX, Scene::toolsettings, UI_view2d_region_to_view(), BMUVOffsets::uv, uv_circle_select_is_edge_inside(), uv_circle_select_is_point_inside(), ToolSettings::uv_flag, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_uv_select_set(), uvedit_uv_select_test(), uvedit_vertex_select_tagged(), ARegion::v2d, WM_gesture_is_modal_first(), x, and y.
Referenced by UV_OT_select_circle().
|
static |
Definition at line 3820 of file uvedit_select.cc.
References dist_squared_to_line_segment_v2().
Referenced by uv_circle_select_exec().
|
static |
Definition at line 3808 of file uvedit_select.cc.
References len_squared_v2().
Referenced by uv_circle_select_exec().
| bool uv_find_nearest_edge | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| const float | penalty, | ||
| UvNearestHit * | hit ) |
Definition at line 866 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_FACES_OF_MESH, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_index_ensure(), BM_uv_map_offsets_get(), BM_VERT, closest_to_line_segment_v2(), UvNearestHit::dist_sq, UvNearestHit::efa, i, l, UvNearestHit::l, len_squared_v2(), mul_v2_v2(), UvNearestHit::ob, UvNearestHit::scale, sqrtf, square_f(), sub_v2_v2(), BMUVOffsets::uv, uvedit_edge_select_test(), and uvedit_face_visible_test().
Referenced by uv_find_nearest_edge_multi().
| bool uv_find_nearest_edge_multi | ( | Scene * | scene, |
| const Span< Object * > | objects, | ||
| const float | co[2], | ||
| const float | penalty, | ||
| UvNearestHit * | hit ) |
Definition at line 918 of file uvedit_select.cc.
References uv_find_nearest_edge().
Referenced by uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), and uv_select_linked_internal().
| bool uv_find_nearest_face | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| UvNearestHit * | hit ) |
Definition at line 976 of file uvedit_select.cc.
References uv_find_nearest_face_ex().
| bool uv_find_nearest_face_ex | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| UvNearestHit * | hit, | ||
| bool | only_in_face ) |
| only_in_face | when true, only hit faces which co is inside. This gives users a result they might expect, especially when zoomed in. |
Definition at line 933 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_face_uv_calc_center_median(), BM_face_uv_point_inside_test(), BM_FACES_OF_MESH, BM_ITER_MESH, CD_PROP_FLOAT2, CustomData_get_offset(), UvNearestHit::dist_sq, UvNearestHit::efa, len_squared_v2(), mul_v2_v2(), UvNearestHit::ob, UvNearestHit::scale, sub_v2_v2v2(), and uvedit_face_visible_test().
Referenced by uv_find_nearest_face(), and uv_find_nearest_face_multi_ex().
| bool uv_find_nearest_face_multi | ( | Scene * | scene, |
| const Span< Object * > | objects, | ||
| const float | co[2], | ||
| UvNearestHit * | hit ) |
Definition at line 996 of file uvedit_select.cc.
References uv_find_nearest_face_multi_ex().
Referenced by uv_mouse_select_multi().
| bool uv_find_nearest_face_multi_ex | ( | Scene * | scene, |
| const Span< Object * > | objects, | ||
| const float | co[2], | ||
| UvNearestHit * | hit, | ||
| const bool | only_in_face ) |
Definition at line 981 of file uvedit_select.cc.
References uv_find_nearest_face_ex().
Referenced by uv_find_nearest_face_multi(), and uv_mouse_select_multi().
| BMLoop * uv_find_nearest_loop_from_edge | ( | Scene * | scene, |
| Object * | obedit, | ||
| BMEdge * | e, | ||
| const float | co[2] ) |
Definition at line 1193 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_ITER_ELEM, BM_LOOPS_OF_EDGE, CD_PROP_FLOAT2, CustomData_get_offset(), dist_squared_to_line_segment_v2(), e, FLT_MAX, l, and uvedit_face_visible_test().
Referenced by uv_shortest_path_pick_invoke().
| BMLoop * uv_find_nearest_loop_from_vert | ( | Scene * | scene, |
| Object * | obedit, | ||
| BMVert * | v, | ||
| const float | co[2] ) |
Definition at line 1168 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, CD_PROP_FLOAT2, CustomData_get_offset(), FLT_MAX, l, len_squared_v2v2(), uvedit_face_visible_test(), and v.
Referenced by uv_shortest_path_pick_invoke().
| bool uv_find_nearest_vert | ( | Scene * | scene, |
| Object * | obedit, | ||
| float const | co[2], | ||
| const float | penalty_dist, | ||
| UvNearestHit * | hit ) |
Definition at line 1014 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_FACES_OF_MESH, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_index_ensure(), BM_uv_map_offsets_get(), BM_VERT, UvNearestHit::dist_sq, UvNearestHit::efa, i, l, UvNearestHit::l, len_squared_v2(), mul_v2_v2(), UvNearestHit::ob, UvNearestHit::scale, sqrtf, square_f(), sub_v2_v2v2(), BMUVOffsets::uv, uv_nearest_between(), uvedit_face_visible_test(), and uvedit_uv_select_test().
Referenced by uv_find_nearest_vert_multi(), and uv_sculpt_stroke_init().
| bool uv_find_nearest_vert_multi | ( | Scene * | scene, |
| const Span< Object * > | objects, | ||
| float const | co[2], | ||
| const float | penalty_dist, | ||
| UvNearestHit * | hit ) |
Definition at line 1073 of file uvedit_select.cc.
References uv_find_nearest_vert().
Referenced by uv_mouse_select_multi().
|
static |
Definition at line 5145 of file uvedit_select.cc.
References BLI_assert, FaceIsland::faces, FaceIsland::faces_len, FaceIsland::offsets, and uvedit_face_select_test().
Referenced by uv_select_similar_island_exec().
|
static |
Deselects UVs that are not part of a complete island selection.
Use only when sync select disabled.
Definition at line 5533 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_SET_BOOL, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_element_get(), BM_uv_element_map_create(), BM_uv_element_map_free(), element, l, MEM_calloc_arrayN(), MEM_freeN(), BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, UvElementMap::total_islands, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_edge_select_test(), and uvedit_face_visible_test().
Referenced by ED_uvedit_selectmode_clean().
|
static |
Definition at line 4217 of file uvedit_select.cc.
References C, do_lasso_select_mesh_uv(), blender::Array< T, InlineBufferCapacity, Allocator >::is_empty(), OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, wmOperator::ptr, RNA_enum_get(), and WM_gesture_lasso_path_to_array().
Referenced by UV_OT_select_lasso().
|
static |
Definition at line 2773 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), C, CTX_data_scene(), CTX_data_view_layer(), params, and uv_mouse_select_multi().
Referenced by uv_select_exec().
|
static |
Definition at line 2919 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), C, CTX_data_scene(), CTX_data_view_layer(), ret, and uv_mouse_select_loop_generic_multi().
Referenced by uv_select_edge_ring_exec(), and uv_select_loop_exec().
|
static |
Definition at line 2856 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert_unreachable, bm, BMEditMesh::bm, BM_mesh_deselect_flush(), BM_mesh_select_flush(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_wm_region(), depsgraph, ED_uvedit_select_mode_get(), ED_uvedit_selectmode_flush(), UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, SEL_DESELECT, Scene::toolsettings, uv_find_nearest_edge_multi(), ToolSettings::uv_flag, UV_LOOP_SELECT, uv_nearest_hit_init_max(), uv_nearest_hit_init_max_default(), UV_RING_SELECT, uv_select_all_perform_multi_ex(), uv_select_edgeloop(), uv_select_edgering(), UV_SELECT_FACE, uv_select_faceloop(), uv_select_tag_update_for_object(), UV_SYNC_SELECTION, and ARegion::v2d.
Referenced by uv_mouse_select_loop_generic().
|
static |
Definition at line 2521 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, BLI_assert_unreachable, bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_mesh_active_face_set(), BM_mesh_select_mode_flush(), BM_select_history_store, BM_select_history_validate(), BM_uv_map_offsets_get(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_wm_region(), depsgraph, UvNearestHit::dist_sq, BMLoop::e, ED_uvedit_active_edge_loop_set(), ED_uvedit_active_vert_loop_set(), ED_uvedit_selectmode_flush(), UvNearestHit::efa, ELEM, FLT_MAX, UvNearestHit::l, UvNearestHit::ob, params, SCE_SELECT_EDGE, SCE_SELECT_FACE, SEL_DESELECT, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, SEL_OP_XOR, ToolSettings::selectmode, SI_STICKY_DISABLE, Scene::toolsettings, U, uv_find_nearest_edge_multi(), uv_find_nearest_face_multi(), uv_find_nearest_face_multi_ex(), uv_find_nearest_vert_multi(), ToolSettings::uv_flag, uv_nearest_hit_init_dist_px(), uv_nearest_hit_init_max_default(), uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_face_select_set_with_sticky(), uvedit_face_select_test(), uvedit_select_prepare_custom_data(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_test(), BMLoop::v, and ARegion::v2d.
Referenced by uv_mouse_select().
|
static |
Definition at line 1004 of file uvedit_select.cc.
References BM_ELEM_CD_GET_FLOAT_P, l, and line_point_side_v2().
Referenced by uv_find_nearest_vert().
| UvNearestHit uv_nearest_hit_init_dist_px | ( | const View2D * | v2d, |
| const float | dist_px ) |
Definition at line 839 of file uvedit_select.cc.
References UvNearestHit::dist_sq, UvNearestHit::scale, square_f(), U, UI_view2d_scale_get_x(), and UI_view2d_scale_get_y().
Referenced by uv_mouse_select_multi().
| UvNearestHit uv_nearest_hit_init_max | ( | const View2D * | v2d | ) |
Definition at line 848 of file uvedit_select.cc.
References UvNearestHit::dist_sq, FLT_MAX, UvNearestHit::scale, UI_view2d_scale_get_x(), and UI_view2d_scale_get_y().
Referenced by stitch_select(), uv_mouse_select_loop_generic_multi(), uv_sculpt_stroke_init(), uv_select_linked_internal(), and uv_shortest_path_pick_invoke().
| UvNearestHit uv_nearest_hit_init_max_default | ( | ) |
Definition at line 857 of file uvedit_select.cc.
References UvNearestHit::dist_sq, FLT_MAX, and UvNearestHit::scale.
Referenced by uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), and uv_select_linked_internal().
| void UV_OT_select | ( | wmOperatorType * | ot | ) |
Definition at line 2812 of file uvedit_select.cc.
References ED_operator_uvedit(), ED_select_pick_get_name(), FLT_MAX, OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_float_vector(), RNA_def_property_flag(), uv_select_exec(), uv_select_invoke(), and WM_operator_properties_mouse_select().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_all | ( | wmOperatorType * | ot | ) |
Definition at line 2500 of file uvedit_select.cc.
References ED_operator_uvedit(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, uv_select_all_exec(), and WM_operator_properties_select_all().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_box | ( | wmOperatorType * | ot | ) |
Definition at line 3778 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_UNDO, ot, RNA_def_boolean(), uv_box_select_exec(), WM_gesture_box_cancel(), WM_gesture_box_invoke(), WM_gesture_box_modal(), WM_operator_properties_gesture_box(), and WM_operator_properties_select_operation_simple().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_circle | ( | wmOperatorType * | ot | ) |
Definition at line 3993 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), ED_select_circle_get_name(), OPTYPE_UNDO, ot, uv_circle_select_exec(), WM_gesture_circle_cancel(), WM_gesture_circle_invoke(), WM_gesture_circle_modal(), WM_operator_properties_gesture_circle(), and WM_operator_properties_select_operation_simple().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_edge_ring | ( | wmOperatorType * | ot | ) |
Definition at line 3025 of file uvedit_select.cc.
References ED_operator_uvedit(), FLT_MAX, OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_float_vector(), RNA_def_property_flag(), uv_select_edge_ring_exec(), and uv_select_edge_ring_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_lasso | ( | wmOperatorType * | ot | ) |
Definition at line 4230 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_DEPENDS_ON_CURSOR, OPTYPE_UNDO, ot, uv_lasso_select_exec(), WM_gesture_lasso_cancel(), WM_gesture_lasso_invoke(), WM_gesture_lasso_modal(), WM_operator_properties_gesture_lasso(), and WM_operator_properties_select_operation_simple().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_less | ( | wmOperatorType * | ot | ) |
Definition at line 2287 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and uv_select_less_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_linked | ( | wmOperatorType * | ot | ) |
Definition at line 3135 of file uvedit_select.cc.
References ED_operator_uvedit(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and uv_select_linked_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_linked_pick | ( | wmOperatorType * | ot | ) |
Definition at line 3168 of file uvedit_select.cc.
References ED_operator_uvedit(), FLT_MAX, OPTYPE_REGISTER, OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_float_vector(), RNA_def_property_flag(), uv_select_linked_pick_exec(), and uv_select_linked_pick_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_loop | ( | wmOperatorType * | ot | ) |
Definition at line 2961 of file uvedit_select.cc.
References ED_operator_uvedit(), FLT_MAX, OPTYPE_UNDO, ot, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_float_vector(), RNA_def_property_flag(), uv_select_loop_exec(), and uv_select_loop_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_mode | ( | wmOperatorType * | ot | ) |
Definition at line 5736 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_enum(), RNA_def_property_flag(), rna_enum_mesh_select_mode_uv_items, uv_select_mode_exec(), and uv_select_mode_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_more | ( | wmOperatorType * | ot | ) |
Definition at line 2269 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and uv_select_more_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_overlap | ( | wmOperatorType * | ot | ) |
Definition at line 4612 of file uvedit_select.cc.
References ED_operator_uvedit(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, RNA_def_boolean(), and uv_select_overlap_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_pinned | ( | wmOperatorType * | ot | ) |
Definition at line 4321 of file uvedit_select.cc.
References ED_operator_uvedit(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and uv_select_pinned_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_similar | ( | wmOperatorType * | ot | ) |
Definition at line 5344 of file uvedit_select.cc.
References BLT_I18NCONTEXT_ID_MESH, ED_operator_uvedit_space_image(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, prop_similar_compare_types, RNA_def_enum(), RNA_def_enum_funcs(), RNA_def_float(), RNA_def_property_translation_context(), SIM_CMP_EQ, SIMVERT_NORMAL, uv_select_similar_exec(), uv_select_similar_type_itemf(), uv_select_similar_type_items, and WM_menu_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_split | ( | wmOperatorType * | ot | ) |
Definition at line 3300 of file uvedit_select.cc.
References ED_operator_uvedit(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, and uv_select_split_exec().
Referenced by ED_operatortypes_uvedit().
|
static |
Definition at line 2345 of file uvedit_select.cc.
References BMEditMesh::bm, BM_ELEM_CD_SET_BOOL, BM_ELEM_SELECT, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), EDBM_flag_disable_all(), EDBM_flag_enable_all(), l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_prepare_custom_data().
Referenced by uv_select_all_perform(), and uv_select_toggle_all().
|
static |
Definition at line 2479 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), depsgraph, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), Scene::toolsettings, uv_select_all_perform_multi(), and uv_select_tag_update_for_object().
Referenced by UV_OT_select_all().
Definition at line 2433 of file uvedit_select.cc.
References BKE_editmesh_from_object(), SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, uv_select_all(), uv_select_invert(), and uv_select_toggle_all().
Referenced by uv_select_all_perform_multi_ex(), uv_select_edgeloop(), uv_select_edgering(), uv_select_faceloop(), and uv_select_overlap().
|
static |
Definition at line 2474 of file uvedit_select.cc.
References uv_select_all_perform_multi_ex().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_select_all_exec(), and uv_select_linked_internal().
|
static |
Definition at line 2457 of file uvedit_select.cc.
References SEL_DESELECT, SEL_SELECT, SEL_TOGGLE, uv_select_all_perform(), and uvedit_select_is_any_selected_multi().
|
static |
References bm, depsgraph, and select.
Referenced by uv_mouse_select_loop_generic_multi(), and uv_select_all_perform_multi().
|
static |
Definition at line 3002 of file uvedit_select.cc.
References C, wmOperator::ptr, RNA_boolean_get(), RNA_float_get_array(), uv_mouse_select_loop_generic(), and UV_RING_SELECT.
Referenced by UV_OT_select_edge_ring(), and uv_select_edge_ring_invoke().
|
static |
Definition at line 3010 of file uvedit_select.cc.
References C, CTX_wm_region(), wmEvent::mval, wmOperator::ptr, RNA_float_set_array(), UI_view2d_region_to_view(), uv_select_edge_ring_exec(), ARegion::v2d, and WM_operator_flag_only_pass_through_on_press().
Referenced by UV_OT_select_edge_ring().
|
static |
Definition at line 1605 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_attr_edge_select_ensure(), BM_uv_map_attr_vert_select_ensure(), BM_uv_map_offsets_get(), CD_PROP_FLOAT2, CustomData_get_active_layer_name(), UvNearestHit::l, BMLoop::next, SEL_DESELECT, select, Scene::toolsettings, UV_EDGE_LOOP_BOUNDARY_ALL, UV_EDGE_LOOP_BOUNDARY_LOOP, uv_select_all_perform(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), and uvedit_uv_select_set_with_sticky().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Tag all loops which should be selected, the caller must select.
Definition at line 1496 of file uvedit_select.cc.
References ARRAY_SIZE, BLI_assert, bm, BM_edge_other_vert(), BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, bm_loop_tags_clear(), bm_select_edgeloop_double_side_next(), BMLoop::e, e, i, uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), BMEdge::v1, and BMEdge::v2.
Referenced by uv_select_edgeloop().
|
static |
Tag all loops which should be selected, the caller must select.
| r_count_by_select | Count the number of unselected and selected loops, this is needed to implement cycling between eUVEdgeLoopBoundaryMode. |
Definition at line 1547 of file uvedit_select.cc.
References bm, BM_edge_other_vert(), BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, bm_loop_tags_clear(), bm_select_edgeloop_single_side_next(), BMLoop::e, BMLoop::f, UV_EDGE_LOOP_BOUNDARY_LOOP, uvedit_edge_select_test(), uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), BMEdge::v1, and BMEdge::v2.
Referenced by uv_select_edgeloop().
|
static |
Definition at line 1764 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_EDGE, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_mesh_elem_hflag_disable_all(), BM_uv_map_offsets_get(), BMLoop::e, BMLoop::f, UvNearestHit::l, BMFace::len, BMLoop::next, SCE_SELECT_FACE, SCE_SELECT_VERTEX, SEL_DESELECT, select, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, uv_select_all_perform(), UV_SELECT_FACE, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_face_select_set_with_sticky(), uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), uvedit_select_prepare_custom_data(), and uvedit_uv_select_set_with_sticky().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Definition at line 2783 of file uvedit_select.cc.
References C, ED_select_pick_params_from_operator(), OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, params, wmOperator::ptr, RNA_float_get_array(), and uv_mouse_select().
Referenced by UV_OT_select(), and uv_select_invoke().
|
static |
Definition at line 1695 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACE, BM_mesh_elem_hflag_disable_all(), BM_uv_map_offsets_get(), BMLoop::f, UvNearestHit::l, BMFace::len, BMLoop::next, SEL_DESELECT, select, Scene::toolsettings, ToolSettings::uv_flag, uv_select_all_perform(), UV_SYNC_SELECTION, uvedit_face_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), and uvedit_select_prepare_custom_data().
Referenced by uv_mouse_select_loop_generic_multi().
Flush the selection from UV edges based on sticky modes.
Useful when performing edge selections in different sticky modes, since setting the required edge selection is done manually or using uvedit_edge_select_set_noflush, but dealing with sticky modes for vertex selections is best done in a separate function.
Definition at line 3526 of file uvedit_select.cc.
References bm, bm_clear_uv_vert_selection(), BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, SI_STICKY_DISABLE, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_prepare_custom_data().
Referenced by ED_uvedit_selectmode_clean(), and uv_select_invert().
|
static |
Flush the selection from face tags based on sticky and selection modes.
needed because setting the selection of a face is done in a number of places but it also needs to respect the sticky modes for the UV verts, so dealing with the sticky modes is best done in a separate function.
Definition at line 3380 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_ELEM_CD_SET_BOOL, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), l, select, BMUVOffsets::select_edge, SI_STICKY_DISABLE, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_select_set(), uvedit_select_prepare_custom_data(), and uvedit_vert_is_face_select_any_other().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selectmode_clean(), uv_box_select_exec(), uv_circle_select_exec(), and uv_select_more_less().
|
static |
Flush the selection from loop tags based on sticky and selection modes.
needed because setting the selection of a face is done in a number of places but it also needs to respect the sticky modes for the UV verts, so dealing with the sticky modes is best done in a separate function.
Definition at line 3452 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_uv_map_offsets_get(), BM_VERT, l, select, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_select_prepare_custom_data(), and uvedit_uv_select_set().
Referenced by ED_uvedit_selectmode_clean(), and uv_select_more_less().
|
static |
helper function for uv_select_flush_from_tag_loop and uv_select_flush_from_tag_face
Definition at line 3341 of file uvedit_select.cc.
References BLI_assert, bm, BM_DISK_EDGE_NEXT, BM_loop_uv_share_vert_check(), BMLoop::f, BMEdge::l, l, BMLoop::radial_next, select, BMUVOffsets::uv, uvedit_face_visible_test(), uvedit_uv_select_set(), BMLoop::v, and v.
Referenced by uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), and uv_select_flush_from_tag_loop().
|
static |
Definition at line 2388 of file uvedit_select.cc.
References bm, BMEditMesh::bm, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), EDBM_select_swap(), EDBM_selectmode_flush(), ELEM, l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_loop_edge_flag(), UV_SELECT_ISLAND, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_select_flush(), and uvedit_select_prepare_custom_data().
Referenced by uv_select_all_perform().
|
static |
Definition at line 2799 of file uvedit_select.cc.
References C, CTX_wm_region(), wmEvent::mval, wmOperator::ptr, RNA_float_set_array(), UI_view2d_region_to_view(), uv_select_exec(), ARegion::v2d, and WM_operator_flag_only_pass_through_on_press().
Referenced by UV_OT_select().
|
static |
Definition at line 2282 of file uvedit_select.cc.
References C, and uv_select_more_less().
Referenced by UV_OT_select_less().
|
static |
Definition at line 3130 of file uvedit_select.cc.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked().
|
static |
Definition at line 3066 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), Object::data, DEG_id_tag_update(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, wmEvent::mval, NC_GEOM, ND_SELECT, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_float_get_array(), RNA_float_set_array(), SCE_SELECT_FACE, SEL_DESELECT, ToolSettings::selectmode, Scene::toolsettings, UI_view2d_region_to_view(), uv_find_nearest_edge_multi(), ToolSettings::uv_flag, uv_nearest_hit_init_max(), uv_nearest_hit_init_max_default(), uv_select_all_perform_multi(), uv_select_linked_multi(), UV_SYNC_SELECTION, ARegion::v2d, and WM_event_add_notifier().
Referenced by uv_select_linked_exec(), uv_select_linked_pick_exec(), and uv_select_linked_pick_invoke().
|
static |
Definition at line 1866 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_ELEM_SELECT, BM_FACE, BM_face_at_index(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_ELEM_INDEX, BM_ITER_MESH_INDEX, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_FACE, BM_LOOPS_OF_VERT, BM_mesh_deselect_flush(), BM_mesh_elem_table_ensure(), BM_mesh_select_mode_flush(), BM_uv_map_offsets_get(), BM_uv_vert_map_at_index(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), UvNearestHit::efa, BMLoop::f, UvMapVert::face_index, flag, i, blender::Span< T >::index_range(), l, MEM_calloc_arrayN(), MEM_freeN(), MEM_malloc_arrayN(), UvMapVert::next, UvNearestHit::ob, UvMapVert::separate, SET_SELECTION, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and uvedit_uv_select_test().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), and uv_select_linked_internal().
|
static |
Definition at line 3163 of file uvedit_select.cc.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 3156 of file uvedit_select.cc.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 2938 of file uvedit_select.cc.
References C, wmOperator::ptr, RNA_boolean_get(), RNA_float_get_array(), UV_LOOP_SELECT, and uv_mouse_select_loop_generic().
Referenced by UV_OT_select_loop(), and uv_select_loop_invoke().
|
static |
Definition at line 2948 of file uvedit_select.cc.
References C, CTX_wm_region(), wmEvent::mval, wmOperator::ptr, RNA_float_set_array(), UI_view2d_region_to_view(), uv_select_loop_exec(), ARegion::v2d, and WM_operator_flag_only_pass_through_on_press().
Referenced by UV_OT_select_loop().
|
static |
Definition at line 5693 of file uvedit_select.cc.
References C, CTX_data_scene(), DEG_id_tag_update(), ED_uvedit_selectmode_clean_multi(), Scene::id, ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_SCENE, ND_TOOLSETTINGS, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), Scene::toolsettings, ToolSettings::uv_selectmode, and WM_main_add_notifier().
Referenced by UV_OT_select_mode(), and uv_select_mode_invoke().
|
static |
Definition at line 5716 of file uvedit_select.cc.
References C, CTX_data_tool_settings(), CTX_wm_space_image(), SpaceImage::mode, OPERATOR_CANCELLED, OPERATOR_PASS_THROUGH, SI_MODE_UV, ToolSettings::uv_flag, uv_select_mode_exec(), and UV_SYNC_SELECTION.
Referenced by UV_OT_select_mode().
|
static |
Definition at line 2264 of file uvedit_select.cc.
References C, and uv_select_more_less().
Referenced by UV_OT_select_more().
|
static |
Definition at line 2119 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_BOOL, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_uv_map_offsets_get(), C, CTX_data_scene(), CTX_data_view_layer(), CURR_FACE_IS_UNSEL, DEG_id_tag_update(), EDBM_select_less(), EDBM_select_more(), ID_RECALC_SELECT, l, NC_GEOM, ND_SELECT, NEIGHBORING_FACE_IS_SEL, OPERATOR_FINISHED, select, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_FACE, uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_deselect_flush(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_flush(), uvedit_select_prepare_custom_data(), uvedit_vert_is_all_other_faces_selected(), and WM_event_add_notifier().
Referenced by uv_select_less_exec(), and uv_select_more_exec().
|
static |
Definition at line 4413 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), BLI_assert, BLI_bvhtree_balance(), BLI_bvhtree_free(), BLI_bvhtree_insert(), BLI_bvhtree_new(), BLI_bvhtree_overlap_self(), BLI_gset_add(), BLI_gset_free(), BLI_gset_new_ex(), BLI_heap_clear(), BLI_heap_free(), BLI_heap_new_ex(), BLI_memarena_clear(), BLI_memarena_free(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, BLI_POLYFILL_ALLOC_NGON_RESERVE, BLI_polyfill_beautify(), BLI_polyfill_calc_arena(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_ELEM_TAG, BM_FACE, BM_FACES_OF_MESH, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_uv_map_attr_edge_select_ensure(), BM_uv_map_attr_vert_select_ensure(), BM_uv_map_offsets_get(), BM_VERT, C, CD_PROP_FLOAT2, copy_v2_v2(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CustomData_get_active_layer_name(), CustomData_get_offset(), depsgraph, UVOverlapData::face_index, BMesh::ftable, i, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), BVHTreeOverlap::indexA, indices, l, BMesh::ldata, BMFace::len, MEM_freeN(), MEM_malloc_arrayN(), MEM_mallocN(), UVOverlapData::ob_index, OPERATOR_FINISHED, overlap_cmp(), overlap_hash(), overlap_tri_tri_uv_test(), SEL_DESELECT, Scene::toolsettings, UVOverlapData::tri, UNPACK2, ToolSettings::uv_flag, uv_select_all_perform(), uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_face_select_enable(), uvedit_face_select_test(), and uvedit_face_visible_test_ex().
Referenced by uv_select_overlap_exec().
|
static |
Definition at line 4606 of file uvedit_select.cc.
References C, wmOperator::ptr, RNA_boolean_get(), and uv_select_overlap().
Referenced by UV_OT_select_overlap().
|
static |
Definition at line 4256 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_attr_pin_exists(), BM_uv_map_offsets_get(), C, CD_PROP_FLOAT2, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CustomData_get_active_layer_name(), depsgraph, ED_uvedit_selectmode_flush(), l, OPERATOR_CANCELLED, OPERATOR_FINISHED, BMUVOffsets::pin, wmOperator::reports, RPT_ERROR, Scene::toolsettings, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and uvedit_uv_select_enable().
Referenced by UV_OT_select_pinned().
|
static |
Definition at line 4921 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_select_flush(), BM_uv_map_offsets_get(), C, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), depsgraph, ED_select_similar_compare_float_tree(), get_uv_edge_needle(), l, BMFace::len, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), select, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_edge_select_set(), uvedit_edge_select_test(), uvedit_face_visible_test(), and uvedit_select_flush().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 5258 of file uvedit_select.cc.
References C, CTX_data_tool_settings(), wmOperator::ptr, RNA_property_float_get(), RNA_property_float_set(), RNA_property_is_set(), RNA_struct_find_property(), ToolSettings::select_thresh, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_ISLAND, uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), uv_select_similar_vert_exec(), ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 5038 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_select_flush(), BM_uv_map_offsets_get(), C, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), depsgraph, ED_select_similar_compare_float_tree(), get_uv_face_needle(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), select, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_face_select_set(), uvedit_face_select_test(), uvedit_face_visible_test(), and uvedit_select_flush().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 5151 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), BLI_assert, bm, BMEditMesh::bm, bm_mesh_calc_uv_islands(), BM_mesh_select_flush(), BM_uv_map_offsets_get(), C, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), depsgraph, ED_select_similar_compare_float_tree(), faces, get_uv_island_needle(), i, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), LISTBASE_FOREACH_INDEX, MEM_calloc_arrayN(), MEM_callocN(), MEM_SAFE_FREE, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), select, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), Scene::toolsettings, ToolSettings::uv_flag, uv_island_selected(), uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_face_select_set(), and uvedit_select_flush().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 5302 of file uvedit_select.cc.
References C, CTX_data_tool_settings(), RNA_enum_item_end(), RNA_enum_items_add_value(), ToolSettings::selectmode, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_ISLAND, uv_select_similar_type_items, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, UV_SSIM_FACE, UV_SSIM_LENGTH_3D, UV_SSIM_LENGTH_UV, UV_SSIM_MATERIAL, UV_SSIM_OBJECT, UV_SSIM_PIN, UV_SSIM_SIDES, UV_SSIM_WINDING, and UV_SYNC_SELECTION.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 4807 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_select_flush(), BM_uv_map_offsets_get(), C, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), depsgraph, ED_select_similar_compare_float_tree(), get_uv_vert_needle(), l, BMFace::len, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), select, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_select_flush(), uvedit_uv_select_set(), and uvedit_uv_select_test().
Referenced by uv_select_similar_exec().
|
static |
NOTE(@ideasman42): This is based on similar use case to MESH_OT_split(), which has a similar effect but in this case they are not joined to begin with (only having the behavior of being joined) so its best to call this #uv_select_split() instead of just split(), but assigned to the same key as MESH_OT_split.
Definition at line 3223 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), depsgraph, l, NC_SPACE, ND_SPACE_IMAGE, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and WM_event_add_notifier().
Referenced by UV_OT_select_split().
|
static |
Definition at line 3313 of file uvedit_select.cc.
References BKE_mesh_batch_cache_dirty_tag(), BKE_MESH_BATCH_DIRTY_UVEDIT_SELECT, Object::data, DEG_get_evaluated(), DEG_id_tag_update(), depsgraph, ID_RECALC_SELECT, NC_GEOM, ND_SELECT, ToolSettings::uv_flag, UV_SYNC_SELECTION, and WM_main_add_notifier().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selectmode_clean_multi(), ED_uvedit_sticky_selectmode_update(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), uv_select_all_exec(), uv_select_overlap(), uv_select_pinned_exec(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), uv_select_similar_vert_exec(), and uv_select_split_exec().
|
static |
Definition at line 2376 of file uvedit_select.cc.
References BMEditMesh::bm, EDBM_select_toggle_all(), Scene::toolsettings, ToolSettings::uv_flag, uv_select_all(), UV_SYNC_SELECTION, and uvedit_select_is_any_selected().
Referenced by uv_select_all_perform().
Mode independent UV de-selection flush.
Definition at line 1412 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_prepare_custom_data().
Referenced by uv_rip_object(), and uv_select_more_less().
| bool uvedit_edge_is_face_select_any_other | ( | const ToolSettings * | ts, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1263 of file uvedit_select.cc.
References BLI_assert, BM_loop_uv_share_edge_check(), BMLoop::f, l, BMLoop::radial_next, BMUVOffsets::uv, uvedit_face_select_test_ex(), and uvedit_face_visible_test_ex().
Referenced by uvedit_edge_select_test_ex().
| void uvedit_edge_select_disable | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 545 of file uvedit_select.cc.
References BLI_assert, bm, BM_edge_select_set(), BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_face_select_set(), BM_vert_select_set(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMUVOffsets::select_edge, BMUVOffsets::select_vert, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by uvedit_edge_select_set().
| void uvedit_edge_select_enable | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 516 of file uvedit_select.cc.
References BLI_assert, bm, BM_edge_select_set(), BM_ELEM_CD_SET_BOOL, BM_face_select_set(), BM_vert_select_set(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMUVOffsets::select_edge, BMUVOffsets::select_vert, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uvedit_edge_select_set().
| void uvedit_edge_select_set | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| bool | select, | ||
| const BMUVOffsets & | offsets ) |
Select UV Edge.
Changes selection state of a single UV Edge.
Definition at line 505 of file uvedit_select.cc.
References bm, l, select, uvedit_edge_select_disable(), and uvedit_edge_select_enable().
Referenced by uv_select_similar_edge_exec(), and uvedit_edge_select_set_with_sticky().
| void uvedit_edge_select_set_noflush | ( | const Scene * | scene, |
| BMLoop * | l, | ||
| const bool | select, | ||
| const int | sticky_flag, | ||
| const BMUVOffsets & | offsets ) |
Sets required UV edge flags as specified by the sticky_flag.
Definition at line 486 of file uvedit_select.cc.
References BLI_assert, BM_ELEM_CD_SET_BOOL, BM_loop_uv_share_edge_check(), BMLoop::f, l, BMLoop::radial_next, select, BMUVOffsets::select_edge, SI_STICKY_DISABLE, SI_STICKY_VERTEX, BMUVOffsets::uv, and uvedit_face_visible_test().
Referenced by ED_uvedit_selectmode_clean(), and uvedit_edge_select_shared_vert().
| void uvedit_edge_select_set_with_sticky | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 423 of file uvedit_select.cc.
References bm, l, select, SI_STICKY_DISABLE, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set(), uvedit_edge_select_shared_vert(), and uvedit_face_visible_test().
Referenced by do_lasso_select_mesh_uv(), edgetag_set_cb(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_select_edgeloop(), and uv_select_edgering().
| void uvedit_edge_select_shared_vert | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const int | sticky_flag, | ||
| const BMUVOffsets & | offsets ) |
Selects UV edges and shared vertices according to sticky_flag.
| sticky_flag |
|
Definition at line 452 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_GET_BOOL, ELEM, l, BMLoop::next, BMLoop::radial_next, select, BMUVOffsets::select_edge, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, uvedit_edge_select_set_noflush(), uvedit_uv_select_shared_vert(), and uvedit_vert_is_edge_select_any_other().
Referenced by uvedit_edge_select_set_with_sticky().
| bool uvedit_edge_select_test | ( | const Scene * | scene, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 418 of file uvedit_select.cc.
References l, Scene::toolsettings, and uvedit_edge_select_test_ex().
Referenced by bm_uv_edge_select_build_islands(), ED_uvedit_selected_edges(), ED_uvedit_selectmode_clean(), edgetag_test_cb(), facetag_test_cb(), stitch_init(), uv_find_nearest_edge(), uv_isolate_selected_islands(), uv_mark_seam_exec(), uv_mouse_select_multi(), uv_seams_from_islands_exec(), uv_select_edgeloop(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), and uv_select_similar_edge_exec().
| bool uvedit_edge_select_test_ex | ( | const ToolSettings * | ts, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 371 of file uvedit_select.cc.
References BLI_assert, BLI_assert_unreachable, BM_ELEM_CD_GET_BOOL, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_SELECT, l, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMUVOffsets::select_edge, BMUVOffsets::select_vert, ToolSettings::selectmode, SI_STICKY_DISABLE, SI_STICKY_LOC, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, and uvedit_edge_is_face_select_any_other().
Referenced by blender::draw::mesh_render_data_loop_edge_flag(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), uvedit_edge_select_test(), and uvedit_vert_is_edge_select_any_other().
| void uvedit_face_select_disable | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMFace * | efa, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 348 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_SET_BOOL, BM_face_select_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by cylinder_project_exec(), smart_project_exec(), uv_cylinder_project(), uv_hide_exec(), uv_sphere_project(), uvedit_face_select_set(), and uvedit_unwrap_cube_project().
| void uvedit_face_select_enable | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMFace * | efa, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 325 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_SET_BOOL, BM_face_select_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uv_select_overlap(), and uvedit_face_select_set().
| void uvedit_face_select_set | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMFace * | efa, | ||
| bool | select, | ||
| const BMUVOffsets & | offsets ) |
Select UV Face.
Changes selection state of a single UV Face.
Definition at line 314 of file uvedit_select.cc.
References bm, select, uvedit_face_select_disable(), and uvedit_face_select_enable().
Referenced by ED_uvedit_selectmode_clean(), uv_select_flush_from_tag_face(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), and uvedit_face_select_set_with_sticky().
| void uvedit_face_select_set_with_sticky | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMFace * | efa, | ||
| const bool | select, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 268 of file uvedit_select.cc.
References bm, select, SI_STICKY_DISABLE, Scene::toolsettings, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_select_set(), uvedit_face_select_shared_vert(), and uvedit_face_visible_test().
Referenced by facetag_set_cb(), uv_mouse_select_multi(), uv_select_edgering(), and uv_select_faceloop().
| void uvedit_face_select_shared_vert | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMFace * | efa, | ||
| const bool | select, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 294 of file uvedit_select.cc.
References bm, BM_ELEM_CD_SET_BOOL, BM_ITER_ELEM, BM_LOOPS_OF_FACE, l, select, BMUVOffsets::select_edge, SI_STICKY_LOC, Scene::toolsettings, uvedit_uv_select_shared_vert(), and uvedit_vert_is_face_select_any_other().
Referenced by uvedit_face_select_set_with_sticky().
| bool uvedit_face_select_test | ( | const Scene * | scene, |
| const BMFace * | efa, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 263 of file uvedit_select.cc.
References Scene::toolsettings, and uvedit_face_select_test_ex().
Referenced by cylinder_project_exec(), do_lasso_select_mesh_uv(), ED_uvedit_selected_faces(), ED_uvedit_selectmode_clean(), smart_project_exec(), uv_circle_select_exec(), uv_cylinder_project(), uv_island_selected(), uv_map_clip_correct(), uv_mouse_select_multi(), uv_select_faceloop(), uv_select_linked_multi(), uv_select_more_less(), uv_select_overlap(), uv_select_similar_face_exec(), uv_sphere_project(), uvedit_is_face_affected_for_calc_uv_islands(), and uvedit_unwrap_cube_project().
| bool uvedit_face_select_test_ex | ( | const ToolSettings * | ts, |
| const BMFace * | efa, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 242 of file uvedit_select.cc.
References BLI_assert, BM_ELEM_CD_GET_BOOL, BM_elem_flag_test, BM_ELEM_SELECT, BM_FACE_FIRST_LOOP, BMLoop::next, BMUVOffsets::select_edge, BMUVOffsets::select_vert, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by blender::draw::mesh_render_data_face_flag(), uvedit_edge_is_face_select_any_other(), uvedit_face_select_test(), uvedit_vert_is_all_other_faces_selected(), and uvedit_vert_is_face_select_any_other().
Definition at line 237 of file uvedit_select.cc.
References Scene::toolsettings, and uvedit_face_visible_test_ex().
Referenced by bm_clear_uv_vert_selection(), blender::ed::transform::createTransUVs(), do_lasso_select_mesh_uv(), ED_uvedit_foreach_uv(), ED_uvedit_selected_edges(), ED_uvedit_selected_faces(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_flush(), edgetag_filter_cb(), facetag_filter_cb(), uv_box_select_exec(), uv_circle_select_exec(), uv_find_nearest_edge(), uv_find_nearest_face_ex(), uv_find_nearest_loop_from_edge(), uv_find_nearest_loop_from_vert(), uv_find_nearest_vert(), uv_hide_exec(), uv_isolate_selected_islands(), uv_mark_seam_exec(), uv_pin_exec(), uv_rip_object(), uv_seams_from_islands_exec(), uv_select_all(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_faceloop(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_sticky_loc_internal(), uv_select_invert(), uv_select_linked_multi(), uv_select_more_less(), uv_select_pinned_exec(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_vert_exec(), uv_select_split_exec(), uv_snap_uvs_to_adjacent_unselected(), uvedit_center(), uvedit_deselect_flush(), uvedit_edge_select_set_noflush(), uvedit_edge_select_set_with_sticky(), uvedit_face_select_set_with_sticky(), uvedit_first_selected_uv_from_vertex(), uvedit_loop_find_other_radial_loop_with_visible_face(), uvedit_nearest_uv(), uvedit_select_flush(), uvedit_select_is_any_selected(), uvedit_translate(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_shared_vert(), and verttag_filter_cb().
| bool uvedit_face_visible_test_ex | ( | const ToolSettings * | ts, |
| const BMFace * | efa ) |
Definition at line 230 of file uvedit_select.cc.
References BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uv_select_overlap(), uvedit_edge_is_face_select_any_other(), uvedit_face_visible_test(), uvedit_vert_is_all_other_faces_selected(), uvedit_vert_is_edge_select_any_other(), and uvedit_vert_is_face_select_any_other().
| const float * uvedit_first_selected_uv_from_vertex | ( | Scene * | scene, |
| BMVert * | eve, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 2092 of file uvedit_select.cc.
References BM_ELEM_CD_GET_FLOAT_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, l, BMUVOffsets::uv, uvedit_face_visible_test(), and uvedit_uv_select_test().
|
static |
Definition at line 805 of file uvedit_select.cc.
References BLI_assert, BM_vert_in_edge(), BMLoop::e, BMLoop::next, BMLoop::prev, uvedit_loop_find_other_radial_loop_with_visible_face(), and BMLoop::v.
Referenced by bm_select_edgeloop_single_side_next().
|
static |
Definition at line 778 of file uvedit_select.cc.
References BLI_assert, BM_loop_uv_share_edge_check(), BMLoop::f, BMLoop::radial_next, BMUVOffsets::uv, and uvedit_face_visible_test().
Referenced by bm_select_edgeloop_double_side_next(), uv_select_edgeloop(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_faceloop(), and uvedit_loop_find_other_boundary_loop_with_visible_face().
|
static |
Definition at line 1088 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert, bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_FACE_FIRST_LOOP, BM_FACES_OF_MESH, BM_ITER_MESH, BM_uv_map_offsets_get(), copy_v2_v2(), len_squared_v2v2(), mul_v2_v2v2(), BMLoop::next, BMUVOffsets::uv, uvedit_face_visible_test(), and uvedit_uv_select_test().
Referenced by ED_uvedit_nearest_uv_multi().
Mode independent UV selection flush.
Definition at line 1384 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_GET_BOOL, BM_ELEM_CD_SET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), l, BMUVOffsets::select_edge, BMUVOffsets::select_vert, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_prepare_custom_data().
Referenced by uv_select_invert(), uv_select_more_less(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), and uv_select_similar_vert_exec().
Definition at line 2306 of file uvedit_select.cc.
References bm, BM_ELEM_CD_GET_BOOL, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), l, BMUVOffsets::select_vert, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, and uvedit_face_visible_test().
Referenced by uv_select_toggle_all(), and uvedit_select_is_any_selected_multi().
Definition at line 2332 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, and uvedit_select_is_any_selected().
Referenced by uv_select_all_perform_multi_ex().
Definition at line 1224 of file uvedit_select.cc.
References BLI_assert, bm, BM_uv_map_attr_edge_select_ensure(), BM_uv_map_attr_vert_select_ensure(), CD_PROP_FLOAT2, CustomData_get_active_layer_name(), Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_flush(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_select_all(), uv_select_edgering(), uv_select_faceloop(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_invert(), uv_select_linked_multi(), uv_select_more_less(), uv_select_pinned_exec(), uv_select_split_exec(), uvedit_deselect_flush(), and uvedit_select_flush().
| void uvedit_uv_select_disable | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 760 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_SET_BOOL, BM_face_select_set(), BM_vert_select_set(), l, SCE_SELECT_FACE, BMUVOffsets::select_vert, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uv_rip_object(), and uvedit_uv_select_set().
| void uvedit_uv_select_enable | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 738 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_CD_SET_BOOL, BM_face_select_set(), BM_vert_select_set(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMUVOffsets::select_vert, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by stitch_propagate_uv_final_position(), uv_select_pinned_exec(), and uvedit_uv_select_set().
| void uvedit_uv_select_set | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| bool | select, | ||
| const BMUVOffsets & | offsets ) |
Select UV Vertex.
Changes selection state of a single UV vertex.
Definition at line 727 of file uvedit_select.cc.
References bm, l, select, uvedit_uv_select_disable(), and uvedit_uv_select_enable().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_select_flush_from_tag_loop(), uv_select_flush_from_tag_sticky_loc_internal(), uv_select_similar_vert_exec(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_shared_vert(), uvedit_vertex_select_tagged(), and verttag_set_cb().
| void uvedit_uv_select_set_with_sticky | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 661 of file uvedit_select.cc.
References bm, l, select, SI_STICKY_DISABLE, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_uv_select_set(), and uvedit_uv_select_shared_vert().
Referenced by uv_mouse_select_multi(), uv_select_edgeloop(), and uv_select_edgering().
| void uvedit_uv_select_shared_vert | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const int | sticky_flag, | ||
| const BMUVOffsets & | offsets ) |
Selects shared UVs based on #sticky_flag.
| sticky_flag | Type of sticky selection:
|
Definition at line 690 of file uvedit_select.cc.
References BLI_assert, bm, BM_DISK_EDGE_NEXT, BM_loop_uv_share_vert_check(), ELEM, BMLoop::f, BMEdge::l, l, BMLoop::radial_next, select, SI_STICKY_LOC, SI_STICKY_VERTEX, BMUVOffsets::uv, uvedit_face_visible_test(), uvedit_uv_select_set(), and BMLoop::v.
Referenced by uvedit_edge_select_shared_vert(), uvedit_face_select_shared_vert(), and uvedit_uv_select_set_with_sticky().
| bool uvedit_uv_select_test | ( | const Scene * | scene, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 656 of file uvedit_select.cc.
References l, Scene::toolsettings, and uvedit_uv_select_test_ex().
Referenced by bm_uv_build_islands(), BM_uv_element_map_create(), construct_param_handle_face_add(), blender::ed::transform::createTransUVs(), do_lasso_select_mesh_uv(), ED_uvedit_foreach_uv(), ED_uvedit_selectmode_clean(), island_has_pins(), stitch_init(), texface_from_original_index(), uv_box_select_exec(), uv_circle_select_exec(), uv_find_nearest_vert(), uv_mouse_select_multi(), uv_pin_exec(), uv_remove_doubles_to_selected_shared_vertex(), uv_select_linked_multi(), uv_select_similar_vert_exec(), uv_shortest_path_pick_invoke(), uv_snap_uvs_to_adjacent_unselected(), uvedit_center(), uvedit_first_selected_uv_from_vertex(), uvedit_have_selection(), uvedit_is_face_affected(), uvedit_nearest_uv(), uvedit_prepare_pinned_indices(), uvedit_translate(), and verttag_test_cb().
| bool uvedit_uv_select_test_ex | ( | const ToolSettings * | ts, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 584 of file uvedit_select.cc.
References BLI_assert, BLI_assert_unreachable, BM_ELEM_CD_GET_BOOL, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_SELECT, l, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMUVOffsets::select_vert, ToolSettings::selectmode, SI_STICKY_DISABLE, SI_STICKY_LOC, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_vert_is_edge_select_any_other(), and uvedit_vert_is_face_select_any_other().
Referenced by blender::draw::mesh_render_data_loop_flag(), blender::ed::transform::uv_set_connectivity_distance(), and uvedit_uv_select_test().
| bool uvedit_vert_is_all_other_faces_selected | ( | const ToolSettings * | ts, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1306 of file uvedit_select.cc.
References BLI_assert, BM_ITER_ELEM, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_VERT, BMLoop::f, l, BMUVOffsets::uv, uvedit_face_select_test_ex(), and uvedit_face_visible_test_ex().
Referenced by uv_select_more_less().
| bool uvedit_vert_is_edge_select_any_other | ( | const ToolSettings * | ts, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1234 of file uvedit_select.cc.
References BLI_assert, BM_DISK_EDGE_NEXT, BM_loop_uv_share_vert_check(), BMLoop::f, BMEdge::l, l, BMLoop::next, BMLoop::radial_next, BMUVOffsets::uv, uvedit_edge_select_test_ex(), uvedit_face_visible_test_ex(), and BMLoop::v.
Referenced by uvedit_edge_select_shared_vert(), and uvedit_uv_select_test_ex().
| bool uvedit_vert_is_face_select_any_other | ( | const ToolSettings * | ts, |
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1286 of file uvedit_select.cc.
References BLI_assert, BM_ITER_ELEM, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_VERT, BMLoop::f, l, BMUVOffsets::uv, uvedit_face_select_test_ex(), and uvedit_face_visible_test_ex().
Referenced by uv_select_flush_from_tag_face(), uvedit_face_select_shared_vert(), and uvedit_uv_select_test_ex().
|
static |
Definition at line 212 of file uvedit_select.cc.
References bm, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, select, and uvedit_uv_select_set().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), and uv_circle_select_exec().
|
static |
Definition at line 5297 of file uvedit_select.cc.
|
static |
Definition at line 5284 of file uvedit_select.cc.
Referenced by UV_OT_select_similar(), and uv_select_similar_type_itemf().