[Bf-blender-cvs] [e9197a4cbb8] refactor-mesh-remove-pointers: Progress
Hans Goudey
noreply at git.blender.org
Wed Jul 20 21:30:10 CEST 2022
Commit: e9197a4cbb8726181b0530073aeb0e08df99b59d
Author: Hans Goudey
Date: Wed Jul 20 13:08:29 2022 -0500
Branches: refactor-mesh-remove-pointers
https://developer.blender.org/rBe9197a4cbb8726181b0530073aeb0e08df99b59d
Progress
===================================================================
M source/blender/blenkernel/intern/fluid.c
===================================================================
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index 609e4551bb4..478bc93ecdf 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -1008,12 +1008,8 @@ static void obstacles_from_mesh(Object *coll_ob,
int min[3], max[3], res[3];
/* Duplicate vertices to modify. */
- if (me->mvert) {
- me->mvert = MEM_dupallocN(me->mvert);
- CustomData_set_layer(&me->vdata, CD_MVERT, me->mvert);
- }
+ MVert *vertices = MEM_dupallocN(BKE_mesh_vertices(me));
- const MVert *mvert = BKE_mesh_vertices(me);
const MLoop *mloop = BKE_mesh_loops(me);
looptri = BKE_mesh_runtime_looptri_ensure(me);
numverts = me->totvert;
@@ -1037,14 +1033,13 @@ static void obstacles_from_mesh(Object *coll_ob,
/* Transform mesh vertices to domain grid space for fast lookups.
* This is valid because the mesh is copied above. */
- BKE_mesh_vertex_normals_ensure(me);
- float(*vert_normals)[3] = BKE_mesh_vertex_normals_for_write(me);
+ float(*vert_normals)[3] = MEM_dupallocN(BKE_mesh_vertex_normals_ensure(me));
for (i = 0; i < numverts; i++) {
float co[3];
/* Vertex position. */
- mul_m4_v3(coll_ob->obmat, mvert[i].co);
- manta_pos_to_cell(fds, mvert[i].co);
+ mul_m4_v3(coll_ob->obmat, vertices[i].co);
+ manta_pos_to_cell(fds, vertices[i].co);
/* Vertex normal. */
mul_mat3_m4_v3(coll_ob->obmat, vert_normals[i]);
@@ -1052,7 +1047,7 @@ static void obstacles_from_mesh(Object *coll_ob,
normalize_v3(vert_normals[i]);
/* Vertex velocity. */
- add_v3fl_v3fl_v3i(co, mvert[i].co, fds->shift);
+ add_v3fl_v3fl_v3i(co, vertices[i].co, fds->shift);
if (has_velocity) {
sub_v3_v3v3(&vert_vel[i * 3], co, &fes->verts_old[i * 3]);
mul_v3_fl(&vert_vel[i * 3], 1.0f / dt);
@@ -1060,7 +1055,7 @@ static void obstacles_from_mesh(Object *coll_ob,
copy_v3_v3(&fes->verts_old[i * 3], co);
/* Calculate emission map bounds. */
- bb_boundInsert(bb, mvert[i].co);
+ bb_boundInsert(bb, vertices[i].co);
}
/* Set emission map.
@@ -1082,7 +1077,7 @@ static void obstacles_from_mesh(Object *coll_ob,
ObstaclesFromDMData data = {
.fes = fes,
- .mvert = mvert,
+ .mvert = vertices,
.mloop = mloop,
.mlooptri = looptri,
.tree = &tree_data,
@@ -1105,9 +1100,8 @@ static void obstacles_from_mesh(Object *coll_ob,
if (vert_vel) {
MEM_freeN(vert_vel);
}
- if (me->mvert) {
- MEM_freeN(me->mvert);
- }
+ MEM_freeN(vertices);
+ MEM_freeN(vert_normals);
BKE_id_free(NULL, me);
}
}
More information about the Bf-blender-cvs
mailing list