34 }
while ((l_iter = l_iter->
next) != l_first);
68 const int cd_loop_uv_offset)
73 const BMEdge *e_iter, *e_first;
74 e_iter = e_first =
v->e;
76 if (e_iter->
l ==
nullptr) {
95 }
while ((l_iter = l_iter->
radial_next) != l_first);
102 const int cd_loop_uv_offset)
107 const BMEdge *e_iter, *e_first;
108 e_iter = e_first =
v->e;
110 if (e_iter->
l ==
nullptr) {
119 if (l_iter->
v !=
v) {
130 }
while ((l_iter = l_iter->
radial_next) != l_first);
137 const int cd_loop_uv_offset)
142 const BMEdge *e_iter, *e_first;
143 e_iter = e_first =
v->e;
145 if (e_iter->
l ==
nullptr) {
154 if (l_iter->
v !=
v) {
169 }
while ((l_iter = l_iter->
radial_next) != l_first);
176 const int cd_loop_uv_offset)
181 const BMEdge *e_iter, *e_first;
182 e_iter = e_first =
v->e;
184 if (e_iter->
l ==
nullptr) {
193 if (l_iter->
v !=
v) {
203 }
while ((l_iter = l_iter->
radial_next) != l_first);
210 const int cd_loop_uv_offset)
231 const int cd_loop_uv_offset)
261 }
while ((l_iter = l_iter->
next) != l_first);
332 }
while ((l_iter = l_iter->
next) != l_first);
337 if (
bm->uv_select_sync_valid ==
false) {
340 bm->uv_select_sync_valid =
false;
353 const int cd_loop_uv_offset)
359 const BMEdge *e_iter, *e_first;
360 e_iter = e_first =
v->e;
362 if (e_iter->
l ==
nullptr) {
371 if (l_iter->
v !=
v) {
381 }
while ((l_iter = l_iter->
radial_next) != l_first);
388 const int cd_loop_uv_offset)
392 BMLoop *l_iter =
l->radial_next;
416 }
while ((l_iter = l_iter->
next) != l_first);
421 const int cd_loop_uv_offset,
428 for (
BMLoop *l_vert : loop_verts) {
431 for (
BMLoop *l_edge : loop_edges) {
450 for (
BMLoop *l_edge : loop_edges) {
456 for (
BMLoop *l_edge_vert : {l_edge, l_edge->next}) {
482 }
while ((l_iter = l_iter->
next) != l_first);
502 }
while ((l_iter = l_iter->
next) != l_first);
534 bool caller_handles_edge_or_face_mode)
536 if (caller_handles_edge_or_face_mode ==
false) {
540 "Picking verts in edge or face-select mode is not supported.");
551 if (
v->e ==
nullptr) {
556 const BMEdge *e_iter, *e_first;
557 e_iter = e_first =
v->e;
559 if (e_iter->
l ==
nullptr) {
562 BMLoop *l_radial_iter, *l_radial_first;
563 l_radial_iter = l_radial_first = e_iter->
l;
568 if (
v != l_radial_iter->
v) {
589 }
while ((l_radial_iter = l_radial_iter->
radial_next) != l_radial_first);
593 const BMEdge *e_iter, *e_first;
594 e_iter = e_first =
v->e;
596 if (e_iter->
l ==
nullptr) {
599 BMLoop *l_radial_iter, *l_radial_first;
600 l_radial_iter = l_radial_first = e_iter->
l;
605 if (
v != l_radial_iter->
v) {
615 }
while ((l_radial_iter = l_radial_iter->
radial_next) != l_radial_first);
624 const bool caller_handles_face_mode)
626 if (caller_handles_face_mode ==
false) {
630 "Picking edges in face-select mode is not supported.");
638 if (
e->l ==
nullptr) {
642 if (uv_pick_params.
shared ==
false) {
646 bool any_faces_unselected =
false;
647 l_iter = l_first =
e->l;
658 if (any_faces_unselected ==
false) {
660 any_faces_unselected =
true;
663 }
while ((l_iter = l_iter->
radial_next) != l_first);
666 if (any_faces_unselected) {
667 l_iter = l_first =
e->l;
677 }
while ((l_iter = l_iter->
radial_next) != l_first);
681 l_iter = l_first =
e->l;
694 }
while ((l_iter = l_iter->
radial_next) != l_first);
716 bool any_faces_unselected =
false;
717 l_iter = l_first =
e->l;
728 if (any_faces_unselected ==
false) {
730 any_faces_unselected =
true;
733 }
while ((l_iter = l_iter->
radial_next) != l_first);
736 if (any_faces_unselected) {
737 l_iter = l_first =
e->l;
747 }
while ((l_iter = l_iter->
radial_next) != l_first);
751 l_iter = l_first =
e->l;
764 }
while ((l_iter = l_iter->
radial_next) != l_first);
767 l_iter = l_first =
e->l;
772 for (
BMLoop *l_edge_vert : {l_iter, l_iter->
next}) {
789 }
while ((l_iter = l_iter->
radial_next) != l_first);
805 if (uv_pick_params.
shared ==
false) {
818 }
while ((l_iter = l_iter->
next) != l_first);
825 }
while ((l_iter = l_iter->
next) != l_first);
852 }
while ((l_iter = l_iter->
next) != l_first);
861 const bool caller_handles_edge_or_face_mode =
false;
869 const bool caller_handles_face_mode =
false;
894 const short select_mode,
895 const int cd_loop_uv_offset,
897 const bool check_verts,
898 const bool check_edges)
900 if (!(check_verts || check_edges)) {
905 bool do_check =
false;
915 if (check_verts || check_edges) {
920 if (do_check ==
false) {
955 }
while ((l_iter = l_iter->
next) != l_first);
980 }
while ((l_iter = l_iter->
next) != l_first);
993 e_prev_select = e_iter_select;
994 }
while ((l_iter = l_iter->
next) != l_first);
1006 const bool check_verts = !
verts.is_empty();
1007 const bool check_edges = !edges.
is_empty();
1023 bm,
bm->selectmode,
params.cd_loop_uv_offset,
params.shared, check_verts, check_edges);
1033 const bool check_verts = !
verts.is_empty();
1034 const bool check_edges = !edges.
is_empty();
1047 bm,
bm->selectmode,
params.cd_loop_uv_offset,
params.shared, check_verts, check_edges);
1065 BMLoop *l_iter, *l_first;
1067 bool all_select =
true;
1077 }
while ((l_iter = l_iter->
next) != l_first);
1093 BMLoop *l_iter, *l_first;
1095 bool all_select =
true;
1106 }
while ((l_iter = l_iter->
next) != l_first);
1107 if (all_select ==
false) {
1122 BMLoop *l_iter, *l_first;
1124 bool all_select =
true;
1132 }
while ((l_iter = l_iter->
next) != l_first);
1148 BMLoop *l_iter, *l_first;
1150 bool all_select =
true;
1164 }
while ((l_iter = l_iter->
next) != l_first);
1165 if (all_select ==
false) {
1183 BMLoop *l_iter, *l_first;
1188 }
while ((l_iter = l_iter->
next) != l_first);
1204 BMLoop *l_iter, *l_first;
1209 }
while ((l_iter = l_iter->
next) != l_first);
1223 BMLoop *l_iter, *l_first;
1240 }
while ((l_iter = l_iter->
next) != l_first);
1254 BMLoop *l_iter, *l_first;
1271 }
while ((l_iter = l_iter->
next) != l_first);
1290 bool select_all =
true;
1291 BMLoop *l_iter, *l_first;
1300 }
while ((l_iter = l_iter->
next) != l_first);
1317 BMLoop *l_iter, *l_first;
1321 }
while ((l_iter = l_iter->
next) != l_first);
1331 bool select_all =
true;
1332 BMLoop *l_iter, *l_first;
1345 }
while ((l_iter = l_iter->
next) != l_first);
1366 BMLoop *l_iter, *l_first;
1371 }
while ((l_iter = l_iter->
next) != l_first);
1423 const short selectmode_old,
1424 const short selectmode_new,
1425 const int cd_loop_uv_offset)
1445 bool do_flush_deselect_down =
false;
1448 do_flush_deselect_down =
true;
1453 do_flush_deselect_down =
true;
1457 if (do_flush_deselect_down ==
false) {
1480 BMLoop *l_iter, *l_first;
1482 bool select_face =
true;
1492 select_face =
false;
1496 select_face =
false;
1498 }
while ((l_iter = l_iter->
next) != l_first);
1500 if (select_face ==
false) {
1506 if (cd_loop_uv_offset != -1) {
1507 const bool shared =
true;
1508 const bool check_verts = (
bm->totvertsel != 0);
1509 const bool check_edges = (
bm->totedgesel != 0);
1511 bm, selectmode_new, cd_loop_uv_offset,
shared, check_verts, check_edges);
1532 if (
e->l ==
nullptr) {
1539 BMLoop *l_radial_iter, *l_radial_first;
1540 l_radial_iter = l_radial_first =
e->l;
1543 }
while ((l_radial_iter = l_radial_iter->
radial_next) != l_radial_first);
1549 if (cd_loop_uv_offset != -1) {
1559 BMLoop *l_iter, *l_first;
1583 }
while ((l_iter = l_iter->
next) != l_first);
1610 BMLoop *l_iter, *l_first;
1617 }
while ((l_iter = l_iter->
next) != l_first);
1620 bm->uv_select_sync_valid =
true;
1637 BMLoop *l_iter, *l_first;
1642 for (
BMLoop *l_edge_vert : {l_iter, l_iter->
next}) {
1648 }
while ((l_iter = l_iter->
next) != l_first);
1654 bm->uv_select_sync_valid =
true;
1672 BMLoop *l_iter, *l_first;
1678 }
while ((l_iter = l_iter->
next) != l_first);
1682 bm->uv_select_sync_valid =
true;
1703 BMesh *
bm,
const int cd_loop_uv_offset)
1714 BMLoop *l_iter, *l_first;
1720 ((e_prev_select || e_iter_select) ||
1727 e_prev_select = e_iter_select;
1728 }
while ((l_iter = l_iter->
next) != l_first);
1733 bm->uv_select_sync_valid =
true;
1737 BMesh *
bm,
const int cd_loop_uv_offset)
1749 BMLoop *l_iter, *l_first;
1753 }
while ((l_iter = l_iter->
next) != l_first);
1757 BMLoop *l_iter, *l_first;
1769 }
while ((l_iter = l_iter->
next) != l_first);
1773 bm->uv_select_sync_valid =
true;
1836 BMLoop *l_iter, *l_first;
1842 }
while ((l_iter = l_iter->
next) != l_first);
1855 BMLoop *l_iter, *l_first;
1860 bool face_select =
true;
1868 face_select =
false;
1878 face_select =
false;
1880 }
while ((l_iter = l_iter->
next) != l_first);
1899 bool face_select =
true;
1900 BMLoop *l_iter, *l_first;
1904 face_select =
false;
1907 }
while ((l_iter = l_iter->
next) != l_first);
1922 BMLoop *l_iter, *l_first;
1924 bool face_select =
true;
1929 face_select =
false;
1932 }
while ((l_iter = l_iter->
next) != l_first);
1977# define MAYBE_ASSERT BLI_assert(0)
1979# define MAYBE_ASSERT printf(AT "\n")
1981# define MAYBE_ASSERT
1984#define INCF_MAYBE_ASSERT(var) \
1996 BMLoop *l_iter, *l_first;
2000 }
while ((l_iter = l_iter->
next) != l_first);
2011 bool is_valid =
true;
2024 BMLoop *l_iter, *l_first;
2032 }
while ((l_iter = l_iter->
next) != l_first);
2054 bool any_loop_selected =
false;
2059 any_loop_selected =
true;
2065 if (any_loop_selected ==
false) {
2085 BMLoop *l_iter, *l_first;
2093 }
while ((l_iter = l_iter->
next) != l_first);
2116 if (
e->l ==
nullptr) {
2119 bool any_loop_selected =
false;
2126 any_loop_selected =
true;
2130 if (any_loop_selected ==
false) {
2144 bool is_valid =
true;
2150 BLI_assert(error_count_selected == 0 && error_count_unselected == 0);
2157 BMLoop *l_iter, *l_first;
2163 if (!v_curr_select || !v_next_select) {
2168 if (v_curr_select && v_next_select) {
2175 }
while ((l_iter = l_iter->
next) != l_first);
2177 if (error_count_selected || error_count_unselected) {
2190 BLI_assert(error_count_verts_selected == 0 && error_count_verts_unselected == 0);
2191 BLI_assert(error_count_edges_selected == 0 && error_count_edges_unselected == 0);
2198 int uv_vert_select = 0;
2199 int uv_edge_select = 0;
2200 BMLoop *l_iter, *l_first;
2204 uv_vert_select += 1;
2208 uv_edge_select += 1;
2210 }
while ((l_iter = l_iter->
next) != l_first);
2213 if (uv_vert_select != f->
len) {
2216 if (uv_edge_select != f->
len) {
2223 if (uv_vert_select == f->
len) {
2228 if (uv_edge_select == f->
len) {
2235 if (error_count_verts_selected || error_count_verts_unselected) {
2238 if (error_count_edges_selected || error_count_edges_unselected) {
2247 const int cd_loop_uv_offset,
2250 bool is_valid =
true;
2252 UV_IS_SELECTED = 1 << 0,
2253 UV_IS_UNSELECTED = 1 << 1,
2265 auto loop_vert_select_test_fn = [&cd_loop_uv_offset](
BMLoop *l_base) ->
int {
2271 int select_test = 0;
2286 if (select_test == (UV_IS_SELECTED | UV_IS_UNSELECTED)) {
2298 BMLoop *l_iter, *l_first;
2304 if (loop_vert_select_test_fn(l_iter) == (UV_IS_SELECTED | UV_IS_UNSELECTED)) {
2307 }
while ((l_iter = l_iter->
next) != l_first);
2320 auto loop_edge_select_test_fn = [&cd_loop_uv_offset](
BMLoop *l_base) ->
int {
2323 int select_test = 0;
2324 if (l_base->radial_next != l_base) {
2340 if (select_test == (UV_IS_SELECTED | UV_IS_UNSELECTED)) {
2343 }
while ((l_other = l_other->
radial_next) != l_base);
2353 BMLoop *l_iter, *l_first;
2359 if (loop_edge_select_test_fn(l_iter) == (UV_IS_SELECTED | UV_IS_UNSELECTED)) {
2362 }
while ((l_iter = l_iter->
next) != l_first);
2377 bool is_valid =
true;
2392 BMLoop *l_iter, *l_first;
2405 }
while ((l_iter = l_iter->
next) != l_first);
2418 BLI_assert(error_count_vert == 0 && error_count_edge == 0);
2431 BMLoop *l_iter, *l_first;
2450 }
while ((l_iter = l_iter->
next) != l_first);
2453 if (error_count_vert || error_count_edge) {
2460#undef INCF_MAYBE_ASSERT
2464 const int cd_loop_uv_offset,
2465 const bool check_sync,
2466 const bool check_flush,
2467 const bool check_contiguous,
2491 bool is_valid =
true;
2505 if (check_contiguous) {
2511 if (check_flush && check_contiguous) {
#define BLI_assert_msg(a, msg)
MINLINE unsigned short highest_order_bit_s(unsigned short n)
#define UNUSED_VARS_NDEBUG(...)
Read Guarded memory(de)allocation.
#define BM_ELEM_SELECT_UV_EDGE
#define BM_FACE_FIRST_LOOP(p)
#define BM_elem_flag_disable(ele, hflag)
#define BM_elem_flag_set(ele, hflag, val)
#define BM_elem_flag_test(ele, hflag)
#define BM_elem_flag_test_bool(ele, hflag)
#define BM_elem_flag_enable(ele, hflag)
#define BM_ITER_ELEM(ele, iter, data, itype)
#define BM_ITER_MESH(ele, iter, bm, itype)
void BM_face_select_set(BMesh *bm, BMFace *f, const bool select)
Select Face.
void BM_vert_select_set(BMesh *bm, BMVert *v, const bool select)
Select Vert.
void BM_edge_select_set(BMesh *bm, BMEdge *e, const bool select)
Select Edge.
void BM_select_history_validate(BMesh *bm)
void BM_mesh_elem_hflag_disable_all(BMesh *bm, const char htype, const char hflag, const bool respecthide)
void BM_face_select_set_noflush(BMesh *bm, BMFace *f, const bool select)
void BM_mesh_select_flush_from_verts(BMesh *bm, const bool select)
#define BM_SELECT_HISTORY_BACKUP(bm)
#define BM_SELECT_HISTORY_RESTORE(bm)
bool BM_edge_is_any_face_flag_test(const BMEdge *e, const char hflag)
ATTR_WARN_UNUSED_RESULT const BMLoop * l
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
bool BM_loop_uv_share_edge_check(const BMLoop *l_a, const BMLoop *l_b, const int cd_loop_uv_offset)
bool BM_loop_uv_share_vert_check(const BMLoop *l_a, const BMLoop *l_b, const int cd_loop_uv_offset)
BLI_INLINE BMEdge * bmesh_disk_edge_next(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool BM_loop_edge_uvselect_check_other_face(BMLoop *l, const char hflag, const int cd_loop_uv_offset)
static void bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_vert_mode(BMesh *bm)
void BM_mesh_uvselect_flush_from_faces_only_select(BMesh *bm)
static void bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_edge_mode(BMesh *bm)
bool BM_loop_edge_uvselect_check_other_loop_edge(BMLoop *l, const char hflag, const int cd_loop_uv_offset)
void BM_face_uvselect_set_pick(BMesh *bm, BMFace *f, bool select, const BMUVSelectPickParams ¶ms)
bool BM_face_uvselect_check_edges_all(BMFace *f)
void BM_mesh_uvselect_sync_from_mesh_sticky_vert(BMesh *bm)
void BM_mesh_uvselect_flush_from_loop_edges_only_select(BMesh *bm)
static void bm_mesh_uvselect_mode_flush_down_deselect_only(BMesh *bm, const short select_mode, const int cd_loop_uv_offset, const bool shared, const bool check_verts, const bool check_edges)
void BM_mesh_uvselect_mode_flush(BMesh *bm)
void BM_face_uvselect_set_shared(BMesh *bm, BMFace *f, bool select, const int cd_loop_uv_offset)
static void bm_edge_uvselect_set_pick(BMesh *bm, BMEdge *e, const bool select, const BMUVSelectPickParams &uv_pick_params, const bool caller_handles_face_mode)
void BM_face_uvselect_set_noflush(BMesh *bm, BMFace *f, bool select)
void BM_face_uvselect_set(BMesh *bm, BMFace *f, bool select)
void BM_mesh_uvselect_mode_flush_update(BMesh *bm, const short selectmode_old, const short selectmode_new, const int cd_loop_uv_offset)
void BM_mesh_uvselect_sync_from_mesh_sticky_disabled(BMesh *bm)
static void bm_mesh_uvselect_flush_from_mesh_sticky_location_for_face_mode(BMesh *bm, const int cd_loop_uv_offset)
static void bm_mesh_uvselect_disable_all(BMesh *bm)
static void bm_mesh_loop_clear_tag(BMesh *bm)
static void bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_face_mode(BMesh *bm)
void BM_mesh_uvselect_sync_to_mesh(BMesh *bm)
#define INCF_MAYBE_ASSERT(var)
void BM_mesh_uvselect_flush_shared_only_deselect(BMesh *bm, const int cd_loop_uv_offset)
void BM_mesh_uvselect_flush_shared_only_select(BMesh *bm, const int cd_loop_uv_offset)
static void bm_mesh_uvselect_flush_from_mesh_sticky_location_for_edge_mode(BMesh *bm, const int cd_loop_uv_offset)
bool BM_loop_vert_uvselect_check_other_loop_vert(BMLoop *l, const char hflag, const int cd_loop_uv_offset)
void BM_mesh_uvselect_mode_flush_ex(BMesh *bm, const short selectmode, const bool flush_down)
void BM_mesh_uvselect_flush_from_verts(BMesh *bm, const bool select)
bool BM_loop_edge_uvselect_test(const BMLoop *l)
static void bm_mesh_uvselect_flush_from_mesh_sticky_location_for_vert_mode(BMesh *bm, const int)
bool BM_mesh_uvselect_is_valid(BMesh *bm, const int cd_loop_uv_offset, const bool check_sync, const bool check_flush, const bool check_contiguous, UVSelectValidateInfo *info_p)
void BM_loop_edge_uvselect_set_noflush(BMesh *bm, BMLoop *l, bool select)
static bool bm_mesh_uvselect_check_contiguous(BMesh *bm, const int cd_loop_uv_offset, UVSelectValidateInfo_Contiguous &info_sub)
bool BM_face_uvselect_test(const BMFace *f)
void BM_mesh_uvselect_set_elem_shared(BMesh *bm, bool select, const int cd_loop_uv_offset, const blender::Span< BMLoop * > loop_verts, const blender::Span< BMLoop * > loop_edges, const blender::Span< BMFace * > faces)
void BM_mesh_uvselect_flush_from_faces_only_deselect(BMesh *bm)
static void bm_vert_uvselect_set_pick(BMesh *bm, BMVert *v, const bool select, const BMUVSelectPickParams &, bool caller_handles_edge_or_face_mode)
void BM_mesh_uvselect_flush_from_loop_verts_only_select(BMesh *bm)
bool BM_mesh_uvselect_clear(BMesh *bm)
void BM_mesh_uvselect_flush_post_subdivide(BMesh *bm, const int cd_loop_uv_offset)
void BM_mesh_uvselect_flush_from_loop_edges_only_deselect(BMesh *bm)
bool BM_loop_vert_uvselect_check_other_edge(BMLoop *l, const char hflag, const int cd_loop_uv_offset)
bool BM_loop_vert_uvselect_check_other_loop_edge(BMLoop *l, const char hflag, const int cd_loop_uv_offset)
void BM_mesh_uvselect_flush_from_loop_verts(BMesh *bm)
void BM_mesh_uvselect_flush_from_loop_verts_only_deselect(BMesh *bm)
bool BM_loop_vert_uvselect_test(const BMLoop *l)
void BM_loop_edge_uvselect_set(BMesh *bm, BMLoop *l, bool select)
void BM_mesh_uvselect_sync_from_mesh_sticky_location(BMesh *bm, const int cd_loop_uv_offset)
static bool bm_mesh_uvselect_check_viewport_sync(BMesh *bm, UVSelectValidateInfo_Sync &info_sub)
void BM_mesh_uvselect_flush_from_loop_edges(BMesh *bm, bool flush_down)
static bool bm_mesh_uvselect_check_flush(BMesh *bm, UVSelectValidateInfo_Flush &info_sub)
void BM_mesh_uvselect_set_elem_from_mesh(BMesh *bm, const bool select, const BMUVSelectPickParams ¶ms, const blender::VectorList< BMVert * > &verts, const blender::VectorList< BMEdge * > &edges, const blender::VectorList< BMFace * > &faces)
void BM_edge_uvselect_set_pick(BMesh *bm, BMEdge *e, bool select, const BMUVSelectPickParams ¶ms)
void BM_loop_vert_uvselect_set_noflush(BMesh *bm, BMLoop *l, bool select)
static bool bm_mesh_uvselect_check_flush_and_contiguous(BMesh *bm, const int cd_loop_uv_offset, UVSelectValidateInfo_FlushAndContiguous &info_sub)
static void bm_face_uvselect_set_pick(BMesh *bm, BMFace *f, const bool select, const BMUVSelectPickParams &uv_pick_params)
void BM_mesh_uvselect_flush_from_faces(BMesh *bm, bool flush_down)
void BM_loop_vert_uvselect_set_shared(BMesh *bm, BMLoop *l, bool select, const int cd_loop_uv_offset)
void BM_vert_uvselect_set_pick(BMesh *bm, BMVert *v, bool select, const BMUVSelectPickParams ¶ms)
void BM_loop_edge_uvselect_set_shared(BMesh *bm, BMLoop *l, bool select, const int cd_loop_uv_offset)
void BM_mesh_uvselect_mode_flush_only_select(BMesh *bm)
bool BM_loop_vert_uvselect_check_other_face(BMLoop *l, const char hflag, const int cd_loop_uv_offset)
constexpr bool is_empty() const
struct BMLoop * radial_next
int count_uv_vert_non_contiguous_selected
int count_uv_edge_non_contiguous_selected
int count_uv_vert_isolated_in_face_mode
int count_uv_edge_isolated_in_face_mode
int count_uv_vert_isolated_in_edge_or_face_mode
int count_uv_edge_unselected_with_all_verts_selected
int count_uv_face_selected_with_any_edges_unselected
int count_uv_face_unselected_with_all_edges_selected
int count_uv_face_selected_with_any_verts_unselected
int count_uv_face_unselected_with_all_verts_selected
int count_uv_edge_selected_with_any_verts_unselected
int count_uv_edge_none_selected_with_edge_selected
int count_uv_vert_any_selected_with_vert_unselected
int count_uv_vert_none_selected_with_vert_selected
int count_uv_edge_any_selected_with_edge_unselected
UVSelectValidateInfo_Flush flush
UVSelectValidateInfo_FlushAndContiguous flush_contiguous
UVSelectValidateInfo_Sync sync
UVSelectValidateInfo_Contiguous contiguous