[Bf-blender-cvs] [acb8ac6870e] refactor-mesh-position-generic: Cleanup
Hans Goudey
noreply at git.blender.org
Wed Sep 28 06:40:12 CEST 2022
Commit: acb8ac6870e831b0ebf61cef79ff993e8849fc37
Author: Hans Goudey
Date: Tue Sep 27 23:40:03 2022 -0500
Branches: refactor-mesh-position-generic
https://developer.blender.org/rBacb8ac6870e831b0ebf61cef79ff993e8849fc37
Cleanup
===================================================================
M source/blender/blenkernel/intern/DerivedMesh.cc
M source/blender/blenkernel/intern/cloth.c
M source/blender/nodes/geometry/nodes/node_geo_sample_nearest.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/DerivedMesh.cc b/source/blender/blenkernel/intern/DerivedMesh.cc
index 4be80145eb6..2e2a917821d 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.cc
+++ b/source/blender/blenkernel/intern/DerivedMesh.cc
@@ -668,7 +668,8 @@ static void mesh_calc_modifiers(struct Depsgraph *depsgraph,
BLI_assert((mesh_input->id.tag & LIB_TAG_COPIED_ON_WRITE_EVAL_RESULT) == 0);
- /* TODO(Hans): Remove use of "deformed_verts" in mesh modifier stack. */
+ /* TODO: Remove use of "deformed_verts" in mesh modifier stack since mesh positions are now in a
+ * contiguous array. */
float(*deformed_verts)[3] = nullptr;
int num_deformed_verts = mesh_input->totvert;
bool isPrevDeform = false;
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index 31f3353c91d..711b1179bd2 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -251,7 +251,6 @@ static int do_step_cloth(
ClothVertex *verts = NULL;
Cloth *cloth;
ListBase *effectors = NULL;
- MVert *mvert;
uint i = 0;
int ret = 0;
bool vert_mass_changed = false;
diff --git a/source/blender/nodes/geometry/nodes/node_geo_sample_nearest.cc b/source/blender/nodes/geometry/nodes/node_geo_sample_nearest.cc
index 95f7c7add3a..54f7954abd5 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_sample_nearest.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_sample_nearest.cc
@@ -165,7 +165,7 @@ static void get_closest_mesh_corners(const Mesh &mesh,
const MutableSpan<float> r_distances_sq,
const MutableSpan<float3> r_positions)
{
- const Span<MVert> verts = mesh.verts();
+ const Span<float3> mesh_positions = mesh.positions();
const Span<MPoly> polys = mesh.polys();
const Span<MLoop> loops = mesh.loops();
@@ -180,24 +180,23 @@ static void get_closest_mesh_corners(const Mesh &mesh,
/* Find the closest vertex in the polygon. */
float min_distance_sq = FLT_MAX;
- const MVert *closest_mvert;
+ int closest_vert_index = 0;
int closest_loop_index = 0;
for (const int loop_index : IndexRange(poly.loopstart, poly.totloop)) {
const MLoop &loop = loops[loop_index];
const int vertex_index = loop.v;
- const MVert &mvert = verts[vertex_index];
- const float distance_sq = math::distance_squared(position, float3(mvert.co));
+ const float distance_sq = math::distance_squared(position, mesh_positions[vertex_index]);
if (distance_sq < min_distance_sq) {
min_distance_sq = distance_sq;
closest_loop_index = loop_index;
- closest_mvert = &mvert;
+ closest_vert_index = vertex_index;
}
}
if (!r_corner_indices.is_empty()) {
r_corner_indices[i] = closest_loop_index;
}
if (!r_positions.is_empty()) {
- r_positions[i] = closest_mvert->co;
+ r_positions[i] = mesh_positions[closest_vert_index];
}
if (!r_distances_sq.is_empty()) {
r_distances_sq[i] = min_distance_sq;
More information about the Bf-blender-cvs
mailing list