|
Blender
V2.93
|
#include <math.h>#include <stdlib.h>#include <string.h>#include "MEM_guardedalloc.h"#include "DNA_image_types.h"#include "DNA_meshdata_types.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_space_types.h"#include "BLI_alloca.h"#include "BLI_blenlib.h"#include "BLI_hash.h"#include "BLI_kdopbvh.h"#include "BLI_lasso_2d.h"#include "BLI_math.h"#include "BLI_polyfill_2d.h"#include "BLI_utildefines.h"#include "BKE_context.h"#include "BKE_customdata.h"#include "BKE_editmesh.h"#include "BKE_layer.h"#include "BKE_mesh.h"#include "BKE_mesh_mapping.h"#include "BKE_report.h"#include "DEG_depsgraph.h"#include "DEG_depsgraph_query.h"#include "ED_image.h"#include "ED_mesh.h"#include "ED_screen.h"#include "ED_select_utils.h"#include "ED_uvedit.h"#include "RNA_access.h"#include "RNA_define.h"#include "WM_api.h"#include "WM_types.h"#include "UI_view2d.h"#include "uvedit_intern.h"Go to the source code of this file.
Classes | |
| struct | UVOverlapData |
Macros | |
| #define | SET_SELECTION(value) |
| #define | IS_SEL 1 |
| #define | IS_UNSEL 2 |
Functions | |
(De)Select All Operator | |
| static void | uv_select_all_perform (Scene *scene, Object *obedit, int action) |
| static void | uv_select_all_perform_multi_ex (Scene *scene, Object **objects, const uint objects_len, int action, const Object *ob_exclude) |
| static void | uv_select_all_perform_multi (Scene *scene, Object **objects, const uint objects_len, int action) |
| bool | uvedit_select_is_any_selected (Scene *scene, Object *obedit) |
| bool | uvedit_select_is_any_selected_multi (Scene *scene, Object **objects, const uint objects_len) |
| static int | 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 (SpaceImage *sima, Scene *scene, Object *obedit, const bool select) |
| static void | uv_select_flush_from_tag_loop (SpaceImage *sima, Scene *scene, Object *obedit, const bool select) |
| static void | uv_select_flush_from_tag_sticky_loc_internal (Scene *scene, BMEditMesh *em, UvVertMap *vmap, const uint efa_index, BMLoop *l, const bool select, const int cd_loop_uv_offset) |
Select Split Operator | |
| static void | uv_select_tag_update_for_object (Depsgraph *depsgraph, const ToolSettings *ts, Object *obedit) |
| static int | uv_select_split_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_split (wmOperatorType *ot) |
Active Selection Tracking | |
Currently we don't store loops in the selection history, store face/edge/vert combinations (needed for UV path selection). | |
| void | ED_uvedit_active_vert_loop_set (BMesh *bm, BMLoop *l) |
| BMLoop * | ED_uvedit_active_vert_loop_get (BMesh *bm) |
| void | ED_uvedit_active_edge_loop_set (BMesh *bm, BMLoop *l) |
| BMLoop * | ED_uvedit_active_edge_loop_get (BMesh *bm) |
Visibility and Selection Utilities | |
| char | ED_uvedit_select_mode_get (const Scene *scene) |
| void | ED_uvedit_select_sync_flush (const ToolSettings *ts, BMEditMesh *em, const bool select) |
| static void | uvedit_vertex_select_tagged (BMEditMesh *em, Scene *scene, bool select, int cd_loop_uv_offset) |
| bool | uvedit_face_visible_test_ex (const ToolSettings *ts, BMFace *efa) |
| bool | uvedit_face_visible_test (const Scene *scene, BMFace *efa) |
| bool | uvedit_face_select_test_ex (const ToolSettings *ts, BMFace *efa, const int cd_loop_uv_offset) |
| bool | uvedit_face_select_test (const Scene *scene, BMFace *efa, const int cd_loop_uv_offset) |
| void | uvedit_face_select_set_with_sticky (const SpaceImage *sima, const Scene *scene, BMEditMesh *em, BMFace *efa, const bool select, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_face_select_set (const struct Scene *scene, struct BMEditMesh *em, struct BMFace *efa, const bool select, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_face_select_enable (const Scene *scene, BMEditMesh *em, BMFace *efa, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_face_select_disable (const Scene *scene, BMEditMesh *em, BMFace *efa, const int cd_loop_uv_offset) |
| bool | uvedit_edge_select_test_ex (const ToolSettings *ts, BMLoop *l, const int cd_loop_uv_offset) |
| bool | uvedit_edge_select_test (const Scene *scene, BMLoop *l, const int cd_loop_uv_offset) |
| void | uvedit_edge_select_set_with_sticky (const struct SpaceImage *sima, const Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const bool do_history, const uint cd_loop_uv_offset) |
| void | uvedit_edge_select_set (const Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_edge_select_enable (const Scene *scene, BMEditMesh *em, BMLoop *l, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_edge_select_disable (const Scene *scene, BMEditMesh *em, BMLoop *l, const int cd_loop_uv_offset) |
| bool | uvedit_uv_select_test_ex (const ToolSettings *ts, BMLoop *l, const int cd_loop_uv_offset) |
| bool | uvedit_uv_select_test (const Scene *scene, BMLoop *l, const int cd_loop_uv_offset) |
| void | uvedit_uv_select_set_with_sticky (const struct SpaceImage *sima, const Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const bool do_history, const uint cd_loop_uv_offset) |
| void | uvedit_uv_select_set (const Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_uv_select_enable (const Scene *scene, BMEditMesh *em, BMLoop *l, const bool do_history, const int cd_loop_uv_offset) |
| void | uvedit_uv_select_disable (const Scene *scene, BMEditMesh *em, BMLoop *l, const int cd_loop_uv_offset) |
| static BMLoop * | uvedit_loop_find_other_radial_loop_with_visible_face (const Scene *scene, BMLoop *l_src, const int cd_loop_uv_offset) |
| static BMLoop * | uvedit_loop_find_other_boundary_loop_with_visible_face (const Scene *scene, BMLoop *l_edge, BMVert *v_pivot, const int cd_loop_uv_offset) |
Find Nearest Elements | |
| bool | uv_find_nearest_edge (Scene *scene, Object *obedit, const float co[2], UvNearestHit *hit) |
| bool | uv_find_nearest_edge_multi (Scene *scene, Object **objects, const uint objects_len, const float co[2], 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, Object **objects, const uint objects_len, const float co[2], UvNearestHit *hit, const bool only_in_face) |
| bool | uv_find_nearest_face_multi (Scene *scene, Object **objects, const uint objects_len, 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, Object **objects, const uint objects_len, float const co[2], const float penalty_dist, UvNearestHit *hit) |
| bool | ED_uvedit_nearest_uv (const Scene *scene, Object *obedit, const float co[2], float *dist_sq, float r_uv[2]) |
| bool | ED_uvedit_nearest_uv_multi (const Scene *scene, Object **objects, const uint objects_len, const float co[2], 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 UV's split out. | |
| BMLoop * | uv_find_nearest_loop_from_vert (struct Scene *scene, struct Object *obedit, struct BMVert *v, const float co[2]) |
| BMLoop * | uv_find_nearest_loop_from_edge (struct Scene *scene, struct Object *obedit, struct BMEdge *e, const float co[2]) |
Edge Ring Select | |
| static int | uv_select_edgering (const SpaceImage *sima, Scene *scene, Object *obedit, UvNearestHit *hit, const bool extend) |
Select Linked | |
| static void | uv_select_linked_multi (Scene *scene, Object **objects, const uint objects_len, UvNearestHit *hit, const bool extend, bool deselect, const bool toggle, const bool select_faces) |
| const float * | uvedit_first_selected_uv_from_vertex (Scene *scene, BMVert *eve, const int cd_loop_uv_offset) |
Select More/Less Operator | |
| static int | uv_select_more_less (bContext *C, const bool select) |
| static int | uv_select_more_exec (bContext *C, wmOperator *UNUSED(op)) |
| void | UV_OT_select_more (wmOperatorType *ot) |
| static int | uv_select_less_exec (bContext *C, wmOperator *UNUSED(op)) |
| void | UV_OT_select_less (wmOperatorType *ot) |
Mouse Select Operator | |
| static int | uv_mouse_select_multi (bContext *C, Object **objects, uint objects_len, const float co[2], const bool extend, const bool deselect_all) |
| static int | uv_mouse_select (bContext *C, const float co[2], const bool extend, const bool deselect_all) |
| static int | uv_select_exec (bContext *C, wmOperator *op) |
| static int | uv_select_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | UV_OT_select (wmOperatorType *ot) |
Edge Loop Select Operator | |
| static int | uv_select_loop_exec (bContext *C, wmOperator *op) |
| static int | uv_select_loop_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | UV_OT_select_loop (wmOperatorType *ot) |
Edge Ring Select Operator | |
| static int | uv_select_edge_ring_exec (bContext *C, wmOperator *op) |
| static int | uv_select_edge_ring_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| void | UV_OT_select_edge_ring (wmOperatorType *ot) |
Select Linked Operator | |
| static int | uv_select_linked_internal (bContext *C, wmOperator *op, const wmEvent *event, bool pick) |
| static int | uv_select_linked_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_linked (wmOperatorType *ot) |
Select Linked (Cursor Pick) Operator | |
| static int | uv_select_linked_pick_invoke (bContext *C, wmOperator *op, const wmEvent *event) |
| static int | uv_select_linked_pick_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_linked_pick (wmOperatorType *ot) |
Box Select Operator | |
| static int | uv_box_select_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_box (wmOperatorType *ot) |
Circle Select Operator | |
| static int | uv_circle_select_is_point_inside (const float uv[2], const float offset[2], const float ellipse[2]) |
| static int | 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 int | 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 int mcoords[][2], const int mcoords_len, const float co_test[2]) |
| static bool | do_lasso_select_mesh_uv (bContext *C, const int mcoords[][2], const int mcoords_len, const eSelectOp sel_op) |
| static int | uv_lasso_select_exec (bContext *C, wmOperator *op) |
| void | UV_OT_select_lasso (wmOperatorType *ot) |
Select Pinned UV's Operator | |
| static int | uv_select_pinned_exec (bContext *C, wmOperator *UNUSED(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 int | uv_select_overlap (bContext *C, const bool extend) |
| static int | 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 (Scene *scene, BMesh *bm, int len_max, int *r_faces_len) |
| BMLoop ** | ED_uvedit_selected_edges (Scene *scene, BMesh *bm, int len_max, int *r_edges_len) |
| BMLoop ** | ED_uvedit_selected_verts (Scene *scene, BMesh *bm, int len_max, int *r_verts_len) |
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 int cd_loop_uv_offset) |
| static BMLoop * | bm_select_edgeloop_single_side_next (const Scene *scene, BMLoop *l_step, BMVert *v_from, const int cd_loop_uv_offset) |
| static void | bm_loop_tags_clear (BMesh *bm) |
| static void | uv_select_edgeloop_double_side_tag (const Scene *scene, BMEditMesh *em, BMLoop *l_init_pair[2], const int cd_loop_uv_offset) |
| static void | uv_select_edgeloop_single_side_tag (const Scene *scene, BMEditMesh *em, BMLoop *l_init, const int cd_loop_uv_offset, enum eUVEdgeLoopBoundaryMode boundary_mode, int r_count_by_select[2]) |
| static int | uv_select_edgeloop (SpaceImage *sima, 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 int | uv_mouse_select_loop_generic_multi (bContext *C, Object **objects, uint objects_len, const float co[2], const bool extend, enum eUVLoopGenericType loop_type) |
| static int | uv_mouse_select_loop_generic (bContext *C, const float co[2], const bool extend, enum eUVLoopGenericType loop_type) |
| #define IS_SEL 1 |
| #define IS_UNSEL 2 |
| #define SET_SELECTION | ( | value | ) |
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 1008 of file uvedit_select.c.
| enum eUVLoopGenericType |
| Enumerator | |
|---|---|
| UV_LOOP_SELECT | |
| UV_RING_SELECT | |
Definition at line 2173 of file uvedit_select.c.
|
static |
Definition at line 1043 of file uvedit_select.c.
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 uv_select_edgeloop_double_side_tag(), and uv_select_edgeloop_single_side_tag().
|
static |
Definition at line 1015 of file uvedit_select.c.
References BM_edge_other_vert(), BMLoop::e, BMLoop::f, BMFace::len, BMLoop::next, NULL, BMLoop::prev, scene, uvedit_loop_find_other_radial_loop_with_visible_face(), and BMLoop::v.
Referenced by uv_select_edgeloop_double_side_tag().
|
static |
Definition at line 1032 of file uvedit_select.c.
References BM_edge_other_vert(), BMLoop::e, scene, and uvedit_loop_find_other_boundary_loop_with_visible_face().
Referenced by uv_select_edgeloop_single_side_tag().
|
static |
Definition at line 3276 of file uvedit_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, BLI_lasso_boundbox(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_face_uv_calc_center_median(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_VERT, C, CD_MLOOPUV, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), CTX_wm_space_image(), CustomData_get_offset(), depsgraph, do_lasso_select_mesh_uv_is_point_inside(), ED_uvedit_select_sync_flush(), l, BMesh::ldata, MEM_freeN, NULL, UvNearestHit::ob, SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select(), ToolSettings::selectmode, SI_STICKY_VERTEX, SpaceImage::sticky, Scene::toolsettings, MLoopUV::uv, ToolSettings::uv_flag, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_uv_select_set(), uvedit_uv_select_test(), uvedit_vertex_select_tagged(), and BMLoop::v.
Referenced by uv_lasso_select_exec().
|
static |
Definition at line 3259 of file uvedit_select.c.
References BLI_lasso_is_point_inside(), BLI_rcti_isect_pt_v(), UI_view2d_view_to_region_clip(), ARegion::v2d, and V2D_IS_CLIPPED.
Referenced by do_lasso_select_mesh_uv().
Definition at line 132 of file uvedit_select.c.
References bm, BM_EDGE, BM_FACE, BM_face_edge_share_loop(), BMEditSelection::ele, BMEditSelection::htype, ListBase::last, NULL, BMEditSelection::prev, and BMesh::selected.
Referenced by uv_shortest_path_pick_exec(), and uv_shortest_path_pick_invoke().
Definition at line 123 of file uvedit_select.c.
References bm, BM_select_history_clear(), BM_select_history_remove, BM_select_history_store_notest, BMLoop::e, BMLoop::f, and l.
Referenced by mouse_mesh_uv_shortest_path_vert(), and uv_mouse_select_multi().
Definition at line 110 of file uvedit_select.c.
References bm, BM_FACE, BM_face_vert_share_loop(), BM_VERT, BMEditSelection::ele, BMEditSelection::htype, ListBase::last, NULL, BMEditSelection::prev, and BMesh::selected.
Referenced by uv_shortest_path_pick_exec(), and uv_shortest_path_pick_invoke().
Definition at line 101 of file uvedit_select.c.
References bm, BM_select_history_clear(), BM_select_history_remove, BM_select_history_store_notest, BMLoop::f, l, and BMLoop::v.
Referenced by mouse_mesh_uv_shortest_path_vert(), and uv_mouse_select_multi().
| bool ED_uvedit_nearest_uv | ( | const Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| float * | dist_sq, | ||
| float | r_uv[2] | ||
| ) |
Definition at line 885 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACE_FIRST_LOOP, BM_FACES_OF_MESH, BM_ITER_MESH, CD_MLOOPUV, copy_v2_v2(), CustomData_get_offset(), BMesh::ldata, len_squared_v2v2(), BMLoop::next, NULL, scene, and uvedit_face_visible_test().
Referenced by ED_uvedit_nearest_uv_multi().
| bool ED_uvedit_nearest_uv_multi | ( | const Scene * | scene, |
| Object ** | objects, | ||
| const uint | objects_len, | ||
| const float | co[2], | ||
| float * | dist_sq, | ||
| float | r_uv[2] | ||
| ) |
Definition at line 918 of file uvedit_select.c.
References ED_uvedit_nearest_uv(), and scene.
| char ED_uvedit_select_mode_get | ( | const Scene * | scene | ) |
Intentionally don't return UV_SELECT_ISLAND as it's not an element type. In this case return UV_SELECT_VERTEX as a fallback.
Definition at line 155 of file uvedit_select.c.
References SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, scene, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by uv_select_loop_exec().
| void ED_uvedit_select_sync_flush | ( | const ToolSettings * | ts, |
| BMEditMesh * | em, | ||
| const bool | select | ||
| ) |
Definition at line 185 of file uvedit_select.c.
References BMEditMesh::bm, BM_select_history_validate(), EDBM_deselect_flush(), EDBM_select_flush(), SCE_SELECT_FACE, select(), ToolSettings::selectmode, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), and uv_circle_select_exec().
Definition at line 3821 of file uvedit_select.c.
References bm, BM_ELEM_CD_GET_VOID_P, 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, CD_MLOOPUV, CLAMP_MAX, CustomData_get_offset(), MLoopUV::flag, BMesh::ldata, MEM_mallocN, MEM_reallocN, MLOOPUV_VERTSEL, BMLoop::next, BMLoop::radial_next, scene, BMesh::totloop, and uvedit_face_visible_test().
Referenced by uv_shortest_path_select_exec().
Definition at line 3793 of file uvedit_select.c.
References bm, BM_FACES_OF_MESH, BM_ITER_MESH, CD_MLOOPUV, CLAMP_MAX, CustomData_get_offset(), faces, BMesh::ldata, MEM_mallocN, MEM_reallocN, scene, BMesh::totface, uvedit_face_select_test(), and uvedit_face_visible_test().
Referenced by uv_shortest_path_select_exec().
Definition at line 3879 of file uvedit_select.c.
References bm, BM_ELEM_CD_GET_VOID_P, 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, CD_MLOOPUV, CLAMP_MAX, CustomData_get_offset(), MLoopUV::flag, BMesh::ldata, MEM_mallocN, MEM_reallocN, MLOOPUV_VERTSEL, scene, BMesh::totloop, uvedit_face_visible_test(), BMLoop::v, and verts.
Referenced by uv_shortest_path_select_exec().
| BLI_INLINE bool overlap_cmp | ( | const void * | a_v, |
| const void * | b_v | ||
| ) |
Definition at line 3534 of file uvedit_select.c.
References Freestyle::a, BVHTreeOverlap::indexA, and BVHTreeOverlap::indexB.
Referenced by uv_select_overlap().
| BLI_INLINE uint overlap_hash | ( | const void * | overlap_v | ) |
Definition at line 3521 of file uvedit_select.c.
References BLI_hash_int_2d(), BVHTreeOverlap::indexA, BVHTreeOverlap::indexB, SWAP, x, and y.
Referenced by uv_select_overlap().
|
static |
Specialized 2D triangle intersection for detecting UV overlap:
Definition at line 3555 of file uvedit_select.c.
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 2871 of file uvedit_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, BLI_rctf_isect_pt_v(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_face_uv_calc_center_median(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_VERT, C, CD_MLOOPUV, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), CTX_wm_space_image(), CustomData_get_offset(), depsgraph, ED_uvedit_select_sync_flush(), MLoopUV::flag, l, BMesh::ldata, MEM_freeN, MLOOPUV_PINNED, NULL, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_enum_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select(), ToolSettings::selectmode, SI_STICKY_VERTEX, SpaceImage::sticky, Scene::toolsettings, UI_view2d_region_to_view_rctf(), MLoopUV::uv, ToolSettings::uv_flag, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_visible_test(), uvedit_uv_select_set(), uvedit_uv_select_test(), uvedit_vertex_select_tagged(), BMLoop::v, ARegion::v2d, and WM_operator_properties_border_to_rctf().
Referenced by UV_OT_select_box().
|
static |
Definition at line 3082 of file uvedit_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_elem_flag_disable, BM_elem_flag_enable, BM_ELEM_TAG, BM_FACE_FIRST_LOOP, BM_face_uv_calc_center_median(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_VERT, C, CD_MLOOPUV, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), CTX_wm_space_image(), wmOperator::customdata, CustomData_get_offset(), depsgraph, ED_select_op_modal(), ED_space_image_get_size(), ED_space_image_get_zoom(), ED_uvedit_select_sync_flush(), height, l, BMesh::ldata, MEM_freeN, NULL, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_int_get(), SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, SEL_DESELECT, SEL_OP_SUB, SEL_OP_USE_PRE_DESELECT, select(), ToolSettings::selectmode, SI_STICKY_VERTEX, SpaceImage::sticky, Scene::toolsettings, UI_view2d_region_to_view(), MLoopUV::uv, uv_circle_select_is_edge_inside(), uv_circle_select_is_point_inside(), ToolSettings::uv_flag, uv_select_all_perform_multi(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_tag_face(), UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_uv_select_set(), uvedit_uv_select_test(), uvedit_vertex_select_tagged(), BMLoop::v, ARegion::v2d, width, WM_gesture_is_modal_first(), x, and y.
Referenced by UV_OT_select_circle().
|
static |
Definition at line 3065 of file uvedit_select.c.
References dist_squared_to_line_segment_v2().
Referenced by uv_circle_select_exec().
|
static |
Definition at line 3053 of file uvedit_select.c.
References len_squared_v2().
Referenced by uv_circle_select_exec().
| bool uv_find_nearest_edge | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| UvNearestHit * | hit | ||
| ) |
Definition at line 664 of file uvedit_select.c.
References BKE_editmesh_from_object(), BLI_assert, BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_index_ensure(), BM_VERT, CD_MLOOPUV, closest_to_line_segment_v2(), CustomData_get_offset(), UvNearestHit::dist_sq, UvNearestHit::efa, l, UvNearestHit::l, BMesh::ldata, len_squared_v2(), mul_v2_v2(), BMLoop::next, UvNearestHit::ob, UvNearestHit::scale, scene, sub_v2_v2(), MLoopUV::uv, and uvedit_face_visible_test().
Referenced by uv_find_nearest_edge_multi(), and uv_shortest_path_pick_invoke().
| bool uv_find_nearest_edge_multi | ( | Scene * | scene, |
| Object ** | objects, | ||
| const uint | objects_len, | ||
| const float | co[2], | ||
| UvNearestHit * | hit | ||
| ) |
Definition at line 709 of file uvedit_select.c.
References scene, and uv_find_nearest_edge().
Referenced by stitch_select(), uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), and uv_select_linked_internal().
| bool uv_find_nearest_face | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| UvNearestHit * | hit | ||
| ) |
Definition at line 774 of file uvedit_select.c.
References scene, and uv_find_nearest_face_ex().
Referenced by uv_shortest_path_pick_invoke().
| bool uv_find_nearest_face_ex | ( | Scene * | scene, |
| Object * | obedit, | ||
| const float | co[2], | ||
| UvNearestHit * | hit, | ||
| const 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 731 of file uvedit_select.c.
References BKE_editmesh_from_object(), BLI_assert, BMEditMesh::bm, BM_face_uv_calc_center_median(), BM_face_uv_point_inside_test(), BM_FACES_OF_MESH, BM_ITER_MESH, CD_MLOOPUV, CustomData_get_offset(), UvNearestHit::dist_sq, UvNearestHit::efa, BMesh::ldata, len_squared_v2(), mul_v2_v2(), UvNearestHit::ob, UvNearestHit::scale, scene, 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, |
| Object ** | objects, | ||
| const uint | objects_len, | ||
| const float | co[2], | ||
| UvNearestHit * | hit | ||
| ) |
Definition at line 796 of file uvedit_select.c.
References scene, and uv_find_nearest_face_multi_ex().
Referenced by uv_mouse_select_multi().
| bool uv_find_nearest_face_multi_ex | ( | Scene * | scene, |
| Object ** | objects, | ||
| const uint | objects_len, | ||
| const float | co[2], | ||
| UvNearestHit * | hit, | ||
| const bool | only_in_face | ||
| ) |
Definition at line 779 of file uvedit_select.c.
References scene, and uv_find_nearest_face_ex().
Referenced by uv_find_nearest_face_multi(), and uv_mouse_select_multi().
| BMLoop* uv_find_nearest_loop_from_edge | ( | struct Scene * | scene, |
| struct Object * | obedit, | ||
| struct BMEdge * | e, | ||
| const float | co[2] | ||
| ) |
Definition at line 973 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_EDGE, CD_MLOOPUV, CustomData_get_offset(), dist_squared_to_line_segment_v2(), e, BMLoop::f, l, BMesh::ldata, BMLoop::next, NULL, scene, MLoopUV::uv, and uvedit_face_visible_test().
Referenced by uv_shortest_path_pick_invoke().
| BMLoop* uv_find_nearest_loop_from_vert | ( | struct Scene * | scene, |
| struct Object * | obedit, | ||
| struct BMVert * | v, | ||
| const float | co[2] | ||
| ) |
Definition at line 945 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, CD_MLOOPUV, CustomData_get_offset(), BMLoop::f, l, BMesh::ldata, len_squared_v2v2(), NULL, scene, MLoopUV::uv, 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 812 of file uvedit_select.c.
References BKE_editmesh_from_object(), BLI_assert, BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_LOOPS_OF_FACE, BM_mesh_elem_index_ensure(), BM_VERT, CD_MLOOPUV, CustomData_get_offset(), UvNearestHit::dist_sq, UvNearestHit::efa, l, UvNearestHit::l, BMesh::ldata, len_squared_v2(), mul_v2_v2(), UvNearestHit::ob, UvNearestHit::scale, scene, sqrtf, square_f(), sub_v2_v2v2(), MLoopUV::uv, uv_nearest_between(), uvedit_face_visible_test(), and uvedit_uv_select_test().
Referenced by uv_find_nearest_vert_multi(), uv_sculpt_stroke_init(), and uv_shortest_path_pick_invoke().
| bool uv_find_nearest_vert_multi | ( | Scene * | scene, |
| Object ** | objects, | ||
| const uint | objects_len, | ||
| float const | co[2], | ||
| const float | penalty_dist, | ||
| UvNearestHit * | hit | ||
| ) |
Definition at line 868 of file uvedit_select.c.
References scene, and uv_find_nearest_vert().
Referenced by stitch_select(), and uv_mouse_select_multi().
|
static |
Definition at line 3414 of file uvedit_select.c.
References C, do_lasso_select_mesh_uv(), MEM_freeN, 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 2091 of file uvedit_select.c.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, C, CTX_data_view_layer(), MEM_freeN, NULL, ret, and uv_mouse_select_multi().
Referenced by uv_select_exec().
|
static |
Definition at line 2235 of file uvedit_select.c.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, C, CTX_data_view_layer(), MEM_freeN, NULL, ret, and uv_mouse_select_loop_generic_multi().
Referenced by uv_select_edge_ring_exec(), and uv_select_loop_exec().
|
static |
Definition at line 2178 of file uvedit_select.c.
References BKE_editmesh_from_object(), BLI_assert_unreachable, C, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_wm_region(), CTX_wm_space_image(), depsgraph, EDBM_deselect_flush(), EDBM_select_flush(), UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, scene, SEL_DESELECT, Scene::toolsettings, uv_find_nearest_edge_multi(), ToolSettings::uv_flag, UV_LOOP_SELECT, UV_NEAREST_HIT_INIT_MAX, UV_RING_SELECT, uv_select_all_perform_multi_ex(), uv_select_edgeloop(), uv_select_edgering(), uv_select_tag_update_for_object(), UV_SYNC_SELECTION, and ARegion::v2d.
Referenced by uv_mouse_select_loop_generic().
|
static |
Definition at line 1904 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, bm, BM_mesh_active_face_set(), BM_select_history_validate(), C, CD_MLOOPUV, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_wm_region(), CTX_wm_space_image(), CustomData_get_offset(), depsgraph, UvNearestHit::dist_sq, ED_uvedit_active_edge_loop_set(), ED_uvedit_active_vert_loop_set(), EDBM_selectmode_flush(), UvNearestHit::efa, UvNearestHit::l, BMesh::ldata, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, SEL_DESELECT, select(), ToolSettings::selectmode, SI_STICKY_DISABLE, SpaceImage::sticky, Scene::toolsettings, uv_find_nearest_edge_multi(), uv_find_nearest_face_multi(), uv_find_nearest_face_multi_ex(), uv_find_nearest_vert_multi(), ToolSettings::uv_flag, UV_NEAREST_HIT_INIT_DIST_PX, uv_select_all_perform_multi(), uv_select_all_perform_multi_ex(), UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_face_select_set_with_sticky(), uvedit_face_select_test(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_test(), and ARegion::v2d.
Referenced by uv_mouse_select().
|
static |
Definition at line 802 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, l, line_point_side_v2(), BMLoop::next, and BMLoop::prev.
Referenced by uv_find_nearest_vert().
| void UV_OT_select | ( | wmOperatorType * | ot | ) |
Definition at line 2127 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_float_vector(), RNA_def_property_flag(), wmOperatorType::srna, uv_select_exec(), and uv_select_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_all | ( | wmOperatorType * | ot | ) |
Definition at line 1883 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, 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 3023 of file uvedit_select.c.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), wmOperatorType::srna, uv_box_select_exec(), WM_gesture_box_cancel(), WM_gesture_box_invoke(), WM_gesture_box_modal(), WM_operator_properties_gesture_box(), and WM_operator_properties_select_operation_simple().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_circle | ( | wmOperatorType * | ot | ) |
Definition at line 3231 of file uvedit_select.c.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, 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 2341 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_float_vector(), wmOperatorType::srna, 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 3430 of file uvedit_select.c.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_UNDO, ot, wmOperatorType::poll, 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 1716 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and uv_select_less_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_linked | ( | wmOperatorType * | ot | ) |
Definition at line 2449 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and uv_select_linked_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_linked_pick | ( | wmOperatorType * | ot | ) |
Definition at line 2480 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_float_vector(), wmOperatorType::srna, 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 2284 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), RNA_def_float_vector(), wmOperatorType::srna, uv_select_loop_exec(), and uv_select_loop_invoke().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_more | ( | wmOperatorType * | ot | ) |
Definition at line 1698 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and uv_select_more_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_overlap | ( | wmOperatorType * | ot | ) |
Definition at line 3764 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, RNA_def_boolean(), wmOperatorType::srna, and uv_select_overlap_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_pinned | ( | wmOperatorType * | ot | ) |
Definition at line 3502 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and uv_select_pinned_exec().
Referenced by ED_operatortypes_uvedit().
| void UV_OT_select_split | ( | wmOperatorType * | ot | ) |
Definition at line 2608 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, and uv_select_split_exec().
Referenced by ED_operatortypes_uvedit().
|
static |
Definition at line 1858 of file uvedit_select.c.
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, MEM_freeN, NULL, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), scene, Scene::toolsettings, uv_select_all_perform_multi(), and uv_select_tag_update_for_object().
Referenced by UV_OT_select_all().
Definition at line 1776 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_ELEM_SELECT, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, CD_MLOOPUV, CustomData_get_offset(), EDBM_flag_disable_all(), EDBM_flag_enable_all(), EDBM_select_swap(), EDBM_select_toggle_all(), EDBM_selectmode_flush(), MLoopUV::flag, l, BMesh::ldata, MLOOPUV_VERTSEL, scene, SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_is_any_selected().
Referenced by uv_select_all_perform_multi_ex(), uv_select_edgeloop(), uv_select_edgering(), and uv_select_overlap().
|
static |
Definition at line 1850 of file uvedit_select.c.
References NULL, scene, and 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 1833 of file uvedit_select.c.
References scene, SEL_DESELECT, SEL_SELECT, SEL_TOGGLE, uv_select_all_perform(), and uvedit_select_is_any_selected_multi().
Referenced by uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), and uv_select_all_perform_multi().
|
static |
Definition at line 2322 of file uvedit_select.c.
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 2330 of file uvedit_select.c.
References C, CTX_wm_region(), wmEvent::mval, wmOperator::ptr, RNA_float_set_array(), UI_view2d_region_to_view(), uv_select_edge_ring_exec(), and ARegion::v2d.
Referenced by UV_OT_select_edge_ring().
|
static |
Definition at line 1165 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, CD_MLOOPUV, CustomData_get_offset(), UvNearestHit::l, BMesh::ldata, NULL, scene, SEL_DESELECT, select(), UV_EDGE_LOOP_BOUNDARY_ALL, UV_EDGE_LOOP_BOUNDARY_LOOP, uv_select_all_perform(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uvedit_edge_select_set_with_sticky(), uvedit_loop_find_other_radial_loop_with_visible_face(), and uvedit_uv_select_test().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Tag all loops which should be selected, the caller must select.
Definition at line 1059 of file uvedit_select.c.
References ARRAY_SIZE, BLI_assert, BMEditMesh::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, NULL, scene, 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 1108 of file uvedit_select.c.
References BMEditMesh::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, NULL, scene, 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 1245 of file uvedit_select.c.
References BKE_editmesh_from_object(), 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(), CD_MLOOPUV, CustomData_get_offset(), BMLoop::e, BMLoop::f, UvNearestHit::l, BMesh::ldata, BMFace::len, BMLoop::next, NULL, SCE_SELECT_FACE, scene, SEL_DESELECT, select(), ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, uv_select_all_perform(), UV_SELECT_FACE, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_face_select_set_with_sticky(), uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), and uvedit_uv_select_test().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Definition at line 2105 of file uvedit_select.c.
References C, wmOperator::ptr, RNA_boolean_get(), RNA_float_get_array(), and uv_mouse_select().
Referenced by UV_OT_select(), and uv_select_invoke().
|
static |
Flush the selection from face tags based on sticky and selection modes.
needed because settings the selection 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 2706 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACE, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_table_ensure(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), BM_VERT, CD_MLOOPUV, CustomData_get_offset(), l, BMesh::ldata, NULL, scene, select(), SI_STICKY_LOC, SI_STICKY_VERTEX, SpaceImage::sticky, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), UV_SYNC_SELECTION, uvedit_face_select_set(), uvedit_uv_select_set(), and BMLoop::v.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), and uv_select_more_less().
|
static |
Flush the selection from loop tags based on sticky and selection modes.
needed because settings the selection 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 2789 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_TAG, BM_FACE, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_table_ensure(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), BM_VERT, CD_MLOOPUV, CustomData_get_offset(), l, BMesh::ldata, NULL, scene, select(), SI_STICKY_LOC, SI_STICKY_VERTEX, SpaceImage::sticky, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), UV_SYNC_SELECTION, uvedit_uv_select_set(), and BMLoop::v.
Referenced by uv_select_more_less().
|
static |
helper function for uv_select_flush_from_tag_loop and uv_select_flush_from_tag_face
Definition at line 2648 of file uvedit_select.c.
References BMEditMesh::bm, BM_elem_index_get, BM_face_at_index(), BM_iter_at_index(), BM_LOOPS_OF_FACE, BM_uv_vert_map_at_index(), l, UvMapVert::next, NULL, scene, select(), UvMapVert::separate, uvedit_uv_select_set(), and BMLoop::v.
Referenced by uv_select_flush_from_tag_face(), and uv_select_flush_from_tag_loop().
|
static |
Definition at line 2116 of file uvedit_select.c.
References C, CTX_wm_region(), wmEvent::mval, wmOperator::ptr, RNA_float_set_array(), UI_view2d_region_to_view(), uv_select_exec(), and ARegion::v2d.
Referenced by UV_OT_select().
|
static |
Definition at line 1711 of file uvedit_select.c.
References C, and uv_select_more_less().
Referenced by UV_OT_select_less().
|
static |
Definition at line 2444 of file uvedit_select.c.
References C, NULL, and uv_select_linked_internal().
Referenced by UV_OT_select_linked().
|
static |
Definition at line 2379 of file uvedit_select.c.
References BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), Object::data, DEG_id_tag_update(), ID_RECALC_COPY_ON_WRITE, ID_RECALC_SELECT, MEM_freeN, MEM_SAFE_FREE, wmEvent::mval, NC_GEOM, ND_SELECT, NULL, UvNearestHit::ob, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_boolean_get(), RNA_float_get_array(), RNA_float_set_array(), SCE_SELECT_FACE, scene, SEL_DESELECT, ToolSettings::selectmode, Scene::toolsettings, UI_view2d_region_to_view(), uv_find_nearest_edge_multi(), ToolSettings::uv_flag, UV_NEAREST_HIT_INIT_MAX, uv_select_all_perform_multi(), uv_select_linked_multi(), UV_SYNC_SELECTION, ARegion::v2d, and WM_event_add_notifier().
Referenced by uv_select_linked_exec(), uv_select_linked_pick_exec(), and uv_select_linked_pick_invoke().
|
static |
Definition at line 1322 of file uvedit_select.c.
References Freestyle::a, BKE_editmesh_from_object(), BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_ELEM_SELECT, BM_FACE, BM_face_at_index(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_ELEM_INDEX, BM_ITER_MESH_INDEX, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_FACE, BM_LOOPS_OF_VERT, BM_mesh_elem_table_ensure(), BM_uv_vert_map_at_index(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), CD_MLOOPUV, CustomData_get_offset(), EDBM_deselect_flush(), EDBM_selectmode_flush(), UvNearestHit::efa, BMLoop::f, l, BMesh::ldata, MEM_callocN, MEM_freeN, MEM_mallocN, UvMapVert::next, NULL, UvNearestHit::ob, UvMapVert::poly_index, scene, UvMapVert::separate, SET_SELECTION, Scene::toolsettings, BMesh::totface, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_uv_select_test(), and BMLoop::v.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), and uv_select_linked_internal().
|
static |
Definition at line 2475 of file uvedit_select.c.
References C, NULL, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 2470 of file uvedit_select.c.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 2255 of file uvedit_select.c.
References C, CTX_data_scene(), ED_uvedit_select_mode_get(), wmOperator::ptr, RNA_boolean_get(), RNA_float_get_array(), scene, type, UV_LOOP_SELECT, uv_mouse_select_loop_generic(), UV_RING_SELECT, and UV_SELECT_FACE.
Referenced by UV_OT_select_loop(), and uv_select_loop_invoke().
|
static |
Definition at line 2273 of file uvedit_select.c.
References C, CTX_wm_region(), wmEvent::mval, wmOperator::ptr, RNA_float_set_array(), UI_view2d_region_to_view(), uv_select_loop_exec(), and ARegion::v2d.
Referenced by UV_OT_select_loop().
|
static |
Definition at line 1693 of file uvedit_select.c.
References C, and uv_select_more_less().
Referenced by UV_OT_select_more().
|
static |
Definition at line 1575 of file uvedit_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, 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(), C, CD_MLOOPUV, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_space_image(), CustomData_get_offset(), Object::data, DEG_id_tag_update(), EDBM_select_less(), EDBM_select_more(), MLoopUV::flag, ID_RECALC_SELECT, IS_SEL, IS_UNSEL, l, BMesh::ldata, MEM_freeN, MLOOPUV_VERTSEL, NC_GEOM, ND_SELECT, BMLoop::next, NULL, OPERATOR_FINISHED, BMLoop::prev, scene, select(), Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_FACE, uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_face_visible_test(), and WM_event_add_notifier().
Referenced by uv_select_less_exec(), and uv_select_more_exec().
|
static |
Definition at line 3593 of file uvedit_select.c.
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(), BLI_gset_add(), BLI_gset_free(), BLI_gset_new_ex(), BLI_polyfill_calc(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_ELEM_TAG, BM_FACE, BM_FACES_OF_MESH, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_hflag_disable_all(), BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, C, CD_MLOOPUV, copy_v2_v2(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, UVOverlapData::face_index, float(), BMesh::ftable, BVHTreeOverlap::indexA, indices, l, BMesh::ldata, BMFace::len, MEM_freeN, MEM_mallocN, NULL, UVOverlapData::ob_index, OPERATOR_FINISHED, overlap_cmp(), overlap_hash(), overlap_tri_tri_uv_test(), scene, SEL_DESELECT, t, Scene::toolsettings, UVOverlapData::tri, UNPACK2, MLoopUV::uv, uv_select_all_perform(), uv_select_tag_update_for_object(), uvedit_face_select_enable(), uvedit_face_select_test(), and uvedit_face_visible_test_ex().
Referenced by uv_select_overlap_exec().
|
static |
Definition at line 3758 of file uvedit_select.c.
References C, wmOperator::ptr, RNA_boolean_get(), and uv_select_overlap().
Referenced by UV_OT_select_overlap().
|
static |
Definition at line 3456 of file uvedit_select.c.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, C, CD_MLOOPUV, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, MLoopUV::flag, l, BMesh::ldata, MEM_freeN, MLOOPUV_PINNED, NULL, OPERATOR_FINISHED, scene, Scene::toolsettings, uv_select_tag_update_for_object(), uvedit_face_visible_test(), and uvedit_uv_select_enable().
Referenced by UV_OT_select_pinned().
|
static |
Definition at line 2531 of file uvedit_select.c.
References BKE_editmesh_from_object(), BKE_report(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs, BMEditMesh::bm, bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, C, CD_MLOOPUV, CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, MLoopUV::flag, l, BMesh::ldata, MEM_freeN, MLOOPUV_VERTSEL, NC_SPACE, ND_SPACE_IMAGE, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, scene, Scene::toolsettings, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SYNC_SELECTION, uvedit_face_visible_test(), and WM_event_add_notifier().
Referenced by UV_OT_select_split().
|
static |
Definition at line 2621 of file uvedit_select.c.
References BKE_mesh_batch_cache_dirty_tag(), BKE_MESH_BATCH_DIRTY_UVEDIT_SELECT, Object::data, DEG_get_evaluated_object(), DEG_id_tag_update(), depsgraph, ID_RECALC_SELECT, NC_GEOM, ND_SELECT, ToolSettings::uv_flag, UV_SYNC_SELECTION, and WM_main_add_notifier().
Referenced by do_lasso_select_mesh_uv(), 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(), and uv_select_split_exec().
| void uvedit_edge_select_disable | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 438 of file uvedit_select.c.
References BMEditMesh::bm, BM_edge_select_set(), BM_ELEM_CD_GET_VOID_P, BM_face_select_set(), BM_vert_select_set(), BMLoop::e, BMLoop::f, MLoopUV::flag, l, MLOOPUV_VERTSEL, BMLoop::next, SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, BMEdge::v1, and BMEdge::v2.
Referenced by uvedit_edge_select_set().
| void uvedit_edge_select_enable | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 402 of file uvedit_select.c.
References BMEditMesh::bm, BM_edge_select_set(), BM_ELEM_CD_GET_VOID_P, BM_face_select_set(), BM_select_history_store, BM_vert_select_set(), do_history(), BMLoop::e, BMLoop::f, MLoopUV::flag, l, MLOOPUV_VERTSEL, BMLoop::next, SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, BMEdge::v1, and BMEdge::v2.
Referenced by uvedit_edge_select_set().
| void uvedit_edge_select_set | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 386 of file uvedit_select.c.
References do_history(), l, scene, select(), uvedit_edge_select_disable(), and uvedit_edge_select_enable().
Referenced by uvedit_edge_select_set_with_sticky().
| void uvedit_edge_select_set_with_sticky | ( | const struct SpaceImage * | sima, |
| const Scene * | scene, | ||
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const bool | do_history, | ||
| const uint | cd_loop_uv_offset | ||
| ) |
Definition at line 367 of file uvedit_select.c.
References do_history(), l, BMLoop::next, scene, select(), Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_edge_select_set(), and uvedit_uv_select_set_with_sticky().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_select_edgeloop(), and uv_select_edgering().
Definition at line 362 of file uvedit_select.c.
References l, scene, Scene::toolsettings, and uvedit_edge_select_test_ex().
Referenced by uv_mouse_select_multi(), and uv_select_edgeloop_single_side_tag().
| bool uvedit_edge_select_test_ex | ( | const ToolSettings * | ts, |
| BMLoop * | l, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 342 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test, BM_ELEM_SELECT, BMLoop::e, BMLoop::f, MLoopUV::flag, l, MLOOPUV_VERTSEL, BMLoop::next, SCE_SELECT_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SYNC_SELECTION, and BMLoop::v.
Referenced by uvedit_edge_select_test().
| void uvedit_face_select_disable | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMFace * | efa, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 320 of file uvedit_select.c.
References BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_face_select_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, MLoopUV::flag, l, MLOOPUV_VERTSEL, scene, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uvedit_face_select_set().
| void uvedit_face_select_enable | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMFace * | efa, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 294 of file uvedit_select.c.
References BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_face_select_set(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, BM_select_history_store, do_history(), MLoopUV::flag, l, MLOOPUV_VERTSEL, scene, Scene::toolsettings, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uv_select_overlap(), and uvedit_face_select_set().
| void uvedit_face_select_set | ( | const struct Scene * | scene, |
| struct BMEditMesh * | em, | ||
| struct BMFace * | efa, | ||
| const bool | select, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 279 of file uvedit_select.c.
References do_history(), scene, select(), uvedit_face_select_disable(), and uvedit_face_select_enable().
Referenced by uv_select_flush_from_tag_face(), and uvedit_face_select_set_with_sticky().
| void uvedit_face_select_set_with_sticky | ( | const SpaceImage * | sima, |
| const Scene * | scene, | ||
| BMEditMesh * | em, | ||
| BMFace * | efa, | ||
| const bool | select, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 257 of file uvedit_select.c.
References BM_FACE_FIRST_LOOP, do_history(), BMLoop::next, scene, select(), Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_select_set(), and uvedit_uv_select_set_with_sticky().
Referenced by uv_mouse_select_multi(), and uv_select_edgering().
Definition at line 252 of file uvedit_select.c.
References scene, Scene::toolsettings, and uvedit_face_select_test_ex().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selected_faces(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_select_linked_multi(), and uv_select_overlap().
| bool uvedit_face_select_test_ex | ( | const ToolSettings * | ts, |
| BMFace * | efa, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 234 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, BM_LOOPS_OF_FACE, MLoopUV::flag, l, MLOOPUV_VERTSEL, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uvedit_face_select_test().
Definition at line 229 of file uvedit_select.c.
References scene, Scene::toolsettings, and uvedit_face_visible_test_ex().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_nearest_uv(), ED_uvedit_selected_edges(), ED_uvedit_selected_faces(), ED_uvedit_selected_verts(), 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_select_all_perform(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_linked_multi(), uv_select_more_less(), uv_select_pinned_exec(), uv_select_split_exec(), uvedit_first_selected_uv_from_vertex(), uvedit_loop_find_other_radial_loop_with_visible_face(), uvedit_select_is_any_selected(), and uvedit_uv_select_set_with_sticky().
| bool uvedit_face_visible_test_ex | ( | const ToolSettings * | ts, |
| BMFace * | efa | ||
| ) |
Definition at line 222 of file uvedit_select.c.
References BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, ToolSettings::uv_flag, and UV_SYNC_SELECTION.
Referenced by uv_select_overlap(), and uvedit_face_visible_test().
| const float* uvedit_first_selected_uv_from_vertex | ( | Scene * | scene, |
| BMVert * | eve, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 1548 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_VERT, BMLoop::f, l, NULL, scene, MLoopUV::uv, uvedit_face_visible_test(), and uvedit_uv_select_test().
Referenced by uv_weld_align().
|
static |
Definition at line 629 of file uvedit_select.c.
References BLI_assert, BM_vert_in_edge(), BMLoop::e, BMLoop::next, NULL, BMLoop::prev, scene, uvedit_loop_find_other_radial_loop_with_visible_face(), and BMLoop::v.
Referenced by bm_select_edgeloop_single_side_next().
|
static |
Definition at line 604 of file uvedit_select.c.
References BM_loop_uv_share_edge_check(), BMLoop::f, NULL, BMLoop::radial_next, scene, 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(), and uvedit_loop_find_other_boundary_loop_with_visible_face().
Definition at line 1735 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, CD_MLOOPUV, CustomData_get_offset(), MLoopUV::flag, l, BMesh::ldata, MLOOPUV_VERTSEL, scene, Scene::toolsettings, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, ToolSettings::uv_flag, UV_SYNC_SELECTION, and uvedit_face_visible_test().
Referenced by uv_select_all_perform(), and uvedit_select_is_any_selected_multi().
| bool uvedit_select_is_any_selected_multi | ( | Scene * | scene, |
| Object ** | objects, | ||
| const uint | objects_len | ||
| ) |
Definition at line 1763 of file uvedit_select.c.
References scene, and uvedit_select_is_any_selected().
Referenced by ED_uvedit_center_from_pivot_ex(), and uv_select_all_perform_multi_ex().
| void uvedit_uv_select_disable | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 583 of file uvedit_select.c.
References BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_face_select_set(), BM_vert_select_set(), BMLoop::f, MLoopUV::flag, l, MLOOPUV_VERTSEL, SCE_SELECT_FACE, scene, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, and BMLoop::v.
Referenced by uvedit_uv_select_set().
| void uvedit_uv_select_enable | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 557 of file uvedit_select.c.
References BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_face_select_set(), BM_select_history_store, BM_vert_select_set(), do_history(), BMLoop::f, MLoopUV::flag, l, MLOOPUV_VERTSEL, SCE_SELECT_FACE, scene, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SYNC_SELECTION, and BMLoop::v.
Referenced by uv_select_pinned_exec(), and uvedit_uv_select_set().
| void uvedit_uv_select_set | ( | const Scene * | scene, |
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const bool | do_history, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 542 of file uvedit_select.c.
References do_history(), l, scene, 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_face(), uv_select_flush_from_tag_loop(), uv_select_flush_from_tag_sticky_loc_internal(), uvedit_uv_select_set_with_sticky(), and uvedit_vertex_select_tagged().
| void uvedit_uv_select_set_with_sticky | ( | const struct SpaceImage * | sima, |
| const Scene * | scene, | ||
| BMEditMesh * | em, | ||
| BMLoop * | l, | ||
| const bool | select, | ||
| const bool | do_history, | ||
| const uint | cd_loop_uv_offset | ||
| ) |
Definition at line 486 of file uvedit_select.c.
References BM_DISK_EDGE_NEXT, BM_ELEM_CD_GET_VOID_P, do_history(), BMLoop::e, equals_v2v2(), BMLoop::f, BMEdge::l, l, BMLoop::radial_next, scene, select(), SI_STICKY_DISABLE, SI_STICKY_VERTEX, SpaceImage::sticky, Scene::toolsettings, MLoopUV::uv, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_uv_select_set(), and BMLoop::v.
Referenced by uv_mouse_select_multi(), uvedit_edge_select_set_with_sticky(), and uvedit_face_select_set_with_sticky().
Definition at line 481 of file uvedit_select.c.
References l, scene, Scene::toolsettings, and uvedit_uv_select_test_ex().
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), uv_circle_select_exec(), uv_find_nearest_vert(), uv_mouse_select_multi(), uv_select_edgeloop(), uv_select_edgering(), uv_select_linked_multi(), and uvedit_first_selected_uv_from_vertex().
| bool uvedit_uv_select_test_ex | ( | const ToolSettings * | ts, |
| BMLoop * | l, | ||
| const int | cd_loop_uv_offset | ||
| ) |
Definition at line 469 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test_bool, BM_ELEM_SELECT, BMLoop::f, MLoopUV::flag, l, MLOOPUV_VERTSEL, SCE_SELECT_FACE, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SYNC_SELECTION, and BMLoop::v.
Referenced by uvedit_uv_select_test().
|
static |
Definition at line 204 of file uvedit_select.c.
References BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, l, scene, select(), uvedit_uv_select_set(), and BMLoop::v.
Referenced by do_lasso_select_mesh_uv(), uv_box_select_exec(), and uv_circle_select_exec().