Cleanup: uvedit_*_select, replace `BMEditMesh*` with `BMesh*`
Change `cd_loop_uv_offset` from signed to unsigned, forcing a crash if passed invalid input. Differential Revision: https://developer.blender.org/D15722
This commit is contained in:
parent
f5aac6662d
commit
aa82f91c92
|
@ -107,64 +107,64 @@ bool uvedit_uv_select_test(const struct Scene *scene, struct BMLoop *l, int cd_l
|
|||
* Changes selection state of a single UV Face.
|
||||
*/
|
||||
void uvedit_face_select_set(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *em,
|
||||
struct BMFace *efa,
|
||||
bool select,
|
||||
bool do_history,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
/**
|
||||
* \brief Select UV Edge
|
||||
*
|
||||
* Changes selection state of a single UV Edge.
|
||||
*/
|
||||
void uvedit_edge_select_set(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *em,
|
||||
struct BMLoop *l,
|
||||
bool select,
|
||||
bool do_history,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
/**
|
||||
* \brief Select UV Vertex
|
||||
*
|
||||
* Changes selection state of a single UV vertex.
|
||||
*/
|
||||
void uvedit_uv_select_set(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *em,
|
||||
struct BMLoop *l,
|
||||
bool select,
|
||||
bool do_history,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
|
||||
/* Low level functions for (de)selecting individual UV elements. Ensure UV face visibility before
|
||||
* use. */
|
||||
|
||||
void uvedit_face_select_enable(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *bm,
|
||||
struct BMFace *efa,
|
||||
bool do_history,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
void uvedit_face_select_disable(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *bm,
|
||||
struct BMFace *efa,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
void uvedit_edge_select_enable(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *bm,
|
||||
struct BMLoop *l,
|
||||
bool do_history,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
void uvedit_edge_select_disable(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *bm,
|
||||
struct BMLoop *l,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
void uvedit_uv_select_enable(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *bm,
|
||||
struct BMLoop *l,
|
||||
bool do_history,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
void uvedit_uv_select_disable(const struct Scene *scene,
|
||||
struct BMEditMesh *em,
|
||||
struct BMesh *bm,
|
||||
struct BMLoop *l,
|
||||
int cd_loop_uv_offset);
|
||||
uint cd_loop_uv_offset);
|
||||
|
||||
/* Sticky mode UV element selection functions. */
|
||||
|
||||
|
|
|
@ -1497,7 +1497,7 @@ static int uv_hide_exec(bContext *C, wmOperator *op)
|
|||
if (bm_face_is_all_uv_sel(efa, !swap, cd_loop_uv_offset)) {
|
||||
BM_face_select_set(em->bm, efa, false);
|
||||
}
|
||||
uvedit_face_select_disable(scene, em, efa, cd_loop_uv_offset);
|
||||
uvedit_face_select_disable(scene, em->bm, efa, cd_loop_uv_offset);
|
||||
}
|
||||
else {
|
||||
if (bm_face_is_all_uv_sel(efa, true, cd_loop_uv_offset) == !swap) {
|
||||
|
@ -1514,7 +1514,7 @@ static int uv_hide_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
}
|
||||
if (!swap) {
|
||||
uvedit_face_select_disable(scene, em, efa, cd_loop_uv_offset);
|
||||
uvedit_face_select_disable(scene, em->bm, efa, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1536,7 +1536,7 @@ static int uv_hide_exec(bContext *C, wmOperator *op)
|
|||
break;
|
||||
}
|
||||
}
|
||||
uvedit_face_select_disable(scene, em, efa, cd_loop_uv_offset);
|
||||
uvedit_face_select_disable(scene, em->bm, efa, cd_loop_uv_offset);
|
||||
}
|
||||
else {
|
||||
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
|
||||
|
@ -1560,7 +1560,7 @@ static int uv_hide_exec(bContext *C, wmOperator *op)
|
|||
}
|
||||
}
|
||||
if (!swap) {
|
||||
uvedit_face_select_disable(scene, em, efa, cd_loop_uv_offset);
|
||||
uvedit_face_select_disable(scene, em->bm, efa, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -150,7 +150,7 @@ static void verttag_set_cb(BMLoop *l, bool val, void *user_data_v)
|
|||
if (verttag_filter_cb(l_iter, user_data)) {
|
||||
MLoopUV *luv_iter = BM_ELEM_CD_GET_VOID_P(l_iter, cd_loop_uv_offset);
|
||||
if (equals_v2v2(luv->uv, luv_iter->uv)) {
|
||||
uvedit_uv_select_set(scene, em, l_iter, val, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l_iter, val, false, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -848,7 +848,7 @@ static bool uv_rip_object(Scene *scene, Object *obedit, const float co[2], const
|
|||
BMLoop *l_iter = BLI_gsetIterator_getKey(&gs_iter);
|
||||
ULData *ul = UL(l_iter);
|
||||
if (ul->side == side_from_cursor) {
|
||||
uvedit_uv_select_disable(scene, em, l_iter, cd_loop_uv_offset);
|
||||
uvedit_uv_select_disable(scene, em->bm, l_iter, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
}
|
||||
/* Ensure we don't operate on these again. */
|
||||
|
@ -866,7 +866,7 @@ static bool uv_rip_object(Scene *scene, Object *obedit, const float co[2], const
|
|||
BMLoop *l_iter = BLI_gsetIterator_getKey(&gs_iter);
|
||||
ULData *ul = UL(l_iter);
|
||||
if (ul->side == side_from_cursor) {
|
||||
uvedit_uv_select_disable(scene, em, l_iter, cd_loop_uv_offset);
|
||||
uvedit_uv_select_disable(scene, em->bm, l_iter, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
}
|
||||
/* Ensure we don't operate on these again. */
|
||||
|
|
|
@ -207,7 +207,7 @@ static void uvedit_vertex_select_tagged(BMEditMesh *em,
|
|||
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
|
||||
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
|
||||
if (BM_elem_flag_test(l->v, BM_ELEM_TAG)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +265,7 @@ void uvedit_face_select_set_with_sticky(const Scene *scene,
|
|||
const ToolSettings *ts = scene->toolsettings;
|
||||
const char sticky = ts->uv_sticky;
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
uvedit_face_select_set(scene, em, efa, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_face_select_set(scene, em->bm, efa, select, do_history, cd_loop_uv_offset);
|
||||
return;
|
||||
}
|
||||
if (!uvedit_face_visible_test(scene, efa)) {
|
||||
|
@ -275,7 +275,7 @@ void uvedit_face_select_set_with_sticky(const Scene *scene,
|
|||
* (not part of any face selections). This now uses the sticky location mode logic instead. */
|
||||
switch (sticky) {
|
||||
case SI_STICKY_DISABLE: {
|
||||
uvedit_face_select_set(scene, em, efa, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_face_select_set(scene, em->bm, efa, select, do_history, cd_loop_uv_offset);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
@ -313,32 +313,32 @@ void uvedit_face_select_shared_vert(const Scene *scene,
|
|||
}
|
||||
|
||||
void uvedit_face_select_set(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMFace *efa,
|
||||
const bool select,
|
||||
const bool do_history,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
{
|
||||
if (select) {
|
||||
uvedit_face_select_enable(scene, em, efa, do_history, cd_loop_uv_offset);
|
||||
uvedit_face_select_enable(scene, bm, efa, do_history, cd_loop_uv_offset);
|
||||
}
|
||||
else {
|
||||
uvedit_face_select_disable(scene, em, efa, cd_loop_uv_offset);
|
||||
uvedit_face_select_disable(scene, bm, efa, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
|
||||
void uvedit_face_select_enable(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMFace *efa,
|
||||
const bool do_history,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
BM_face_select_set(em->bm, efa, true);
|
||||
BM_face_select_set(bm, efa, true);
|
||||
if (do_history) {
|
||||
BM_select_history_store(em->bm, (BMElem *)efa);
|
||||
BM_select_history_store(bm, (BMElem *)efa);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -354,14 +354,14 @@ void uvedit_face_select_enable(const Scene *scene,
|
|||
}
|
||||
|
||||
void uvedit_face_select_disable(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMFace *efa,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
BM_face_select_set(em->bm, efa, false);
|
||||
BM_face_select_set(bm, efa, false);
|
||||
}
|
||||
else {
|
||||
BMLoop *l;
|
||||
|
@ -411,7 +411,7 @@ void uvedit_edge_select_set_with_sticky(const Scene *scene,
|
|||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
uvedit_edge_select_set(scene, em, l, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_edge_select_set(scene, em->bm, l, select, do_history, cd_loop_uv_offset);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -419,7 +419,7 @@ void uvedit_edge_select_set_with_sticky(const Scene *scene,
|
|||
switch (sticky) {
|
||||
case SI_STICKY_DISABLE: {
|
||||
if (uvedit_face_visible_test(scene, l->f)) {
|
||||
uvedit_edge_select_set(scene, em, l, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_edge_select_set(scene, em->bm, l, select, do_history, cd_loop_uv_offset);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -501,44 +501,41 @@ void uvedit_edge_select_set_noflush(const Scene *scene,
|
|||
}
|
||||
|
||||
void uvedit_edge_select_set(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMLoop *l,
|
||||
const bool select,
|
||||
const bool do_history,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
|
||||
{
|
||||
if (select) {
|
||||
uvedit_edge_select_enable(scene, em, l, do_history, cd_loop_uv_offset);
|
||||
uvedit_edge_select_enable(scene, bm, l, do_history, cd_loop_uv_offset);
|
||||
}
|
||||
else {
|
||||
uvedit_edge_select_disable(scene, em, l, cd_loop_uv_offset);
|
||||
uvedit_edge_select_disable(scene, bm, l, 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_enable(
|
||||
const Scene *scene, BMesh *bm, BMLoop *l, const bool do_history, const uint cd_loop_uv_offset)
|
||||
|
||||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
if (ts->selectmode & SCE_SELECT_FACE) {
|
||||
BM_face_select_set(em->bm, l->f, true);
|
||||
BM_face_select_set(bm, l->f, true);
|
||||
}
|
||||
else if (ts->selectmode & SCE_SELECT_EDGE) {
|
||||
BM_edge_select_set(em->bm, l->e, true);
|
||||
BM_edge_select_set(bm, l->e, true);
|
||||
}
|
||||
else {
|
||||
BM_vert_select_set(em->bm, l->e->v1, true);
|
||||
BM_vert_select_set(em->bm, l->e->v2, true);
|
||||
BM_vert_select_set(bm, l->e->v1, true);
|
||||
BM_vert_select_set(bm, l->e->v2, true);
|
||||
}
|
||||
|
||||
if (do_history) {
|
||||
BM_select_history_store(em->bm, (BMElem *)l->e);
|
||||
BM_select_history_store(bm, (BMElem *)l->e);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -552,23 +549,23 @@ void uvedit_edge_select_enable(const Scene *scene,
|
|||
}
|
||||
|
||||
void uvedit_edge_select_disable(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMLoop *l,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
|
||||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
if (ts->selectmode & SCE_SELECT_FACE) {
|
||||
BM_face_select_set(em->bm, l->f, false);
|
||||
BM_face_select_set(bm, l->f, false);
|
||||
}
|
||||
else if (ts->selectmode & SCE_SELECT_EDGE) {
|
||||
BM_edge_select_set(em->bm, l->e, false);
|
||||
BM_edge_select_set(bm, l->e, false);
|
||||
}
|
||||
else {
|
||||
BM_vert_select_set(em->bm, l->e->v1, false);
|
||||
BM_vert_select_set(em->bm, l->e->v2, false);
|
||||
BM_vert_select_set(bm, l->e->v1, false);
|
||||
BM_vert_select_set(bm, l->e->v2, false);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -633,7 +630,7 @@ void uvedit_uv_select_set_with_sticky(const Scene *scene,
|
|||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
uvedit_uv_select_set(scene, em, l, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, do_history, cd_loop_uv_offset);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -641,7 +638,7 @@ void uvedit_uv_select_set_with_sticky(const Scene *scene,
|
|||
switch (sticky) {
|
||||
case SI_STICKY_DISABLE: {
|
||||
if (uvedit_face_visible_test(scene, l->f)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, do_history, cd_loop_uv_offset);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -695,7 +692,8 @@ void uvedit_uv_select_shared_vert(const Scene *scene,
|
|||
}
|
||||
|
||||
if (do_select) {
|
||||
uvedit_uv_select_set(scene, em, l_radial_iter, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(
|
||||
scene, em->bm, l_radial_iter, select, do_history, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -704,25 +702,22 @@ void uvedit_uv_select_shared_vert(const Scene *scene,
|
|||
}
|
||||
|
||||
void uvedit_uv_select_set(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMLoop *l,
|
||||
const bool select,
|
||||
const bool do_history,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
{
|
||||
if (select) {
|
||||
uvedit_uv_select_enable(scene, em, l, do_history, cd_loop_uv_offset);
|
||||
uvedit_uv_select_enable(scene, bm, l, do_history, cd_loop_uv_offset);
|
||||
}
|
||||
else {
|
||||
uvedit_uv_select_disable(scene, em, l, cd_loop_uv_offset);
|
||||
uvedit_uv_select_disable(scene, bm, l, 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_enable(
|
||||
const Scene *scene, BMesh *bm, BMLoop *l, const bool do_history, const uint cd_loop_uv_offset)
|
||||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
|
||||
|
@ -732,14 +727,14 @@ void uvedit_uv_select_enable(const Scene *scene,
|
|||
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
if (ts->selectmode & SCE_SELECT_FACE) {
|
||||
BM_face_select_set(em->bm, l->f, true);
|
||||
BM_face_select_set(bm, l->f, true);
|
||||
}
|
||||
else {
|
||||
BM_vert_select_set(em->bm, l->v, true);
|
||||
BM_vert_select_set(bm, l->v, true);
|
||||
}
|
||||
|
||||
if (do_history) {
|
||||
BM_select_history_store(em->bm, (BMElem *)l->v);
|
||||
BM_select_history_store(bm, (BMElem *)l->v);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -749,18 +744,18 @@ void uvedit_uv_select_enable(const Scene *scene,
|
|||
}
|
||||
|
||||
void uvedit_uv_select_disable(const Scene *scene,
|
||||
BMEditMesh *em,
|
||||
BMesh *bm,
|
||||
BMLoop *l,
|
||||
const int cd_loop_uv_offset)
|
||||
const uint cd_loop_uv_offset)
|
||||
{
|
||||
const ToolSettings *ts = scene->toolsettings;
|
||||
|
||||
if (ts->uv_flag & UV_SYNC_SELECTION) {
|
||||
if (ts->selectmode & SCE_SELECT_FACE) {
|
||||
BM_face_select_set(em->bm, l->f, false);
|
||||
BM_face_select_set(bm, l->f, false);
|
||||
}
|
||||
else {
|
||||
BM_vert_select_set(em->bm, l->v, false);
|
||||
BM_vert_select_set(bm, l->v, false);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1975,7 +1970,7 @@ static void uv_select_linked_multi(Scene *scene,
|
|||
BM_face_select_set(em->bm, efa, value); \
|
||||
} \
|
||||
else { \
|
||||
uvedit_face_select_set(scene, em, efa, value, false, cd_loop_uv_offset); \
|
||||
uvedit_face_select_set(scene, em->bm, efa, value, false, cd_loop_uv_offset); \
|
||||
} \
|
||||
(void)0
|
||||
|
||||
|
@ -3247,7 +3242,7 @@ static void uv_select_flush_from_tag_sticky_loc_internal(const Scene *scene,
|
|||
UvMapVert *start_vlist = NULL, *vlist_iter;
|
||||
BMFace *efa_vlist;
|
||||
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
|
||||
vlist_iter = BM_uv_vert_map_at_index(vmap, BM_elem_index_get(l->v));
|
||||
|
||||
|
@ -3265,7 +3260,6 @@ static void uv_select_flush_from_tag_sticky_loc_internal(const Scene *scene,
|
|||
|
||||
vlist_iter = start_vlist;
|
||||
while (vlist_iter) {
|
||||
|
||||
if (vlist_iter != start_vlist && vlist_iter->separate) {
|
||||
break;
|
||||
}
|
||||
|
@ -3278,7 +3272,7 @@ static void uv_select_flush_from_tag_sticky_loc_internal(const Scene *scene,
|
|||
l_other = BM_iter_at_index(
|
||||
em->bm, BM_LOOPS_OF_FACE, efa_vlist, vlist_iter->loop_of_poly_index);
|
||||
|
||||
uvedit_uv_select_set(scene, em, l_other, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l_other, select, false, cd_loop_uv_offset);
|
||||
}
|
||||
vlist_iter = vlist_iter->next;
|
||||
}
|
||||
|
@ -3345,7 +3339,7 @@ static void uv_select_flush_from_tag_face(const Scene *scene, Object *obedit, co
|
|||
else { /* SI_STICKY_DISABLE or ts->uv_flag & UV_SYNC_SELECTION */
|
||||
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
|
||||
if (BM_elem_flag_test(efa, BM_ELEM_TAG)) {
|
||||
uvedit_face_select_set(scene, em, efa, select, false, cd_loop_uv_offset);
|
||||
uvedit_face_select_set(scene, em->bm, efa, select, false, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3394,7 +3388,7 @@ static void uv_select_flush_from_tag_loop(const Scene *scene, Object *obedit, co
|
|||
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
|
||||
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
|
||||
if (BM_elem_flag_test(l->v, BM_ELEM_TAG)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3423,7 +3417,7 @@ static void uv_select_flush_from_tag_loop(const Scene *scene, Object *obedit, co
|
|||
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
|
||||
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
|
||||
if (BM_elem_flag_test(l, BM_ELEM_TAG)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3644,14 +3638,14 @@ static int uv_box_select_exec(bContext *C, wmOperator *op)
|
|||
if (!pinned || (ts->uv_flag & UV_SYNC_SELECTION)) {
|
||||
/* UV_SYNC_SELECTION - can't do pinned selection */
|
||||
if (BLI_rctf_isect_pt_v(&rectf, luv->uv)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
BM_elem_flag_enable(l->v, BM_ELEM_TAG);
|
||||
has_selected = true;
|
||||
}
|
||||
}
|
||||
else if (pinned) {
|
||||
if ((luv->flag & MLOOPUV_PINNED) && BLI_rctf_isect_pt_v(&rectf, luv->uv)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
BM_elem_flag_enable(l->v, BM_ELEM_TAG);
|
||||
}
|
||||
}
|
||||
|
@ -3864,7 +3858,7 @@ static int uv_circle_select_exec(bContext *C, wmOperator *op)
|
|||
luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
|
||||
if (uv_circle_select_is_point_inside(luv->uv, offset, ellipse)) {
|
||||
changed = true;
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
BM_elem_flag_enable(l->v, BM_ELEM_TAG);
|
||||
has_selected = true;
|
||||
}
|
||||
|
@ -4094,7 +4088,7 @@ static bool do_lasso_select_mesh_uv(bContext *C,
|
|||
MLoopUV *luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
|
||||
if (do_lasso_select_mesh_uv_is_point_inside(
|
||||
region, &rect, mcoords, mcoords_len, luv->uv)) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
BM_elem_flag_enable(l->v, BM_ELEM_TAG);
|
||||
has_selected = true;
|
||||
|
@ -4214,7 +4208,7 @@ static int uv_select_pinned_exec(bContext *C, wmOperator *op)
|
|||
luv = BM_ELEM_CD_GET_VOID_P(l, cd_loop_uv_offset);
|
||||
|
||||
if (luv->flag & MLOOPUV_PINNED) {
|
||||
uvedit_uv_select_enable(scene, em, l, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_enable(scene, em->bm, l, false, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
@ -4467,8 +4461,8 @@ static int uv_select_overlap(bContext *C, const bool extend)
|
|||
/* Main tri-tri overlap test. */
|
||||
const float endpoint_bias = -1e-4f;
|
||||
if (overlap_tri_tri_uv_test(o_a->tri, o_b->tri, endpoint_bias)) {
|
||||
uvedit_face_select_enable(scene, em_a, face_a, false, cd_loop_uv_offset_a);
|
||||
uvedit_face_select_enable(scene, em_b, face_b, false, cd_loop_uv_offset_b);
|
||||
uvedit_face_select_enable(scene, em_a->bm, face_a, false, cd_loop_uv_offset_a);
|
||||
uvedit_face_select_enable(scene, em_b->bm, face_b, false, cd_loop_uv_offset_b);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4764,7 +4758,7 @@ static int uv_select_similar_vert_exec(bContext *C, wmOperator *op)
|
|||
const float needle = get_uv_vert_needle(type, l->v, ob_m3, luv, cd_loop_uv_offset);
|
||||
bool select = ED_select_similar_compare_float_tree(tree_1d, needle, threshold, compare);
|
||||
if (select) {
|
||||
uvedit_uv_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
@ -4883,7 +4877,7 @@ static int uv_select_similar_edge_exec(bContext *C, wmOperator *op)
|
|||
float needle = get_uv_edge_needle(type, l->e, ob_m3, luv_a, luv_b, cd_loop_uv_offset);
|
||||
bool select = ED_select_similar_compare_float_tree(tree_1d, needle, threshold, compare);
|
||||
if (select) {
|
||||
uvedit_edge_select_set(scene, em, l, select, false, cd_loop_uv_offset);
|
||||
uvedit_edge_select_set(scene, em->bm, l, select, false, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
@ -4983,7 +4977,7 @@ static int uv_select_similar_face_exec(bContext *C, wmOperator *op)
|
|||
|
||||
bool select = ED_select_similar_compare_float_tree(tree_1d, needle, threshold, compare);
|
||||
if (select) {
|
||||
uvedit_face_select_set(scene, em, face, select, do_history, cd_loop_uv_offset);
|
||||
uvedit_face_select_set(scene, em->bm, face, select, do_history, cd_loop_uv_offset);
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
|
@ -5103,7 +5097,7 @@ static int uv_select_similar_island_exec(bContext *C, wmOperator *op)
|
|||
bool do_history = false;
|
||||
for (int j = 0; j < island->faces_len; j++) {
|
||||
uvedit_face_select_set(
|
||||
scene, em, island->faces[j], select, do_history, island->cd_loop_uv_offset);
|
||||
scene, em->bm, island->faces[j], select, do_history, island->cd_loop_uv_offset);
|
||||
}
|
||||
changed = true;
|
||||
}
|
||||
|
@ -5487,7 +5481,7 @@ void ED_uvedit_selectmode_clean(const Scene *scene, Object *obedit)
|
|||
if (uvedit_face_select_test(scene, efa, cd_loop_uv_offset)) {
|
||||
BM_elem_flag_enable(efa, BM_ELEM_TAG);
|
||||
}
|
||||
uvedit_face_select_set(scene, em, efa, false, false, cd_loop_uv_offset);
|
||||
uvedit_face_select_set(scene, em->bm, efa, false, false, cd_loop_uv_offset);
|
||||
}
|
||||
}
|
||||
uv_select_flush_from_tag_face(scene, obedit, true);
|
||||
|
|
|
@ -916,7 +916,7 @@ static void stitch_propagate_uv_final_position(Scene *scene,
|
|||
if (final) {
|
||||
copy_v2_v2(luv->uv, final_position[index].uv);
|
||||
|
||||
uvedit_uv_select_enable(scene, state->em, l, false, cd_loop_uv_offset);
|
||||
uvedit_uv_select_enable(scene, state->em->bm, l, false, cd_loop_uv_offset);
|
||||
}
|
||||
else {
|
||||
int face_preview_pos =
|
||||
|
|
Loading…
Reference in New Issue