Commit: c07fdad03deb2d86d7c5b43028f5f2f8190ee5da Author: Hans Goudey Date: Fri Jan 20 07:59:38 2023 -0600 Branches: master https://developer.blender.org/rBc07fdad03deb2d86d7c5b43028f5f2f8190ee5da
Cleanup: Move multires files to C++ For continued refactoring of the Mesh data structure. See T103343. =================================================================== M source/blender/blenkernel/BKE_multires.h M source/blender/blenkernel/CMakeLists.txt R083 source/blender/blenkernel/intern/multires_reshape.c source/blender/blenkernel/intern/multires_reshape.cc R090 source/blender/blenkernel/intern/multires_reshape_apply_base.c source/blender/blenkernel/intern/multires_reshape_apply_base.cc R086 source/blender/blenkernel/intern/multires_reshape_ccg.c source/blender/blenkernel/intern/multires_reshape_ccg.cc R083 source/blender/blenkernel/intern/multires_reshape_smooth.c source/blender/blenkernel/intern/multires_reshape_smooth.cc R091 source/blender/blenkernel/intern/multires_reshape_subdivide.c source/blender/blenkernel/intern/multires_reshape_subdivide.cc R084 source/blender/blenkernel/intern/multires_reshape_util.c source/blender/blenkernel/intern/multires_reshape_util.cc R071 source/blender/blenkernel/intern/multires_reshape_vertcos.c source/blender/blenkernel/intern/multires_reshape_vertcos.cc R100 source/blender/blenkernel/intern/multires_subdiv.c source/blender/blenkernel/intern/multires_subdiv.cc R092 source/blender/blenkernel/intern/multires_unsubdivide.c source/blender/blenkernel/intern/multires_unsubdivide.cc R081 source/blender/blenkernel/intern/multires_versioning.c source/blender/blenkernel/intern/multires_versioning.cc M source/blender/blenkernel/intern/subdiv_converter.h =================================================================== diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index 7c8c13ac8b2..5faafbe957c 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -156,7 +156,7 @@ void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float int mdisp_rot_face_to_crn( struct MPoly *mpoly, int face_side, float u, float v, float *x, float *y); -/* Reshaping, define in multires_reshape.c */ +/* Reshaping, define in multires_reshape.cc */ bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph, struct Object *object, @@ -204,7 +204,7 @@ void multiresModifier_subdivide_to_level(struct Object *object, int top_level, eMultiresSubdivideModeType mode); -/* Subdivision integration, defined in multires_subdiv.c */ +/* Subdivision integration, defined in multires_subdiv.cc */ struct SubdivSettings; struct SubdivToMeshSettings; diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt index 77c16b6924c..bfef13649e3 100644 --- a/source/blender/blenkernel/CMakeLists.txt +++ b/source/blender/blenkernel/CMakeLists.txt @@ -216,16 +216,16 @@ set(SRC intern/modifier.cc intern/movieclip.c intern/multires.cc - intern/multires_reshape.c - intern/multires_reshape_apply_base.c - intern/multires_reshape_ccg.c - intern/multires_reshape_smooth.c - intern/multires_reshape_subdivide.c - intern/multires_reshape_util.c - intern/multires_reshape_vertcos.c - intern/multires_subdiv.c - intern/multires_unsubdivide.c - intern/multires_versioning.c + intern/multires_reshape.cc + intern/multires_reshape_apply_base.cc + intern/multires_reshape_ccg.cc + intern/multires_reshape_smooth.cc + intern/multires_reshape_subdivide.cc + intern/multires_reshape_util.cc + intern/multires_reshape_vertcos.cc + intern/multires_subdiv.cc + intern/multires_unsubdivide.cc + intern/multires_versioning.cc intern/nla.c intern/node.cc intern/node_runtime.cc diff --git a/source/blender/blenkernel/intern/multires_reshape.c b/source/blender/blenkernel/intern/multires_reshape.cc similarity index 83% rename from source/blender/blenkernel/intern/multires_reshape.c rename to source/blender/blenkernel/intern/multires_reshape.cc index 17e4860ab1b..522e7632b94 100644 --- a/source/blender/blenkernel/intern/multires_reshape.c +++ b/source/blender/blenkernel/intern/multires_reshape.cc @@ -30,9 +30,9 @@ /** \name Reshape from object * \{ */ -bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph, - struct Object *object, - struct MultiresModifierData *mmd, +bool multiresModifier_reshapeFromVertcos(Depsgraph *depsgraph, + Object *object, + MultiresModifierData *mmd, const float (*vert_coords)[3], const int num_vert_coords) { @@ -41,7 +41,7 @@ bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph, return false; } multires_reshape_store_original_grids(&reshape_context); - multires_reshape_ensure_grids(object->data, reshape_context.top.level); + multires_reshape_ensure_grids(static_cast<Mesh *>(object->data), reshape_context.top.level); if (!multires_reshape_assign_final_coords_from_vertcos( &reshape_context, vert_coords, num_vert_coords)) { multires_reshape_context_free(&reshape_context); @@ -53,13 +53,13 @@ bool multiresModifier_reshapeFromVertcos(struct Depsgraph *depsgraph, return true; } -bool multiresModifier_reshapeFromObject(struct Depsgraph *depsgraph, - struct MultiresModifierData *mmd, - struct Object *dst, - struct Object *src) +bool multiresModifier_reshapeFromObject(Depsgraph *depsgraph, + MultiresModifierData *mmd, + Object *dst, + Object *src) { - struct Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); - struct Object *src_eval = DEG_get_evaluated_object(depsgraph, src); + Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); + Object *src_eval = DEG_get_evaluated_object(depsgraph, src); Mesh *src_mesh_eval = mesh_get_eval_final(depsgraph, scene_eval, src_eval, &CD_MASK_BAREMESH); int num_deformed_verts; @@ -79,10 +79,10 @@ bool multiresModifier_reshapeFromObject(struct Depsgraph *depsgraph, /** \name Reshape from modifier * \{ */ -bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph, - struct Object *object, - struct MultiresModifierData *mmd, - struct ModifierData *deform_md) +bool multiresModifier_reshapeFromDeformModifier(Depsgraph *depsgraph, + Object *object, + MultiresModifierData *mmd, + ModifierData *deform_md) { MultiresModifierData highest_mmd = *mmd; highest_mmd.sculptlvl = highest_mmd.totlvl; @@ -96,14 +96,14 @@ bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph, float(*deformed_verts)[3] = BKE_mesh_vert_coords_alloc(multires_mesh, &num_deformed_verts); /* Apply deformation modifier on the multires, */ - const ModifierEvalContext modifier_ctx = { - .depsgraph = depsgraph, - .object = object, - .flag = MOD_APPLY_USECACHE | MOD_APPLY_IGNORE_SIMPLIFY, - }; + ModifierEvalContext modifier_ctx{}; + modifier_ctx.depsgraph = depsgraph; + modifier_ctx.object = object; + modifier_ctx.flag = MOD_APPLY_USECACHE | MOD_APPLY_IGNORE_SIMPLIFY; + BKE_modifier_deform_verts( deform_md, &modifier_ctx, multires_mesh, deformed_verts, multires_mesh->totvert); - BKE_id_free(NULL, multires_mesh); + BKE_id_free(nullptr, multires_mesh); /* Reshaping */ bool result = multiresModifier_reshapeFromVertcos( @@ -121,9 +121,7 @@ bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph, /** \name Reshape from grids * \{ */ -bool multiresModifier_reshapeFromCCG(const int tot_level, - Mesh *coarse_mesh, - struct SubdivCCG *subdiv_ccg) +bool multiresModifier_reshapeFromCCG(const int tot_level, Mesh *coarse_mesh, SubdivCCG *subdiv_ccg) { MultiresReshapeContext reshape_context; if (!multires_reshape_context_create_from_ccg( @@ -159,8 +157,8 @@ void multiresModifier_subdivide(Object *object, multiresModifier_subdivide_to_level(object, mmd, top_level, mode); } -void multiresModifier_subdivide_to_level(struct Object *object, - struct MultiresModifierData *mmd, +void multiresModifier_subdivide_to_level(Object *object, + MultiresModifierData *mmd, const int top_level, const eMultiresSubdivideModeType mode) { @@ -168,7 +166,7 @@ void multiresModifier_subdivide_to_level(struct Object *object, return; } - Mesh *coarse_mesh = object->data; + Mesh *coarse_mesh = static_cast<Mesh *>(object->data); if (coarse_mesh->totloop == 0) { /* If there are no loops in the mesh implies there is no CD_MDISPS as well. So can early output * from here as there is nothing to subdivide. */ @@ -182,7 +180,7 @@ void multiresModifier_subdivide_to_level(struct Object *object, const bool has_mdisps = CustomData_has_layer(&coarse_mesh->ldata, CD_MDISPS); if (!has_mdisps) { CustomData_add_layer( - &coarse_mesh->ldata, CD_MDISPS, CD_SET_DEFAULT, NULL, coarse_mesh->totloop); + &coarse_mesh->ldata, CD_MDISPS, CD_SET_DEFAULT, nullptr, coarse_mesh->totloop); } /* NOTE: Subdivision happens from the top level of the existing multires modifier. If it is set @@ -238,9 +236,7 @@ void multiresModifier_subdivide_to_level(struct Object *object, /** \name Apply base * \{ */ -void multiresModifier_base_apply(struct Depsgraph *depsgraph, - Object *object, - MultiresModifierData *mmd) +void multiresModifier_base_apply(Depsgraph *depsgraph, Object *object, MultiresModifierData *mmd) { multires_force_sculpt_rebuild(object); diff --git a/source/blender/blenkernel/intern/multires_reshape_apply_base.c b/source/blender/blenkernel/intern/multires_reshape_apply_base.cc similarity index 90% rename from source/blender/blenkernel/intern/multires_reshape_apply_base.c rename to source/blender/blenkernel/intern/multires_reshape_apply_base.cc index 0da5d814992..d491f30a1ad 100644 --- a/source/blender/blenkernel/intern/multires_reshape_apply_base.c +++ b/source/blender/blenkernel/intern/multires_reshape_apply_base.cc @@ -81,8 +81,8 @@ void multires_reshape_apply_base_refit_base_mesh(MultiresReshapeContext *reshape base_mesh->totpoly, base_mesh->totloop); - float(*origco)[3] = MEM_calloc_arrayN( - base_mesh->totvert, sizeof(float[3]), "multires apply base origco"); + float(*origco)[3] = static_cast<float(*)[3]>( + MEM_calloc_arrayN(base_mesh->totvert, sizeof(float[3]), __func__)); for (int i = 0; i < base_mesh->totvert; i++) { copy_v3_v3(origco[i], base_positions[i]); } @@ -115,15 +115,15 @@ void multires_reshape_apply_base_refit_base_mesh(MultiresReshapeContext *reshape for (int j = 0; j < pmap[i].count; j++) { const MPoly *p = &reshape_context->base_polys[pmap[i].indices[j]]; MPoly fake_poly; - MLoop *fake_loops; - float(*fake_co)[3]; float no[3]; /* Set up poly, loops, and coords in order to call BKE_mesh_c @@ 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