[Bf-blender-cvs] [ae081b2de1d] master: Cleanup: reduce variable scope in uv parametrizer
Chris Blackbourn
noreply at git.blender.org
Wed Nov 30 00:04:14 CET 2022
Commit: ae081b2de1d44603fb5322dcacbfc6e6e0118b99
Author: Chris Blackbourn
Date: Wed Nov 30 12:01:40 2022 +1300
Branches: master
https://developer.blender.org/rBae081b2de1d44603fb5322dcacbfc6e6e0118b99
Cleanup: reduce variable scope in uv parametrizer
Also improve const correctness and update comments.
Simplify future fix for T78101
===================================================================
M source/blender/geometry/intern/uv_parametrizer.cc
===================================================================
diff --git a/source/blender/geometry/intern/uv_parametrizer.cc b/source/blender/geometry/intern/uv_parametrizer.cc
index e7217fc4106..15b0962d39e 100644
--- a/source/blender/geometry/intern/uv_parametrizer.cc
+++ b/source/blender/geometry/intern/uv_parametrizer.cc
@@ -3087,29 +3087,21 @@ static void p_chart_lscm_begin(PChart *chart, bool live, bool abf)
static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
{
LinearSolver *context = chart->u.lscm.context;
- PVert *v, *pin1 = chart->u.lscm.pin1, *pin2 = chart->u.lscm.pin2;
- PFace *f;
- const float *alpha = chart->u.lscm.abf_alpha;
- float area_pinned_up, area_pinned_down;
- bool flip_faces;
- int row;
-
-#if 0
- /* TODO: make loading pins work for simplify/complexify. */
-#endif
- for (v = chart->verts; v; v = v->nextlink) {
+ for (PVert *v = chart->verts; v; v = v->nextlink) {
if (v->flag & PVERT_PIN) {
- p_vert_load_pin_select_uvs(handle, v); /* reload for live */
+ p_vert_load_pin_select_uvs(handle, v); /* Reload for Live Unwrap. */
}
}
if (chart->u.lscm.single_pin) {
- /* If only one pin, save area and pin for transform later. */
+ /* If only one pin, save pin location for transform later. */
copy_v2_v2(chart->u.lscm.single_pin_uv, chart->u.lscm.single_pin->uv);
}
if (chart->u.lscm.pin1) {
+ PVert *pin1 = chart->u.lscm.pin1;
+ PVert *pin2 = chart->u.lscm.pin2;
EIG_linear_solver_variable_lock(context, 2 * pin1->u.id);
EIG_linear_solver_variable_lock(context, 2 * pin1->u.id + 1);
EIG_linear_solver_variable_lock(context, 2 * pin2->u.id);
@@ -3121,8 +3113,8 @@ static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
EIG_linear_solver_variable_set(context, 0, 2 * pin2->u.id + 1, pin2->uv[1]);
}
else {
- /* set and lock the pins */
- for (v = chart->verts; v; v = v->nextlink) {
+ /* Set and lock the pins. */
+ for (PVert *v = chart->verts; v; v = v->nextlink) {
if (v->flag & PVERT_PIN) {
EIG_linear_solver_variable_lock(context, 2 * v->u.id);
EIG_linear_solver_variable_lock(context, 2 * v->u.id + 1);
@@ -3133,16 +3125,16 @@ static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
}
}
- /* detect up direction based on pinned vertices */
- area_pinned_up = 0.0f;
- area_pinned_down = 0.0f;
+ /* Detect "up" direction based on pinned vertices. */
+ float area_pinned_up = 0.0f;
+ float area_pinned_down = 0.0f;
- for (f = chart->faces; f; f = f->nextlink) {
+ for (PFace *f = chart->faces; f; f = f->nextlink) {
PEdge *e1 = f->edge, *e2 = e1->next, *e3 = e2->next;
PVert *v1 = e1->vert, *v2 = e2->vert, *v3 = e3->vert;
if ((v1->flag & PVERT_PIN) && (v2->flag & PVERT_PIN) && (v3->flag & PVERT_PIN)) {
- float area = p_face_uv_area_signed(f);
+ const float area = p_face_uv_area_signed(f);
if (area > 0.0f) {
area_pinned_up += area;
@@ -3153,19 +3145,18 @@ static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
}
}
- flip_faces = (area_pinned_down > area_pinned_up);
-
- /* construct matrix */
+ const bool flip_faces = (area_pinned_down > area_pinned_up);
- row = 0;
- for (f = chart->faces; f; f = f->nextlink) {
+ /* Construct matrix. */
+ const float *alpha = chart->u.lscm.abf_alpha;
+ int row = 0;
+ for (PFace *f = chart->faces; f; f = f->nextlink) {
PEdge *e1 = f->edge, *e2 = e1->next, *e3 = e2->next;
PVert *v1 = e1->vert, *v2 = e2->vert, *v3 = e3->vert;
- float a1, a2, a3, ratio, cosine, sine;
- float sina1, sina2, sina3, sinmax;
+ float a1, a2, a3;
if (alpha) {
- /* use abf angles if passed on */
+ /* Use abf angles if present. */
a1 = *(alpha++);
a2 = *(alpha++);
a3 = *(alpha++);
@@ -3180,13 +3171,13 @@ static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
SWAP(PVert *, v2, v3);
}
- sina1 = sinf(a1);
- sina2 = sinf(a2);
- sina3 = sinf(a3);
+ float sina1 = sinf(a1);
+ float sina2 = sinf(a2);
+ float sina3 = sinf(a3);
- sinmax = max_fff(sina1, sina2, sina3);
+ const float sinmax = max_fff(sina1, sina2, sina3);
- /* shift vertices to find most stable order */
+ /* Shift vertices to find most stable order. */
if (sina3 != sinmax) {
SHIFT3(PVert *, v1, v2, v3);
SHIFT3(float, a1, a2, a3);
@@ -3199,10 +3190,10 @@ static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
}
}
- /* angle based lscm formulation */
- ratio = (sina3 == 0.0f) ? 1.0f : sina2 / sina3;
- cosine = cosf(a1) * ratio;
- sine = sina1 * ratio;
+ /* Angle based lscm formulation. */
+ const float ratio = (sina3 == 0.0f) ? 1.0f : sina2 / sina3;
+ const float cosine = cosf(a1) * ratio;
+ const float sine = sina1 * ratio;
EIG_linear_solver_matrix_add(context, row, 2 * v1->u.id, cosine - 1.0f);
EIG_linear_solver_matrix_add(context, row, 2 * v1->u.id + 1, -sine);
@@ -3224,7 +3215,7 @@ static bool p_chart_lscm_solve(ParamHandle *handle, PChart *chart)
return true;
}
- for (v = chart->verts; v; v = v->nextlink) {
+ for (PVert *v = chart->verts; v; v = v->nextlink) {
v->uv[0] = 0.0f;
v->uv[1] = 0.0f;
}
More information about the Bf-blender-cvs
mailing list