31 const float coords_floor[2] = {
floorf(coords[0]),
floorf(coords[1])};
32 const bool is_tiled_image = image && (image->source ==
IMA_SRC_TILED);
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) {
93 const bool only_selected_faces,
94 const bool only_selected_uvs,
100 if (only_selected_faces) {
101 if (only_selected_uvs) {
113 const bool only_selected_faces,
114 const bool only_selected_uvs,
115 const bool use_seams,
116 const float aspect_y,
120 int island_added = 0;
123 int *groups_array =
static_cast<int *
>(
126 int(*group_index)[2];
133 scene, f, only_selected_faces, only_selected_uvs, uv_offsets);
138 user_data.
offsets = uv_offsets;
150 for (
int i = 0; i < group_len; i++) {
151 const int faces_start = group_index[i][0];
152 const int faces_len = group_index[i][1];
155 for (
int j = 0; j < faces_len; j++) {
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(struct 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, BMFace *efa, BMUVOffsets offsets)
#define BM_elem_flag_set(ele, hflag, val)
#define BM_elem_flag_test(ele, hflag)
#define BM_ITER_MESH(ele, iter, bm, itype)
ATTR_WARN_UNUSED_RESULT BMesh * bm
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(BMLoop *l_a, BMLoop *l_b, const int cd_loop_uv_offset)
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
ccl_global const KernelWorkTile * tile
void *(* MEM_mallocN)(size_t len, const char *str)
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static bool uvedit_is_face_affected_for_calc_uv_islands(const Scene *scene, BMFace *efa, const bool only_selected_faces, const bool only_selected_uvs, const BMUVOffsets &uv_offsets)
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)