[Bf-blender-cvs] [87644f9fda8] refactor-mesh-remove-pointers: Progress
Hans Goudey
noreply at git.blender.org
Wed Jul 20 22:56:43 CEST 2022
Commit: 87644f9fda8e22218f23574e4abc2ba887ca3f15
Author: Hans Goudey
Date: Wed Jul 20 15:56:35 2022 -0500
Branches: refactor-mesh-remove-pointers
https://developer.blender.org/rB87644f9fda8e22218f23574e4abc2ba887ca3f15
Progress
===================================================================
M source/blender/blenkernel/BKE_cloth.h
M source/blender/blenkernel/BKE_mesh.h
M source/blender/blenkernel/intern/armature_deform.c
M source/blender/blenkernel/intern/bvhutils.cc
M source/blender/blenkernel/intern/data_transfer.c
M source/blender/blenkernel/intern/mesh.cc
M source/blender/blenkernel/intern/mesh_evaluate.cc
M source/blender/blenloader/intern/versioning_250.c
M source/blender/blenloader/intern/versioning_290.c
M source/blender/editors/armature/armature_skinning.c
M source/blender/editors/armature/meshlaplacian.c
M source/blender/editors/curves/intern/curves_ops.cc
M source/blender/editors/mesh/mesh_data.cc
M source/blender/editors/mesh/mesh_mirror.c
M source/blender/editors/mesh/meshtools.cc
M source/blender/editors/object/object_bake_api.c
M source/blender/editors/object/object_modifier.cc
M source/blender/editors/object/object_remesh.cc
M source/blender/editors/object/object_vgroup.c
M source/blender/editors/physics/particle_object.c
M source/blender/editors/sculpt_paint/paint_utils.c
M source/blender/editors/sculpt_paint/paint_vertex.cc
M source/blender/editors/sculpt_paint/paint_vertex_color_ops.cc
M source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c
M source/blender/editors/sculpt_paint/paint_vertex_weight_utils.c
M source/blender/editors/space_view3d/drawobject.c
M source/blender/editors/space_view3d/view3d_iterators.c
M source/blender/io/alembic/intern/abc_customdata.cc
M source/blender/makesdna/DNA_mesh_types.h
M source/blender/makesrna/intern/rna_mesh.c
M source/blender/makesrna/intern/rna_mesh_api.c
M source/blender/makesrna/intern/rna_particle.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h
index 6af38b14ea4..f5ffd1190b1 100644
--- a/source/blender/blenkernel/BKE_cloth.h
+++ b/source/blender/blenkernel/BKE_cloth.h
@@ -79,7 +79,7 @@ typedef struct Cloth {
int last_frame;
float initial_mesh_volume; /* Initial volume of the mesh. Used for pressure */
float average_acceleration[3]; /* Moving average of overall acceleration. */
- struct MEdge *edges; /* Used for hair collisions. */
+ const struct MEdge *edges; /* Used for hair collisions. */
struct EdgeSet *sew_edge_graph; /* Sewing edges represented using a GHash */
} Cloth;
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 63272b8d968..bd1ee9fb443 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -800,19 +800,21 @@ void BKE_mesh_mdisp_flip(struct MDisps *md, bool use_loop_mdisp_flip);
* \param mloop: the full loops array.
* \param ldata: the loops custom data.
*/
-void BKE_mesh_polygon_flip_ex(struct MPoly *mpoly,
+void BKE_mesh_polygon_flip_ex(const struct MPoly *mpoly,
struct MLoop *mloop,
struct CustomData *ldata,
float (*lnors)[3],
struct MDisps *mdisp,
bool use_loop_mdisp_flip);
-void BKE_mesh_polygon_flip(struct MPoly *mpoly, struct MLoop *mloop, struct CustomData *ldata);
+void BKE_mesh_polygon_flip(const struct MPoly *mpoly,
+ struct MLoop *mloop,
+ struct CustomData *ldata);
/**
* Flip (invert winding of) all polygons (used to inverse their normals).
*
* \note Invalidates tessellation, caller must handle that.
*/
-void BKE_mesh_polygons_flip(struct MPoly *mpoly,
+void BKE_mesh_polygons_flip(const struct MPoly *mpoly,
struct MLoop *mloop,
struct CustomData *ldata,
int totpoly);
diff --git a/source/blender/blenkernel/intern/armature_deform.c b/source/blender/blenkernel/intern/armature_deform.c
index 0769049e9a9..c33d3d16aa6 100644
--- a/source/blender/blenkernel/intern/armature_deform.c
+++ b/source/blender/blenkernel/intern/armature_deform.c
@@ -35,6 +35,7 @@
#include "BKE_deform.h"
#include "BKE_editmesh.h"
#include "BKE_lattice.h"
+#include "BKE_mesh.h"
#include "DEG_depsgraph_build.h"
@@ -407,8 +408,9 @@ static void armature_vert_task(void *__restrict userdata,
if (data->use_dverts || data->armature_def_nr != -1) {
if (data->me_target) {
BLI_assert(i < data->me_target->totvert);
- if (data->me_target->dvert != NULL) {
- dvert = data->me_target->dvert + i;
+ const MDeformVert *dverts = BKE_mesh_deform_verts(data->me_target);
+ if (dverts != NULL) {
+ dvert = dverts + i;
}
else {
dvert = NULL;
@@ -492,8 +494,8 @@ static void armature_deform_coords_impl(const Object *ob_arm,
if (ob_target->type == OB_MESH) {
if (em_target == NULL) {
- Mesh *me = ob_target->data;
- dverts = me->dvert;
+ const Mesh *me = ob_target->data;
+ dverts = BKE_mesh_deform_verts(me);
if (dverts) {
dverts_len = me->totvert;
}
@@ -521,7 +523,7 @@ static void armature_deform_coords_impl(const Object *ob_arm,
use_dverts = (cd_dvert_offset != -1);
}
else if (me_target) {
- use_dverts = (me_target->dvert != NULL);
+ use_dverts = (BKE_mesh_deform_verts(me_target) != NULL);
}
else if (dverts) {
use_dverts = true;
diff --git a/source/blender/blenkernel/intern/bvhutils.cc b/source/blender/blenkernel/intern/bvhutils.cc
index 3b524aff6ee..4d861b1de28 100644
--- a/source/blender/blenkernel/intern/bvhutils.cc
+++ b/source/blender/blenkernel/intern/bvhutils.cc
@@ -1303,8 +1303,9 @@ BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
case BVHTREE_FROM_FACES:
BLI_assert(!(mesh->totface == 0 && mesh->totpoly != 0));
+ const MFace *mfaces = (const MFace *)CustomData_get_layer(&mesh->fdata, CD_MFACE);
data->tree = bvhtree_from_mesh_faces_create_tree(
- 0.0f, tree_type, 6, vertices.data(), mesh->mface, mesh->totface, nullptr, -1);
+ 0.0f, tree_type, 6, vertices.data(), mfaces, mesh->totface, nullptr, -1);
break;
case BVHTREE_FROM_LOOPTRI_NO_HIDDEN:
diff --git a/source/blender/blenkernel/intern/data_transfer.c b/source/blender/blenkernel/intern/data_transfer.c
index eeff5587b4e..a6aae4e84bf 100644
--- a/source/blender/blenkernel/intern/data_transfer.c
+++ b/source/blender/blenkernel/intern/data_transfer.c
@@ -1033,7 +1033,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
mix_factor,
mix_weights,
BKE_mesh_edges(me_src),
- BKE_mesh_edges(me_dst),
+ BKE_mesh_edges_for_write(me_dst),
me_src->totedge,
me_dst->totedge,
elem_size,
@@ -1065,7 +1065,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
mix_factor,
mix_weights,
BKE_mesh_edges(me_src),
- BKE_mesh_edges(me_dst),
+ BKE_mesh_edges_for_write(me_dst),
me_src->totedge,
me_dst->totedge,
elem_size,
@@ -1183,7 +1183,7 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map,
mix_factor,
mix_weights,
BKE_mesh_polygons(me_src),
- BKE_mesh_polygons(me_dst),
+ BKE_mesh_polygons_for_write(me_dst),
me_src->totpoly,
me_dst->totpoly,
elem_size,
diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc
index e921b18d3a8..f5f46c878e0 100644
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -278,6 +278,9 @@ static void mesh_blend_read_data(BlendDataReader *reader, ID *id)
BLO_read_data_address(reader, &mesh->mface);
BLO_read_data_address(reader, &mesh->tface);
BLO_read_data_address(reader, &mesh->mtface);
+ /* Read mcol for compatibility with old files. */
+ BLO_read_data_address(reader, &mesh->mcol);
+
BLO_read_data_address(reader, &mesh->mloopuv);
BLO_read_data_address(reader, &mesh->mselect);
@@ -927,8 +930,6 @@ static void mesh_tessface_clear_intern(Mesh *mesh, int free_customdata)
CustomData_reset(&mesh->fdata);
}
- mesh->mface = nullptr;
- mesh->mtface = nullptr;
mesh->totface = 0;
}
@@ -1378,9 +1379,9 @@ void BKE_mesh_material_index_remove(Mesh *me, short index)
}
}
- MFace *mf;
+ MFace *mf = (MFace *)CustomData_get_layer(&me->fdata, CD_MFACE);
int i;
- for (mf = me->mface, i = 0; i < me->totface; i++, mf++) {
+ for (i = 0; i < me->totface; i++, mf++) {
if (mf->mat_nr && mf->mat_nr >= index) {
mf->mat_nr--;
}
@@ -1396,9 +1397,9 @@ bool BKE_mesh_material_index_used(Mesh *me, short index)
}
}
- MFace *mf;
+ MFace *mf = (MFace *)CustomData_get_layer(&me->fdata, CD_MFACE);
int i;
- for (mf = me->mface, i = 0; i < me->totface; i++, mf++) {
+ for (i = 0; i < me->totface; i++, mf++) {
if (mf->mat_nr == index) {
return true;
}
@@ -1414,9 +1415,9 @@ void BKE_mesh_material_index_clear(Mesh *me)
poly.mat_nr = 0;
}
- MFace *mf;
+ MFace *mf = (MFace *)CustomData_get_layer(&me->fdata, CD_MFACE);
int i;
- for (mf = me->mface, i = 0; i < me->totface; i++, mf++) {
+ for (i = 0; i < me->totface; i++, mf++) {
mf->mat_nr = 0;
}
}
diff --git a/source/blender/blenkernel/intern/mesh_evaluate.cc b/source/blender/blenkernel/intern/mesh_evaluate.cc
index 37b5e3179f0..153f70a6342 100644
--- a/source/blender/blenkernel/intern/mesh_evaluate.cc
+++ b/source/blender/blenkernel/intern/mesh_evaluate.cc
@@ -667,7 +667,7 @@ void BKE_mesh_mdisp_flip(MDisps *md, const bool use_loop_mdisp_flip)
}
}
-void BKE_mesh_polygon_flip_ex(MPoly *mpoly,
+void BKE_mesh_polygon_flip_ex(const MPoly *mpoly,
MLoop *mloop,
CustomData *ldata,
float (*lnors)[3],
@@ -710,16 +710,16 @@ void BKE_mesh_polygon_flip_ex(MPoly *mpoly,
}
}
-void BKE_mesh_polygon_flip(MPoly *mpoly, MLoop *mloop, CustomData *ldata)
+void BKE_mesh_polygon_flip(const MPoly *mpoly, MLoop *mloop, CustomData *ldata)
{
MDisps *mdisp = (MDisps *)CustomData_get_layer(ldata, CD_MDISPS);
BKE_mesh_polygon_flip_ex(mpoly, mloop, ldata, nullptr, mdisp, true);
}
-void BKE_mesh_polygons_flip(MPoly *mpoly, MLoop *mloop, CustomData *ldata, int totpoly)
+void BKE_mesh_polygons_flip(const MPoly *mpoly, MLoop *mloop, CustomData *ldata, int totpoly)
{
MDisps *mdisp = (MDisps *)CustomData_get_layer(ldata, CD_MDISPS);
- MPoly *mp;
+ const MPoly *mp;
int i;
for (mp = mpoly, i = 0; i < totpoly; mp++, i++) {
diff --git a/source/blender/blenloader/intern/versioning_250.c b/source/blender/blenloader/intern/versioning_250.c
index ffa224ea9e0..df3e983a6c0 100644
--- a/source/blender/blenloader/intern/versioning_250.c
+++ b/source/blender/blenloader/intern/versioning_250.c
@@ -54,6 +54,7 @@
#include "BKE_global.h" /* for G */
#include "BKE_lib_id.h"
#include "
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list