Blender
V3.3
|
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_image_types.h"
#include "DNA_material_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_kdtree.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_material.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 "RNA_enum_types.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 | NEIGHBORING_FACE_IS_SEL 1 |
#define | CURR_FACE_IS_UNSEL 2 |
Enumerations | |
enum | eUVSelectSimilar { UV_SSIM_AREA_UV = 1000 , UV_SSIM_AREA_3D , UV_SSIM_LENGTH_UV , UV_SSIM_LENGTH_3D , UV_SSIM_SIDES , UV_SSIM_PIN , UV_SSIM_MATERIAL } |
Functions | |
(De)Select All Operator | |
static void | uv_select_all_perform (const Scene *scene, Object *obedit, int action) |
static void | uv_select_all_perform_multi_ex (const Scene *scene, Object **objects, const uint objects_len, int action, const Object *ob_exclude) |
static void | uv_select_all_perform_multi (const Scene *scene, Object **objects, const uint objects_len, int action) |
bool | uvedit_select_is_any_selected (const Scene *scene, Object *obedit) |
bool | uvedit_select_is_any_selected_multi (const Scene *scene, Object **objects, const uint objects_len) |
static void | uv_select_all (const Scene *scene, BMEditMesh *em, bool select_all) |
static void | uv_select_invert (const Scene *scene, BMEditMesh *em) |
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 (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, BMEditMesh *em) |
static void | uv_select_flush_from_tag_sticky_loc_internal (const 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 Scene *scene, BMEditMesh *em, BMFace *efa, const bool select, const bool do_history, const int cd_loop_uv_offset) |
void | uvedit_face_select_shared_vert (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 Scene *scene, BMEditMesh *em, 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 Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const bool do_history, const uint cd_loop_uv_offset) |
void | uvedit_edge_select_shared_vert (const Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const int sticky_flag, const bool do_history, const int cd_loop_uv_offset) |
void | uvedit_edge_select_set_noflush (const Scene *scene, BMLoop *l, const bool select, const int sticky_flag, const int 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 Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const bool do_history, const uint cd_loop_uv_offset) |
void | uvedit_uv_select_shared_vert (const Scene *scene, BMEditMesh *em, BMLoop *l, const bool select, const int sticky_flag, const bool do_history, const int 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], const float penalty, UvNearestHit *hit) |
bool | uv_find_nearest_edge_multi (Scene *scene, Object **objects, const uint objects_len, 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, 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) |
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, Object **objects, const uint objects_len, const int mval[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 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]) |
Helper functions for UV selection. | |
bool | uvedit_vert_is_edge_select_any_other (const Scene *scene, BMLoop *l, const int cd_loop_uv_offset) |
bool | uvedit_vert_is_face_select_any_other (const Scene *scene, BMLoop *l, const int cd_loop_uv_offset) |
bool | uvedit_vert_is_all_other_faces_selected (const Scene *scene, BMLoop *l, const int cd_loop_uv_offset) |
static void | bm_uv_flag_clear (const Scene *scene, BMesh *bm, const int flag, const int cd_loop_uv_offset) |
UV Select-Mode Flushing | |
void | ED_uvedit_selectmode_flush (const Scene *scene, BMEditMesh *em) |
UV Flush selection (up/down) | |
void | uvedit_select_flush (const Scene *scene, BMEditMesh *em) |
void | uvedit_deselect_flush (const Scene *scene, BMEditMesh *em) |
Face Loop Select | |
static int | uv_select_faceloop (Scene *scene, Object *obedit, UvNearestHit *hit, const bool extend) |
Edge Ring Select | |
static int | uv_select_edgering (Scene *scene, Object *obedit, UvNearestHit *hit, const bool extend) |
Select Linked | |
static void | uv_select_linked_multi (Scene *scene, 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 bool | uv_mouse_select_multi (bContext *C, Object **objects, uint objects_len, const float co[2], const struct SelectPick_Params *params) |
static bool | uv_mouse_select (bContext *C, const float co[2], const struct SelectPick_Params *params) |
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_is_edge_inside (const ARegion *region, const rcti *clip_rect, const int mcoords[][2], const int mcoords_len, const float co_test_a[2], const float co_test_b[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 *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 (const Scene *scene, BMesh *bm, int len_max, int *r_faces_len) |
BMLoop ** | ED_uvedit_selected_edges (const Scene *scene, BMesh *bm, int len_max, int *r_edges_len) |
BMLoop ** | ED_uvedit_selected_verts (const Scene *scene, BMesh *bm, int len_max, int *r_verts_len) |
Select Mode UV Vert/Edge/Face/Island Operator | |
static void | uv_isolate_selected_islands (const Scene *scene, BMEditMesh *em, const int cd_loop_uv_offset) |
void | ED_uvedit_selectmode_clean (const Scene *scene, Object *obedit) |
void | ED_uvedit_selectmode_clean_multi (bContext *C) |
static int | uv_select_mode_exec (bContext *C, wmOperator *op) |
static int | uv_select_mode_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event)) |
void | UV_OT_select_mode (wmOperatorType *ot) |
Edge Loop Select | |
enum | eUVEdgeLoopBoundaryMode { UV_EDGE_LOOP_BOUNDARY_LOOP = 1 , UV_EDGE_LOOP_BOUNDARY_ALL = 2 } |
static BMLoop * | bm_select_edgeloop_double_side_next (const Scene *scene, BMLoop *l_step, BMVert *v_from, const 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 (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 CURR_FACE_IS_UNSEL 2 |
#define NEIGHBORING_FACE_IS_SEL 1 |
#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 1390 of file uvedit_select.c.
enum eUVLoopGenericType |
Enumerator | |
---|---|
UV_LOOP_SELECT | |
UV_RING_SELECT |
Definition at line 2750 of file uvedit_select.c.
enum eUVSelectSimilar |
Enumerator | |
---|---|
UV_SSIM_AREA_UV | |
UV_SSIM_AREA_3D | |
UV_SSIM_LENGTH_UV | |
UV_SSIM_LENGTH_3D | |
UV_SSIM_SIDES | |
UV_SSIM_PIN | |
UV_SSIM_MATERIAL |
Definition at line 81 of file uvedit_select.c.
Definition at line 1425 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 ED_uvedit_selectmode_clean(), uv_select_edgeloop_double_side_tag(), and uv_select_edgeloop_single_side_tag().
|
static |
Definition at line 1397 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 1414 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 |
Clear specified UV flag (vert/edge/pinned).
Definition at line 1260 of file uvedit_select.c.
References bm, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, MLoopUV::flag, l, scene, and uvedit_face_visible_test().
Referenced by uv_select_flush_from_loop_edge_flag().
|
static |
Definition at line 3966 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(), CustomData_get_offset(), depsgraph, do_lasso_select_mesh_uv_is_edge_inside(), do_lasso_select_mesh_uv_is_point_inside(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_flush(), 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, 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, ToolSettings::uv_sticky, 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 3948 of file uvedit_select.c.
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 3931 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 129 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 120 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_edge(), and uv_mouse_select_multi().
Definition at line 107 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 98 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_multi | ( | const View2D * | v2d, |
const Scene * | scene, | ||
Object ** | objects, | ||
const uint | objects_len, | ||
const int | mval[2], | ||
const bool | ignore_selected, | ||
float * | dist_sq, | ||
float | r_uv[2] | ||
) |
Definition at line 1099 of file uvedit_select.c.
References offset, scene, sub_v2_v2v2(), UI_view2d_scale_get(), UI_view2d_view_to_region_fl(), UNPACK2, and uvedit_nearest_uv().
char ED_uvedit_select_mode_get | ( | const Scene * | scene | ) |
Definition at line 148 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_mouse_select_loop_generic_multi().
void ED_uvedit_select_sync_flush | ( | const ToolSettings * | ts, |
BMEditMesh * | em, | ||
const bool | select | ||
) |
Definition at line 178 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().
BMLoop** ED_uvedit_selected_edges | ( | const Scene * | scene, |
BMesh * | bm, | ||
int | len_max, | ||
int * | r_edges_len | ||
) |
Definition at line 5097 of file uvedit_select.c.
References 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, CD_MLOOPUV, CLAMP_MAX, CustomData_get_offset(), BMesh::ldata, MEM_mallocN, MEM_reallocN, BMLoop::radial_next, scene, BMesh::totloop, uvedit_edge_select_test(), and uvedit_face_visible_test().
BMFace** ED_uvedit_selected_faces | ( | const Scene * | scene, |
BMesh * | bm, | ||
int | len_max, | ||
int * | r_faces_len | ||
) |
Definition at line 5069 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().
BMLoop** ED_uvedit_selected_verts | ( | const Scene * | scene, |
BMesh * | bm, | ||
int | len_max, | ||
int * | r_verts_len | ||
) |
Definition at line 5153 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.
Definition at line 5269 of file uvedit_select.c.
References BKE_editmesh_from_object(), BLI_assert, 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, CD_MLOOPUV, CustomData_get_offset(), ED_uvedit_selectmode_flush(), l, BMesh::ldata, scene, SI_STICKY_DISABLE, Scene::toolsettings, ToolSettings::uv_flag, uv_isolate_selected_islands(), UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), UV_SELECT_ISLAND, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_noflush(), uvedit_edge_select_test(), uvedit_face_select_set(), uvedit_face_select_test(), uvedit_face_visible_test(), and uvedit_uv_select_test().
Referenced by ED_uvedit_selectmode_clean_multi().
Definition at line 5337 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, ED_uvedit_selectmode_clean(), MEM_freeN, NULL, UVOverlapData::ob_index, scene, Scene::toolsettings, and uv_select_tag_update_for_object().
Referenced by uv_select_mode_exec().
void ED_uvedit_selectmode_flush | ( | const Scene * | scene, |
BMEditMesh * | em | ||
) |
Definition at line 1286 of file uvedit_select.c.
References BLI_assert, 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_EDGESEL, MLOOPUV_VERTSEL, BMLoop::next, scene, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, and uvedit_face_visible_test().
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(), and uv_select_pinned_exec().
|
static |
Definition at line 4559 of file uvedit_select.c.
References BLI_assert_unreachable, BM_face_calc_area_uv(), BM_face_calc_area_with_mat3(), BM_FACES_OF_EDGE, BM_ITER_ELEM, e, MLoopUV::flag, len_v2v2(), len_v3v3(), MLOOPUV_PINNED, result, type, MLoopUV::uv, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, UV_SSIM_LENGTH_3D, UV_SSIM_LENGTH_UV, UV_SSIM_PIN, and UV_SSIM_SIDES.
Referenced by uv_select_similar_edge_exec().
|
static |
Definition at line 4609 of file uvedit_select.c.
References BLI_assert_unreachable, BM_ELEM_CD_GET_VOID_P, BM_face_calc_area_uv(), BM_face_calc_area_with_mat3(), BM_ITER_ELEM, BM_LOOPS_OF_FACE, MLoopUV::flag, l, BMFace::len, BMFace::mat_nr, MLOOPUV_PINNED, result, type, UV_SSIM_AREA_3D, UV_SSIM_AREA_UV, UV_SSIM_MATERIAL, UV_SSIM_PIN, and UV_SSIM_SIDES.
Referenced by uv_select_similar_face_exec().
|
static |
Definition at line 4520 of file uvedit_select.c.
References BLI_assert_unreachable, BM_EDGES_OF_VERT, BM_face_calc_area_uv(), BM_face_calc_area_with_mat3(), BM_FACES_OF_VERT, BM_ITER_ELEM, e, MLoopUV::flag, MLOOPUV_PINNED, result, type, 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 4266 of file uvedit_select.c.
References Freestyle::a, and usdtokens::b().
Referenced by uv_select_overlap().
BLI_INLINE uint overlap_hash | ( | const void * | overlap_v | ) |
Definition at line 4253 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 4287 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 3510 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(), BLI_rctf_isect_segment(), 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(), CustomData_get_offset(), depsgraph, ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_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, 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, ToolSettings::uv_sticky, 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 3749 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(), ED_uvedit_selectmode_flush(), height, l, BMesh::ldata, MEM_freeN, NULL, UvNearestHit::ob, offset, 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, 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, ToolSettings::uv_sticky, 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 3732 of file uvedit_select.c.
References dist_squared_to_line_segment_v2(), and offset.
Referenced by uv_circle_select_exec().
|
static |
Definition at line 3720 of file uvedit_select.c.
References len_squared_v2(), and offset.
Referenced by uv_circle_select_exec().
bool uv_find_nearest_edge | ( | Scene * | scene, |
Object * | obedit, | ||
const float | co[2], | ||
const float | penalty, | ||
UvNearestHit * | hit | ||
) |
Definition at line 831 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, sqrtf, square_f(), sub_v2_v2(), MLoopUV::uv, uvedit_edge_select_test(), 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], | ||
const float | penalty, | ||
UvNearestHit * | hit | ||
) |
Definition at line 882 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 942 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 | ( | struct Scene * | scene, |
struct Object * | obedit, | ||
const float | co[2], | ||
struct 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 899 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 964 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 947 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 1164 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 1136 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 980 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 1038 of file uvedit_select.c.
References scene, and uv_find_nearest_vert().
Referenced by stitch_select(), and uv_mouse_select_multi().
|
static |
Deselects UVs that are not part of a complete island selection.
Use only when sync select disabled.
Definition at line 5219 of file uvedit_select.c.
References BLI_assert, BMEditMesh::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_LOOPS_OF_FACE, BM_uv_element_get(), BM_uv_element_map_create(), BM_uv_element_map_free(), element, MLoopUV::flag, l, MEM_callocN, MEM_freeN, MLOOPUV_EDGESEL, MLOOPUV_VERTSEL, NULL, scene, Scene::toolsettings, UvElementMap::totalIslands, ToolSettings::uv_flag, UV_SYNC_SELECTION, uvedit_edge_select_test(), and uvedit_face_visible_test().
Referenced by ED_uvedit_selectmode_clean().
|
static |
Definition at line 4133 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 2670 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, params, and uv_mouse_select_multi().
Referenced by uv_select_exec().
|
static |
Definition at line 2819 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 2755 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(), depsgraph, ED_uvedit_select_mode_get(), ED_uvedit_selectmode_flush(), 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_FACE, uv_select_faceloop(), uv_select_tag_update_for_object(), UV_SYNC_SELECTION, and ARegion::v2d.
Referenced by uv_mouse_select_loop_generic().
|
static |
Definition at line 2445 of file uvedit_select.c.
References BKE_editmesh_from_object(), BLI_assert, BLI_assert_unreachable, 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(), CustomData_get_offset(), depsgraph, UvNearestHit::dist_sq, ED_uvedit_active_edge_loop_set(), ED_uvedit_active_vert_loop_set(), ED_uvedit_selectmode_flush(), EDBM_selectmode_flush(), UvNearestHit::efa, ELEM, UvNearestHit::l, BMesh::ldata, NULL, UvNearestHit::ob, params, SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, SEL_DESELECT, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, SEL_OP_XOR, ToolSettings::selectmode, SI_STICKY_DISABLE, 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_EDGE, UV_SELECT_FACE, UV_SELECT_ISLAND, uv_select_linked_multi(), uv_select_tag_update_for_object(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_face_select_set_with_sticky(), uvedit_face_select_test(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_test(), and ARegion::v2d.
Referenced by uv_mouse_select().
|
static |
Definition at line 970 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 2711 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit(), ED_select_pick_get_name(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::get_name, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, NULL, OPTYPE_UNDO, ot, wmOperatorType::poll, PROP_SKIP_SAVE, RNA_def_float_vector(), RNA_def_property_flag(), wmOperatorType::srna, 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 2424 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 3690 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 3902 of file uvedit_select.c.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_uvedit_space_image(), ED_select_circle_get_name(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::get_name, 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 2924 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_edge_ring_exec(), and uv_select_edge_ring_invoke().
Referenced by ED_operatortypes_uvedit().
void UV_OT_select_lasso | ( | wmOperatorType * | ot | ) |
Definition at line 4149 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_DEPENDS_ON_CURSOR, 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 2210 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 3035 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 3066 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, PROP_SKIP_SAVE, RNA_def_boolean(), RNA_def_float_vector(), RNA_def_property_flag(), 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 2862 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_loop_exec(), and uv_select_loop_invoke().
Referenced by ED_operatortypes_uvedit().
void UV_OT_select_mode | ( | wmOperatorType * | ot | ) |
Definition at line 5397 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, wmOperatorType::prop, PROP_HIDDEN, PROP_SKIP_SAVE, RNA_def_enum(), RNA_def_property_flag(), rna_enum_mesh_select_mode_uv_items, wmOperatorType::srna, uv_select_mode_exec(), and uv_select_mode_invoke().
Referenced by ED_operatortypes_uvedit().
void UV_OT_select_more | ( | wmOperatorType * | ot | ) |
Definition at line 2192 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 4496 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 4234 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_similar | ( | wmOperatorType * | ot | ) |
Definition at line 5037 of file uvedit_select.c.
References wmOperatorType::description, ED_operator_uvedit_space_image(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorType::poll, wmOperatorType::prop, prop_similar_compare_types, prop_vert_similar_types, RNA_def_enum(), RNA_def_enum_funcs(), RNA_def_float(), SIM_CMP_EQ, SIMVERT_NORMAL, wmOperatorType::srna, uv_select_similar_exec(), uv_select_similar_type_itemf(), and WM_menu_invoke().
Referenced by ED_operatortypes_uvedit().
void UV_OT_select_split | ( | wmOperatorType * | ot | ) |
Definition at line 3198 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 2272 of file uvedit_select.c.
References 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_EDGESEL, MLOOPUV_VERTSEL, scene, SET_FLAG_FROM_TEST, and uvedit_face_visible_test().
Referenced by uv_select_all_perform().
|
static |
Definition at line 2399 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 2330 of file uvedit_select.c.
References BKE_editmesh_from_object(), BM_ELEM_SELECT, EDBM_flag_disable_all(), EDBM_flag_enable_all(), EDBM_select_swap(), EDBM_select_toggle_all(), EDBM_selectmode_flush(), scene, SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, Scene::toolsettings, ToolSettings::uv_flag, uv_select_all(), uv_select_invert(), UV_SYNC_SELECTION, and uvedit_select_is_any_selected().
Referenced by uv_select_all_perform_multi_ex(), uv_select_edgeloop(), uv_select_edgering(), uv_select_faceloop(), and uv_select_overlap().
|
static |
Definition at line 2391 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 2371 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(), and uv_select_all_perform_multi().
|
static |
Definition at line 2903 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 2911 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(), ARegion::v2d, and WM_operator_flag_only_pass_through_on_press().
Referenced by UV_OT_select_edge_ring().
|
static |
Definition at line 1547 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, BMLoop::next, NULL, scene, SEL_DESELECT, select(), Scene::toolsettings, UV_EDGE_LOOP_BOUNDARY_ALL, UV_EDGE_LOOP_BOUNDARY_LOOP, uv_select_all_perform(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), and uvedit_uv_select_set_with_sticky().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Tag all loops which should be selected, the caller must select.
Definition at line 1441 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 1490 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 1696 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, SCE_SELECT_VERTEX, scene, SEL_DESELECT, select(), ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, uv_select_all_perform(), UV_SELECT_FACE, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_edge_select_set_with_sticky(), uvedit_edge_select_test(), uvedit_face_select_set_with_sticky(), uvedit_face_visible_test(), uvedit_loop_find_other_radial_loop_with_visible_face(), and uvedit_uv_select_set_with_sticky().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Definition at line 2681 of file uvedit_select.c.
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 1634 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_mesh_elem_hflag_disable_all(), CD_MLOOPUV, CustomData_get_offset(), BMLoop::f, UvNearestHit::l, BMesh::ldata, BMFace::len, BMLoop::next, NULL, scene, SEL_DESELECT, select(), uv_select_all_perform(), uvedit_face_select_set_with_sticky(), uvedit_face_select_test(), uvedit_face_visible_test(), and uvedit_loop_find_other_radial_loop_with_visible_face().
Referenced by uv_mouse_select_loop_generic_multi().
|
static |
Flush the selection from UV edge flags based on sticky modes.
Useful when performing edge selections in different sticky modes, since setting the required edge flags (MLOOPUV_EDGESEL) 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 3442 of file uvedit_select.c.
References BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_FACE, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_table_ensure(), bm_uv_flag_clear(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), CD_MLOOPUV, CustomData_get_offset(), ELEM, MLoopUV::flag, l, BMesh::ldata, MLOOPUV_EDGESEL, MLOOPUV_VERTSEL, BMLoop::next, NULL, BMLoop::prev, scene, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), ToolSettings::uv_sticky, UV_SYNC_SELECTION, and uvedit_face_visible_test().
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 3296 of file uvedit_select.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, 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_table_ensure(), BM_uv_vert_map_create(), BM_uv_vert_map_free(), CD_MLOOPUV, CustomData_get_offset(), ELEM, MLoopUV::flag, l, BMesh::ldata, MLOOPUV_EDGESEL, NULL, scene, select(), SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_select_set(), and uvedit_vert_is_face_select_any_other().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selectmode_clean(), uv_box_select_exec(), uv_circle_select_exec(), and uv_select_more_less().
|
static |
Flush the selection from loop tags based on sticky and selection modes.
needed because setting the selection of a face is done in a number of places but it also needs to respect the sticky modes for the UV verts, so dealing with the sticky modes is best done in a separate function.
Definition at line 3363 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, Scene::toolsettings, ToolSettings::uv_flag, uv_select_flush_from_tag_sticky_loc_internal(), ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_uv_select_set(), and BMLoop::v.
Referenced by ED_uvedit_selectmode_clean(), and uv_select_more_less().
|
static |
helper function for uv_select_flush_from_tag_loop and uv_select_flush_from_tag_face
Definition at line 3238 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_loop_edge_flag(), uv_select_flush_from_tag_face(), and uv_select_flush_from_tag_loop().
|
static |
Definition at line 2291 of file uvedit_select.c.
References BLI_assert, 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(), ELEM, MLoopUV::flag, l, BMesh::ldata, MLOOPUV_EDGESEL, MLOOPUV_VERTSEL, scene, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, uv_select_flush_from_loop_edge_flag(), UV_SELECT_ISLAND, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_select_flush().
Referenced by uv_select_all_perform().
|
static |
Definition at line 2698 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(), ARegion::v2d, and WM_operator_flag_only_pass_through_on_press().
Referenced by UV_OT_select().
|
static |
Definition at line 2205 of file uvedit_select.c.
References C, and uv_select_more_less().
Referenced by UV_OT_select_less().
|
static |
Definition at line 3030 of file uvedit_select.c.
References C, NULL, and uv_select_linked_internal().
Referenced by UV_OT_select_linked().
|
static |
Definition at line 2965 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 1793 of file uvedit_select.c.
References Freestyle::a, BKE_editmesh_from_object(), BLI_assert, 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 3061 of file uvedit_select.c.
References C, NULL, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 3056 of file uvedit_select.c.
References C, and uv_select_linked_internal().
Referenced by UV_OT_select_linked_pick().
|
static |
Definition at line 2839 of file uvedit_select.c.
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 2849 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(), ARegion::v2d, and WM_operator_flag_only_pass_through_on_press().
Referenced by UV_OT_select_loop().
|
static |
Definition at line 5356 of file uvedit_select.c.
References C, CTX_data_scene(), DEG_id_tag_update(), ED_uvedit_selectmode_clean_multi(), Scene::id, ID_RECALC_COPY_ON_WRITE, ID_RECALC_SELECT, NC_SCENE, ND_TOOLSETTINGS, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), scene, 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 5379 of file uvedit_select.c.
References C, CTX_data_tool_settings(), CTX_wm_space_image(), SpaceImage::mode, OPERATOR_CANCELLED, OPERATOR_PASS_THROUGH, SI_MODE_UV, ToolSettings::uv_flag, uv_select_mode_exec(), and UV_SYNC_SELECTION.
Referenced by UV_OT_select_mode().
|
static |
Definition at line 2187 of file uvedit_select.c.
References C, and uv_select_more_less().
Referenced by UV_OT_select_more().
Definition at line 2043 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(), CURR_FACE_IS_UNSEL, CustomData_get_offset(), Object::data, DEG_id_tag_update(), EDBM_select_less(), EDBM_select_more(), MLoopUV::flag, ID_RECALC_SELECT, l, BMesh::ldata, MEM_freeN, MLOOPUV_EDGESEL, MLOOPUV_VERTSEL, NC_GEOM, ND_SELECT, NEIGHBORING_FACE_IS_SEL, 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_deselect_flush(), uvedit_face_select_test(), uvedit_face_visible_test(), uvedit_select_flush(), uvedit_vert_is_all_other_faces_selected(), and WM_event_add_notifier().
Referenced by uv_select_less_exec(), and uv_select_more_exec().
Definition at line 4325 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 4490 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 4175 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_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, ED_uvedit_selectmode_flush(), MLoopUV::flag, l, BMesh::ldata, MEM_freeN, MLOOPUV_PINNED, NULL, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_ERROR, scene, Scene::toolsettings, ToolSettings::uv_flag, uv_select_tag_update_for_object(), UV_SELECT_VERTEX, ToolSettings::uv_selectmode, UV_SYNC_SELECTION, uvedit_face_visible_test(), and uvedit_uv_select_enable().
Referenced by UV_OT_select_pinned().
|
static |
Definition at line 4754 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, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, C, CD_MLOOPUV, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, BMLoop::e, ED_select_similar_compare_float_tree(), get_uv_edge_needle(), l, BMesh::ldata, BMFace::len, MEM_SAFE_FREE, BMLoop::next, NULL, UVOverlapData::ob_index, Object::obmat, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), scene, select(), threshold, BMesh::totvertsel, type, uv_select_tag_update_for_object(), uvedit_edge_select_set(), uvedit_edge_select_test(), and uvedit_face_visible_test().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 4973 of file uvedit_select.c.
References C, CTX_data_tool_settings(), if(), wmOperator::ptr, RNA_property_float_get(), RNA_property_float_set(), RNA_property_is_set(), RNA_struct_find_property(), ToolSettings::select_thresh, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, UV_SELECT_ISLAND, uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_vert_exec(), ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 4873 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, BM_FACES_OF_MESH, BM_ITER_MESH, C, CD_MLOOPUV, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, do_history(), ED_select_similar_compare_float_tree(), get_uv_face_needle(), BMesh::ldata, MEM_SAFE_FREE, NULL, UVOverlapData::ob_index, Object::obmat, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), scene, select(), threshold, BMesh::totfacesel, type, uv_select_tag_update_for_object(), uvedit_face_select_set(), uvedit_face_select_test(), and uvedit_face_visible_test().
Referenced by uv_select_similar_exec().
|
static |
Definition at line 5019 of file uvedit_select.c.
References C, CTX_data_tool_settings(), if(), prop_edge_similar_types, prop_face_similar_types, prop_vert_similar_types, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SELECT_EDGE, UV_SELECT_FACE, ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 4641 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, BM_ELEM_CD_GET_VOID_P, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, C, CD_MLOOPUV, copy_m3_m4(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CustomData_get_offset(), depsgraph, ED_select_similar_compare_float_tree(), get_uv_vert_needle(), l, BMesh::ldata, BMFace::len, MEM_SAFE_FREE, NULL, UVOverlapData::ob_index, Object::obmat, OPERATOR_FINISHED, wmOperator::ptr, RNA_enum_get(), RNA_float_get(), scene, select(), threshold, BMesh::totvertsel, type, uv_select_tag_update_for_object(), uvedit_face_visible_test(), uvedit_uv_select_set(), uvedit_uv_select_test(), and BMLoop::v.
Referenced by uv_select_similar_exec().
|
static |
Definition at line 3121 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_EDGESEL, 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 3211 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(), ED_uvedit_selectmode_clean_multi(), 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_vert_exec(), and uv_select_split_exec().
void uvedit_deselect_flush | ( | const Scene * | scene, |
BMEditMesh * | em | ||
) |
Definition at line 1354 of file uvedit_select.c.
References BLI_assert, 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_EDGESEL, MLOOPUV_VERTSEL, BMLoop::next, scene, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_SYNC_SELECTION, and uvedit_face_visible_test().
Referenced by uv_select_more_less().
void uvedit_edge_select_disable | ( | const Scene * | scene, |
BMEditMesh * | em, | ||
BMLoop * | l, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 553 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_EDGESEL, MLOOPUV_VERTSEL, BMLoop::next, BMLoop::prev, SCE_SELECT_EDGE, SCE_SELECT_FACE, scene, ToolSettings::selectmode, Scene::toolsettings, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, 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 518 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_EDGESEL, 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 502 of file uvedit_select.c.
References do_history(), l, scene, select(), uvedit_edge_select_disable(), and uvedit_edge_select_enable().
Referenced by uv_select_similar_edge_exec(), and uvedit_edge_select_set_with_sticky().
void uvedit_edge_select_set_noflush | ( | const Scene * | scene, |
BMLoop * | l, | ||
const bool | select, | ||
const int | sticky_flag, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 483 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, BM_loop_uv_share_edge_check(), BMLoop::f, MLoopUV::flag, l, MLOOPUV_EDGESEL, BMLoop::radial_next, scene, select(), SET_FLAG_FROM_TEST, SI_STICKY_DISABLE, SI_STICKY_VERTEX, 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, |
BMEditMesh * | em, | ||
BMLoop * | l, | ||
const bool | select, | ||
const bool | do_history, | ||
const uint | cd_loop_uv_offset | ||
) |
Definition at line 404 of file uvedit_select.c.
References do_history(), BMLoop::f, l, scene, select(), SI_STICKY_DISABLE, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_edge_select_set(), uvedit_edge_select_shared_vert(), and uvedit_face_visible_test().
Referenced by do_lasso_select_mesh_uv(), 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, |
BMEditMesh * | em, | ||
BMLoop * | l, | ||
const bool | select, | ||
const int | sticky_flag, | ||
const bool | do_history, | ||
const int | cd_loop_uv_offset | ||
) |
Selects UV edges and shared vertices according to sticky_flag.
sticky_flag |
|
Definition at line 446 of file uvedit_select.c.
References BLI_assert, BM_ELEM_CD_GET_VOID_P, do_history(), ELEM, MLoopUV::flag, l, MLOOPUV_EDGESEL, BMLoop::next, BMLoop::radial_next, scene, select(), SI_STICKY_LOC, SI_STICKY_VERTEX, 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().
Definition at line 399 of file uvedit_select.c.
References l, scene, Scene::toolsettings, and uvedit_edge_select_test_ex().
Referenced by ED_uvedit_selected_edges(), ED_uvedit_selectmode_clean(), uv_find_nearest_edge(), uv_isolate_selected_islands(), uv_mouse_select_multi(), uv_select_edgeloop(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_similar_edge_exec(), and uvedit_vert_is_edge_select_any_other().
bool uvedit_edge_select_test_ex | ( | const ToolSettings * | ts, |
BMLoop * | l, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 377 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_EDGESEL, MLOOPUV_VERTSEL, BMLoop::next, SCE_SELECT_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, 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 355 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_EDGESEL, 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 329 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_EDGESEL, 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 Scene * | scene, |
BMEditMesh * | em, | ||
BMFace * | efa, | ||
const bool | select, | ||
const bool | do_history, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 314 of file uvedit_select.c.
References do_history(), scene, 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(), and uvedit_face_select_set_with_sticky().
void uvedit_face_select_set_with_sticky | ( | 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 do_history(), scene, select(), SI_STICKY_DISABLE, Scene::toolsettings, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_select_set(), uvedit_face_select_shared_vert(), and uvedit_face_visible_test().
Referenced by uv_mouse_select_multi(), uv_select_edgering(), and uv_select_faceloop().
void uvedit_face_select_shared_vert | ( | const Scene * | scene, |
BMEditMesh * | em, | ||
BMFace * | efa, | ||
const bool | select, | ||
const bool | do_history, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 287 of file uvedit_select.c.
References BM_ELEM_CD_GET_VOID_P, BM_ITER_ELEM, BM_LOOPS_OF_FACE, do_history(), MLoopUV::flag, l, MLOOPUV_EDGESEL, scene, select(), SI_STICKY_LOC, uvedit_uv_select_shared_vert(), and uvedit_vert_is_face_select_any_other().
Referenced by uvedit_face_select_set_with_sticky().
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(), ED_uvedit_selectmode_clean(), uv_circle_select_exec(), uv_mouse_select_multi(), uv_select_faceloop(), uv_select_linked_multi(), uv_select_more_less(), uv_select_overlap(), uv_select_similar_face_exec(), uvedit_vert_is_all_other_faces_selected(), and uvedit_vert_is_face_select_any_other().
bool uvedit_face_select_test_ex | ( | const ToolSettings * | ts, |
BMFace * | efa, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 227 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_EDGESEL, MLOOPUV_VERTSEL, ToolSettings::uv_flag, UV_SELECT_VERTEX, ToolSettings::uv_selectmode, and UV_SYNC_SELECTION.
Referenced by uvedit_face_select_test().
Definition at line 222 of file uvedit_select.c.
References scene, Scene::toolsettings, and uvedit_face_visible_test_ex().
Referenced by bm_uv_flag_clear(), do_lasso_select_mesh_uv(), ED_uvedit_selected_edges(), ED_uvedit_selected_faces(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_flush(), 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_isolate_selected_islands(), 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_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(), uvedit_deselect_flush(), uvedit_edge_select_set_noflush(), uvedit_edge_select_set_with_sticky(), uvedit_face_select_set_with_sticky(), uvedit_first_selected_uv_from_vertex(), uvedit_loop_find_other_radial_loop_with_visible_face(), uvedit_nearest_uv(), uvedit_select_flush(), uvedit_select_is_any_selected(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_shared_vert(), uvedit_vert_is_all_other_faces_selected(), uvedit_vert_is_edge_select_any_other(), and uvedit_vert_is_face_select_any_other().
bool uvedit_face_visible_test_ex | ( | const ToolSettings * | ts, |
BMFace * | efa | ||
) |
Definition at line 215 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 | ( | struct Scene * | scene, |
struct BMVert * | eve, | ||
int | cd_loop_uv_offset | ||
) |
Definition at line 2016 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().
|
static |
Definition at line 796 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 771 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(), uv_select_faceloop(), and uvedit_loop_find_other_boundary_loop_with_visible_face().
|
static |
Definition at line 1055 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(), mul_v2_v2v2(), BMLoop::next, NULL, scene, uvedit_face_visible_test(), and uvedit_uv_select_test().
Referenced by ED_uvedit_nearest_uv_multi().
void uvedit_select_flush | ( | const Scene * | scene, |
BMEditMesh * | em | ||
) |
Definition at line 1325 of file uvedit_select.c.
References BLI_assert, 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_EDGESEL, MLOOPUV_VERTSEL, BMLoop::next, scene, Scene::toolsettings, UNUSED_VARS_NDEBUG, ToolSettings::uv_flag, UV_SYNC_SELECTION, and uvedit_face_visible_test().
Referenced by uv_select_invert(), and uv_select_more_less().
Definition at line 2229 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 | ( | const Scene * | scene, |
Object ** | objects, | ||
const uint | objects_len | ||
) |
Definition at line 2257 of file uvedit_select.c.
References scene, and uvedit_select_is_any_selected().
Referenced by 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 750 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 720 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_EDGE, 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 705 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_loop(), uv_select_flush_from_tag_sticky_loc_internal(), uv_select_similar_vert_exec(), uvedit_uv_select_set_with_sticky(), uvedit_uv_select_shared_vert(), and uvedit_vertex_select_tagged().
void uvedit_uv_select_set_with_sticky | ( | const Scene * | scene, |
BMEditMesh * | em, | ||
BMLoop * | l, | ||
const bool | select, | ||
const bool | do_history, | ||
const uint | cd_loop_uv_offset | ||
) |
Definition at line 626 of file uvedit_select.c.
References do_history(), BMLoop::f, l, scene, select(), SI_STICKY_DISABLE, SI_STICKY_LOC, SI_STICKY_VERTEX, Scene::toolsettings, ToolSettings::uv_flag, ToolSettings::uv_sticky, UV_SYNC_SELECTION, uvedit_face_visible_test(), uvedit_uv_select_set(), and uvedit_uv_select_shared_vert().
Referenced by uv_mouse_select_multi(), uv_select_edgeloop(), and uv_select_edgering().
void uvedit_uv_select_shared_vert | ( | const Scene * | scene, |
BMEditMesh * | em, | ||
BMLoop * | l, | ||
const bool | select, | ||
const int | sticky_flag, | ||
const bool | do_history, | ||
const int | cd_loop_uv_offset | ||
) |
Selects shared UVs based on #sticky_flag.
sticky_flag | Type of sticky selection :
|
Definition at line 668 of file uvedit_select.c.
References BLI_assert, BM_DISK_EDGE_NEXT, BM_loop_uv_share_vert_check(), do_history(), BMLoop::e, ELEM, BMLoop::f, BMEdge::l, l, BMLoop::radial_next, scene, select(), SI_STICKY_LOC, SI_STICKY_VERTEX, 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().
Definition at line 621 of file uvedit_select.c.
References l, scene, Scene::toolsettings, and uvedit_uv_select_test_ex().
Referenced by do_lasso_select_mesh_uv(), ED_uvedit_selectmode_clean(), uv_box_select_exec(), uv_circle_select_exec(), uv_find_nearest_vert(), uv_mouse_select_multi(), uv_select_linked_multi(), uv_select_similar_vert_exec(), uvedit_first_selected_uv_from_vertex(), and uvedit_nearest_uv().
bool uvedit_uv_select_test_ex | ( | const ToolSettings * | ts, |
BMLoop * | l, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 596 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_EDGE, SCE_SELECT_FACE, ToolSettings::selectmode, ToolSettings::uv_flag, UV_SYNC_SELECTION, and BMLoop::v.
Referenced by uvedit_uv_select_test().
bool uvedit_vert_is_all_other_faces_selected | ( | const Scene * | scene, |
BMLoop * | l, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 1239 of file uvedit_select.c.
References BM_ITER_ELEM, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_VERT, BMLoop::f, l, scene, uvedit_face_select_test(), uvedit_face_visible_test(), and BMLoop::v.
Referenced by uv_select_more_less().
bool uvedit_vert_is_edge_select_any_other | ( | const Scene * | scene, |
BMLoop * | l, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 1198 of file uvedit_select.c.
References BM_DISK_EDGE_NEXT, BM_loop_uv_share_vert_check(), BMLoop::e, BMLoop::f, if(), BMEdge::l, l, BMLoop::next, BMLoop::radial_next, scene, uvedit_edge_select_test(), uvedit_face_visible_test(), and BMLoop::v.
Referenced by uvedit_edge_select_shared_vert().
bool uvedit_vert_is_face_select_any_other | ( | const Scene * | scene, |
BMLoop * | l, | ||
const int | cd_loop_uv_offset | ||
) |
Definition at line 1221 of file uvedit_select.c.
References BM_ITER_ELEM, BM_loop_uv_share_vert_check(), BM_LOOPS_OF_VERT, BMLoop::f, l, scene, uvedit_face_select_test(), uvedit_face_visible_test(), and BMLoop::v.
Referenced by uv_select_flush_from_tag_face(), and uvedit_face_select_shared_vert().
|
static |
Definition at line 197 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().
|
static |
Definition at line 5001 of file uvedit_select.c.
Referenced by uv_select_similar_type_itemf().
|
static |
Definition at line 5007 of file uvedit_select.c.
Referenced by uv_select_similar_type_itemf().
|
static |
Definition at line 5014 of file uvedit_select.c.
Referenced by UV_OT_select_similar().
|
static |
Definition at line 4999 of file uvedit_select.c.
Referenced by UV_OT_select_similar(), and uv_select_similar_type_itemf().