main sync #3

Merged
Patrick Busch merged 318 commits from blender/blender:main into main 2023-03-17 15:52:21 +01:00
2 changed files with 15 additions and 16 deletions
Showing only changes of commit d46a0f5a1a - Show all commits

View File

@ -49,9 +49,9 @@ void uv_parametrizer_face_add(ParamHandle *handle,
void uv_parametrizer_edge_set_seam(ParamHandle *handle, ParamKey *vkeys);
void uv_parametrizer_construct_end(ParamHandle *handle,
bool fill,
bool fill_holes,
bool topology_from_uvs,
int *count_fail);
int *r_count_failed = nullptr);
void uv_parametrizer_delete(ParamHandle *handle);
/** \} */

View File

@ -3957,49 +3957,48 @@ void uv_parametrizer_edge_set_seam(ParamHandle *phandle, ParamKey *vkeys)
}
void uv_parametrizer_construct_end(ParamHandle *phandle,
bool fill,
bool fill_holes,
bool topology_from_uvs,
int *count_fail)
int *r_count_failed)
{
PChart *chart = phandle->construction_chart;
int i, j;
PEdge *outer;
param_assert(phandle->state == PHANDLE_STATE_ALLOCATED);
phandle->ncharts = p_connect_pairs(phandle, topology_from_uvs);
phandle->charts = p_split_charts(phandle, chart, phandle->ncharts);
phandle->charts = p_split_charts(phandle, phandle->construction_chart, phandle->ncharts);
MEM_freeN(phandle->construction_chart);
phandle->construction_chart = nullptr;
phash_delete(phandle->hash_verts);
phandle->hash_verts = nullptr;
phash_delete(phandle->hash_edges);
phandle->hash_edges = nullptr;
phash_delete(phandle->hash_faces);
phandle->hash_verts = phandle->hash_edges = phandle->hash_faces = nullptr;
phandle->hash_faces = nullptr;
for (i = j = 0; i < phandle->ncharts; i++) {
PVert *v;
chart = phandle->charts[i];
PChart *chart = phandle->charts[i];
PEdge *outer;
p_chart_boundaries(chart, &outer);
if (!topology_from_uvs && chart->nboundaries == 0) {
MEM_freeN(chart);
if (count_fail != nullptr) {
*count_fail += 1;
if (r_count_failed) {
*r_count_failed += 1;
}
continue;
}
phandle->charts[j] = chart;
j++;
phandle->charts[j++] = chart;
if (fill && (chart->nboundaries > 1)) {
if (fill_holes && chart->nboundaries > 1) {
p_chart_fill_boundaries(phandle, chart, outer);
}
for (v = chart->verts; v; v = v->nextlink) {
for (PVert *v = chart->verts; v; v = v->nextlink) {
p_vert_load_pin_select_uvs(phandle, v);
}
}