From b019e4235ad562c39870ef4664648aa2cd0e5a0c Mon Sep 17 00:00:00 2001 From: Sean Kim Date: Fri, 30 Aug 2024 01:10:34 +0200 Subject: [PATCH] Cleanup: Standardize `StrokeCache` symmetry variable naming Prior to this commit, variables inside `StrokeCache` used either a `true_` prefix to indicate that the relevant position / normal / displacement was not modified by symmetry, or a `_symmetry` / `_symm` suffix to indicate that it was. This commit changes all such variables to have a `_symm` suffix, as that has fewer connotations than the `true_` prefix. Pull Request: https://projects.blender.org/blender/blender/pulls/126902 --- .../brushes/bmesh_topology_rake.cc | 4 +- .../editors/sculpt_paint/brushes/clay.cc | 8 +- .../sculpt_paint/brushes/clay_strips.cc | 10 +- .../sculpt_paint/brushes/clay_thumb.cc | 14 +- .../editors/sculpt_paint/brushes/crease.cc | 18 +-- .../editors/sculpt_paint/brushes/draw.cc | 12 +- .../sculpt_paint/brushes/draw_face_sets.cc | 6 +- .../sculpt_paint/brushes/draw_sharp.cc | 6 +- .../brushes/draw_vector_displacement.cc | 6 +- .../sculpt_paint/brushes/elastic_deform.cc | 22 ++- .../sculpt_paint/brushes/enhance_details.cc | 6 +- .../editors/sculpt_paint/brushes/fill.cc | 6 +- .../editors/sculpt_paint/brushes/flatten.cc | 6 +- .../editors/sculpt_paint/brushes/grab.cc | 10 +- .../editors/sculpt_paint/brushes/inflate.cc | 6 +- .../editors/sculpt_paint/brushes/layer.cc | 6 +- .../editors/sculpt_paint/brushes/mask.cc | 6 +- .../sculpt_paint/brushes/multiplane_scrape.cc | 24 ++-- .../brushes/multires_displacement_eraser.cc | 2 +- .../brushes/multires_displacement_smear.cc | 8 +- .../editors/sculpt_paint/brushes/pinch.cc | 24 ++-- .../editors/sculpt_paint/brushes/relax.cc | 12 +- .../editors/sculpt_paint/brushes/rotate.cc | 12 +- .../editors/sculpt_paint/brushes/scrape.cc | 6 +- .../editors/sculpt_paint/brushes/smooth.cc | 6 +- .../sculpt_paint/brushes/smooth_mask.cc | 6 +- .../sculpt_paint/brushes/snake_hook.cc | 20 +-- .../sculpt_paint/brushes/surface_smooth.cc | 6 +- .../editors/sculpt_paint/brushes/thumb.cc | 8 +- .../sculpt_paint/brushes/topology_slide.cc | 12 +- .../editors/sculpt_paint/paint_cursor.cc | 6 +- .../editors/sculpt_paint/paint_vertex.cc | 24 ++-- .../editors/sculpt_paint/paint_weight.cc | 12 +- source/blender/editors/sculpt_paint/sculpt.cc | 129 +++++++++--------- .../sculpt_paint/sculpt_automasking.cc | 4 +- .../editors/sculpt_paint/sculpt_boundary.cc | 12 +- .../editors/sculpt_paint/sculpt_cloth.cc | 58 ++++---- .../editors/sculpt_paint/sculpt_intern.hh | 16 +-- .../sculpt_paint/sculpt_paint_color.cc | 17 +-- .../sculpt_paint/sculpt_paint_image.cc | 2 +- .../editors/sculpt_paint/sculpt_pose.cc | 8 +- 41 files changed, 300 insertions(+), 286 deletions(-) diff --git a/source/blender/editors/sculpt_paint/brushes/bmesh_topology_rake.cc b/source/blender/editors/sculpt_paint/brushes/bmesh_topology_rake.cc index 2fe0ef990ae..2db11b94515 100644 --- a/source/blender/editors/sculpt_paint/brushes/bmesh_topology_rake.cc +++ b/source/blender/editors/sculpt_paint/brushes/bmesh_topology_rake.cc @@ -63,7 +63,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -106,7 +106,7 @@ void do_bmesh_topology_rake_brush(const Depsgraph &depsgraph, const int count = iterations * strength + 1; const float factor = iterations * strength / count; - float3 direction = ss.cache->grab_delta_symmetry; + float3 direction = ss.cache->grab_delta_symm; /* TODO: Is this just the same as one of the projection utility functions? */ float3 tmp = ss.cache->sculpt_normal_symm * math::dot(ss.cache->sculpt_normal_symm, direction); diff --git a/source/blender/editors/sculpt_paint/brushes/clay.cc b/source/blender/editors/sculpt_paint/brushes/clay.cc index f354e7540d7..af5aa7815ab 100644 --- a/source/blender/editors/sculpt_paint/brushes/clay.cc +++ b/source/blender/editors/sculpt_paint/brushes/clay.cc @@ -76,7 +76,7 @@ static void calc_faces(const Depsgraph &depsgraph, const MutableSpan factors = tls.factors; fill_factor_from_hide_and_mask(mesh, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -120,7 +120,7 @@ static void calc_grids(const Depsgraph &depsgraph, const MutableSpan factors = tls.factors; fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -163,7 +163,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, const MutableSpan factors = tls.factors; fill_factor_from_hide_and_mask(*ss.bm, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -213,7 +213,7 @@ void do_clay_brush(const Depsgraph &depsgraph, displace = -displace; } - const float3 modified_area_co = ss.cache->location + (area_no * ss.cache->scale * displace); + const float3 modified_area_co = ss.cache->location_symm + (area_no * ss.cache->scale * displace); float4 test_plane; plane_from_point_normal_v3(test_plane, modified_area_co, area_no); diff --git a/source/blender/editors/sculpt_paint/brushes/clay_strips.cc b/source/blender/editors/sculpt_paint/brushes/clay_strips.cc index f994e29f1ce..092108da5eb 100644 --- a/source/blender/editors/sculpt_paint/brushes/clay_strips.cc +++ b/source/blender/editors/sculpt_paint/brushes/clay_strips.cc @@ -63,7 +63,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -118,7 +118,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -173,7 +173,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -214,7 +214,7 @@ void do_clay_strips_brush(const Depsgraph &depsgraph, const IndexMask &node_mask) { SculptSession &ss = *object.sculpt; - if (math::is_zero(ss.cache->grab_delta_symmetry)) { + if (math::is_zero(ss.cache->grab_delta_symm)) { return; } @@ -249,7 +249,7 @@ void do_clay_strips_brush(const Depsgraph &depsgraph, const float3 area_position_displaced = area_position + area_normal * -radius * 0.7f; float4x4 mat = float4x4::identity(); - mat.x_axis() = math::cross(area_normal, ss.cache->grab_delta_symmetry); + mat.x_axis() = math::cross(area_normal, ss.cache->grab_delta_symm); mat.y_axis() = math::cross(area_normal, float3(mat[0])); mat.z_axis() = area_normal; mat.location() = area_position_displaced; diff --git a/source/blender/editors/sculpt_paint/brushes/clay_thumb.cc b/source/blender/editors/sculpt_paint/brushes/clay_thumb.cc index 57bae854a0d..41d3bc45e78 100644 --- a/source/blender/editors/sculpt_paint/brushes/clay_thumb.cc +++ b/source/blender/editors/sculpt_paint/brushes/clay_thumb.cc @@ -65,7 +65,7 @@ static void calc_faces(const Depsgraph &depsgraph, filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -111,7 +111,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -157,7 +157,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -192,7 +192,7 @@ void do_clay_thumb_brush(const Depsgraph &depsgraph, { const SculptSession &ss = *object.sculpt; const Brush &brush = *BKE_paint_brush_for_read(&sd.paint); - const float3 &location = ss.cache->location; + const float3 &location = ss.cache->location_symm; /* Sampled geometry normal and area center. */ float3 area_no_sp; @@ -224,16 +224,16 @@ void do_clay_thumb_brush(const Depsgraph &depsgraph, ss.cache->clay_thumb_brush.front_angle, 0.0f, 60.0f); } - if (math::is_zero(ss.cache->grab_delta_symmetry)) { + if (math::is_zero(ss.cache->grab_delta_symm)) { return; } /* Initialize brush local-space matrix. */ float4x4 mat = float4x4::identity(); - mat.x_axis() = math::cross(area_no, ss.cache->grab_delta_symmetry); + mat.x_axis() = math::cross(area_no, ss.cache->grab_delta_symm); mat.y_axis() = math::cross(area_no, mat.x_axis()); mat.z_axis() = area_no; - mat.location() = ss.cache->location; + mat.location() = ss.cache->location_symm; normalize_m4(mat.ptr()); /* Scale brush local space matrix. */ diff --git a/source/blender/editors/sculpt_paint/brushes/crease.cc b/source/blender/editors/sculpt_paint/brushes/crease.cc index a40889ecd81..e8afb6d83ae 100644 --- a/source/blender/editors/sculpt_paint/brushes/crease.cc +++ b/source/blender/editors/sculpt_paint/brushes/crease.cc @@ -89,7 +89,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -106,10 +106,10 @@ static void calc_faces(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; - translations_from_position(positions_eval, verts, cache.location, translations); + translations_from_position(positions_eval, verts, cache.location_symm, translations); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_translations(translations, cache.view_normal); + project_translations(translations, cache.view_normal_symm); } scale_translations(translations, factors); @@ -145,7 +145,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -161,10 +161,10 @@ static void calc_grids(const Depsgraph &depsgraph, tls.translations.resize(positions.size()); const MutableSpan translations = tls.translations; - translations_from_position(positions, cache.location, translations); + translations_from_position(positions, cache.location_symm, translations); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_translations(translations, cache.view_normal); + project_translations(translations, cache.view_normal_symm); } scale_translations(translations, factors); @@ -198,7 +198,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -214,10 +214,10 @@ static void calc_bmesh(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; - translations_from_position(positions, cache.location, translations); + translations_from_position(positions, cache.location_symm, translations); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_translations(translations, cache.view_normal); + project_translations(translations, cache.view_normal_symm); } scale_translations(translations, factors); diff --git a/source/blender/editors/sculpt_paint/brushes/draw.cc b/source/blender/editors/sculpt_paint/brushes/draw.cc index 1f74b73b9c3..8e1a50344bc 100644 --- a/source/blender/editors/sculpt_paint/brushes/draw.cc +++ b/source/blender/editors/sculpt_paint/brushes/draw.cc @@ -58,7 +58,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -100,7 +100,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -141,7 +141,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -246,7 +246,7 @@ void do_nudge_brush(const Depsgraph &depsgraph, const SculptSession &ss = *object.sculpt; const float3 offset = math::cross( - math::cross(ss.cache->sculpt_normal_symm, ss.cache->grab_delta_symmetry), + math::cross(ss.cache->sculpt_normal_symm, ss.cache->grab_delta_symm), ss.cache->sculpt_normal_symm); offset_positions(depsgraph, sd, object, offset * ss.cache->bstrength, node_mask); @@ -259,8 +259,8 @@ void do_gravity_brush(const Depsgraph &depsgraph, { const SculptSession &ss = *object.sculpt; - const float3 offset = ss.cache->gravity_direction * -ss.cache->radius_squared * ss.cache->scale * - sd.gravity_factor; + const float3 offset = ss.cache->gravity_direction_symm * -ss.cache->radius_squared * + ss.cache->scale * sd.gravity_factor; offset_positions(depsgraph, sd, object, offset, node_mask); } diff --git a/source/blender/editors/sculpt_paint/brushes/draw_face_sets.cc b/source/blender/editors/sculpt_paint/brushes/draw_face_sets.cc index d44c20b60b5..caea8aa497c 100644 --- a/source/blender/editors/sculpt_paint/brushes/draw_face_sets.cc +++ b/source/blender/editors/sculpt_paint/brushes/draw_face_sets.cc @@ -143,7 +143,7 @@ static void calc_faces(const Depsgraph &depsgraph, filter_region_clip_factors(ss, face_centers, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, face_normals, factors); + calc_front_face(cache.view_normal_symm, face_normals, factors); } tls.distances.resize(face_indices.size()); @@ -249,7 +249,7 @@ static void calc_grids(const Depsgraph &depsgraph, blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -387,7 +387,7 @@ static void calc_bmesh(Object &object, fill_factor_from_hide_and_mask(*ss.bm, faces, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, faces, factors); + calc_front_face(cache.view_normal_symm, faces, factors); } tls.distances.resize(faces.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/draw_sharp.cc b/source/blender/editors/sculpt_paint/brushes/draw_sharp.cc index 5386cf0fa2d..546bc08b8d3 100644 --- a/source/blender/editors/sculpt_paint/brushes/draw_sharp.cc +++ b/source/blender/editors/sculpt_paint/brushes/draw_sharp.cc @@ -57,7 +57,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(verts.size()); @@ -101,7 +101,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, grids, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, grids, factors); } tls.distances.resize(grid_verts_num); @@ -146,7 +146,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, orig_positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_normals, factors); + calc_front_face(cache.view_normal_symm, orig_normals, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/draw_vector_displacement.cc b/source/blender/editors/sculpt_paint/brushes/draw_vector_displacement.cc index 4b913223f61..67760f97e73 100644 --- a/source/blender/editors/sculpt_paint/brushes/draw_vector_displacement.cc +++ b/source/blender/editors/sculpt_paint/brushes/draw_vector_displacement.cc @@ -99,7 +99,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -144,7 +144,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -188,7 +188,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/elastic_deform.cc b/source/blender/editors/sculpt_paint/brushes/elastic_deform.cc index 49651e4926e..de3a76b6a02 100644 --- a/source/blender/editors/sculpt_paint/brushes/elastic_deform.cc +++ b/source/blender/editors/sculpt_paint/brushes/elastic_deform.cc @@ -111,8 +111,13 @@ static void calc_faces(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; - calc_translations( - brush, cache, kelvinet_params, cache.location, offset, orig_data.positions, translations); + calc_translations(brush, + cache, + kelvinet_params, + cache.location_symm, + offset, + orig_data.positions, + translations); scale_translations(translations, factors); @@ -146,8 +151,13 @@ static void calc_grids(const Depsgraph &depsgraph, tls.translations.resize(grid_verts_num); const MutableSpan translations = tls.translations; - calc_translations( - brush, cache, kelvinet_params, cache.location, offset, orig_data.positions, translations); + calc_translations(brush, + cache, + kelvinet_params, + cache.location_symm, + offset, + orig_data.positions, + translations); scale_translations(translations, factors); @@ -183,7 +193,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; calc_translations( - brush, cache, kelvinet_params, cache.location, offset, orig_positions, translations); + brush, cache, kelvinet_params, cache.location_symm, offset, orig_positions, translations); scale_translations(translations, factors); @@ -202,7 +212,7 @@ void do_elastic_deform_brush(const Depsgraph &depsgraph, const Brush &brush = *BKE_paint_brush_for_read(&sd.paint); const float strength = ss.cache->bstrength; - float3 grab_delta = ss.cache->grab_delta_symmetry; + float3 grab_delta = ss.cache->grab_delta_symm; if (ss.cache->normal_weight > 0.0f) { sculpt_project_v3_normal_align(ss, ss.cache->normal_weight, grab_delta); } diff --git a/source/blender/editors/sculpt_paint/brushes/enhance_details.cc b/source/blender/editors/sculpt_paint/brushes/enhance_details.cc index 1a201289354..b19a8d2636e 100644 --- a/source/blender/editors/sculpt_paint/brushes/enhance_details.cc +++ b/source/blender/editors/sculpt_paint/brushes/enhance_details.cc @@ -58,7 +58,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -104,7 +104,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -148,7 +148,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/fill.cc b/source/blender/editors/sculpt_paint/brushes/fill.cc index e658b976737..3a9225cf7b0 100644 --- a/source/blender/editors/sculpt_paint/brushes/fill.cc +++ b/source/blender/editors/sculpt_paint/brushes/fill.cc @@ -60,7 +60,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -109,7 +109,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -157,7 +157,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/flatten.cc b/source/blender/editors/sculpt_paint/brushes/flatten.cc index 678aaceaf7f..1ea4fd17d18 100644 --- a/source/blender/editors/sculpt_paint/brushes/flatten.cc +++ b/source/blender/editors/sculpt_paint/brushes/flatten.cc @@ -59,7 +59,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -106,7 +106,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -152,7 +152,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/grab.cc b/source/blender/editors/sculpt_paint/brushes/grab.cc index e4380e2b669..6e3d543a5ba 100644 --- a/source/blender/editors/sculpt_paint/brushes/grab.cc +++ b/source/blender/editors/sculpt_paint/brushes/grab.cc @@ -42,7 +42,7 @@ BLI_NOINLINE static void calc_silhouette_factors(const StrokeCache &cache, { BLI_assert(normals.size() == factors.size()); - const float sign = math::sign(math::dot(cache.initial_normal, cache.grab_delta_symmetry)); + const float sign = math::sign(math::dot(cache.initial_normal_symm, cache.grab_delta_symm)); const float3 test_dir = math::normalize(offset) * sign; for (const int i : factors.index_range()) { factors[i] *= std::max(math::dot(test_dir, normals[i]), 0.0f); @@ -71,7 +71,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(verts.size()); @@ -119,7 +119,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(grid_verts_num); @@ -168,7 +168,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, orig_positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_normals, factors); + calc_front_face(cache.view_normal_symm, orig_normals, factors); } tls.distances.resize(verts.size()); @@ -204,7 +204,7 @@ void do_grab_brush(const Depsgraph &depsgraph, const SculptSession &ss = *object.sculpt; const Brush &brush = *BKE_paint_brush_for_read(&sd.paint); - float3 grab_delta = ss.cache->grab_delta_symmetry; + float3 grab_delta = ss.cache->grab_delta_symm; if (ss.cache->normal_weight > 0.0f) { sculpt_project_v3_normal_align(ss, ss.cache->normal_weight, grab_delta); diff --git a/source/blender/editors/sculpt_paint/brushes/inflate.cc b/source/blender/editors/sculpt_paint/brushes/inflate.cc index 57dcb0fb6c7..56cb7c2316f 100644 --- a/source/blender/editors/sculpt_paint/brushes/inflate.cc +++ b/source/blender/editors/sculpt_paint/brushes/inflate.cc @@ -65,7 +65,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -107,7 +107,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -150,7 +150,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/layer.cc b/source/blender/editors/sculpt_paint/brushes/layer.cc index 9227c003c87..0f2547c029b 100644 --- a/source/blender/editors/sculpt_paint/brushes/layer.cc +++ b/source/blender/editors/sculpt_paint/brushes/layer.cc @@ -141,7 +141,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -235,7 +235,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -300,7 +300,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/mask.cc b/source/blender/editors/sculpt_paint/brushes/mask.cc index 2e9940ea939..2ac3bdbcfe7 100644 --- a/source/blender/editors/sculpt_paint/brushes/mask.cc +++ b/source/blender/editors/sculpt_paint/brushes/mask.cc @@ -81,7 +81,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide(mesh, verts, factors); filter_region_clip_factors(ss, positions, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -129,7 +129,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -177,7 +177,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide(verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/multiplane_scrape.cc b/source/blender/editors/sculpt_paint/brushes/multiplane_scrape.cc index 906b7fa8733..fcc807c3713 100644 --- a/source/blender/editors/sculpt_paint/brushes/multiplane_scrape.cc +++ b/source/blender/editors/sculpt_paint/brushes/multiplane_scrape.cc @@ -147,7 +147,7 @@ static void sample_node_surface_mesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } auto_mask::calc_vert_factors(depsgraph, object, cache.automasking.get(), node, verts, factors); @@ -190,7 +190,7 @@ static void sample_node_surface_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } auto_mask::calc_grids_factors(depsgraph, object, cache.automasking.get(), node, grids, factors); @@ -236,7 +236,7 @@ static void sample_node_surface_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } auto_mask::calc_vert_factors(depsgraph, object, cache.automasking.get(), node, verts, factors); @@ -360,7 +360,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } auto_mask::calc_vert_factors(depsgraph, object, cache.automasking.get(), node, verts, factors); @@ -418,7 +418,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } auto_mask::calc_grids_factors(depsgraph, object, cache.automasking.get(), node, grids, factors); @@ -476,7 +476,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } auto_mask::calc_vert_factors(depsgraph, object, cache.automasking.get(), node, verts, factors); @@ -543,7 +543,7 @@ void do_multiplane_scrape_brush(const Depsgraph &depsgraph, return; } - if (is_zero_v3(ss.cache->grab_delta_symmetry)) { + if (is_zero_v3(ss.cache->grab_delta_symm)) { return; } @@ -551,10 +551,10 @@ void do_multiplane_scrape_brush(const Depsgraph &depsgraph, /* Init brush local space matrix. */ float4x4 mat = float4x4::identity(); - mat.x_axis() = math::cross(area_no, ss.cache->grab_delta_symmetry); + mat.x_axis() = math::cross(area_no, ss.cache->grab_delta_symm); mat.y_axis() = math::cross(area_no, mat.x_axis()); mat.z_axis() = area_no; - mat.location() = ss.cache->location; + mat.location() = ss.cache->location_symm; /* NOTE: #math::normalize behaves differently for some reason. */ normalize_m4(mat.ptr()); mat = math::invert(mat); @@ -582,7 +582,7 @@ void do_multiplane_scrape_brush(const Depsgraph &depsgraph, math::normalize(sample.area_nos[1] * 1.0f / float(sample.area_count[1]))}; float sampled_angle = angle_v3v3(sampled_plane_normals[0], sampled_plane_normals[1]); - const std::array sampled_cv{area_no, ss.cache->location - mid_co}; + const std::array sampled_cv{area_no, ss.cache->location_symm - mid_co}; sampled_angle += DEG2RADF(brush.multiplane_scrape_angle) * ss.cache->pressure; @@ -597,7 +597,7 @@ void do_multiplane_scrape_brush(const Depsgraph &depsgraph, sampled_angle = 0.0f; } else { - area_co = ss.cache->location; + area_co = ss.cache->location_symm; } /* Interpolate between the previous and new sampled angles to avoid artifacts when if angle @@ -607,7 +607,7 @@ void do_multiplane_scrape_brush(const Depsgraph &depsgraph, } else { /* Standard mode: Scrape with the brush property fixed angle. */ - area_co = ss.cache->location; + area_co = ss.cache->location_symm; ss.cache->multiplane_scrape_angle = brush.multiplane_scrape_angle; if (flip) { ss.cache->multiplane_scrape_angle *= -1.0f; diff --git a/source/blender/editors/sculpt_paint/brushes/multires_displacement_eraser.cc b/source/blender/editors/sculpt_paint/brushes/multires_displacement_eraser.cc index 7e753a9a5ad..72782479c90 100644 --- a/source/blender/editors/sculpt_paint/brushes/multires_displacement_eraser.cc +++ b/source/blender/editors/sculpt_paint/brushes/multires_displacement_eraser.cc @@ -65,7 +65,7 @@ static void calc_node(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/multires_displacement_smear.cc b/source/blender/editors/sculpt_paint/brushes/multires_displacement_smear.cc index 59c2874ed95..7095b480437 100644 --- a/source/blender/editors/sculpt_paint/brushes/multires_displacement_smear.cc +++ b/source/blender/editors/sculpt_paint/brushes/multires_displacement_smear.cc @@ -54,7 +54,7 @@ static void calc_node(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -86,13 +86,13 @@ static void calc_node(const Depsgraph &depsgraph, float3 current_disp; switch (brush.smear_deform_type) { case BRUSH_SMEAR_DEFORM_DRAG: - current_disp = cache.location - cache.last_location; + current_disp = cache.location_symm - cache.last_location_symm; break; case BRUSH_SMEAR_DEFORM_PINCH: - current_disp = cache.location - positions[node_vert_index]; + current_disp = cache.location_symm - positions[node_vert_index]; break; case BRUSH_SMEAR_DEFORM_EXPAND: - current_disp = positions[node_vert_index] - cache.location; + current_disp = positions[node_vert_index] - cache.location_symm; break; } diff --git a/source/blender/editors/sculpt_paint/brushes/pinch.cc b/source/blender/editors/sculpt_paint/brushes/pinch.cc index 06c61896289..88c9ba44d96 100644 --- a/source/blender/editors/sculpt_paint/brushes/pinch.cc +++ b/source/blender/editors/sculpt_paint/brushes/pinch.cc @@ -84,7 +84,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -102,9 +102,9 @@ static void calc_faces(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; - calc_translations(positions, cache.location, stroke_xz, translations); + calc_translations(positions, cache.location_symm, stroke_xz, translations); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_translations(translations, cache.view_normal); + project_translations(translations, cache.view_normal_symm); } scale_translations(translations, factors); @@ -133,7 +133,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -151,9 +151,9 @@ static void calc_grids(const Depsgraph &depsgraph, tls.translations.resize(positions.size()); const MutableSpan translations = tls.translations; - calc_translations(positions, cache.location, stroke_xz, translations); + calc_translations(positions, cache.location_symm, stroke_xz, translations); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_translations(translations, cache.view_normal); + project_translations(translations, cache.view_normal_symm); } scale_translations(translations, factors); @@ -183,7 +183,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -201,9 +201,9 @@ static void calc_bmesh(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; - calc_translations(positions, cache.location, stroke_xz, translations); + calc_translations(positions, cache.location_symm, stroke_xz, translations); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_translations(translations, cache.view_normal); + project_translations(translations, cache.view_normal_symm); } scale_translations(translations, factors); @@ -231,16 +231,16 @@ void do_pinch_brush(const Depsgraph &depsgraph, return; } - if (math::is_zero(ss.cache->grab_delta_symmetry)) { + if (math::is_zero(ss.cache->grab_delta_symm)) { return; } /* Initialize `mat`. */ float4x4 mat = float4x4::identity(); - mat.x_axis() = math::cross(area_no, ss.cache->grab_delta_symmetry); + mat.x_axis() = math::cross(area_no, ss.cache->grab_delta_symm); mat.y_axis() = math::cross(area_no, mat.x_axis()); mat.z_axis() = area_no; - mat.location() = ss.cache->location; + mat.location() = ss.cache->location_symm; normalize_m4(mat.ptr()); const std::array stroke_xz{math::normalize(mat.x_axis()), diff --git a/source/blender/editors/sculpt_paint/brushes/relax.cc b/source/blender/editors/sculpt_paint/brushes/relax.cc index 23d99fc7055..e4efe0f5979 100644 --- a/source/blender/editors/sculpt_paint/brushes/relax.cc +++ b/source/blender/editors/sculpt_paint/brushes/relax.cc @@ -119,7 +119,7 @@ BLI_NOINLINE static void calc_factors_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -240,7 +240,7 @@ BLI_NOINLINE static void calc_factors_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(grid_verts_num); @@ -359,7 +359,7 @@ static void calc_factors_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -456,7 +456,7 @@ BLI_NOINLINE static void calc_topology_relax_factors_faces(const Depsgraph &deps fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(verts.size()); @@ -568,7 +568,7 @@ BLI_NOINLINE static void calc_topology_relax_factors_grids(const Depsgraph &deps fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(grid_verts_num); @@ -679,7 +679,7 @@ static void calc_topology_relax_factors_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, orig_positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_normals, factors); + calc_front_face(cache.view_normal_symm, orig_normals, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/rotate.cc b/source/blender/editors/sculpt_paint/brushes/rotate.cc index dea8394438d..68088bffcf6 100644 --- a/source/blender/editors/sculpt_paint/brushes/rotate.cc +++ b/source/blender/editors/sculpt_paint/brushes/rotate.cc @@ -75,7 +75,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(verts.size()); @@ -95,7 +95,7 @@ static void calc_faces(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; calc_translations( - orig_data.positions, cache.sculpt_normal_symm, factors, cache.location, translations); + orig_data.positions, cache.sculpt_normal_symm, factors, cache.location_symm, translations); write_translations(depsgraph, sd, object, positions_eval, verts, translations, positions_orig); } @@ -123,7 +123,7 @@ static void calc_grids(const Depsgraph &depsgraph, filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(grid_verts_num); @@ -143,7 +143,7 @@ static void calc_grids(const Depsgraph &depsgraph, tls.translations.resize(grid_verts_num); const MutableSpan translations = tls.translations; calc_translations( - orig_data.positions, cache.sculpt_normal_symm, factors, cache.location, translations); + orig_data.positions, cache.sculpt_normal_symm, factors, cache.location_symm, translations); clip_and_lock_translations(sd, ss, orig_data.positions, translations); apply_translations(translations, grids, subdiv_ccg); @@ -171,7 +171,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, orig_positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_normals, factors); + calc_front_face(cache.view_normal_symm, orig_normals, factors); } tls.distances.resize(verts.size()); @@ -190,7 +190,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, tls.translations.resize(verts.size()); const MutableSpan translations = tls.translations; calc_translations( - orig_positions, cache.sculpt_normal_symm, factors, cache.location, translations); + orig_positions, cache.sculpt_normal_symm, factors, cache.location_symm, translations); clip_and_lock_translations(sd, ss, orig_positions, translations); apply_translations(translations, verts); diff --git a/source/blender/editors/sculpt_paint/brushes/scrape.cc b/source/blender/editors/sculpt_paint/brushes/scrape.cc index 78ac2895379..f994b048bf5 100644 --- a/source/blender/editors/sculpt_paint/brushes/scrape.cc +++ b/source/blender/editors/sculpt_paint/brushes/scrape.cc @@ -60,7 +60,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -109,7 +109,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -158,7 +158,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/smooth.cc b/source/blender/editors/sculpt_paint/brushes/smooth.cc index 5b2e7447ef6..09bd988a987 100644 --- a/source/blender/editors/sculpt_paint/brushes/smooth.cc +++ b/source/blender/editors/sculpt_paint/brushes/smooth.cc @@ -77,7 +77,7 @@ BLI_NOINLINE static void apply_positions_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -194,7 +194,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -243,7 +243,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/smooth_mask.cc b/source/blender/editors/sculpt_paint/brushes/smooth_mask.cc index e3bf8e3e6dd..9d7885257d3 100644 --- a/source/blender/editors/sculpt_paint/brushes/smooth_mask.cc +++ b/source/blender/editors/sculpt_paint/brushes/smooth_mask.cc @@ -88,7 +88,7 @@ static void apply_masks_faces(const Depsgraph &depsgraph, fill_factor_from_hide(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -199,7 +199,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -252,7 +252,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide(verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/snake_hook.cc b/source/blender/editors/sculpt_paint/brushes/snake_hook.cc index becf007760e..01215951969 100644 --- a/source/blender/editors/sculpt_paint/brushes/snake_hook.cc +++ b/source/blender/editors/sculpt_paint/brushes/snake_hook.cc @@ -77,7 +77,7 @@ static float3 sculpt_rake_rotate(const StrokeCache &cache, float factor) { float3 vec_rot = v_co - sculpt_co; - const math::Quaternion rotation = math::pow(*cache.rake_rotation_symmetry, factor); + const math::Quaternion rotation = math::pow(*cache.rake_rotation_symm, factor); vec_rot = math::transform_point(rotation, vec_rot); vec_rot += sculpt_co; @@ -101,10 +101,10 @@ BLI_NOINLINE static void calc_pinch_influence(const Brush &brush, for (const int i : positions.index_range()) { /* Negative pinch will inflate, helps maintain volume. */ - float3 delta_pinch = positions[i] - cache.location; + float3 delta_pinch = positions[i] - cache.location_symm; if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_plane_v3_v3v3(delta_pinch, delta_pinch, cache.true_view_normal); + project_plane_v3_v3v3(delta_pinch, delta_pinch, cache.view_normal); } /* Important to calculate based on the grabbed location @@ -133,11 +133,11 @@ BLI_NOINLINE static void calc_rake_rotation_influence(const StrokeCache &cache, const Span factors, const MutableSpan translations) { - if (!cache.rake_rotation_symmetry) { + if (!cache.rake_rotation_symm) { return; } for (const int i : positions.index_range()) { - translations[i] += sculpt_rake_rotate(cache, cache.location, positions[i], factors[i]); + translations[i] += sculpt_rake_rotate(cache, cache.location_symm, positions[i], factors[i]); } } @@ -150,7 +150,7 @@ BLI_NOINLINE static void calc_kelvinet_translation(const StrokeCache &cache, BKE_kelvinlet_init_params(¶ms, cache.radius, cache.bstrength, 1.0f, 0.4f); for (const int i : positions.index_range()) { float3 disp; - BKE_kelvinlet_grab_triscale(disp, ¶ms, positions[i], cache.location, translations[i]); + BKE_kelvinlet_grab_triscale(disp, ¶ms, positions[i], cache.location_symm, translations[i]); translations[i] = disp * factors[i]; } } @@ -185,7 +185,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -246,7 +246,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -309,7 +309,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(verts.size()); @@ -357,7 +357,7 @@ void do_snake_hook_brush(const Depsgraph &depsgraph, SculptProjectVector spvc; - float3 grab_delta = ss.cache->grab_delta_symmetry; + float3 grab_delta = ss.cache->grab_delta_symm; if (bstrength < 0.0f) { grab_delta *= -1.0f; diff --git a/source/blender/editors/sculpt_paint/brushes/surface_smooth.cc b/source/blender/editors/sculpt_paint/brushes/surface_smooth.cc index 1c953495a1c..f802c72f833 100644 --- a/source/blender/editors/sculpt_paint/brushes/surface_smooth.cc +++ b/source/blender/editors/sculpt_paint/brushes/surface_smooth.cc @@ -82,7 +82,7 @@ BLI_NOINLINE static void do_surface_smooth_brush_mesh(const Depsgraph &depsgraph fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, positions_eval, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -202,7 +202,7 @@ BLI_NOINLINE static void do_surface_smooth_brush_grids( fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(positions.size()); @@ -312,7 +312,7 @@ BLI_NOINLINE static void do_surface_smooth_brush_bmesh( fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, verts, factors); + calc_front_face(cache.view_normal_symm, verts, factors); } tls.distances.resize(positions.size()); diff --git a/source/blender/editors/sculpt_paint/brushes/thumb.cc b/source/blender/editors/sculpt_paint/brushes/thumb.cc index b146fedd427..6154084d8b0 100644 --- a/source/blender/editors/sculpt_paint/brushes/thumb.cc +++ b/source/blender/editors/sculpt_paint/brushes/thumb.cc @@ -58,7 +58,7 @@ static void calc_faces(const Depsgraph &depsgraph, filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(verts.size()); @@ -103,7 +103,7 @@ static void calc_grids(const Depsgraph &depsgraph, filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(grid_verts_num); @@ -149,7 +149,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, filter_region_clip_factors(ss, orig_positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_normals, factors); + calc_front_face(cache.view_normal_symm, orig_normals, factors); } tls.distances.resize(verts.size()); @@ -181,7 +181,7 @@ void do_thumb_brush(const Depsgraph &depsgraph, const SculptSession &ss = *object.sculpt; const Brush &brush = *BKE_paint_brush_for_read(&sd.paint); - const float3 &grab_delta = ss.cache->grab_delta_symmetry; + const float3 &grab_delta = ss.cache->grab_delta_symm; const float3 &normal = ss.cache->sculpt_normal_symm; const float3 offset = math::cross(math::cross(normal, grab_delta), normal) * ss.cache->bstrength; diff --git a/source/blender/editors/sculpt_paint/brushes/topology_slide.cc b/source/blender/editors/sculpt_paint/brushes/topology_slide.cc index 62e3daa7c66..17d47b6e202 100644 --- a/source/blender/editors/sculpt_paint/brushes/topology_slide.cc +++ b/source/blender/editors/sculpt_paint/brushes/topology_slide.cc @@ -45,16 +45,16 @@ BLI_NOINLINE static void calc_translation_directions(const Brush &brush, switch (brush.slide_deform_type) { case BRUSH_SLIDE_DEFORM_DRAG: - r_translations.fill(math::normalize(cache.location - cache.last_location)); + r_translations.fill(math::normalize(cache.location_symm - cache.last_location_symm)); break; case BRUSH_SLIDE_DEFORM_PINCH: for (const int i : positions.index_range()) { - r_translations[i] = math::normalize(cache.location - positions[i]); + r_translations[i] = math::normalize(cache.location_symm - positions[i]); } break; case BRUSH_SLIDE_DEFORM_EXPAND: for (const int i : positions.index_range()) { - r_translations[i] = math::normalize(positions[i] - cache.location); + r_translations[i] = math::normalize(positions[i] - cache.location_symm); } break; } @@ -178,7 +178,7 @@ static void calc_faces(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, factors); } tls.distances.resize(verts.size()); @@ -228,7 +228,7 @@ static void calc_grids(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(subdiv_ccg, grids, factors); filter_region_clip_factors(ss, orig_data.positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_data.normals, grids, factors); + calc_front_face(cache.view_normal_symm, orig_data.normals, grids, factors); } tls.distances.resize(positions.size()); @@ -277,7 +277,7 @@ static void calc_bmesh(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(*ss.bm, verts, factors); filter_region_clip_factors(ss, orig_positions, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, orig_normals, factors); + calc_front_face(cache.view_normal_symm, orig_normals, factors); } tls.distances.resize(verts.size()); diff --git a/source/blender/editors/sculpt_paint/paint_cursor.cc b/source/blender/editors/sculpt_paint/paint_cursor.cc index 17e5477fe02..5ff692d1507 100644 --- a/source/blender/editors/sculpt_paint/paint_cursor.cc +++ b/source/blender/editors/sculpt_paint/paint_cursor.cc @@ -1971,14 +1971,14 @@ static void paint_cursor_cursor_draw_3d_view_brush_cursor_active(PaintCursorCont /* Display the simulation limits if sculpting outside them. */ /* This does not makes much sense of plane falloff as the falloff is infinite or global. */ - if (len_v3v3(ss.cache->true_location, ss.cache->true_initial_location) > + if (len_v3v3(ss.cache->location, ss.cache->initial_location) > ss.cache->radius * (1.0f + brush.cloth_sim_limit)) { const float red[3] = {1.0f, 0.2f, 0.2f}; cloth::simulation_limits_draw(pcontext->pos, brush, - ss.cache->true_initial_location, - ss.cache->true_initial_normal, + ss.cache->initial_location, + ss.cache->initial_normal, ss.cache->radius, 2.0f, red, diff --git a/source/blender/editors/sculpt_paint/paint_vertex.cc b/source/blender/editors/sculpt_paint/paint_vertex.cc index 459e2c8fc28..a978ddbcfbe 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.cc +++ b/source/blender/editors/sculpt_paint/paint_vertex.cc @@ -294,7 +294,7 @@ IndexMask pbvh_gather_generic(const Depsgraph &depsgraph, /* Build a list of all nodes that are potentially within the brush's area of influence */ if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_SPHERE) { nodes = bke::pbvh::search_nodes(*ss.pbvh, memory, [&](const bke::pbvh::Node &node) { - return node_in_sphere(node, ss.cache->location, ss.cache->radius_squared, true); + return node_in_sphere(node, ss.cache->location_symm, ss.cache->radius_squared, true); }); ss.cache->sculpt_normal_symm = @@ -302,12 +302,12 @@ IndexMask pbvh_gather_generic(const Depsgraph &depsgraph, } else { const DistRayAABB_Precalc ray_dist_precalc = dist_squared_ray_to_aabb_v3_precalc( - ss.cache->location, ss.cache->view_normal); + ss.cache->location_symm, ss.cache->view_normal_symm); nodes = bke::pbvh::search_nodes(*ss.pbvh, memory, [&](const bke::pbvh::Node &node) { return node_in_cylinder(ray_dist_precalc, node, ss.cache->radius_squared, true); }); - ss.cache->sculpt_normal_symm = use_normal ? ss.cache->view_normal : float3(0); + ss.cache->sculpt_normal_symm = use_normal ? ss.cache->view_normal_symm : float3(0); } return nodes; } @@ -497,9 +497,9 @@ void update_cache_invariants( mul_m3_v3(mat, view_dir); copy_m3_m4(mat, ob.world_to_object().ptr()); mul_m3_v3(mat, view_dir); - normalize_v3_v3(cache->true_view_normal, view_dir); + normalize_v3_v3(cache->view_normal, view_dir); - cache->view_normal = cache->true_view_normal; + cache->view_normal_symm = cache->view_normal; cache->bstrength = BKE_brush_alpha_get(scene, brush); cache->is_last_valid = false; @@ -519,7 +519,7 @@ void update_cache_variants(bContext *C, VPaint &vp, Object &ob, PointerRNA *ptr) /* This effects the actual brush radius, so things farther away * are compared with a larger radius and vice versa. */ if (cache->first_time) { - RNA_float_get_array(ptr, "location", cache->true_location); + RNA_float_get_array(ptr, "location", cache->location); } RNA_float_get_array(ptr, "mouse", cache->mouse); @@ -536,7 +536,7 @@ void update_cache_variants(bContext *C, VPaint &vp, Object &ob, PointerRNA *ptr) /* Truly temporary data that isn't stored in properties */ if (cache->first_time) { cache->initial_radius = paint_calc_object_space_radius( - *cache->vc, cache->true_location, BKE_brush_size_get(scene, &brush)); + *cache->vc, cache->location, BKE_brush_size_get(scene, &brush)); BKE_brush_unprojected_radius_set(scene, &brush, cache->initial_radius); } @@ -1378,8 +1378,8 @@ static void do_vpaint_brush_smear(const bContext *C, const bool use_face_sel = (mesh.editflag & ME_EDIT_PAINT_FACE_SEL) != 0; float brush_dir[3]; - sub_v3_v3v3(brush_dir, cache.location, cache.last_location); - project_plane_v3_v3v3(brush_dir, brush_dir, cache.view_normal); + sub_v3_v3v3(brush_dir, cache.location_symm, cache.last_location_symm); + project_plane_v3_v3v3(brush_dir, brush_dir, cache.view_normal_symm); if (normalize_v3(brush_dir) == 0.0f) { return; } @@ -1479,7 +1479,7 @@ static void do_vpaint_brush_smear(const bContext *C, * selected vert to the neighbor. */ float other_dir[3]; sub_v3_v3v3(other_dir, vert_positions[vert], vert_positions[v_other_index]); - project_plane_v3_v3v3(other_dir, other_dir, cache.view_normal); + project_plane_v3_v3v3(other_dir, other_dir, cache.view_normal_symm); normalize_v3(other_dir); @@ -1992,7 +1992,7 @@ static void vpaint_do_symmetrical_brush_actions(bContext *C, } } - copy_v3_v3(cache.true_last_location, cache.true_location); + copy_v3_v3(cache.last_location, cache.location); cache.is_last_valid = true; } @@ -2033,7 +2033,7 @@ static void vpaint_stroke_update_step(bContext *C, /* Calculate pivot for rotation around selection if needed. * also needed for "Frame Selected" on last stroke. */ float loc_world[3]; - mul_v3_m4v3(loc_world, ob.object_to_world().ptr(), ss.cache->true_location); + mul_v3_m4v3(loc_world, ob.object_to_world().ptr(), ss.cache->location); vwpaint::last_stroke_update(scene, loc_world); ED_region_tag_redraw(vc.region); diff --git a/source/blender/editors/sculpt_paint/paint_weight.cc b/source/blender/editors/sculpt_paint/paint_weight.cc index 20b0120db67..f60fb901bd3 100644 --- a/source/blender/editors/sculpt_paint/paint_weight.cc +++ b/source/blender/editors/sculpt_paint/paint_weight.cc @@ -1225,8 +1225,8 @@ static void do_wpaint_brush_smear(const Depsgraph &depsgraph, const bool use_vert_sel = (mesh.editflag & ME_EDIT_PAINT_VERT_SEL) != 0; float brush_dir[3]; - sub_v3_v3v3(brush_dir, cache.location, cache.last_location); - project_plane_v3_v3v3(brush_dir, brush_dir, cache.view_normal); + sub_v3_v3v3(brush_dir, cache.location_symm, cache.last_location_symm); + project_plane_v3_v3v3(brush_dir, brush_dir, cache.view_normal_symm); if (normalize_v3(brush_dir) == 0.0f) { return; } @@ -1301,7 +1301,7 @@ static void do_wpaint_brush_smear(const Depsgraph &depsgraph, /* Get the direction from the selected vert to the neighbor. */ float other_dir[3]; sub_v3_v3v3(other_dir, vert_positions[vert], vert_positions[vert_other]); - project_plane_v3_v3v3(other_dir, other_dir, cache.view_normal); + project_plane_v3_v3v3(other_dir, other_dir, cache.view_normal_symm); normalize_v3(other_dir); @@ -1752,7 +1752,7 @@ static void wpaint_do_symmetrical_brush_actions( if (mesh.editflag & ME_EDIT_MIRROR_VERTEX_GROUPS) { /* We don't do any symmetry strokes when mirroring vertex groups. */ - copy_v3_v3(cache.true_last_location, cache.true_location); + copy_v3_v3(cache.last_location, cache.location); cache.is_last_valid = true; return; } @@ -1780,7 +1780,7 @@ static void wpaint_do_symmetrical_brush_actions( } } } - copy_v3_v3(cache.true_last_location, cache.true_location); + copy_v3_v3(cache.last_location, cache.location); cache.is_last_valid = true; } @@ -1858,7 +1858,7 @@ static void wpaint_stroke_update_step(bContext *C, /* Calculate pivot for rotation around selection if needed. * also needed for "Frame Selected" on last stroke. */ float loc_world[3]; - mul_v3_m4v3(loc_world, ob->object_to_world().ptr(), ss.cache->true_location); + mul_v3_m4v3(loc_world, ob->object_to_world().ptr(), ss.cache->location); vwpaint::last_stroke_update(scene, loc_world); BKE_mesh_batch_cache_dirty_tag(&mesh, BKE_MESH_BATCH_DIRTY_ALL); diff --git a/source/blender/editors/sculpt_paint/sculpt.cc b/source/blender/editors/sculpt_paint/sculpt.cc index 4671efb5194..639778b30c4 100644 --- a/source/blender/editors/sculpt_paint/sculpt.cc +++ b/source/blender/editors/sculpt_paint/sculpt.cc @@ -822,7 +822,7 @@ void sculpt_project_v3_normal_align(const SculptSession &ss, { float view_aligned_normal[3]; project_plane_v3_v3v3( - view_aligned_normal, ss.cache->sculpt_normal_symm, ss.cache->view_normal); + view_aligned_normal, ss.cache->sculpt_normal_symm, ss.cache->view_normal_symm); len_view_scale = fabsf(dot_v3v3(view_aligned_normal, ss.cache->sculpt_normal_symm)); len_view_scale = (len_view_scale > FLT_EPSILON) ? 1.0f / len_view_scale : 1.0f; } @@ -1496,7 +1496,7 @@ const float *SCULPT_brush_frontface_normal_from_falloff_shape(const SculptSessio return ss.cache->sculpt_normal_symm; } BLI_assert(falloff_shape == PAINT_FALLOFF_SHAPE_TUBE); - return ss.cache->view_normal; + return ss.cache->view_normal_symm; } /* ===== Sculpting ===== @@ -1507,7 +1507,7 @@ static float calc_overlap(const blender::ed::sculpt_paint::StrokeCache &cache, const char axis, const float angle) { - float3 mirror = blender::ed::sculpt_paint::symmetry_flip(cache.true_location, symm); + float3 mirror = blender::ed::sculpt_paint::symmetry_flip(cache.location, symm); if (axis != 0) { float mat[3][3]; @@ -1515,7 +1515,7 @@ static float calc_overlap(const blender::ed::sculpt_paint::StrokeCache &cache, mul_m3_v3(mat, mirror); } - const float distsq = len_squared_v3v3(mirror, cache.true_location); + const float distsq = len_squared_v3v3(mirror, cache.location); if (distsq <= 4.0f * (cache.radius_squared)) { return (2.0f * (cache.radius) - sqrtf(distsq)) / (2.0f * (cache.radius)); @@ -1680,8 +1680,8 @@ static void calc_area_normal_and_center_node_mesh(const Object &object, AreaNormalCenterData &anctd) { const SculptSession &ss = *object.sculpt; - const float3 &location = ss.cache ? ss.cache->location : ss.cursor_location; - const float3 &view_normal = ss.cache ? ss.cache->view_normal : ss.cursor_view_normal; + const float3 &location = ss.cache ? ss.cache->location_symm : ss.cursor_location; + const float3 &view_normal = ss.cache ? ss.cache->view_normal_symm : ss.cursor_view_normal; const float position_radius = area_normal_and_center_get_position_radius(ss, brush); const float position_radius_sq = position_radius * position_radius; const float position_radius_inv = math::rcp(position_radius); @@ -1763,8 +1763,8 @@ static void calc_area_normal_and_center_node_grids(const Object &object, AreaNormalCenterData &anctd) { const SculptSession &ss = *object.sculpt; - const float3 &location = ss.cache ? ss.cache->location : ss.cursor_location; - const float3 &view_normal = ss.cache ? ss.cache->view_normal : ss.cursor_view_normal; + const float3 &location = ss.cache ? ss.cache->location_symm : ss.cursor_location; + const float3 &view_normal = ss.cache ? ss.cache->view_normal_symm : ss.cursor_view_normal; const float position_radius = area_normal_and_center_get_position_radius(ss, brush); const float position_radius_sq = position_radius * position_radius; const float position_radius_inv = math::rcp(position_radius); @@ -1867,8 +1867,8 @@ static void calc_area_normal_and_center_node_bmesh(const Object &object, AreaNormalCenterData &anctd) { const SculptSession &ss = *object.sculpt; - const float3 &location = ss.cache ? ss.cache->location : ss.cursor_location; - const float3 &view_normal = ss.cache ? ss.cache->view_normal : ss.cursor_view_normal; + const float3 &location = ss.cache ? ss.cache->location_symm : ss.cursor_location; + const float3 &view_normal = ss.cache ? ss.cache->view_normal_symm : ss.cursor_view_normal; const float position_radius = area_normal_and_center_get_position_radius(ss, brush); const float position_radius_sq = position_radius * position_radius; const float position_radius_inv = math::rcp(position_radius); @@ -2123,7 +2123,7 @@ void calc_area_center(const Depsgraph &depsgraph, if (anctd.count_co[0] == 0 && anctd.count_co[1] == 0) { if (ss.cache) { - copy_v3_v3(r_area_co, ss.cache->location); + copy_v3_v3(r_area_co, ss.cache->location_symm); } } } @@ -2320,7 +2320,7 @@ void calc_area_normal_and_center(const Depsgraph &depsgraph, if (anctd.count_co[0] == 0 && anctd.count_co[1] == 0) { if (ss.cache) { - copy_v3_v3(r_area_co, ss.cache->location); + copy_v3_v3(r_area_co, ss.cache->location_symm); } } @@ -2633,7 +2633,7 @@ bool node_in_cylinder(const DistRayAABB_Precalc &ray_dist_precalc, static IndexMask pbvh_gather_cursor_update(Object &ob, bool use_original, IndexMaskMemory &memory) { SculptSession &ss = *ob.sculpt; - const float3 center = ss.cache ? ss.cache->location : ss.cursor_location; + const float3 center = ss.cache ? ss.cache->location_symm : ss.cursor_location; return bke::pbvh::search_nodes(*ss.pbvh, memory, [&](const bke::pbvh::Node &node) { return node_in_sphere(node, center, ss.cursor_radius, use_original); }); @@ -2645,7 +2645,7 @@ static IndexMask pbvh_gather_generic( { SculptSession &ss = *ob.sculpt; - const float3 center = ss.cache->location; + const float3 center = ss.cache->location_symm; const float radius_sq = math::square(ss.cache->radius * radius_scale); const bool ignore_ineffective = brush.sculpt_tool != SCULPT_TOOL_MASK; switch (brush.falloff_shape) { @@ -2660,7 +2660,7 @@ static IndexMask pbvh_gather_generic( case PAINT_FALLOFF_SHAPE_TUBE: { const DistRayAABB_Precalc ray_dist_precalc = dist_squared_ray_to_aabb_v3_precalc( - center, ss.cache->view_normal); + center, ss.cache->view_normal_symm); return bke::pbvh::search_nodes(*ss.pbvh, memory, [&](const bke::pbvh::Node &node) { if (ignore_ineffective && node_fully_masked_or_hidden(node)) { return false; @@ -2694,7 +2694,7 @@ static float3 calc_sculpt_normal(const Depsgraph &depsgraph, case SCULPT_DISP_DIR_AREA: return calc_area_normal(depsgraph, brush, ob, node_mask).value_or(float3(0)); case SCULPT_DISP_DIR_VIEW: - return ss.cache->true_view_normal; + return ss.cache->view_normal; case SCULPT_DISP_DIR_X: return float3(1, 0, 0); case SCULPT_DISP_DIR_Y: @@ -2725,7 +2725,7 @@ static void update_sculpt_normal(const Depsgraph &depsgraph, { cache.sculpt_normal = calc_sculpt_normal(depsgraph, sd, ob, node_mask); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_plane_v3_v3v3(cache.sculpt_normal, cache.sculpt_normal, cache.view_normal); + project_plane_v3_v3v3(cache.sculpt_normal, cache.sculpt_normal, cache.view_normal_symm); normalize_v3(cache.sculpt_normal); } copy_v3_v3(cache.sculpt_normal_symm, cache.sculpt_normal); @@ -2785,7 +2785,8 @@ static void calc_brush_local_mat(const float rotation, /* Convert view's brush transverse direction to object-space, * i.e. the normal of the plane described by the motion */ float motion_normal_local[3]; - calc_local_from_screen(*cache->vc, cache->location, motion_normal_screen, motion_normal_local); + calc_local_from_screen( + *cache->vc, cache->location_symm, motion_normal_screen, motion_normal_local); /* Calculate the movement direction for the local matrix. * Note that there is a deliberate prioritization here: Our calculations are @@ -2804,7 +2805,7 @@ static void calc_brush_local_mat(const float rotation, copy_v3_v3(mat[2], cache->sculpt_normal); /* Set location. */ - copy_v3_v3(mat[3], cache->location); + copy_v3_v3(mat[3], cache->location_symm); /* Scale by brush radius. */ float radius = cache->radius; @@ -3075,7 +3076,7 @@ void calc_brush_plane(const Depsgraph &depsgraph, { switch (brush.sculpt_plane) { case SCULPT_DISP_DIR_VIEW: - copy_v3_v3(r_area_no, ss.cache->true_view_normal); + copy_v3_v3(r_area_no, ss.cache->view_normal); break; case SCULPT_DISP_DIR_X: @@ -3093,7 +3094,7 @@ void calc_brush_plane(const Depsgraph &depsgraph, case SCULPT_DISP_DIR_AREA: calc_area_normal_and_center(depsgraph, brush, ob, node_mask, r_area_no, r_area_co); if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_plane_v3_v3v3(r_area_no, r_area_no, ss.cache->view_normal); + project_plane_v3_v3v3(r_area_no, r_area_no, ss.cache->view_normal_symm); normalize_v3(r_area_no); } break; @@ -3282,14 +3283,14 @@ static void dynamic_topology_update(const Depsgraph &depsgraph, mode, min_edge_len, max_edge_len, - ss.cache->location, - ss.cache->view_normal, + ss.cache->location_symm, + ss.cache->view_normal_symm, ss.cache->radius, (brush.flag & BRUSH_FRONTFACE) != 0, (brush.falloff_shape != PAINT_FALLOFF_SHAPE_SPHERE)); /* Update average stroke position. */ - copy_v3_v3(location, ss.cache->true_location); + copy_v3_v3(location, ss.cache->location); mul_m4_v3(ob.object_to_world().ptr(), location); } @@ -3523,7 +3524,7 @@ static void do_brush_action(const Depsgraph &depsgraph, } cloth::brush_store_simulation_state(depsgraph, ob, *ss.cache->cloth_sim); cloth::ensure_nodes_constraints( - sd, ob, node_mask, *ss.cache->cloth_sim, ss.cache->location, FLT_MAX); + sd, ob, node_mask, *ss.cache->cloth_sim, ss.cache->location_symm, FLT_MAX); } bool invert = ss.cache->pen_flip || ss.cache->invert; @@ -3718,7 +3719,7 @@ static void do_brush_action(const Depsgraph &depsgraph, } /* Update average stroke position. */ - copy_v3_v3(location, ss.cache->true_location); + copy_v3_v3(location, ss.cache->location); mul_m4_v3(ob.object_to_world().ptr(), location); add_v3_v3(ups.average_stroke_accum, location); @@ -3735,13 +3736,13 @@ void SCULPT_cache_calc_brushdata_symm(blender::ed::sculpt_paint::StrokeCache &ca const float angle) { using namespace blender; - cache.location = ed::sculpt_paint::symmetry_flip(cache.true_location, symm); - cache.last_location = ed::sculpt_paint::symmetry_flip(cache.true_last_location, symm); - cache.grab_delta_symmetry = ed::sculpt_paint::symmetry_flip(cache.grab_delta, symm); - cache.view_normal = ed::sculpt_paint::symmetry_flip(cache.true_view_normal, symm); + cache.location_symm = ed::sculpt_paint::symmetry_flip(cache.location, symm); + cache.last_location_symm = ed::sculpt_paint::symmetry_flip(cache.last_location, symm); + cache.grab_delta_symm = ed::sculpt_paint::symmetry_flip(cache.grab_delta, symm); + cache.view_normal_symm = ed::sculpt_paint::symmetry_flip(cache.view_normal, symm); - cache.initial_location = ed::sculpt_paint::symmetry_flip(cache.true_initial_location, symm); - cache.initial_normal = ed::sculpt_paint::symmetry_flip(cache.true_initial_normal, symm); + cache.initial_location_symm = ed::sculpt_paint::symmetry_flip(cache.initial_location, symm); + cache.initial_normal_symm = ed::sculpt_paint::symmetry_flip(cache.initial_normal, symm); /* XXX This reduces the length of the grab delta if it approaches the line of symmetry * XXX However, a different approach appears to be needed. */ @@ -3768,12 +3769,12 @@ void SCULPT_cache_calc_brushdata_symm(blender::ed::sculpt_paint::StrokeCache &ca rotate_m4(cache.symm_rot_mat_inv.ptr(), axis, -angle); } - mul_m4_v3(cache.symm_rot_mat.ptr(), cache.location); - mul_m4_v3(cache.symm_rot_mat.ptr(), cache.grab_delta_symmetry); + mul_m4_v3(cache.symm_rot_mat.ptr(), cache.location_symm); + mul_m4_v3(cache.symm_rot_mat.ptr(), cache.grab_delta_symm); if (cache.supports_gravity) { - cache.gravity_direction = ed::sculpt_paint::symmetry_flip(cache.true_gravity_direction, symm); - mul_m4_v3(cache.symm_rot_mat.ptr(), cache.gravity_direction); + cache.gravity_direction_symm = ed::sculpt_paint::symmetry_flip(cache.gravity_direction, symm); + mul_m4_v3(cache.symm_rot_mat.ptr(), cache.gravity_direction_symm); } if (cache.rake_rotation) { @@ -3783,7 +3784,7 @@ void SCULPT_cache_calc_brushdata_symm(blender::ed::sculpt_paint::StrokeCache &ca cache.rake_rotation->y, cache.rake_rotation->z); flip_qt_qt(new_quat, existing, symm); - cache.rake_rotation_symmetry = math::Quaternion(existing); + cache.rake_rotation_symm = math::Quaternion(existing); } } @@ -3823,8 +3824,8 @@ static void do_tiled(const Depsgraph &depsgraph, /* Position of the "prototype" stroke for tiling. */ float orgLoc[3]; float original_initial_location[3]; - copy_v3_v3(orgLoc, cache->location); - copy_v3_v3(original_initial_location, cache->initial_location); + copy_v3_v3(orgLoc, cache->location_symm); + copy_v3_v3(original_initial_location, cache->initial_location_symm); for (int dim = 0; dim < 3; dim++) { if ((sd.paint.symmetry_flags & (PAINT_TILE_X << dim)) && step[dim] > 0) { @@ -3853,9 +3854,10 @@ static void do_tiled(const Depsgraph &depsgraph, ++cache->tile_pass; for (int dim = 0; dim < 3; dim++) { - cache->location[dim] = cur[dim] * step[dim] + orgLoc[dim]; + cache->location_symm[dim] = cur[dim] * step[dim] + orgLoc[dim]; cache->plane_offset[dim] = cur[dim] * step[dim]; - cache->initial_location[dim] = cur[dim] * step[dim] + original_initial_location[dim]; + cache->initial_location_symm[dim] = cur[dim] * step[dim] + + original_initial_location[dim]; } action(depsgraph, scene, sd, ob, brush, ups, paint_mode_settings); } @@ -4239,11 +4241,11 @@ static void sculpt_update_cache_invariants( zero_v2(cache->initial_mouse); } + copy_v3_v3(cache->initial_location_symm, ss.cursor_location); copy_v3_v3(cache->initial_location, ss.cursor_location); - copy_v3_v3(cache->true_initial_location, ss.cursor_location); + copy_v3_v3(cache->initial_normal_symm, ss.cursor_normal); copy_v3_v3(cache->initial_normal, ss.cursor_normal); - copy_v3_v3(cache->true_initial_normal, ss.cursor_normal); mode = RNA_enum_get(op->ptr, "mode"); cache->invert = mode == BRUSH_STROKE_INVERT; @@ -4290,7 +4292,7 @@ static void sculpt_update_cache_invariants( mul_m3_v3(mat, viewDir); copy_m3_m4(mat, ob.world_to_object().ptr()); mul_m3_v3(mat, viewDir); - normalize_v3_v3(cache->true_view_normal, viewDir); + normalize_v3_v3(cache->view_normal, viewDir); cache->supports_gravity = (!ELEM(brush->sculpt_tool, SCULPT_TOOL_MASK, @@ -4304,16 +4306,16 @@ static void sculpt_update_cache_invariants( if (sd.gravity_object) { Object *gravity_object = sd.gravity_object; - copy_v3_v3(cache->true_gravity_direction, gravity_object->object_to_world().ptr()[2]); + copy_v3_v3(cache->gravity_direction, gravity_object->object_to_world().ptr()[2]); } else { - cache->true_gravity_direction[0] = cache->true_gravity_direction[1] = 0.0f; - cache->true_gravity_direction[2] = 1.0f; + cache->gravity_direction[0] = cache->gravity_direction[1] = 0.0f; + cache->gravity_direction[2] = 1.0f; } /* Transform to sculpted object space. */ - mul_m3_v3(mat, cache->true_gravity_direction); - normalize_v3(cache->true_gravity_direction); + mul_m3_v3(mat, cache->gravity_direction); + normalize_v3(cache->gravity_direction); } cache->accum = true; @@ -4459,13 +4461,13 @@ static void brush_delta_update(const Depsgraph &depsgraph, } } else { - copy_v3_v3(cache->orig_grab_location, cache->true_location); + copy_v3_v3(cache->orig_grab_location, cache->location); } } else if (tool == SCULPT_TOOL_SNAKE_HOOK || (tool == SCULPT_TOOL_CLOTH && brush.cloth_deform_type == BRUSH_CLOTH_DEFORM_SNAKE_HOOK)) { - add_v3_v3(cache->true_location, cache->grab_delta); + add_v3_v3(cache->location, cache->grab_delta); } /* Compute 3d coordinate at same z from original location + mval. */ @@ -4502,14 +4504,14 @@ static void brush_delta_update(const Depsgraph &depsgraph, } if (brush.falloff_shape == PAINT_FALLOFF_SHAPE_TUBE) { - project_plane_v3_v3v3(cache->grab_delta, cache->grab_delta, ss.cache->true_view_normal); + project_plane_v3_v3v3(cache->grab_delta, cache->grab_delta, ss.cache->view_normal); } copy_v3_v3(cache->old_grab_location, grab_location); if (need_delta_from_anchored_origin(brush)) { /* Location stays the same for finding vertices in brush radius. */ - copy_v3_v3(cache->true_location, cache->orig_grab_location); + copy_v3_v3(cache->location, cache->orig_grab_location); ups.draw_anchored = true; copy_v2_v2(ups.anchored_initial_mouse, cache->initial_mouse); @@ -4614,7 +4616,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt &sd, Object &ob, Po !((brush.flag & BRUSH_ANCHORED) || (brush.sculpt_tool == SCULPT_TOOL_SNAKE_HOOK) || (brush.sculpt_tool == SCULPT_TOOL_ROTATE) || cloth::is_cloth_deform_brush(brush))) { - RNA_float_get_array(ptr, "location", cache.true_location); + RNA_float_get_array(ptr, "location", cache.location); } cache.pen_flip = RNA_boolean_get(ptr, "pen_flip"); @@ -4633,7 +4635,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt &sd, Object &ob, Po /* Truly temporary data that isn't stored in properties. */ if (SCULPT_stroke_is_first_brush_step_of_symmetry_pass(*ss.cache)) { - cache.initial_radius = sculpt_calc_radius(*cache.vc, brush, scene, cache.true_location); + cache.initial_radius = sculpt_calc_radius(*cache.vc, brush, scene, cache.location); if (!BKE_brush_use_locked_size(&scene, &brush)) { BKE_brush_unprojected_radius_set(&scene, &brush, cache.initial_radius); @@ -4675,11 +4677,10 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt &sd, Object &ob, Po if (brush.flag & BRUSH_ANCHORED) { /* True location has been calculated as part of the stroke system already here. */ if (brush.flag & BRUSH_EDGE_TO_EDGE) { - RNA_float_get_array(ptr, "location", cache.true_location); + RNA_float_get_array(ptr, "location", cache.location); } - cache.radius = paint_calc_object_space_radius( - *cache.vc, cache.true_location, ups.pixel_radius); + cache.radius = paint_calc_object_space_radius(*cache.vc, cache.location, ups.pixel_radius); cache.radius_squared = cache.radius * cache.radius; } @@ -5552,7 +5553,7 @@ static void stroke_update_step(bContext *C, sculpt_fix_noise_tear(sd, ob); ss.cache->first_time = false; - copy_v3_v3(ss.cache->true_last_location, ss.cache->true_location); + copy_v3_v3(ss.cache->last_location, ss.cache->location); /* Cleanup. */ if (brush.sculpt_tool == SCULPT_TOOL_MASK) { @@ -6839,10 +6840,11 @@ void calc_brush_distances_squared(const SculptSession &ss, { BLI_assert(verts.size() == r_distances.size()); - const float3 &test_location = ss.cache ? ss.cache->location : ss.cursor_location; + const float3 &test_location = ss.cache ? ss.cache->location_symm : ss.cursor_location; if (falloff_shape == PAINT_FALLOFF_SHAPE_TUBE && (ss.cache || ss.filter_cache)) { /* The tube falloff shape requires the cached view normal. */ - const float3 &view_normal = ss.cache ? ss.cache->view_normal : ss.filter_cache->view_normal; + const float3 &view_normal = ss.cache ? ss.cache->view_normal_symm : + ss.filter_cache->view_normal; float4 test_plane; plane_from_point_normal_v3(test_plane, test_location, view_normal); for (const int i : verts.index_range()) { @@ -6877,10 +6879,11 @@ void calc_brush_distances_squared(const SculptSession &ss, { BLI_assert(positions.size() == r_distances.size()); - const float3 &test_location = ss.cache ? ss.cache->location : ss.cursor_location; + const float3 &test_location = ss.cache ? ss.cache->location_symm : ss.cursor_location; if (falloff_shape == PAINT_FALLOFF_SHAPE_TUBE && (ss.cache || ss.filter_cache)) { /* The tube falloff shape requires the cached view normal. */ - const float3 &view_normal = ss.cache ? ss.cache->view_normal : ss.filter_cache->view_normal; + const float3 &view_normal = ss.cache ? ss.cache->view_normal_symm : + ss.filter_cache->view_normal; float4 test_plane; plane_from_point_normal_v3(test_plane, test_location, view_normal); for (const int i : positions.index_range()) { diff --git a/source/blender/editors/sculpt_paint/sculpt_automasking.cc b/source/blender/editors/sculpt_paint/sculpt_automasking.cc index 43f87d7bebe..deaa1f30ff7 100644 --- a/source/blender/editors/sculpt_paint/sculpt_automasking.cc +++ b/source/blender/editors/sculpt_paint/sculpt_automasking.cc @@ -221,7 +221,7 @@ static float calc_brush_normal_factor(const Depsgraph &depsgraph, float3 initial_normal; if (ss.cache) { - initial_normal = ss.cache->initial_normal; + initial_normal = ss.cache->initial_normal_symm; } else { initial_normal = ss.filter_cache->initial_normal; @@ -248,7 +248,7 @@ static float calc_view_normal_factor(const Depsgraph &depsgraph, float3 view_normal; if (ss.cache) { - view_normal = ss.cache->view_normal; + view_normal = ss.cache->view_normal_symm; } else { view_normal = ss.filter_cache->view_normal; diff --git a/source/blender/editors/sculpt_paint/sculpt_boundary.cc b/source/blender/editors/sculpt_paint/sculpt_boundary.cc index cdfe8ba3123..aacd743752a 100644 --- a/source/blender/editors/sculpt_paint/sculpt_boundary.cc +++ b/source/blender/editors/sculpt_paint/sculpt_boundary.cc @@ -2167,7 +2167,7 @@ static void do_grab_brush(const Depsgraph &depsgraph, boundary.edit_info.strength_factor, nodes[i], tls, - ss.cache->grab_delta_symmetry, + ss.cache->grab_delta_symm, boundary.initial_vert_position, strength, deform_target, @@ -2192,7 +2192,7 @@ static void do_grab_brush(const Depsgraph &depsgraph, boundary.edit_info.strength_factor, nodes[i], tls, - ss.cache->grab_delta_symmetry, + ss.cache->grab_delta_symm, boundary.initial_vert_position, strength, deform_target); @@ -2213,7 +2213,7 @@ static void do_grab_brush(const Depsgraph &depsgraph, boundary.edit_info.strength_factor, nodes[i], tls, - ss.cache->grab_delta_symmetry, + ss.cache->grab_delta_symm, boundary.initial_vert_position, strength, deform_target); @@ -2916,10 +2916,10 @@ static float displacement_from_grab_delta_get(const SculptSession &ss, const SculptBoundary &boundary) { float4 plane; - const float3 normal = math::normalize(ss.cache->initial_location - boundary.pivot_position); - plane_from_point_normal_v3(plane, ss.cache->initial_location, normal); + const float3 normal = math::normalize(ss.cache->initial_location_symm - boundary.pivot_position); + plane_from_point_normal_v3(plane, ss.cache->initial_location_symm, normal); - const float3 pos = ss.cache->initial_location + ss.cache->grab_delta_symmetry; + const float3 pos = ss.cache->initial_location_symm + ss.cache->grab_delta_symm; return dist_signed_to_plane_v3(pos, plane); } diff --git a/source/blender/editors/sculpt_paint/sculpt_cloth.cc b/source/blender/editors/sculpt_paint/sculpt_cloth.cc index 3092d9e1dec..3989748ec3a 100644 --- a/source/blender/editors/sculpt_paint/sculpt_cloth.cc +++ b/source/blender/editors/sculpt_paint/sculpt_cloth.cc @@ -169,9 +169,9 @@ static float3 cloth_brush_simulation_location_get(const SculptSession &ss, const return float3(0); } if (brush->cloth_simulation_area_type == BRUSH_CLOTH_SIMULATION_AREA_LOCAL) { - return ss.cache->initial_location; + return ss.cache->initial_location_symm; } - return ss.cache->location; + return ss.cache->location_symm; } IndexMask brush_affected_nodes_gather(SculptSession &ss, @@ -186,7 +186,7 @@ IndexMask brush_affected_nodes_gather(SculptSession &ss, const float radius_squared = math::square(ss.cache->initial_radius * (1.0 + brush.cloth_sim_limit)); return bke::pbvh::search_nodes(*ss.pbvh, memory, [&](const bke::pbvh::Node &node) { - return node_in_sphere(node, ss.cache->initial_location, radius_squared, false); + return node_in_sphere(node, ss.cache->initial_location_symm, radius_squared, false); }); } case BRUSH_CLOTH_SIMULATION_AREA_GLOBAL: @@ -194,7 +194,7 @@ IndexMask brush_affected_nodes_gather(SculptSession &ss, case BRUSH_CLOTH_SIMULATION_AREA_DYNAMIC: { const float radius_squared = math::square(ss.cache->radius * (1.0 + brush.cloth_sim_limit)); return bke::pbvh::search_nodes(*ss.pbvh, memory, [&](const bke::pbvh::Node &node) { - return node_in_sphere(node, ss.cache->location, radius_squared, false); + return node_in_sphere(node, ss.cache->location_symm, radius_squared, false); }); } } @@ -464,7 +464,7 @@ static void add_constraints_for_verts(const Object &object, if (pin_simulation_boundary) { const float sim_falloff = cloth_brush_simulation_falloff_get( - *brush, ss.cache->initial_radius, ss.cache->location, init_positions[vert]); + *brush, ss.cache->initial_radius, ss.cache->location_symm, init_positions[vert]); /* Vertex is inside the area of the simulation without any falloff applied. */ if (sim_falloff < 1.0f) { /* Create constraints with more strength the closer the vertex is to the simulation @@ -763,7 +763,7 @@ static void calc_forces_mesh(const Depsgraph &depsgraph, } if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -788,7 +788,7 @@ static void calc_forces_mesh(const Depsgraph &depsgraph, switch (brush.cloth_deform_type) { case BRUSH_CLOTH_DEFORM_DRAG: translations_from_offset_and_factors( - math::normalize(cache.location - cache.last_location), factors, forces); + math::normalize(cache.location_symm - cache.last_location_symm), factors, forces); apply_forces(cloth_sim, forces, verts); break; case BRUSH_CLOTH_DEFORM_PUSH: @@ -797,23 +797,23 @@ static void calc_forces_mesh(const Depsgraph &depsgraph, break; case BRUSH_CLOTH_DEFORM_GRAB: apply_grab_brush( - cloth_sim, verts, factors, falloff_plane.has_value(), cache.grab_delta_symmetry); + cloth_sim, verts, factors, falloff_plane.has_value(), cache.grab_delta_symm); break; case BRUSH_CLOTH_DEFORM_SNAKE_HOOK: - apply_snake_hook_brush(cloth_sim, verts, factors, cache.grab_delta_symmetry); + apply_snake_hook_brush(cloth_sim, verts, factors, cache.grab_delta_symm); break; case BRUSH_CLOTH_DEFORM_PINCH_POINT: if (falloff_plane) { calc_plane_pinch_forces(positions, falloff_plane->plane, falloff_plane->normal, forces); } else { - calc_pinch_forces(positions, cache.location, forces); + calc_pinch_forces(positions, cache.location_symm, forces); } scale_translations(forces, factors); apply_forces(cloth_sim, forces, verts); break; case BRUSH_CLOTH_DEFORM_PINCH_PERPENDICULAR: { - calc_perpendicular_pinch_forces(positions, imat, cache.location, forces); + calc_perpendicular_pinch_forces(positions, imat, cache.location_symm, forces); scale_translations(forces, factors); apply_forces(cloth_sim, forces, verts); break; @@ -873,7 +873,7 @@ static void calc_forces_grids(const Depsgraph &depsgraph, } if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, subdiv_ccg, grids, factors); + calc_front_face(cache.view_normal_symm, subdiv_ccg, grids, factors); } tls.distances.resize(verts.size()); @@ -898,7 +898,7 @@ static void calc_forces_grids(const Depsgraph &depsgraph, switch (brush.cloth_deform_type) { case BRUSH_CLOTH_DEFORM_DRAG: translations_from_offset_and_factors( - math::normalize(cache.location - cache.last_location), factors, forces); + math::normalize(cache.location_symm - cache.last_location_symm), factors, forces); apply_forces(cloth_sim, forces, verts); break; case BRUSH_CLOTH_DEFORM_PUSH: @@ -907,23 +907,23 @@ static void calc_forces_grids(const Depsgraph &depsgraph, break; case BRUSH_CLOTH_DEFORM_GRAB: apply_grab_brush( - cloth_sim, verts, factors, falloff_plane.has_value(), cache.grab_delta_symmetry); + cloth_sim, verts, factors, falloff_plane.has_value(), cache.grab_delta_symm); break; case BRUSH_CLOTH_DEFORM_SNAKE_HOOK: - apply_snake_hook_brush(cloth_sim, verts, factors, cache.grab_delta_symmetry); + apply_snake_hook_brush(cloth_sim, verts, factors, cache.grab_delta_symm); break; case BRUSH_CLOTH_DEFORM_PINCH_POINT: if (falloff_plane) { calc_plane_pinch_forces(positions, falloff_plane->plane, falloff_plane->normal, forces); } else { - calc_pinch_forces(positions, cache.location, forces); + calc_pinch_forces(positions, cache.location_symm, forces); } scale_translations(forces, factors); apply_forces(cloth_sim, forces, verts); break; case BRUSH_CLOTH_DEFORM_PINCH_PERPENDICULAR: { - calc_perpendicular_pinch_forces(positions, imat, cache.location, forces); + calc_perpendicular_pinch_forces(positions, imat, cache.location_symm, forces); scale_translations(forces, factors); apply_forces(cloth_sim, forces, verts); break; @@ -981,7 +981,7 @@ static void calc_forces_bmesh(const Depsgraph &depsgraph, } if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, bm_verts, factors); + calc_front_face(cache.view_normal_symm, bm_verts, factors); } tls.distances.resize(verts.size()); @@ -1006,7 +1006,7 @@ static void calc_forces_bmesh(const Depsgraph &depsgraph, switch (brush.cloth_deform_type) { case BRUSH_CLOTH_DEFORM_DRAG: translations_from_offset_and_factors( - math::normalize(cache.location - cache.last_location), factors, forces); + math::normalize(cache.location_symm - cache.last_location_symm), factors, forces); apply_forces(cloth_sim, forces, verts); break; case BRUSH_CLOTH_DEFORM_PUSH: @@ -1015,23 +1015,23 @@ static void calc_forces_bmesh(const Depsgraph &depsgraph, break; case BRUSH_CLOTH_DEFORM_GRAB: apply_grab_brush( - cloth_sim, verts, factors, falloff_plane.has_value(), cache.grab_delta_symmetry); + cloth_sim, verts, factors, falloff_plane.has_value(), cache.grab_delta_symm); break; case BRUSH_CLOTH_DEFORM_SNAKE_HOOK: - apply_snake_hook_brush(cloth_sim, verts, factors, cache.grab_delta_symmetry); + apply_snake_hook_brush(cloth_sim, verts, factors, cache.grab_delta_symm); break; case BRUSH_CLOTH_DEFORM_PINCH_POINT: if (falloff_plane) { calc_plane_pinch_forces(positions, falloff_plane->plane, falloff_plane->normal, forces); } else { - calc_pinch_forces(positions, cache.location, forces); + calc_pinch_forces(positions, cache.location_symm, forces); } scale_translations(forces, factors); apply_forces(cloth_sim, forces, verts); break; case BRUSH_CLOTH_DEFORM_PINCH_PERPENDICULAR: { - calc_perpendicular_pinch_forces(positions, imat, cache.location, forces); + calc_perpendicular_pinch_forces(positions, imat, cache.location_symm, forces); scale_translations(forces, factors); apply_forces(cloth_sim, forces, verts); break; @@ -1523,11 +1523,11 @@ static void cloth_brush_apply_brush_foces(const Depsgraph &depsgraph, float3 area_co; float3 offset; - if (math::is_zero(cache.grab_delta_symmetry)) { + if (math::is_zero(cache.grab_delta_symm)) { return; } - float3 grab_delta = math::normalize(cache.grab_delta_symmetry); + float3 grab_delta = math::normalize(cache.grab_delta_symm); /* Calculate push offset. */ if (brush.cloth_deform_type == BRUSH_CLOTH_DEFORM_PUSH) { @@ -1541,10 +1541,10 @@ static void cloth_brush_apply_brush_foces(const Depsgraph &depsgraph, calc_brush_plane(depsgraph, brush, ob, node_mask, area_no, area_co); /* Initialize stroke local space matrix. */ - mat.x_axis() = math::cross(area_no, cache.grab_delta_symmetry); + mat.x_axis() = math::cross(area_no, cache.grab_delta_symm); mat.y_axis() = math::cross(area_no, mat.x_axis()); mat.z_axis() = area_no; - mat.location() = cache.location; + mat.location() = cache.location_symm; normalize_m4(mat.ptr()); /* Update matrix for the cursor preview. */ @@ -1564,7 +1564,7 @@ static void cloth_brush_apply_brush_foces(const Depsgraph &depsgraph, /* Gravity */ float3 gravity(0); if (cache.supports_gravity) { - gravity += cache.gravity_direction * -sd.gravity_factor; + gravity += cache.gravity_direction_symm * -sd.gravity_factor; } std::optional falloff_plane; @@ -1941,7 +1941,7 @@ void plane_falloff_preview_draw(const uint gpuattr, float4x4 local_mat = ss.cache->stroke_local_mat; if (ss.cache->brush->cloth_deform_type == BRUSH_CLOTH_DEFORM_GRAB) { - add_v3_v3v3(local_mat[3], ss.cache->true_location, ss.cache->grab_delta); + add_v3_v3v3(local_mat[3], ss.cache->location, ss.cache->grab_delta); } GPU_matrix_mul(local_mat.ptr()); diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.hh b/source/blender/editors/sculpt_paint/sculpt_intern.hh index 400162eb2bb..0a20a237871 100644 --- a/source/blender/editors/sculpt_paint/sculpt_intern.hh +++ b/source/blender/editors/sculpt_paint/sculpt_intern.hh @@ -147,10 +147,10 @@ struct StrokeCache { /* Variants */ float radius; float radius_squared; - float3 true_location; - float3 true_last_location; float3 location; float3 last_location; + float3 location_symm; + float3 last_location_symm; float stroke_distance; /* Used for alternating between deformation in brushes that need to apply different ones to @@ -206,12 +206,12 @@ struct StrokeCache { const Brush *brush; float special_rotation; - float3 grab_delta, grab_delta_symmetry; + float3 grab_delta, grab_delta_symm; float3 old_grab_location, orig_grab_location; /* screen-space rotation defined by mouse motion */ std::optional rake_rotation; - std::optional rake_rotation_symmetry; + std::optional rake_rotation_symm; SculptRakeData rake_data; /* Face Sets */ @@ -222,8 +222,8 @@ struct StrokeCache { int symmetry; /* The symmetry pass we are currently on between 0 and 7. */ ePaintSymmetryFlags mirror_symmetry_pass; - float3 true_view_normal; float3 view_normal; + float3 view_normal_symm; /* sculpt_normal gets calculated by calc_sculpt_normal(), then the * sculpt_normal_symm gets updated quickly with the usual symmetry @@ -291,10 +291,10 @@ struct StrokeCache { /* Cloth brush */ std::unique_ptr cloth_sim; + float3 initial_location_symm; float3 initial_location; - float3 true_initial_location; + float3 initial_normal_symm; float3 initial_normal; - float3 true_initial_normal; /* Boundary brush */ std::array, PAINT_SYMM_AREAS> boundaries; @@ -324,8 +324,8 @@ struct StrokeCache { float plane_trim_squared; bool supports_gravity; - float3 true_gravity_direction; float3 gravity_direction; + float3 gravity_direction_symm; std::unique_ptr automasking; diff --git a/source/blender/editors/sculpt_paint/sculpt_paint_color.cc b/source/blender/editors/sculpt_paint/sculpt_paint_color.cc index 493e2076684..4cb74507133 100644 --- a/source/blender/editors/sculpt_paint/sculpt_paint_color.cc +++ b/source/blender/editors/sculpt_paint/sculpt_paint_color.cc @@ -281,7 +281,7 @@ static void do_color_smooth_task(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, vert_positions, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -366,7 +366,7 @@ static void do_paint_brush_task(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, vert_positions, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -538,7 +538,8 @@ void do_paint_brush(const Depsgraph &depsgraph, if (SCULPT_stroke_is_first_brush_step_of_symmetry_pass(*ss.cache)) { if (SCULPT_stroke_is_first_brush_step(*ss.cache)) { - ss.cache->paint_brush.density_seed = float(BLI_hash_int_01(ss.cache->location[0] * 1000)); + ss.cache->paint_brush.density_seed = float( + BLI_hash_int_01(ss.cache->location_symm[0] * 1000)); } return; } @@ -695,7 +696,7 @@ static void do_smear_brush_task(const Depsgraph &depsgraph, fill_factor_from_hide_and_mask(mesh, verts, factors); filter_region_clip_factors(ss, vert_positions, verts, factors); if (brush.flag & BRUSH_FRONTFACE) { - calc_front_face(cache.view_normal, vert_normals, verts, factors); + calc_front_face(cache.view_normal_symm, vert_normals, verts, factors); } tls.distances.resize(verts.size()); @@ -713,10 +714,10 @@ static void do_smear_brush_task(const Depsgraph &depsgraph, float3 brush_delta; if (brush.flag & BRUSH_ANCHORED) { - brush_delta = ss.cache->grab_delta_symmetry; + brush_delta = ss.cache->grab_delta_symm; } else { - brush_delta = ss.cache->location - ss.cache->last_location; + brush_delta = ss.cache->location_symm - ss.cache->last_location_symm; } Vector neighbors; @@ -733,10 +734,10 @@ static void do_smear_brush_task(const Depsgraph &depsgraph, current_disp = brush_delta; break; case BRUSH_SMEAR_DEFORM_PINCH: - current_disp = ss.cache->location - vert_positions[vert]; + current_disp = ss.cache->location_symm - vert_positions[vert]; break; case BRUSH_SMEAR_DEFORM_EXPAND: - current_disp = vert_positions[vert] - ss.cache->location; + current_disp = vert_positions[vert] - ss.cache->location_symm; break; } diff --git a/source/blender/editors/sculpt_paint/sculpt_paint_image.cc b/source/blender/editors/sculpt_paint/sculpt_paint_image.cc index a2bfbca58c2..e0769c2fa62 100644 --- a/source/blender/editors/sculpt_paint/sculpt_paint_image.cc +++ b/source/blender/editors/sculpt_paint/sculpt_paint_image.cc @@ -231,7 +231,7 @@ static BitVector<> init_uv_primitives_brush_test(SculptSession &ss, const Span uv_primitives, const Span positions) { - const float3 location = ss.cache ? ss.cache->location : ss.cursor_location; + const float3 location = ss.cache ? ss.cache->location_symm : ss.cursor_location; const float radius = ss.cache ? ss.cache->radius : ss.cursor_radius; const Bounds brush_bounds(location - radius, location + radius); diff --git a/source/blender/editors/sculpt_paint/sculpt_pose.cc b/source/blender/editors/sculpt_paint/sculpt_pose.cc index 13295aa002a..4f9f678c8cc 100644 --- a/source/blender/editors/sculpt_paint/sculpt_pose.cc +++ b/source/blender/editors/sculpt_paint/sculpt_pose.cc @@ -1251,7 +1251,7 @@ void pose_brush_init(const Depsgraph &depsgraph, Object &ob, SculptSession &ss, { /* Init the IK chain that is going to be used to deform the vertices. */ ss.cache->pose_ik_chain = ik_chain_init( - depsgraph, ob, ss, brush, ss.cache->true_location, ss.cache->radius); + depsgraph, ob, ss, brush, ss.cache->location, ss.cache->radius); /* Smooth the weights of each segment for cleaner deformation. */ for (IKChainSegment &segment : ss.cache->pose_ik_chain->segments) { @@ -1302,7 +1302,7 @@ static void calc_scale_deform(SculptSession &ss, const Brush &brush) { IKChain &ik_chain = *ss.cache->pose_ik_chain; - float3 ik_target = ss.cache->true_location + ss.cache->grab_delta; + float3 ik_target = ss.cache->location + ss.cache->grab_delta; /* Solve the IK for the first segment to include rotation as part of scale if enabled. */ if (!(brush.flag2 & BRUSH_POSE_USE_LOCK_ROTATION)) { @@ -1330,7 +1330,7 @@ static void calc_rotate_deform(SculptSession &ss, const Brush &brush) IKChain &ik_chain = *ss.cache->pose_ik_chain; /* Calculate the IK target. */ - float3 ik_target = ss.cache->true_location + ss.cache->grab_delta + ik_chain.grab_delta_offset; + float3 ik_target = ss.cache->location + ss.cache->grab_delta + ik_chain.grab_delta_offset; /* Solve the IK positions. */ solve_ik_chain(ik_chain, ik_target, brush.flag2 & BRUSH_POSE_IK_ANCHORED); @@ -1360,7 +1360,7 @@ static void calc_squash_stretch_deform(SculptSession &ss, const Brush & /*brush* { IKChain &ik_chain = *ss.cache->pose_ik_chain; - float3 ik_target = ss.cache->true_location + ss.cache->grab_delta; + float3 ik_target = ss.cache->location + ss.cache->grab_delta; float3 scale; scale[2] = calc_scale_from_grab_delta(ss, ik_target);