Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-07-09 06:33:15 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-07-09 06:33:15 +0300
commit0b3bf69d3cf578dc84f1bbce15142137bdaac0b4 (patch)
tree19691fef4987570aac20b8f7910230cb2d7e4ede /source/blender/editors/uvedit
parent754c5d6a14d411773fb253dc5b289985a8669eb6 (diff)
Cleanup: move BMesh UV queries into their own file
Diffstat (limited to 'source/blender/editors/uvedit')
-rw-r--r--source/blender/editors/uvedit/CMakeLists.txt1
-rw-r--r--source/blender/editors/uvedit/uvedit_rip.c54
2 files changed, 6 insertions, 49 deletions
diff --git a/source/blender/editors/uvedit/CMakeLists.txt b/source/blender/editors/uvedit/CMakeLists.txt
index 72a262b8983..3bd6b8732f4 100644
--- a/source/blender/editors/uvedit/CMakeLists.txt
+++ b/source/blender/editors/uvedit/CMakeLists.txt
@@ -50,6 +50,7 @@ set(SRC
)
set(LIB
+ bf_bmesh
)
if(WITH_INTERNATIONAL)
diff --git a/source/blender/editors/uvedit/uvedit_rip.c b/source/blender/editors/uvedit/uvedit_rip.c
index b01e2c42e9e..14f5ad3ab80 100644
--- a/source/blender/editors/uvedit/uvedit_rip.c
+++ b/source/blender/editors/uvedit/uvedit_rip.c
@@ -111,50 +111,6 @@ BLI_INLINE ULData *UL(BMLoop *l)
/** \name UV Utilities
* \{ */
-static bool bm_loop_share_uv_by_edge_check(BMLoop *l_a, BMLoop *l_b, const int cd_loop_uv_offset)
-{
- BLI_assert(l_a->e == l_b->e);
- MLoopUV *luv_a_curr = BM_ELEM_CD_GET_VOID_P(l_a, cd_loop_uv_offset);
- MLoopUV *luv_a_next = BM_ELEM_CD_GET_VOID_P(l_a->next, cd_loop_uv_offset);
- MLoopUV *luv_b_curr = BM_ELEM_CD_GET_VOID_P(l_b, cd_loop_uv_offset);
- MLoopUV *luv_b_next = BM_ELEM_CD_GET_VOID_P(l_b->next, cd_loop_uv_offset);
- if (l_a->v != l_b->v) {
- SWAP(MLoopUV *, luv_b_curr, luv_b_next);
- }
- return (equals_v2v2(luv_a_curr->uv, luv_b_curr->uv) &&
- equals_v2v2(luv_a_next->uv, luv_b_next->uv));
-}
-
-static bool bm_loop_share_uv_by_vert_check(BMEdge *e,
- BMLoop *l_a,
- BMLoop *l_b,
- const int cd_loop_uv_offset)
-{
- BLI_assert(l_a->v == l_b->v);
-
- {
- const MLoopUV *luv_a = BM_ELEM_CD_GET_VOID_P(l_a, cd_loop_uv_offset);
- const MLoopUV *luv_b = BM_ELEM_CD_GET_VOID_P(l_b, cd_loop_uv_offset);
- if (!equals_v2v2(luv_a->uv, luv_b->uv)) {
- return false;
- }
- }
-
- /* No need for NULL checks, these will always succeed. */
- const BMLoop *l_other_a = BM_loop_other_vert_loop_by_edge(l_a, e);
- const BMLoop *l_other_b = BM_loop_other_vert_loop_by_edge(l_b, e);
-
- {
- const MLoopUV *luv_other_a = BM_ELEM_CD_GET_VOID_P(l_other_a, cd_loop_uv_offset);
- const MLoopUV *luv_other_b = BM_ELEM_CD_GET_VOID_P(l_other_b, cd_loop_uv_offset);
- if (!equals_v2v2(luv_other_a->uv, luv_other_b->uv)) {
- return false;
- }
- }
-
- return true;
-}
-
static BMLoop *bm_loop_find_other_radial_loop_with_visible_face(BMLoop *l_src,
const int cd_loop_uv_offset)
{
@@ -163,7 +119,7 @@ static BMLoop *bm_loop_find_other_radial_loop_with_visible_face(BMLoop *l_src,
if (l_iter != l_src) {
do {
if (BM_elem_flag_test(l_iter->f, BM_ELEM_TAG) && UL(l_iter)->is_select_edge &&
- bm_loop_share_uv_by_edge_check(l_src, l_iter, cd_loop_uv_offset)) {
+ BM_loop_uv_share_edge_check(l_src, l_iter, cd_loop_uv_offset)) {
/* Check UV's are contiguous. */
if (l_other == NULL) {
l_other = l_iter;
@@ -189,7 +145,7 @@ static BMLoop *bm_loop_find_other_fan_loop_with_visible_face(BMLoop *l_src,
if (l_iter != l_src) {
do {
if (BM_elem_flag_test(l_iter->f, BM_ELEM_TAG) &&
- bm_loop_share_uv_by_edge_check(l_src, l_iter, cd_loop_uv_offset)) {
+ BM_loop_uv_share_edge_check(l_src, l_iter, cd_loop_uv_offset)) {
/* Check UV's are contiguous. */
if (l_other == NULL) {
l_other = l_iter;
@@ -305,7 +261,7 @@ static void bm_loop_calc_uv_angle_from_dir(BMLoop *l,
SWAP(float, dir_test[1][0], dir_test[1][1]);
dir_test[1][1] *= -1.0f;
- if (BM_face_calc_uv_cross(l->f, cd_loop_uv_offset) > 0.0f) {
+ if (BM_face_uv_calc_cross(l->f, cd_loop_uv_offset) > 0.0f) {
negate_v2(dir_test[1]);
}
@@ -462,7 +418,7 @@ static UVRipSingle *uv_rip_single_from_loop(BMLoop *l_init_orig,
BMLoop *l_radial_init = (edge_index_best == -1) ? l_init_edge->prev : l_init_edge;
BMLoop *l_radial_iter = l_radial_init;
do {
- if (bm_loop_share_uv_by_edge_check(l_radial_init, l_radial_iter, cd_loop_uv_offset)) {
+ if (BM_loop_uv_share_edge_check(l_radial_init, l_radial_iter, cd_loop_uv_offset)) {
BMLoop *l = (l_radial_iter->v == l_init->v) ? l_radial_iter : l_radial_iter->next;
BLI_assert(l->v == l_init->v);
/* Keep. */
@@ -701,7 +657,7 @@ static UVRipPairs *uv_rip_pairs_from_loop(BMLoop *l_init,
BMLoop *l_other = (l_radial_iter->v == l_step->v) ? l_radial_iter :
l_radial_iter->next;
BLI_assert(l_other->v == l_step->v);
- if (bm_loop_share_uv_by_vert_check(e_radial, l_other, l_step, cd_loop_uv_offset)) {
+ if (BM_loop_uv_share_vert_check(e_radial, l_other, l_step, cd_loop_uv_offset)) {
if (!UL(l_other)->in_rip_pairs && !UL(l_other)->in_stack) {
BLI_SMALLSTACK_PUSH(stack, l_other);
UL(l_other)->in_stack = true;