[Bf-blender-cvs] [acb9e211976] refactor-mesh-position-generic: Merge branch 'refactor-mesh-selection-generic' into refactor-mesh-position-generic
Hans Goudey
noreply at git.blender.org
Wed Sep 21 05:39:26 CEST 2022
Commit: acb9e211976b8e72de2b9adbf77ce9e82c1e647e
Author: Hans Goudey
Date: Tue Sep 20 22:39:18 2022 -0500
Branches: refactor-mesh-position-generic
https://developer.blender.org/rBacb9e211976b8e72de2b9adbf77ce9e82c1e647e
Merge branch 'refactor-mesh-selection-generic' into refactor-mesh-position-generic
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/fluid.c
index d30cc78d689,349614b93dd..7f66c2d5f33
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@@ -1006,7 -1005,8 +1005,8 @@@ static void obstacles_from_mesh(Object
float *vert_vel = NULL;
bool has_velocity = false;
- me = BKE_mesh_copy_for_eval(fes->mesh, true);
+ Mesh *me = BKE_mesh_copy_for_eval(fes->mesh, false);
- MVert *verts = BKE_mesh_verts_for_write(me);
++ float(*positions)[3] = BKE_mesh_positions_for_write(me);
int min[3], max[3], res[3];
@@@ -2074,10 -2070,8 +2070,8 @@@ static void emit_from_mesh
/* Copy mesh for thread safety as we modify it.
* Main issue is its VertArray being modified, then replaced and freed. */
- Mesh *me = BKE_mesh_copy_for_eval(ffs->mesh, true);
-
- /* Duplicate vertices to modify. */
- float(*positions)[3] = MEM_dupallocN(BKE_mesh_positions(me));
+ Mesh *me = BKE_mesh_copy_for_eval(ffs->mesh, false);
- MVert *verts = BKE_mesh_verts_for_write(me);
++ float(*positions)[3] = BKE_mesh_positions_for_write(me);
const MLoop *mloop = BKE_mesh_loops(me);
const MLoopTri *mlooptri = BKE_mesh_runtime_looptri_ensure(me);
@@@ -2102,11 -2096,12 +2096,12 @@@
/* Transform mesh vertices to domain grid space for fast lookups.
* This is valid because the mesh is copied above. */
- float(*vert_normals)[3] = MEM_dupallocN(BKE_mesh_vertex_normals_ensure(me));
+ BKE_mesh_vertex_normals_ensure(me);
+ float(*vert_normals)[3] = BKE_mesh_vertex_normals_for_write(me);
for (i = 0; i < numverts; i++) {
/* Vertex position. */
- mul_m4_v3(flow_ob->obmat, verts[i].co);
- manta_pos_to_cell(fds, verts[i].co);
+ mul_m4_v3(flow_ob->obmat, positions[i]);
+ manta_pos_to_cell(fds, positions[i]);
/* Vertex normal. */
mul_mat3_m4_v3(flow_ob->obmat, vert_normals[i]);
diff --cc source/blender/bmesh/intern/bmesh_mesh_convert.cc
index 780430b91d5,7164b837451..f8eddab11cf
--- a/source/blender/bmesh/intern/bmesh_mesh_convert.cc
+++ b/source/blender/bmesh/intern/bmesh_mesh_convert.cc
@@@ -1006,30 -1005,14 +1006,15 @@@ void BM_mesh_bm_to_me(Main *bmain, BMes
CustomData_copy_mesh_to_bmesh(&bm->pdata, &me->pdata, mask.pmask, CD_SET_DEFAULT, me->totpoly);
}
- MutableSpan<float3> positions;
- MutableSpan<MEdge> medge;
- MutableSpan<MPoly> mpoly;
- MutableSpan<MLoop> mloop;
- if (me->totvert > 0) {
- positions = {static_cast<float3 *>(CustomData_add_layer_named(
- &me->vdata, CD_PROP_FLOAT3, CD_CONSTRUCT, nullptr, me->totvert, "position")),
- me->totvert};
- }
- if (me->totedge > 0) {
- medge = {static_cast<MEdge *>(
- CustomData_add_layer(&me->edata, CD_MEDGE, CD_SET_DEFAULT, nullptr, me->totedge)),
- me->totedge};
- }
- if (me->totpoly > 0) {
- mpoly = {static_cast<MPoly *>(
- CustomData_add_layer(&me->pdata, CD_MPOLY, CD_SET_DEFAULT, nullptr, me->totpoly)),
- me->totpoly};
- }
- if (me->totloop > 0) {
- mloop = {static_cast<MLoop *>(
- CustomData_add_layer(&me->ldata, CD_MLOOP, CD_SET_DEFAULT, nullptr, me->totloop)),
- me->totloop};
- }
- CustomData_add_layer(&me->vdata, CD_MVERT, CD_SET_DEFAULT, nullptr, me->totvert);
++ CustomData_add_layer_named(
++ &me->vdata, CD_PROP_FLOAT3, CD_CONSTRUCT, nullptr, me->totvert, "position");
+ CustomData_add_layer(&me->edata, CD_MEDGE, CD_SET_DEFAULT, nullptr, me->totedge);
+ CustomData_add_layer(&me->ldata, CD_MLOOP, CD_SET_DEFAULT, nullptr, me->totloop);
+ CustomData_add_layer(&me->pdata, CD_MPOLY, CD_SET_DEFAULT, nullptr, me->totpoly);
- MutableSpan<MVert> mvert = me->verts_for_write();
++ MutableSpan<float3> positions = me->positions_for_write();
+ MutableSpan<MEdge> medge = me->edges_for_write();
+ MutableSpan<MPoly> mpoly = me->polys_for_write();
+ MutableSpan<MLoop> mloop = me->loops_for_write();
bool need_selection_vert = false;
bool need_selection_edge = false;
More information about the Bf-blender-cvs
mailing list