Cleanup: Sculpt: Use utility functions to resize local vectors

This commit is contained in:
Hans Goudey
2024-08-06 09:41:25 -04:00
parent d4ceade5ea
commit 63e5939fea
5 changed files with 24 additions and 45 deletions

View File

@@ -123,9 +123,8 @@ static void calc_grids(const Sculpt &sd,
scale_factors(factors, strength);
tls.translations.resize(positions.size());
const MutableSpan<float3> translations = tls.translations;
gather_data_grids(subdiv_ccg, all_translations, grids, translations);
const MutableSpan<float3> translations = gather_data_grids(
subdiv_ccg, all_translations, grids, tls.translations);
scale_translations(translations, factors);
clip_and_lock_translations(sd, ss, positions, translations);
@@ -169,9 +168,8 @@ static void calc_bmesh(const Sculpt &sd,
scale_factors(factors, strength);
tls.translations.resize(verts.size());
const MutableSpan<float3> translations = tls.translations;
gather_data_vert_bmesh(all_translations, verts, translations);
const MutableSpan<float3> translations = gather_data_vert_bmesh(
all_translations, verts, tls.translations);
scale_translations(translations, factors);
clip_and_lock_translations(sd, ss, positions, translations);

View File

@@ -250,9 +250,8 @@ static void calc_grids(const Sculpt &sd,
calc_brush_texture_factors(ss, brush, positions, factors);
tls.displacement_factors.resize(positions.size());
const MutableSpan<float> displacement_factors = tls.displacement_factors;
gather_data_grids(subdiv_ccg, layer_displacement_factor.as_span(), grids, displacement_factors);
const MutableSpan<float> displacement_factors = gather_data_grids(
subdiv_ccg, layer_displacement_factor.as_span(), grids, tls.displacement_factors);
offset_displacement_factors(displacement_factors, factors, cache.bstrength);
if (key.has_mask) {
@@ -317,9 +316,8 @@ static void calc_bmesh(const Sculpt &sd,
calc_brush_texture_factors(ss, brush, positions, factors);
tls.displacement_factors.resize(verts.size());
const MutableSpan<float> displacement_factors = tls.displacement_factors;
gather_data_vert_bmesh(layer_displacement_factor.as_span(), verts, displacement_factors);
const MutableSpan<float> displacement_factors = gather_data_vert_bmesh(
layer_displacement_factor.as_span(), verts, tls.displacement_factors);
offset_displacement_factors(displacement_factors, factors, cache.bstrength);

View File

@@ -295,9 +295,8 @@ BLI_NOINLINE static void do_surface_smooth_brush_grids(
const MutableSpan positions = gather_grids_positions(subdiv_ccg, grids, tls.positions);
const Span<float> factors = all_factors.as_span().slice(node_offsets[i]);
tls.laplacian_disp.resize(positions.size());
const MutableSpan<float3> laplacian_disp = tls.laplacian_disp;
gather_data_grids(subdiv_ccg, all_laplacian_disp.as_span(), grids, laplacian_disp);
const MutableSpan<float3> laplacian_disp = gather_data_grids(
subdiv_ccg, all_laplacian_disp.as_span(), grids, tls.laplacian_disp);
tls.average_positions.resize(positions.size());
const MutableSpan<float3> average_laplacian_disps = tls.average_positions;
@@ -401,9 +400,8 @@ BLI_NOINLINE static void do_surface_smooth_brush_bmesh(
const MutableSpan positions = gather_bmesh_positions(verts, tls.positions);
const Span<float> factors = all_factors.as_span().slice(node_offsets[i]);
tls.laplacian_disp.resize(positions.size());
const MutableSpan<float3> laplacian_disp = tls.laplacian_disp;
gather_data_vert_bmesh(all_laplacian_disp.as_span(), verts, laplacian_disp);
const MutableSpan<float3> laplacian_disp = gather_data_vert_bmesh(
all_laplacian_disp.as_span(), verts, tls.laplacian_disp);
tls.average_positions.resize(positions.size());
const MutableSpan<float3> average_laplacian_disps = tls.average_positions;

View File

@@ -1158,13 +1158,12 @@ static void calc_bend_mesh(const Sculpt &sd,
scale_factors(factors, strength);
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
const Span<float3> pivot_positions = gather_data_mesh(
vert_pivot_positions, verts, tls.pivot_positions);
const Span<float3> pivot_axes = gather_data_mesh(vert_pivot_axes, verts, tls.pivot_axes);
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_bend_position(orig_data.positions, pivot_positions, pivot_axes, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -1221,14 +1220,13 @@ static void calc_bend_grids(const Sculpt &sd,
scale_factors(factors, strength);
tls.new_positions.resize(grid_verts_num);
const MutableSpan<float3> new_positions = tls.new_positions;
const Span<float3> pivot_positions = gather_data_grids(
subdiv_ccg, vert_pivot_positions, grids, tls.pivot_positions);
const Span<float3> pivot_axes = gather_data_grids(
subdiv_ccg, vert_pivot_axes, grids, tls.pivot_axes);
tls.new_positions.resize(grid_verts_num);
const MutableSpan<float3> new_positions = tls.new_positions;
calc_bend_position(orig_data.positions, pivot_positions, pivot_axes, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -1288,13 +1286,12 @@ static void calc_bend_bmesh(const Sculpt &sd,
scale_factors(factors, strength);
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
const Span<float3> pivot_positions = gather_data_vert_bmesh(
vert_pivot_positions, verts, tls.pivot_positions);
const Span<float3> pivot_axes = gather_data_vert_bmesh(vert_pivot_axes, verts, tls.pivot_axes);
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_bend_position(orig_positions, pivot_positions, pivot_axes, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -1576,12 +1573,11 @@ static void calc_slide_bmesh(const Sculpt &sd,
scale_factors(factors, strength);
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
const Span<float3> slide_directions = gather_data_vert_bmesh(
vert_slide_directions, verts, tls.pivot_positions);
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_slide_position(orig_positions, slide_directions, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -1736,7 +1732,6 @@ static void calc_inflate_mesh(const Sculpt &sd,
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_inflate_position(orig_data.positions, orig_data.normals, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -1793,7 +1788,6 @@ static void calc_inflate_grids(const Sculpt &sd,
tls.new_positions.resize(grid_verts_num);
const MutableSpan<float3> new_positions = tls.new_positions;
calc_inflate_position(orig_data.positions, orig_data.normals, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -1853,7 +1847,6 @@ static void calc_inflate_bmesh(const Sculpt &sd,
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_inflate_position(orig_positions, orig_normals, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -2005,7 +1998,6 @@ static void calc_grab_mesh(const Sculpt &sd,
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_grab_position(orig_data.positions, grab_delta_symmetry, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -2063,7 +2055,6 @@ static void calc_grab_grids(const Sculpt &sd,
tls.new_positions.resize(grid_verts_num);
const MutableSpan<float3> new_positions = tls.new_positions;
calc_grab_position(orig_data.positions, grab_delta_symmetry, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -2124,7 +2115,6 @@ static void calc_grab_bmesh(const Sculpt &sd,
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_grab_position(orig_positions, grab_delta_symmetry, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {
@@ -2281,7 +2271,6 @@ static void calc_twist_mesh(const Sculpt &sd,
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_twist_position(
orig_data.positions, twist_pivot_position, twist_axis, factors, new_positions);
@@ -2341,7 +2330,6 @@ static void calc_twist_grids(const Sculpt &sd,
tls.new_positions.resize(grid_verts_num);
const MutableSpan<float3> new_positions = tls.new_positions;
calc_twist_position(
orig_data.positions, twist_pivot_position, twist_axis, factors, new_positions);
@@ -2404,7 +2392,6 @@ static void calc_twist_bmesh(const Sculpt &sd,
tls.new_positions.resize(verts.size());
const MutableSpan<float3> new_positions = tls.new_positions;
calc_twist_position(orig_positions, twist_pivot_position, twist_axis, factors, new_positions);
switch (eBrushDeformTarget(deform_target)) {

View File

@@ -975,9 +975,8 @@ static void calc_constraint_factors(const Object &object,
auto_mask::calc_grids_factors(object, *automasking, *nodes[i], grids, factors);
}
if (ss.cache) {
tls.positions.resize(grid_verts_num);
const MutableSpan<float3> positions = tls.positions;
gather_data_grids(subdiv_ccg, init_positions, grids, positions);
const Span<float3> positions = gather_data_grids(
subdiv_ccg, init_positions, grids, tls.positions);
calc_brush_simulation_falloff(
*brush, ss.cache->radius, sim_location, positions, factors);
}
@@ -999,9 +998,8 @@ static void calc_constraint_factors(const Object &object,
auto_mask::calc_vert_factors(object, *automasking, *nodes[i], verts, factors);
}
if (ss.cache) {
tls.positions.resize(verts.size());
const MutableSpan<float3> positions = tls.positions;
gather_data_vert_bmesh(init_positions, verts, positions);
const MutableSpan<float3> positions = gather_data_vert_bmesh(
init_positions, verts, tls.positions);
calc_brush_simulation_falloff(
*brush, ss.cache->radius, sim_location, positions, factors);
}