Cleanup: Sculpt: Simplify access to multiplane scrape planes

Instead of using if statements to choose between the planes,
use array indices.
This commit is contained in:
Hans Goudey 2024-07-01 17:36:03 -04:00
parent d106592f7b
commit 29ce7907e2

@ -81,16 +81,10 @@ static void calc_multiplane_scrape_surface_task(Object &ob,
&automask_data); &automask_data);
/* Sample the normal and area of the +X and -X axis individually. */ /* Sample the normal and area of the +X and -X axis individually. */
if (local_co[0] > 0.0f) { const bool plane_index = local_co[0] <= 0.0f;
mssd->area_nos[0] += normal * fade; mssd->area_nos[plane_index] += normal * fade;
mssd->area_cos[0] += vd.co; mssd->area_cos[plane_index] += vd.co;
mssd->area_count[0]++; mssd->area_count[plane_index]++;
}
else {
mssd->area_nos[1] += normal * fade;
mssd->area_cos[1] += vd.co;
mssd->area_count[1]++;
}
BKE_pbvh_vertex_iter_end; BKE_pbvh_vertex_iter_end;
} }
} }
@ -117,20 +111,15 @@ static void do_multiplane_scrape_brush_task(Object &ob,
ob, ss.cache->automasking.get(), *node); ob, ss.cache->automasking.get(), *node);
BKE_pbvh_vertex_iter_begin (*ss.pbvh, node, vd, PBVH_ITER_UNIQUE) { BKE_pbvh_vertex_iter_begin (*ss.pbvh, node, vd, PBVH_ITER_UNIQUE) {
if (!sculpt_brush_test_sq_fn(test, vd.co)) { if (!sculpt_brush_test_sq_fn(test, vd.co)) {
continue; continue;
} }
float3 local_co = math::transform_point(mat, float3(vd.co)); float3 local_co = math::transform_point(mat, float3(vd.co));
bool deform = false; const bool plane_index = local_co[0] <= 0.0f;
if (local_co[0] > 0.0f) { bool deform = false;
deform = !SCULPT_plane_point_side(vd.co, scrape_planes[0]); deform = !SCULPT_plane_point_side(vd.co, scrape_planes[plane_index]);
}
else {
deform = !SCULPT_plane_point_side(vd.co, scrape_planes[1]);
}
if (angle < 0.0f) { if (angle < 0.0f) {
deform = true; deform = true;
@ -143,12 +132,7 @@ static void do_multiplane_scrape_brush_task(Object &ob,
float3 intr; float3 intr;
float3 val; float3 val;
if (local_co[0] > 0.0f) { closest_to_plane_normalized_v3(intr, scrape_planes[plane_index], vd.co);
closest_to_plane_normalized_v3(intr, scrape_planes[0], vd.co);
}
else {
closest_to_plane_normalized_v3(intr, scrape_planes[1], vd.co);
}
sub_v3_v3v3(val, intr, vd.co); sub_v3_v3v3(val, intr, vd.co);
if (!SCULPT_plane_trim(*ss.cache, brush, val)) { if (!SCULPT_plane_trim(*ss.cache, brush, val)) {