Codestyle cleanup: uvedit_smart_stitch.c

This commit is contained in:
Dalai Felinto
2018-09-07 07:18:29 -03:00
parent 601fd9683c
commit d85ff86f7e

View File

@@ -927,8 +927,16 @@ static void stitch_validate_edge_stitchability(
if ((edge_iter->element->island == ssc->static_island) || (edge->element->island == ssc->static_island)) {
edge->flag |= STITCH_STITCHABLE;
preview->num_stitchable++;
stitch_setup_face_preview_for_uv_group(state->uvs[edge->uv1], ssc, state, island_stitch_data, preview_position);
stitch_setup_face_preview_for_uv_group(state->uvs[edge->uv2], ssc, state, island_stitch_data, preview_position);
stitch_setup_face_preview_for_uv_group(state->uvs[edge->uv1],
ssc,
state,
island_stitch_data,
preview_position);
stitch_setup_face_preview_for_uv_group(state->uvs[edge->uv2],
ssc,
state,
island_stitch_data,
preview_position);
return;
}
}
@@ -1019,7 +1027,8 @@ static int stitch_process_data(
preview_position[i].data_position = STITCH_NO_PREVIEW;
}
island_stitch_data = MEM_callocN(sizeof(*island_stitch_data) * state->element_map->totalIslands, "stitch_island_data");
island_stitch_data = MEM_callocN(sizeof(*island_stitch_data) * state->element_map->totalIslands,
"stitch_island_data");
if (!island_stitch_data) {
return 0;
}
@@ -1086,8 +1095,8 @@ static int stitch_process_data(
}
/*********************************************************************
* Setup the stitchable & unstitchable preview buffers and fill *
* them with the appropriate data *
* Setup the stitchable & unstitchable preview buffers and fill *
* them with the appropriate data *
*********************************************************************/
if (!final) {
BMLoop *l;
@@ -1095,8 +1104,10 @@ static int stitch_process_data(
int stitchBufferIndex = 0, unstitchBufferIndex = 0;
int preview_size = (ssc->mode == STITCH_VERT) ? 2 : 4;
/* initialize the preview buffers */
preview->preview_stitchable = (float *)MEM_mallocN(preview->num_stitchable * sizeof(float) * preview_size, "stitch_preview_stitchable_data");
preview->preview_unstitchable = (float *)MEM_mallocN(preview->num_unstitchable * sizeof(float) * preview_size, "stitch_preview_unstitchable_data");
preview->preview_stitchable = (float *)MEM_mallocN(preview->num_stitchable * sizeof(float) * preview_size,
"stitch_preview_stitchable_data");
preview->preview_unstitchable = (float *)MEM_mallocN(preview->num_unstitchable * sizeof(float) * preview_size,
"stitch_preview_unstitchable_data");
/* will cause cancel and freeing of all data structures so OK */
if (!preview->preview_stitchable || !preview->preview_unstitchable) {
@@ -1193,10 +1204,12 @@ static int stitch_process_data(
unsigned int buffer_index = 0;
/* initialize the preview buffers */
preview->preview_polys = (float *)MEM_mallocN(preview->preview_uvs * sizeof(float) * 2, "tri_uv_stitch_prev");
preview->uvs_per_polygon = MEM_mallocN(preview->num_polys * sizeof(*preview->uvs_per_polygon), "tri_uv_stitch_prev");
preview->preview_polys = MEM_mallocN(preview->preview_uvs * sizeof(float) * 2, "tri_uv_stitch_prev");
preview->uvs_per_polygon = MEM_mallocN(preview->num_polys * sizeof(*preview->uvs_per_polygon),
"tri_uv_stitch_prev");
preview->static_tris = (float *)MEM_mallocN(state->tris_per_island[ssc->static_island] * sizeof(float) * 6, "static_island_preview_tris");
preview->static_tris = MEM_mallocN(state->tris_per_island[ssc->static_island] * sizeof(float) * 6,
"static_island_preview_tris");
preview->num_static_tris = state->tris_per_island[ssc->static_island];
/* will cause cancel and freeing of all data structures so OK */
@@ -1391,7 +1404,12 @@ static int stitch_process_data(
(state->uvs[edge->uv1]->flag & STITCH_STITCHABLE) &&
(state->uvs[edge->uv2]->flag & STITCH_STITCHABLE))
{
stitch_island_calculate_edge_rotation(edge, ssc, state, final_position, uvfinal_map, island_stitch_data);
stitch_island_calculate_edge_rotation(edge,
ssc,
state,
final_position,
uvfinal_map,
island_stitch_data);
island_stitch_data[state->uvs[edge->uv1]->island].use_edge_rotation = true;
}
}
@@ -1740,8 +1758,14 @@ static void stitch_draw(const bContext *UNUSED(C), ARegion *UNUSED(ar), void *ar
GPU_vertbuf_attr_set(vbo, pos_id, tri_idx++, &stitch_preview->preview_polys[index + (j + 0) * 2]);
GPU_vertbuf_attr_set(vbo, pos_id, tri_idx++, &stitch_preview->preview_polys[index + (j + 1) * 2]);
GPU_vertbuf_attr_set(vbo_line, pos_id, line_idx++, &stitch_preview->preview_polys[index + (j + 0) * 2]);
GPU_vertbuf_attr_set(vbo_line, pos_id, line_idx++, &stitch_preview->preview_polys[index + (j + 1) * 2]);
GPU_vertbuf_attr_set(vbo_line,
pos_id,
line_idx++,
&stitch_preview->preview_polys[index + (j + 0) * 2]);
GPU_vertbuf_attr_set(vbo_line,
pos_id,
line_idx++,
&stitch_preview->preview_polys[index + (j + 1) * 2]);
}
/* Closing line */
@@ -2019,18 +2043,22 @@ static StitchState *stitch_init(
int selected_count = state_init->uv_selected_count;
if (stored_mode == STITCH_VERT) {
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_uvs, "uv_stitch_selection_stack");
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_uvs,
"uv_stitch_selection_stack");
while (selected_count--) {
faceIndex = state_init->to_select[selected_count].faceIndex;
elementIndex = state_init->to_select[selected_count].elementIndex;
efa = BM_face_at_index(em->bm, faceIndex);
element = BM_uv_element_get(state->element_map, efa, BM_iter_at_index(NULL, BM_LOOPS_OF_FACE, efa, elementIndex));
element = BM_uv_element_get(state->element_map,
efa,
BM_iter_at_index(NULL, BM_LOOPS_OF_FACE, efa, elementIndex));
stitch_select_uv(element, state, 1);
}
}
else {
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_edges, "uv_stitch_selection_stack");
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_edges,
"uv_stitch_selection_stack");
while (selected_count--) {
UvEdge tmp_edge, *edge;
@@ -2038,10 +2066,17 @@ static StitchState *stitch_init(
faceIndex = state_init->to_select[selected_count].faceIndex;
elementIndex = state_init->to_select[selected_count].elementIndex;
efa = BM_face_at_index(em->bm, faceIndex);
element = BM_uv_element_get(state->element_map, efa, BM_iter_at_index(NULL, BM_LOOPS_OF_FACE, efa, elementIndex));
element = BM_uv_element_get(state->element_map,
efa,
BM_iter_at_index(NULL, BM_LOOPS_OF_FACE, efa, elementIndex));
uv1 = map[element - state->element_map->buf];
element = BM_uv_element_get(state->element_map, efa, BM_iter_at_index(NULL, BM_LOOPS_OF_FACE, efa, (elementIndex + 1) % efa->len));
element = BM_uv_element_get(state->element_map,
efa,
BM_iter_at_index(NULL,
BM_LOOPS_OF_FACE,
efa,
(elementIndex + 1) % efa->len));
uv2 = map[element - state->element_map->buf];
if (uv1 < uv2) {
@@ -2066,7 +2101,8 @@ static StitchState *stitch_init(
}
else {
if (ssc->mode == STITCH_VERT) {
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_uvs, "uv_stitch_selection_stack");
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_uvs,
"uv_stitch_selection_stack");
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, i) {
@@ -2080,7 +2116,8 @@ static StitchState *stitch_init(
}
}
else {
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_edges, "uv_stitch_selection_stack");
state->selection_stack = MEM_mallocN(sizeof(*state->selection_stack) * state->total_separate_edges,
"uv_stitch_selection_stack");
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
if (!(ts->uv_flag & UV_SYNC_SELECTION) &&
@@ -2454,9 +2491,7 @@ static StitchState *stitch_select(
UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &co[0], &co[1]);
if (ssc->mode == STITCH_VERT) {
if (uv_find_nearest_vert_multi(
scene, ima, ssc->objects, ssc->objects_len, co, 0.0f, &hit))
{
if (uv_find_nearest_vert_multi(scene, ima, ssc->objects, ssc->objects_len, co, 0.0f, &hit)) {
/* Add vertex to selection, deselect all common uv's of vert other
* than selected and update the preview. This behavior was decided so that
* you can do stuff like deselect the opposite stitchable vertex and the initial still gets deselected */
@@ -2477,24 +2512,20 @@ static StitchState *stitch_select(
return state;
}
}
else {
if (uv_find_nearest_edge_multi(
scene, ima, ssc->objects, ssc->objects_len, co, &hit))
{
/* find StitchState from hit->ob */
StitchState *state = NULL;
for (uint ob_index = 0; ob_index < ssc->objects_len; ob_index++) {
if (hit.ob == ssc->objects[ob_index]) {
state = ssc->states[ob_index];
break;
}
else if (uv_find_nearest_edge_multi(scene, ima, ssc->objects, ssc->objects_len, co, &hit)) {
/* find StitchState from hit->ob */
StitchState *state = NULL;
for (uint ob_index = 0; ob_index < ssc->objects_len; ob_index++) {
if (hit.ob == ssc->objects[ob_index]) {
state = ssc->states[ob_index];
break;
}
UvEdge *edge = uv_edge_get(hit.l, state);
stitch_select_edge(edge, state, false);
return state;
}
UvEdge *edge = uv_edge_get(hit.l, state);
stitch_select_edge(edge, state, false);
return state;
}
return NULL;
@@ -2723,7 +2754,8 @@ void UV_OT_stitch(wmOperatorType *ot)
RNA_def_property_flag(prop, PROP_HIDDEN);
/* test should not be editable or viewed in toolbar */
prop = RNA_def_int_array(ot->srna, "objects_selection_count", 1, NULL, 0, INT_MAX, "objects_selection_count", "objects_selection_count", 0, INT_MAX);
prop = RNA_def_int_array(ot->srna, "objects_selection_count", 1, NULL, 0, INT_MAX, "objects_selection_count",
"objects_selection_count", 0, INT_MAX);
RNA_def_property_array(prop, 6);
RNA_def_property_flag(prop, PROP_HIDDEN);
}