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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs