|
Blender V5.0
|
#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 "BLI_vector_list.hh"#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 |
Namespaces | |
| namespace | blender |
| namespace | blender::ed |
| namespace | blender::ed::uv |
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_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) |
| void | ED_uvedit_deselect_all (const Scene *scene, Object *obedit, int action) |
| 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_tag_update_for_object (Depsgraph *depsgraph, const ToolSettings *ts, Object *obedit) |
| static void | uv_select_sync_update (const Scene *scene, Object *obedit) |
| static void | uvedit_uv_select_flush_from_tag_sticky_loc_internal (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
| static void | uvedit_edge_select_flush_from_tag_sticky_loc_internal (const Scene *scene, BMesh *bm, BMLoop *l, const bool select, const BMUVOffsets &offsets) |
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 (const ToolSettings *ts, BMesh *bm) |
| void | ED_uvedit_active_edge_loop_set (BMesh *bm, BMLoop *l) |
| BMLoop * | ED_uvedit_active_edge_loop_get (const ToolSettings *ts, BMesh *bm) |
Visibility and Selection Utilities | |
| bool | ED_uvedit_sync_uvselect_ignore (const ToolSettings *ts) |
| bool | ED_uvedit_sync_uvselect_is_valid_or_ignore (const ToolSettings *ts, const BMesh *bm) |
| static void | uvedit_sync_uvselect_flush_from_v3d (const ToolSettings *ts, BMesh *bm) |
| void | ED_uvedit_sync_uvselect_ensure_if_needed (const ToolSettings *ts, BMesh *bm) |
| char | ED_uvedit_select_mode_get (const Scene *scene) |
| bool | ED_uvedit_select_island_check (const ToolSettings *ts) |
| void | ED_uvedit_select_sync_flush (const ToolSettings *ts, BMesh *bm, const bool select) |
| static void | uvedit_vertex_select_tagged (BMesh *bm, const Scene *scene, bool select) |
| 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 BMesh *bm, const BMFace *efa) |
| bool | uvedit_face_select_test (const Scene *scene, const BMesh *bm, const BMFace *efa) |
| 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) |
| Select UV Face. | |
| void | uvedit_face_select_enable (const Scene *scene, BMesh *bm, BMFace *efa) |
| void | uvedit_face_select_disable (const Scene *scene, BMesh *bm, BMFace *efa) |
| bool | uvedit_edge_select_test_ex (const ToolSettings *ts, const BMesh *bm, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_edge_select_test (const Scene *scene, const BMesh *bm, 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) |
| static bool UNUSED_FUNCTION | bm_loop_select_vert_check_internal (const Scene *scene, BMesh *bm, BMLoop *l) |
| static bool | bm_loop_select_edge_check_internal (const Scene *scene, BMesh *bm, BMLoop *l) |
| 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, BMesh *bm, 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) |
| Select UV Edge. | |
| void | uvedit_edge_select_enable (const Scene *scene, BMesh *bm, BMLoop *l) |
| void | uvedit_edge_select_disable (const Scene *scene, BMesh *bm, BMLoop *l) |
| bool | uvedit_uv_select_test_ex (const ToolSettings *ts, const BMesh *bm, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_uv_select_test (const Scene *scene, const BMesh *bm, 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) |
| Select UV Vertex. | |
| void | uvedit_uv_select_enable (const Scene *scene, BMesh *bm, BMLoop *l) |
| void | uvedit_uv_select_disable (const Scene *scene, BMesh *bm, BMLoop *l) |
| 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) |
Low Level Selection API | |
| bool | uvedit_loop_vert_select_get (const ToolSettings *ts, const BMesh *bm, const BMLoop *l) |
| bool | uvedit_loop_edge_select_get (const ToolSettings *ts, const BMesh *bm, const BMLoop *l) |
| void | uvedit_loop_vert_select_set (const ToolSettings *ts, const BMesh *bm, BMLoop *l, const bool select) |
| void | uvedit_loop_edge_select_set (const ToolSettings *ts, const BMesh *bm, BMLoop *l, const bool select) |
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. | |
| static bool | uvedit_select_pin_ok_or_report (const Scene *scene, ReportList *reports) |
| void | uvedit_select_prepare_custom_data (const Scene *scene, BMesh *bm) |
| void | uvedit_select_prepare_sync_select (const Scene *scene, BMesh *bm) |
| void | uvedit_select_prepare_UNUSED (const Scene *scene, BMesh *bm) |
| bool | uvedit_vert_is_edge_select_any_other (const ToolSettings *ts, const BMesh *bm, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_edge_is_face_select_any_other (const ToolSettings *ts, const BMesh *bm, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_vert_is_face_select_any_other (const ToolSettings *ts, const BMesh *bm, const BMLoop *l, const BMUVOffsets &offsets) |
| bool | uvedit_vert_is_all_other_faces_selected (const ToolSettings *ts, const BMesh *bm, const BMLoop *l, const BMUVOffsets &offsets) |
| static void | bm_clear_uv_vert_selection (const Scene *scene, BMesh *bm) |
UV Selection Non-Sync API | |
| |
| bool | uvedit_vert_select_get_no_sync (const ToolSettings *ts, const BMesh *bm, const BMLoop *l) |
| bool | uvedit_edge_select_get_no_sync (const ToolSettings *ts, const BMesh *bm, const BMLoop *l) |
| bool | uvedit_face_select_get_no_sync (const ToolSettings *ts, const BMesh *bm, const BMFace *f) |
| void | uvedit_vert_select_set_no_sync (const ToolSettings *ts, const BMesh *bm, BMLoop *l, bool select) |
| void | uvedit_edge_select_set_no_sync (const ToolSettings *ts, const BMesh *bm, BMLoop *l, bool select) |
| void | uvedit_face_select_set_no_sync (const ToolSettings *ts, const BMesh *bm, BMFace *f, bool select) |
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_from_verts (const Scene *scene, BMesh *bm, const bool select) |
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 (const Scene *scene, const Span< Object * > objects, UvNearestHit *hit, const bool extend, bool deselect, const bool toggle, const bool select_faces, const char hflag) |
| static void | uv_select_linked_multi_for_select_island (const Scene *scene, const Span< Object * > objects, Object *obedit, BMFace *efa, const bool deselect, const bool select_faces, const char hflag) |
| const float * | uvedit_first_selected_uv_from_vertex (Scene *scene, const BMesh *bm, 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) |
Select Split Operator | |
| static wmOperatorStatus | uv_select_split_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_split (wmOperatorType *ot) |
Box Select Operator | |
| static wmOperatorStatus | uv_box_select_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| 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 | |
| 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) |
| void | ED_uvedit_select_sync_multi (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) |
| static wmOperatorStatus | uv_custom_region_set_exec (bContext *C, wmOperator *op) |
| void | UV_OT_custom_region_set (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 2047 of file uvedit_select.cc.
| enum eUVLoopGenericType |
| Enumerator | |
|---|---|
| UV_LOOP_SELECT | |
| UV_RING_SELECT | |
Definition at line 3682 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 85 of file uvedit_select.cc.
Definition at line 1730 of file uvedit_select.cc.
References bm, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, Scene::toolsettings, uvedit_face_visible_test(), and uvedit_vert_select_set_no_sync().
Referenced by uv_select_flush_from_loop_edge_flag().
Definition at line 712 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_SELECT_UV_EDGE, ED_uvedit_sync_uvselect_ignore(), l, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_edge_select_get_no_sync().
Referenced by uvedit_edge_select_shared_vert().
|
static |
Definition at line 695 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_SELECT_UV, bm_loop_select_vert_check_internal(), ED_uvedit_sync_uvselect_ignore(), l, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_vert_select_get_no_sync().
Referenced by bm_loop_select_vert_check_internal().
|
static |
Definition at line 2082 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 2054 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 2071 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 5106 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_lasso_boundbox(), bm, BMEditMesh::bm, BM_ELEM_CD_GET_FLOAT_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_FACE, 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_island_check(), ED_uvedit_select_mode_get(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), l, BMLoop::prev, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), uv_select_linked_multi_for_select_island(), uv_select_tag_update_for_object(), UV_SELECT_VERT, ToolSettings::uv_sticky, UV_STICKY_VERT, uvedit_edge_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), uvedit_uv_select_set(), uvedit_uv_select_test(), and uvedit_vertex_select_tagged().
Referenced by uv_lasso_select_exec().
|
static |
Definition at line 5088 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 5072 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().
| BMLoop * ED_uvedit_active_edge_loop_get | ( | const ToolSettings * | ts, |
| BMesh * | bm ) |
Definition at line 184 of file uvedit_select.cc.
References bm, BM_EDGE, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV, BM_ELEM_SELECT_UV_EDGE, BM_FACE, BM_face_edge_share_loop(), BM_ITER_ELEM, BM_LOOPS_OF_EDGE, e, BMEditSelection::ele, BMEditSelection::htype, l, BMEditSelection::prev, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Referenced by uv_shortest_path_pick_exec(), and uv_shortest_path_pick_invoke().
Definition at line 175 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().
| BMLoop * ED_uvedit_active_vert_loop_get | ( | const ToolSettings * | ts, |
| BMesh * | bm ) |
Definition at line 114 of file uvedit_select.cc.
References bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV, BM_FACE, BM_face_vert_share_loop(), BM_ITER_ELEM, BM_loop_edge_uvselect_test(), BM_LOOPS_OF_VERT, BM_VERT, BMEditSelection::ele, BMEditSelection::htype, l, BMEditSelection::prev, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and v.
Referenced by uv_shortest_path_pick_exec(), and uv_shortest_path_pick_invoke().
Definition at line 105 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().
Definition at line 3230 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BMEditMesh::bm, EDBM_uvselect_clear(), ELEM, SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_all(), uv_select_invert(), BMesh::uv_select_sync_valid, and uv_select_toggle_all().
Referenced by edbm_select_all_exec(), uv_select_all_perform_multi_ex(), uv_select_edgeloop(), uv_select_edgering(), uv_select_faceloop(), and uv_select_overlap().
| 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 1503 of file uvedit_select.cc.
References sub_v2_v2v2(), UI_view2d_scale_get(), UI_view2d_view_to_region_fl(), and uvedit_nearest_uv().
| bool ED_uvedit_select_island_check | ( | const ToolSettings * | ts | ) |
Definition at line 326 of file uvedit_select.cc.
References SCE_SELECT_EDGE, SCE_SELECT_VERTEX, ToolSettings::selectmode, ToolSettings::uv_flag, UV_FLAG_SELECT_ISLAND, and UV_FLAG_SELECT_SYNC.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_hide_exec(), uv_mouse_select_multi(), uv_select_similar_exec(), and uv_select_similar_type_itemf().
| 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_VERT as a fallback.
Definition at line 296 of file uvedit_select.cc.
References SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_VERT, and ToolSettings::uv_selectmode.
Referenced by do_lasso_select_mesh_uv(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_loop_generic_multi(), uv_shortest_path_pick_ex(), uv_shortest_path_pick_exec(), uv_shortest_path_pick_invoke(), uv_shortest_path_select_exec(), and uvedit_select_pin_ok_or_report().
| void ED_uvedit_select_sync_flush | ( | const ToolSettings * | ts, |
| BMesh * | bm, | ||
| const bool | select ) |
Definition at line 349 of file uvedit_select.cc.
References bm, BM_mesh_select_flush_from_verts(), BM_mesh_select_mode_flush(), BM_mesh_uvselect_flush_shared_only_select(), BM_mesh_uvselect_mode_flush(), BM_mesh_uvselect_sync_to_mesh(), BM_select_history_validate(), CD_PROP_FLOAT2, CustomData_get_offset(), SCE_SELECT_FACE, SCE_SELECT_VERTEX, select, ToolSettings::selectmode, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, and UV_STICKY_LOCATION.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_loop_generic_multi(), uv_select_overlap(), uv_select_pinned_exec(), and uv_shortest_path_pick_ex().
| void ED_uvedit_select_sync_multi | ( | bContext * | C | ) |
Called when changing the UV select sync option.
Definition at line 6785 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(), Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uv_select_sync_update().
| BMLoop ** ED_uvedit_selected_edges | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| int | len_max, | ||
| int * | r_edges_len ) |
Definition at line 6559 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 6532 of file uvedit_select.cc.
References bm, BM_FACES_OF_MESH, BM_ITER_MESH, 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 6617 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_vert_check(), BM_LOOPS_OF_FACE, BM_LOOPS_OF_VERT, BM_uv_map_offsets_get(), CLAMP_MAX, MEM_malloc_arrayN(), MEM_reallocN, Scene::toolsettings, BMUVOffsets::uv, uvedit_face_visible_test(), uvedit_vert_select_get_no_sync(), 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 6681 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, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, 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_VERT, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_STICKY_DISABLE, 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 6745 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 1928 of file uvedit_select.cc.
References BLI_assert, bm, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_EDGE, UV_SELECT_VERT, ToolSettings::uv_selectmode, uvedit_edge_select_get_no_sync(), uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and uvedit_vert_select_get_no_sync().
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_overlap(), uv_select_pinned_exec(), and uv_shortest_path_pick_ex().
| void ED_uvedit_sticky_selectmode_update | ( | bContext * | C | ) |
Definition at line 6761 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_FLAG_SELECT_SYNC, and uv_select_tag_update_for_object().
| void ED_uvedit_sync_uvselect_ensure_if_needed | ( | const ToolSettings * | ts, |
| BMesh * | bm ) |
Definition at line 273 of file uvedit_select.cc.
References bm, CD_PROP_FLOAT2, CustomData_has_layer(), ED_uvedit_sync_uvselect_ignore(), and uvedit_sync_uvselect_flush_from_v3d().
Referenced by EDBM_selectmode_toggle_multi(), and uvedit_select_prepare_sync_select().
| bool ED_uvedit_sync_uvselect_ignore | ( | const ToolSettings * | ts | ) |
Definition at line 236 of file uvedit_select.cc.
References BLI_assert, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, and UV_STICKY_VERT.
Referenced by bm_loop_select_edge_check_internal(), bm_loop_select_vert_check_internal(), blender::ed::uv::UVSyncSelectFromMesh::create_if_needed(), ED_uvedit_sync_uvselect_ensure_if_needed(), ED_uvedit_sync_uvselect_is_valid_or_ignore(), uv_mesh_hide_sync_select(), uv_mouse_select_loop_generic_multi(), uv_rip_exec(), uv_select_flush_from_tag_face(), uv_select_invert(), uv_select_linked_multi(), uvedit_edge_select_disable(), uvedit_edge_select_enable(), uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test_ex(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_face_select_set_with_sticky(), uvedit_face_select_test_ex(), uvedit_uv_select_disable(), uvedit_uv_select_enable(), uvedit_uv_select_set_with_sticky(), and uvedit_uv_select_test_ex().
| bool ED_uvedit_sync_uvselect_is_valid_or_ignore | ( | const ToolSettings * | ts, |
| const BMesh * | bm ) |
Definition at line 246 of file uvedit_select.cc.
References bm, and ED_uvedit_sync_uvselect_ignore().
Referenced by uv_select_linked_multi(), uvedit_edge_select_set_with_sticky(), uvedit_face_select_set_with_sticky(), and uvedit_face_select_shared_vert().
|
static |
Definition at line 5784 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 5843 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 5882 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 5739 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 5431 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 5418 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 5452 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 4601 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_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_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_FACE, 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, ED_uvedit_select_island_check(), ED_uvedit_select_mode_get(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), false, l, OPERATOR_CANCELLED, OPERATOR_FINISHED, BMUVOffsets::pin, BMLoop::prev, wmOperator::ptr, wmOperator::reports, RNA_boolean_get(), RNA_enum_get(), SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select, Scene::toolsettings, UI_view2d_region_to_view_rctf(), BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), uv_select_linked_multi_for_select_island(), uv_select_tag_update_for_object(), UV_SELECT_VERT, ToolSettings::uv_sticky, UV_STICKY_VERT, uvedit_edge_select_set_with_sticky(), uvedit_face_visible_test(), uvedit_select_pin_ok_or_report(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), 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 4589 of file uvedit_select.cc.
References C, CTX_data_scene(), OPERATOR_CANCELLED, wmOperator::ptr, wmOperator::reports, RNA_boolean_get(), uvedit_select_pin_ok_or_report(), and WM_gesture_box_invoke().
Referenced by UV_OT_select_box().
|
static |
Definition at line 4866 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_ELEM_CD_GET_FLOAT_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_FACE, 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_island_check(), ED_uvedit_select_mode_get(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), l, OPERATOR_CANCELLED, OPERATOR_FINISHED, BMLoop::prev, wmOperator::ptr, RNA_enum_get(), RNA_int_get(), SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select, 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_FLAG_SELECT_SYNC, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), uv_select_linked_multi_for_select_island(), uv_select_tag_update_for_object(), UV_SELECT_VERT, ToolSettings::uv_sticky, UV_STICKY_VERT, uvedit_edge_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), 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 4848 of file uvedit_select.cc.
References dist_squared_to_line_segment_v2().
Referenced by uv_circle_select_exec().
|
static |
Definition at line 4836 of file uvedit_select.cc.
References len_squared_v2().
Referenced by uv_circle_select_exec().
|
static |
Definition at line 6866 of file uvedit_select.cc.
References C, CTX_data_scene(), CTX_wm_region(), OPERATOR_FINISHED, Scene::toolsettings, UI_view2d_region_to_view_rctf(), ToolSettings::uv_custom_region, ToolSettings::uv_flag, UV_FLAG_CUSTOM_REGION, ARegion::v2d, and WM_operator_properties_border_to_rctf().
Referenced by UV_OT_custom_region_set().
| bool uv_find_nearest_edge | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| const float | penalty, | ||
| UvNearestHit * | hit ) |
Definition at line 1236 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 1288 of file uvedit_select.cc.
References uv_find_nearest_edge().
| bool uv_find_nearest_face | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| UvNearestHit * | hit ) |
Definition at line 1346 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 1303 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 1366 of file uvedit_select.cc.
References uv_find_nearest_face_multi_ex().
| 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 1351 of file uvedit_select.cc.
References uv_find_nearest_face_ex().
Referenced by uv_find_nearest_face_multi().
| BMLoop * uv_find_nearest_loop_from_edge | ( | Scene * | scene, |
| Object * | obedit, | ||
| BMEdge * | e, | ||
| const float | co[2] ) |
Definition at line 1563 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 1538 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 1384 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 1443 of file uvedit_select.cc.
References uv_find_nearest_vert().
|
static |
Definition at line 6278 of file uvedit_select.cc.
References BLI_assert, bm, FaceIsland::faces, FaceIsland::faces_len, and uvedit_face_select_test().
Referenced by uv_select_similar_island_exec().
|
static |
Definition at line 5295 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 3604 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 3754 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 3687 of file uvedit_select.cc.
References BKE_editmesh_from_object(), BLI_assert_unreachable, bm, BMEditMesh::bm, BM_mesh_select_flush_from_verts(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_wm_region(), depsgraph, ED_uvedit_select_mode_get(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), ED_uvedit_sync_uvselect_ignore(), UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, SEL_DESELECT, Scene::toolsettings, uv_find_nearest_edge_multi(), ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, 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(), and ARegion::v2d.
Referenced by uv_mouse_select_loop_generic().
|
static |
Definition at line 3329 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_mesh_uvselect_mode_flush(), BM_mesh_uvselect_sync_to_mesh(), 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_select_island_check(), 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, 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_FLAG_SELECT_SYNC, 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_linked_multi(), uv_select_tag_update_for_object(), UV_SELECT_VERT, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_STICKY_DISABLE, 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_select_prepare_sync_select(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_test(), BMLoop::v, and ARegion::v2d.
Referenced by uv_mouse_select().
Definition at line 1374 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 1209 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 1218 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 1227 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_custom_region_set | ( | wmOperatorType * | ot | ) |
Definition at line 6879 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_REGISTER, OPTYPE_UNDO, ot, uv_custom_region_set_exec(), WM_gesture_box_cancel(), WM_gesture_box_invoke(), WM_gesture_box_modal(), and WM_operator_properties_gesture_box().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select | ( | wmOperatorType * | ot | ) |
Definition at line 3643 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 3308 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 4806 of file uvedit_select.cc.
References ED_operator_uvedit_space_image(), OPTYPE_UNDO, ot, RNA_def_boolean(), uv_box_select_exec(), uv_box_select_invoke(), WM_gesture_box_cancel(), 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 5043 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 3860 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 5308 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 2993 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 3977 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 4010 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 3796 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 6844 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 2975 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 5715 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 5399 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 6499 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 4152 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 3049 of file uvedit_select.cc.
References bm, BMEditMesh::bm, BM_ELEM_SELECT, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, EDBM_flag_disable_all(), EDBM_flag_enable_all(), l, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and uvedit_vert_select_set_no_sync().
Referenced by ED_uvedit_deselect_all(), and uv_select_toggle_all().
|
static |
Definition at line 3287 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().
|
static |
Definition at line 3282 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 3265 of file uvedit_select.cc.
References ED_uvedit_deselect_all(), SEL_DESELECT, SEL_SELECT, SEL_TOGGLE, 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 3837 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 3845 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 2207 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_offsets_get(), ED_uvedit_deselect_all(), UvNearestHit::l, BMLoop::next, SEL_DESELECT, select, Scene::toolsettings, UV_EDGE_LOOP_BOUNDARY_ALL, UV_EDGE_LOOP_BOUNDARY_LOOP, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), UV_SELECT_VERT, ToolSettings::uv_selectmode, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), uvedit_select_prepare_sync_select(), 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 2098 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 2149 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 2372 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, ED_uvedit_deselect_all(), 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_FLAG_SELECT_SYNC, UV_SELECT_FACE, UV_SELECT_VERT, ToolSettings::uv_selectmode, 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(), uvedit_select_prepare_sync_select(), and uvedit_uv_select_set_with_sticky().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Definition at line 3614 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 2303 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(), ED_uvedit_deselect_all(), BMLoop::f, UvNearestHit::l, BMFace::len, BMLoop::next, SEL_DESELECT, select, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_face_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), uvedit_select_prepare_custom_data(), and uvedit_select_prepare_sync_select().
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 4512 of file uvedit_select.cc.
References bm, bm_clear_uv_vert_selection(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_uvselect_flush_from_loop_edges(), BM_uv_map_offsets_get(), l, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_VERT, uvedit_edge_select_get_no_sync(), uvedit_face_select_set_no_sync(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), uvedit_uv_select_flush_from_tag_sticky_loc_internal(), and uvedit_vert_select_set_no_sync().
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 4293 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_TAG, BM_face_uvselect_set_noflush(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_uv_map_offsets_get(), ED_uvedit_sync_uvselect_ignore(), l, select, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, uvedit_edge_is_face_select_any_other(), uvedit_edge_select_flush_from_tag_sticky_loc_internal(), uvedit_face_select_set(), uvedit_face_select_set_no_sync(), uvedit_loop_edge_select_set(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), uvedit_uv_select_flush_from_tag_sticky_loc_internal(), 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(), uv_select_more_less(), and uv_select_overlap().
|
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 4383 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_uvselect_set_noflush(), 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, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_LOCATION, UV_STICKY_VERT, uvedit_face_select_set_no_sync(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), uvedit_uv_select_flush_from_tag_sticky_loc_internal(), and uvedit_uv_select_set().
Referenced by ED_uvedit_selectmode_clean(), and uv_select_more_less().
|
static |
Definition at line 3091 of file uvedit_select.cc.
References BLI_assert, bm, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV, BM_ELEM_SELECT_UV_EDGE, BM_face_uvselect_set(), BM_face_uvselect_set_noflush(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_loop_edge_uvselect_set_noflush(), BM_loop_vert_uvselect_set_noflush(), BM_loop_vert_uvselect_set_shared(), BM_LOOPS_OF_FACE, BM_mesh_uvselect_flush_shared_only_select(), BM_mesh_uvselect_mode_flush(), BM_mesh_uvselect_sync_to_mesh(), BM_uv_map_offsets_get(), ED_uvedit_sync_uvselect_ignore(), EDBM_select_swap(), EDBM_selectmode_flush(), ELEM, l, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_loop_edge_flag(), UV_SELECT_VERT, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_STICKY_LOCATION, uvedit_edge_select_get_no_sync(), uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), uvedit_face_visible_test(), uvedit_select_flush_from_verts(), uvedit_select_prepare_custom_data(), uvedit_vert_select_get_no_sync(), and uvedit_vert_select_set_no_sync().
Referenced by ED_uvedit_deselect_all().
|
static |
Definition at line 3630 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 2988 of file uvedit_select.cc.
References C, and uv_select_more_less().
Referenced by UV_OT_select_less().
|
static |
Definition at line 3972 of file uvedit_select.cc.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked().
|
static |
Definition at line 3901 of file uvedit_select.cc.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(), BM_ELEM_SELECT, 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_FLAG_SELECT_SYNC, uv_nearest_hit_init_max(), uv_nearest_hit_init_max_default(), uv_select_all_perform_multi(), uv_select_linked_multi(), ToolSettings::uv_sticky, UV_STICKY_VERT, 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 2474 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_ELEM_TAG, 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_elem_table_ensure(), BM_mesh_select_flush_from_verts(), BM_mesh_select_mode_flush(), BM_mesh_uvselect_flush_from_faces_only_deselect(), BM_mesh_uvselect_flush_from_faces_only_select(), BM_mesh_uvselect_sync_to_mesh(), BM_uv_map_offsets_get(), BM_uv_vert_map_at_index(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), ED_uvedit_sync_uvselect_ignore(), ED_uvedit_sync_uvselect_is_valid_or_ignore(), UvNearestHit::efa, ELEM, 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, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, ToolSettings::selectmode, UvMapVert::separate, SET_SELECTION, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), and uvedit_uv_select_test().
Referenced by uv_mouse_select_multi(), uv_select_linked_internal(), and uv_select_linked_multi_for_select_island().
|
static |
A wrapper for uv_select_linked_multi that uses defaults for UV island selection.
Definition at line 2766 of file uvedit_select.cc.
References UvNearestHit::efa, UvNearestHit::ob, and uv_select_linked_multi().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), and uv_circle_select_exec().
|
static |
Definition at line 4005 of file uvedit_select.cc.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 3998 of file uvedit_select.cc.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 3773 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 3783 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 6801 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 6824 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_FLAG_SELECT_SYNC, and uv_select_mode_exec().
Referenced by UV_OT_select_mode().
|
static |
Definition at line 2970 of file uvedit_select.cc.
References C, and uv_select_more_less().
Referenced by UV_OT_select_more().
|
static |
Definition at line 2811 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_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_mesh_uvselect_flush_from_loop_verts_only_deselect(), BM_mesh_uvselect_flush_from_loop_verts_only_select(), BM_mesh_uvselect_sync_to_mesh(), 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, SCE_SELECT_FACE, select, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_FACE, uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), ToolSettings::uv_selectmode, uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_loop_edge_select_get(), uvedit_loop_vert_select_get(), uvedit_select_flush_from_verts(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), 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 5491 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_flag_enable, 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_VERT, C, CD_PROP_FLOAT2, copy_v2_v2(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, ED_uvedit_deselect_all(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), UVOverlapData::face_index, float, BMesh::ftable, i, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), BVHTreeOverlap::indexA, indices, l, 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, select, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), Scene::toolsettings, UVOverlapData::tri, UNPACK2, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_flush_from_tag_face(), uv_select_tag_update_for_object(), uvedit_face_select_test(), uvedit_face_visible_test_ex(), uvedit_select_prepare_custom_data(), and uvedit_select_prepare_sync_select().
Referenced by uv_select_overlap_exec().
|
static |
Definition at line 5709 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 5334 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_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_select_sync_flush(), ED_uvedit_selectmode_flush(), l, OPERATOR_CANCELLED, OPERATOR_FINISHED, BMUVOffsets::pin, wmOperator::reports, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_tag_update_for_object(), uvedit_face_visible_test(), uvedit_select_pin_ok_or_report(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), and uvedit_uv_select_enable().
Referenced by UV_OT_select_pinned().
|
static |
Definition at line 6034 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_from_verts(), BM_mesh_uvselect_flush_from_loop_verts_only_select(), BM_mesh_uvselect_sync_to_mesh(), 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_FLAG_SELECT_SYNC, uv_select_tag_update_for_object(), uvedit_edge_select_set(), uvedit_edge_select_test(), uvedit_face_visible_test(), uvedit_select_flush_from_verts(), and uvedit_select_prepare_sync_select().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 6404 of file uvedit_select.cc.
References C, CTX_data_tool_settings(), ED_uvedit_select_island_check(), 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_FLAG_SELECT_SYNC, UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), uv_select_similar_vert_exec(), and ToolSettings::uv_selectmode.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 6161 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_from_verts(), BM_mesh_uvselect_flush_from_loop_verts_only_select(), BM_mesh_uvselect_sync_to_mesh(), 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_FLAG_SELECT_SYNC, uv_select_tag_update_for_object(), uvedit_face_select_set(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_flush_from_verts(), and uvedit_select_prepare_sync_select().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 6284 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_from_verts(), BM_mesh_uvselect_flush_from_loop_verts_only_select(), BM_mesh_uvselect_sync_to_mesh(), 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_FLAG_SELECT_SYNC, uv_island_selected(), uv_select_tag_update_for_object(), uvedit_face_select_set(), uvedit_select_flush_from_verts(), and uvedit_select_prepare_sync_select().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 6453 of file uvedit_select.cc.
References C, CTX_data_tool_settings(), ED_uvedit_select_island_check(), RNA_enum_item_end(), RNA_enum_items_add_value(), ToolSettings::selectmode, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_similar_type_items, 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, and UV_SSIM_WINDING.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 5910 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_from_verts(), BM_mesh_uvselect_flush_from_loop_verts_only_select(), BM_mesh_uvselect_sync_to_mesh(), 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_FLAG_SELECT_SYNC, uv_select_tag_update_for_object(), uvedit_face_visible_test(), uvedit_select_flush_from_verts(), uvedit_select_prepare_sync_select(), 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 4065 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_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, 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, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uv_select_tag_update_for_object(), ToolSettings::uv_sticky, UV_STICKY_VERT, uvedit_face_visible_test(), uvedit_loop_edge_select_get(), uvedit_loop_edge_select_set(), uvedit_loop_vert_select_get(), uvedit_loop_vert_select_set(), uvedit_select_prepare_custom_data(), uvedit_select_prepare_sync_select(), and WM_event_add_notifier().
Referenced by UV_OT_select_split().
Called when the user disables select sync.
Definition at line 4182 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BM_mesh_uvselect_clear(), BM_mesh_uvselect_mode_flush_update(), CD_PROP_FLOAT2, CustomData_get_offset(), Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_selectmode, and uvedit_sync_uvselect_flush_from_v3d().
Referenced by ED_uvedit_select_sync_multi().
|
static |
Definition at line 4214 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_FLAG_SELECT_SYNC, 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 3085 of file uvedit_select.cc.
References BMEditMesh::bm, uv_select_all(), and uvedit_select_is_any_selected().
Referenced by ED_uvedit_deselect_all().
| bool uvedit_edge_is_face_select_any_other | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1664 of file uvedit_select.cc.
References BLI_assert, bm, 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 uv_select_flush_from_tag_face(), and uvedit_edge_select_test_ex().
Definition at line 825 of file uvedit_select.cc.
References bm, BM_edge_select_set(), BM_elem_flag_test, BM_ELEM_SELECT_UV_EDGE, BM_face_select_set(), BM_loop_edge_uvselect_set_noflush(), BM_loop_vert_uvselect_set_noflush(), BM_vert_select_set(), ED_uvedit_sync_uvselect_ignore(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_VERT, ToolSettings::uv_selectmode, uvedit_edge_select_get_no_sync(), uvedit_edge_select_set_no_sync(), and uvedit_vert_select_set_no_sync().
Referenced by uvedit_edge_select_set().
Definition at line 797 of file uvedit_select.cc.
References bm, BM_edge_select_set(), BM_face_select_set(), BM_loop_edge_uvselect_set(), BM_vert_select_set(), ED_uvedit_sync_uvselect_ignore(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_edge_select_set_no_sync(), and uvedit_vert_select_set_no_sync().
Referenced by uvedit_edge_select_set().
|
static |
Helper function for uv_select_flush_from_tag_face.
Definition at line 4266 of file uvedit_select.cc.
References bm, BM_loop_uv_share_edge_check(), BMLoop::f, l, BMLoop::radial_next, select, BMUVOffsets::uv, uvedit_edge_select_set(), and uvedit_face_visible_test().
Referenced by uv_select_flush_from_tag_face().
|
nodiscard |
Definition at line 1763 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test_bool, BM_ELEM_SELECT_UV_EDGE, l, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Referenced by bm_loop_select_edge_check_internal(), ED_uvedit_selectmode_flush(), uv_select_flush_from_loop_edge_flag(), uv_select_invert(), uvedit_edge_select_disable(), uvedit_edge_select_test_ex(), and uvedit_loop_edge_select_get().
Select UV Edge.
Changes selection state of a single UV Edge.
Definition at line 787 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(), uvedit_edge_select_flush_from_tag_sticky_loc_internal(), and uvedit_edge_select_set_with_sticky().
| void uvedit_edge_select_set_no_sync | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| BMLoop * | l, | ||
| bool | select ) |
Definition at line 1787 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV_EDGE, l, select, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Referenced by ED_uvedit_select_all(), ED_uvedit_selectmode_flush(), uv_reveal_exec(), uv_select_all(), uv_select_invert(), uvedit_edge_select_disable(), uvedit_edge_select_enable(), uvedit_edge_select_set_noflush(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_face_select_shared_vert(), uvedit_loop_edge_select_set(), and uvedit_select_flush_from_verts().
| void uvedit_edge_select_set_noflush | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| 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 761 of file uvedit_select.cc.
References BLI_assert, bm, BM_loop_edge_uvselect_set_noflush(), BM_loop_uv_share_edge_check(), BMLoop::f, l, BMLoop::radial_next, select, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_STICKY_DISABLE, UV_STICKY_VERT, uvedit_edge_select_set_no_sync(), 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 659 of file uvedit_select.cc.
References BLI_assert, bm, ED_uvedit_sync_uvselect_ignore(), ED_uvedit_sync_uvselect_is_valid_or_ignore(), l, select, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_LOCATION, UV_STICKY_VERT, 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 727 of file uvedit_select.cc.
References BLI_assert, bm, bm_loop_select_edge_check_internal(), ELEM, l, BMLoop::next, BMLoop::radial_next, select, Scene::toolsettings, UV_STICKY_LOCATION, UV_STICKY_VERT, 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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 651 of file uvedit_select.cc.
References bm, 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_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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 601 of file uvedit_select.cc.
References BLI_assert_unreachable, bm, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_SELECT, BM_ELEM_SELECT_UV_EDGE, ED_uvedit_sync_uvselect_ignore(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_VERT, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_LOCATION, uvedit_edge_is_face_select_any_other(), uvedit_edge_select_get_no_sync(), and uvedit_vert_select_get_no_sync().
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().
Definition at line 577 of file uvedit_select.cc.
References bm, BM_face_select_set(), BM_face_uvselect_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, ED_uvedit_sync_uvselect_ignore(), l, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), and uvedit_vert_select_set_no_sync().
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().
Definition at line 553 of file uvedit_select.cc.
References bm, BM_face_select_set(), BM_face_uvselect_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, ED_uvedit_sync_uvselect_ignore(), l, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), and uvedit_vert_select_set_no_sync().
Referenced by uvedit_face_select_set().
|
nodiscard |
Definition at line 1769 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test_bool, BM_ELEM_SELECT_UV, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Select UV Face.
Changes selection state of a single UV Face.
Definition at line 543 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_no_sync | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| BMFace * | f, | ||
| bool | select ) |
Definition at line 1799 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV, select, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Referenced by ED_uvedit_select_all(), ED_uvedit_selectmode_flush(), uv_reveal_exec(), uv_select_all(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_invert(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_face_select_shared_vert(), and uvedit_select_flush_from_verts().
| void uvedit_face_select_set_with_sticky | ( | const Scene * | scene, |
| BMesh * | bm, | ||
| BMFace * | efa, | ||
| const bool | select, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 445 of file uvedit_select.cc.
References BLI_assert, bm, ED_uvedit_sync_uvselect_ignore(), ED_uvedit_sync_uvselect_is_valid_or_ignore(), select, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, 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 474 of file uvedit_select.cc.
References BLI_assert, bm, BM_ELEM_SELECT_UV, BM_face_uvselect_set_noflush(), BM_ITER_ELEM, BM_loop_edge_uvselect_check_other_face(), BM_loop_edge_uvselect_set_noflush(), BM_loop_edge_uvselect_set_shared(), BM_loop_vert_uvselect_check_other_face(), BM_loop_vert_uvselect_set_noflush(), BM_loop_vert_uvselect_set_shared(), BM_LOOPS_OF_FACE, ED_uvedit_sync_uvselect_is_valid_or_ignore(), l, select, Scene::toolsettings, BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_LOCATION, UV_STICKY_VERT, uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), uvedit_uv_select_shared_vert(), and uvedit_vert_is_face_select_any_other().
Referenced by uvedit_face_select_set_with_sticky().
Definition at line 440 of file uvedit_select.cc.
References bm, 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_copy_mirrored_faces(), 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 BMesh * | bm, | ||
| const BMFace * | efa ) |
Definition at line 412 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_SELECT_UV, BM_ELEM_SELECT_UV_EDGE, BM_FACE_FIRST_LOOP, ED_uvedit_sync_uvselect_ignore(), BMLoop::next, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, UV_SELECT_FACE, UV_SELECT_VERT, and ToolSettings::uv_selectmode.
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 407 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_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_loop(), 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_edge_select_flush_from_tag_sticky_loc_internal(), 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_from_verts(), uvedit_select_is_any_selected(), uvedit_translate(), uvedit_uv_select_flush_from_tag_sticky_loc_internal(), 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 400 of file uvedit_select.cc.
References BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
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, |
| const BMesh * | bm, | ||
| BMVert * | eve, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 2783 of file uvedit_select.cc.
References bm, 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().
| bool uvedit_loop_edge_select_get | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| const BMLoop * | l ) |
Definition at line 1163 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV_EDGE, l, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_edge_select_get_no_sync().
Referenced by uv_rip_object(), uv_select_more_less(), and uv_select_split_exec().
| void uvedit_loop_edge_select_set | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| BMLoop * | l, | ||
| const bool | select ) |
Definition at line 1189 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_set, BM_ELEM_SELECT_UV_EDGE, l, select, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_edge_select_set_no_sync().
Referenced by uv_rip_object(), uv_select_flush_from_tag_face(), and uv_select_split_exec().
|
static |
Definition at line 1119 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 1092 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().
| bool uvedit_loop_vert_select_get | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| const BMLoop * | l ) |
Definition at line 1153 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test_bool, BM_ELEM_SELECT_UV, l, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_vert_select_get_no_sync().
Referenced by uv_rip_object(), uv_select_more_less(), and uv_select_split_exec().
| void uvedit_loop_vert_select_set | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| BMLoop * | l, | ||
| const bool | select ) |
Definition at line 1175 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_set, BM_ELEM_SELECT_UV, l, select, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_vert_select_set_no_sync().
Referenced by uv_rip_object(), and uv_select_split_exec().
|
static |
Definition at line 1458 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/de-selection flush from vertices.
| select | When true, flush the selection state to de-selected elements, otherwise perform the opposite, flushing de-selection. |
Definition at line 1983 of file uvedit_select.cc.
References BLI_assert, bm, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, select, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), uvedit_face_visible_test(), uvedit_select_prepare_custom_data(), and uvedit_vert_select_get_no_sync().
Referenced by uv_rip_object(), 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 3012 of file uvedit_select.cc.
References bm, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_face_visible_test(), and uvedit_vert_select_get_no_sync().
Referenced by uv_select_toggle_all(), and uvedit_select_is_any_selected_multi().
Definition at line 3036 of file uvedit_select.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, and uvedit_select_is_any_selected().
|
static |
Definition at line 1594 of file uvedit_select.cc.
References BKE_report(), ED_uvedit_select_mode_get(), RPT_ERROR, and UV_SELECT_VERT.
Referenced by uv_box_select_exec(), uv_box_select_invoke(), and uv_select_pinned_exec().
Definition at line 1603 of file uvedit_select.cc.
References BLI_assert, bm, BM_mesh_uvselect_clear(), CD_PROP_FLOAT2, CustomData_get_active_layer_name(), Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
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_rip_object(), 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_overlap(), uv_select_pinned_exec(), uv_select_split_exec(), uvedit_select_flush_from_verts(), and uvedit_select_prepare_UNUSED().
Definition at line 1617 of file uvedit_select.cc.
References bm, ED_uvedit_sync_uvselect_ensure_if_needed(), and Scene::toolsettings.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_rip_object(), uv_select_edgeloop(), 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_linked_multi(), uv_select_more_less(), 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(), uv_select_split_exec(), and uvedit_select_prepare_UNUSED().
Definition at line 1623 of file uvedit_select.cc.
References bm, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_select_prepare_custom_data(), and uvedit_select_prepare_sync_select().
|
static |
Definition at line 251 of file uvedit_select.cc.
References BLI_assert, bm, BM_mesh_uvselect_sync_from_mesh_sticky_disabled(), BM_mesh_uvselect_sync_from_mesh_sticky_location(), BM_mesh_uvselect_sync_from_mesh_sticky_vert(), CD_PROP_FLOAT2, CustomData_get_offset(), ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_LOCATION, and UV_STICKY_VERT.
Referenced by ED_uvedit_sync_uvselect_ensure_if_needed(), and uv_select_sync_update().
Definition at line 1070 of file uvedit_select.cc.
References bm, BM_face_select_set(), BM_loop_vert_uvselect_set_noflush(), BM_vert_select_set(), ED_uvedit_sync_uvselect_ignore(), l, SCE_SELECT_FACE, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_vert_select_set_no_sync().
Referenced by uv_rip_object(), and uvedit_uv_select_set().
Definition at line 1044 of file uvedit_select.cc.
References bm, BM_face_select_set(), BM_loop_vert_uvselect_set_noflush(), BM_vert_select_set(), ED_uvedit_sync_uvselect_ignore(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, and uvedit_vert_select_set_no_sync().
Referenced by stitch_propagate_uv_final_position(), uv_select_pinned_exec(), and uvedit_uv_select_set().
|
static |
Helper function for uv_select_flush_from_tag_loop and uv_select_flush_from_tag_face.
Definition at line 4234 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().
Select UV Vertex.
Changes selection state of a single UV vertex.
Definition at line 1034 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_similar_vert_exec(), uvedit_uv_select_flush_from_tag_sticky_loc_internal(), 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 965 of file uvedit_select.cc.
References bm, ED_uvedit_sync_uvselect_ignore(), l, select, Scene::toolsettings, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_LOCATION, UV_STICKY_VERT, 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 996 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, BMUVOffsets::uv, UV_STICKY_LOCATION, UV_STICKY_VERT, 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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 957 of file uvedit_select.cc.
References bm, 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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 877 of file uvedit_select.cc.
References BLI_assert_unreachable, bm, BM_elem_flag_test, BM_elem_flag_test_bool, BM_ELEM_SELECT, BM_ELEM_SELECT_UV, ED_uvedit_sync_uvselect_ignore(), l, SCE_SELECT_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, ToolSettings::uv_sticky, UV_STICKY_DISABLE, UV_STICKY_LOCATION, uvedit_vert_is_edge_select_any_other(), uvedit_vert_is_face_select_any_other(), and uvedit_vert_select_get_no_sync().
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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1709 of file uvedit_select.cc.
References BLI_assert, bm, 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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1634 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::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 BMesh * | bm, | ||
| const BMLoop * | l, | ||
| const BMUVOffsets & | offsets ) |
Definition at line 1688 of file uvedit_select.cc.
References BLI_assert, bm, 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().
|
nodiscard |
Definition at line 1757 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_test_bool, BM_ELEM_SELECT_UV, l, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Referenced by bm_loop_select_vert_check_internal(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_flush(), uv_select_invert(), uvedit_edge_select_test_ex(), uvedit_loop_vert_select_get(), uvedit_select_flush_from_verts(), uvedit_select_is_any_selected(), and uvedit_uv_select_test_ex().
| void uvedit_vert_select_set_no_sync | ( | const ToolSettings * | ts, |
| const BMesh * | bm, | ||
| BMLoop * | l, | ||
| bool | select ) |
Definition at line 1776 of file uvedit_select.cc.
References BLI_assert, bm, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT_UV, l, select, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, and UV_FLAG_SELECT_SYNC.
Referenced by bm_clear_uv_vert_selection(), ED_uvedit_select_all(), uv_reveal_exec(), uv_select_all(), uv_select_flush_from_loop_edge_flag(), uv_select_invert(), uvedit_edge_select_disable(), uvedit_edge_select_enable(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_loop_vert_select_set(), uvedit_uv_select_disable(), and uvedit_uv_select_enable().
Definition at line 385 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 6448 of file uvedit_select.cc.
|
static |
Definition at line 6431 of file uvedit_select.cc.
Referenced by UV_OT_select_similar(), and uv_select_similar_type_itemf().