31 const float coords_floor[2] = {
floorf(coords[0]),
floorf(coords[1])};
34 if (coords[0] < udim_grid[0] && coords[0] > 0 && coords[1] < udim_grid[1] && coords[1] > 0) {
43 if (coords_floor[0] == target_x && coords_floor[1] == target_y) {
49 else if (image && !is_tiled_image) {
73 if (
data->use_seams) {
94 const bool only_selected_faces,
95 const bool only_selected_uvs)
100 if (only_selected_faces) {
101 if (only_selected_uvs) {
112 const bool only_selected_faces,
113 const bool only_selected_uvs,
114 const bool use_seams,
115 const float aspect_y,
119 int island_added = 0;
124 int (*group_index)[2];
131 scene,
bm, f, only_selected_faces, only_selected_uvs);
136 user_data.
offsets = uv_offsets;
148 for (
int i = 0;
i < group_len;
i++) {
149 const int faces_start = group_index[
i][0];
150 const int faces_len = group_index[
i][1];
153 for (
int j = 0; j < faces_len; j++) {
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE bool is_zero_v2(const float v[2]) ATTR_WARN_UNUSED_RESULT
bool uvedit_face_select_test(const Scene *scene, const BMesh *bm, const BMFace *efa)
#define BM_elem_flag_set(ele, hflag, val)
#define BM_elem_flag_test(ele, hflag)
#define BM_ITER_MESH(ele, iter, bm, itype)
BMesh const char void * data
void BM_mesh_elem_table_ensure(BMesh *bm, const char htype)
BLI_INLINE BMFace * BM_face_at_index(BMesh *bm, const int index)
int BM_mesh_calc_face_groups(BMesh *bm, int *r_groups_array, int(**r_group_index)[2], BMLoopFilterFunc filter_fn, BMLoopPairFilterFunc filter_pair_fn, void *user_data, const char hflag_test, const char htype_step)
ATTR_WARN_UNUSED_RESULT const BMLoop * l_b
bool BM_loop_uv_share_edge_check(const BMLoop *l_a, const BMLoop *l_b, const int cd_loop_uv_offset)
const ccl_global KernelWorkTile * tile
void * MEM_callocN(size_t len, const char *str)
void * MEM_malloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
int bm_mesh_calc_uv_islands(const Scene *scene, BMesh *bm, ListBase *island_list, const bool only_selected_faces, const bool only_selected_uvs, const bool use_seams, const float aspect_y, const BMUVOffsets &uv_offsets)
bool uv_coords_isect_udim(const Image *image, const int udim_grid[2], const float coords[2])
static bool bm_loop_uv_shared_edge_check(const BMLoop *l_a, const BMLoop *l_b, void *user_data)
static bool uvedit_is_face_affected_for_calc_uv_islands(const Scene *scene, const BMesh *bm, BMFace *efa, const bool only_selected_faces, const bool only_selected_uvs)