Cleanup: Use C++ accessor functions

This commit is contained in:
Hans Goudey 2023-01-20 13:01:00 -06:00
parent 7172a11018
commit fc73e75779
10 changed files with 30 additions and 27 deletions

View File

@ -30,7 +30,7 @@ static void multires_subdivide_create_object_space_linear_grids(Mesh *mesh)
{
const float(*positions)[3] = BKE_mesh_vert_positions(mesh);
const MPoly *polys = BKE_mesh_polys(mesh);
const int *corner_verts = BKE_mesh_corner_verts(mesh);
const blender::Span<int> corner_verts = mesh->corner_verts();
MDisps *mdisps = static_cast<MDisps *>(
CustomData_get_layer_for_write(&mesh->ldata, CD_MDISPS, mesh->totloop));

View File

@ -158,8 +158,8 @@ bool multires_reshape_context_create_from_base_mesh(MultiresReshapeContext *resh
reshape_context->base_positions = BKE_mesh_vert_positions(base_mesh);
reshape_context->base_edges = BKE_mesh_edges(base_mesh);
reshape_context->base_polys = BKE_mesh_polys(base_mesh);
reshape_context->base_corner_verts = BKE_mesh_corner_verts(base_mesh);
reshape_context->base_corner_edges = BKE_mesh_corner_edges(base_mesh);
reshape_context->base_corner_verts = base_mesh->corner_verts().data();
reshape_context->base_corner_edges = base_mesh->corner_edges().data();
reshape_context->subdiv = multires_reshape_create_subdiv(nullptr, object, mmd);
reshape_context->need_free_subdiv = true;
@ -196,8 +196,8 @@ bool multires_reshape_context_create_from_object(MultiresReshapeContext *reshape
reshape_context->base_positions = BKE_mesh_vert_positions(base_mesh);
reshape_context->base_edges = BKE_mesh_edges(base_mesh);
reshape_context->base_polys = BKE_mesh_polys(base_mesh);
reshape_context->base_corner_verts = BKE_mesh_corner_verts(base_mesh);
reshape_context->base_corner_edges = BKE_mesh_corner_edges(base_mesh);
reshape_context->base_corner_verts = base_mesh->corner_verts().data();
reshape_context->base_corner_edges = base_mesh->corner_edges().data();
reshape_context->subdiv = multires_reshape_create_subdiv(depsgraph, object, mmd);
reshape_context->need_free_subdiv = true;
@ -231,8 +231,8 @@ bool multires_reshape_context_create_from_ccg(MultiresReshapeContext *reshape_co
reshape_context->base_positions = BKE_mesh_vert_positions(base_mesh);
reshape_context->base_edges = BKE_mesh_edges(base_mesh);
reshape_context->base_polys = BKE_mesh_polys(base_mesh);
reshape_context->base_corner_verts = BKE_mesh_corner_verts(base_mesh);
reshape_context->base_corner_edges = BKE_mesh_corner_edges(base_mesh);
reshape_context->base_corner_verts = base_mesh->corner_verts().data();
reshape_context->base_corner_edges = base_mesh->corner_edges().data();
reshape_context->subdiv = subdiv_ccg->subdiv;
reshape_context->need_free_subdiv = false;
@ -279,8 +279,8 @@ bool multires_reshape_context_create_from_subdiv(MultiresReshapeContext *reshape
reshape_context->base_positions = BKE_mesh_vert_positions(base_mesh);
reshape_context->base_edges = BKE_mesh_edges(base_mesh);
reshape_context->base_polys = BKE_mesh_polys(base_mesh);
reshape_context->base_corner_verts = BKE_mesh_corner_verts(base_mesh);
reshape_context->base_corner_edges = BKE_mesh_corner_edges(base_mesh);
reshape_context->base_corner_verts = base_mesh->corner_verts().data();
reshape_context->base_corner_edges = base_mesh->corner_edges().data();
reshape_context->cd_vertex_crease = (const float *)CustomData_get_layer(&base_mesh->edata,
CD_CREASE);

View File

@ -643,7 +643,7 @@ static void store_grid_data(MultiresUnsubdivideContext *context,
{
Mesh *original_mesh = context->original_mesh;
const MPoly *polys = BKE_mesh_polys(original_mesh);
const int *corner_verts = BKE_mesh_corner_verts(original_mesh);
const blender::Span<int> corner_verts = original_mesh->corner_verts();
const MPoly *poly = &polys[BM_elem_index_get(f)];
const int corner_vertex_index = BM_elem_index_get(v);
@ -1041,7 +1041,7 @@ static void multires_unsubdivide_extract_grids(MultiresUnsubdivideContext *conte
&bm_base_mesh->ldata, CD_PROP_INT32, base_l_layer_index);
const MPoly *polys = BKE_mesh_polys(base_mesh);
const int *corner_verts = BKE_mesh_corner_verts(base_mesh);
const blender::Span<int> corner_verts = base_mesh->corner_verts();
/* Main loop for extracting the grids. Iterates over the base mesh vertices. */
BM_ITER_MESH (v, &iter, bm_base_mesh, BM_VERTS_OF_MESH) {
@ -1079,8 +1079,11 @@ static void multires_unsubdivide_extract_grids(MultiresUnsubdivideContext *conte
/* Check the orientation of the loops in case that is needed to flip the x and y axis
* when extracting the grid. */
const bool flip_grid = multires_unsubdivide_flip_grid_x_axis(
polys, corner_verts, base_mesh_face_index, base_mesh_loop_index, corner_x_index);
const bool flip_grid = multires_unsubdivide_flip_grid_x_axis(polys,
corner_verts.data(),
base_mesh_face_index,
base_mesh_loop_index,
corner_x_index);
/* Extract the grid for that loop. */
context->base_mesh_grids[base_mesh_loop_index].grid_index = base_mesh_loop_index;

View File

@ -402,8 +402,8 @@ static void init_user_data(OpenSubdiv_Converter *converter,
user_data->vert_positions = BKE_mesh_vert_positions(mesh);
user_data->edges = BKE_mesh_edges(mesh);
user_data->polys = BKE_mesh_polys(mesh);
user_data->corner_verts = BKE_mesh_corner_verts(mesh);
user_data->corner_edges = BKE_mesh_corner_edges(mesh);
user_data->corner_verts = mesh->corner_verts().data();
user_data->corner_edges = mesh->corner_edges().data();
user_data->cd_vertex_crease = static_cast<const float *>(
CustomData_get_layer(&mesh->vdata, CD_CREASE));
user_data->cd_edge_crease = static_cast<const float *>(

View File

@ -83,7 +83,7 @@ static void set_coarse_positions(Subdiv *subdiv,
{
const float(*positions)[3] = BKE_mesh_vert_positions(mesh);
const MPoly *mpoly = BKE_mesh_polys(mesh);
const int *corner_verts = BKE_mesh_corner_verts(mesh);
const blender::Span<int> corner_verts = mesh->corner_verts();
/* Mark vertices which needs new coordinates. */
/* TODO(sergey): This is annoying to calculate this on every update,
* maybe it's better to cache this mapping. Or make it possible to have

View File

@ -1820,8 +1820,8 @@ bool BKE_subdiv_foreach_subdiv_geometry(Subdiv *subdiv,
ctx.coarse_mesh = coarse_mesh;
ctx.coarse_edges = BKE_mesh_edges(coarse_mesh);
ctx.coarse_polys = BKE_mesh_polys(coarse_mesh);
ctx.coarse_corner_verts = BKE_mesh_corner_verts(coarse_mesh);
ctx.coarse_corner_edges = BKE_mesh_corner_edges(coarse_mesh);
ctx.coarse_corner_verts = coarse_mesh->corner_verts().data();
ctx.coarse_corner_edges = coarse_mesh->corner_edges().data();
ctx.settings = mesh_settings;
ctx.foreach_context = context;
subdiv_foreach_ctx_init(subdiv, &ctx);

View File

@ -1221,7 +1221,7 @@ static void sculpt_gesture_trim_geometry_generate(SculptGestureContext *sgcontex
/* Write the front face triangle indices. */
MPoly *polys = BKE_mesh_polys_for_write(trim_operation->mesh);
int *corner_verts = BKE_mesh_corner_verts_for_write(trim_operation->mesh);
blender::MutableSpan<int> corner_verts = trim_operation->mesh->corner_verts_for_write();
MPoly *mp = polys;
int corner_i = 0;
for (int i = 0; i < tot_tris_face; i++, mp++, corner_i += 3) {

View File

@ -318,7 +318,7 @@ static const EnumPropertyItem *weight_paint_sample_enum_itemf(bContext *C,
ED_view3d_viewcontext_init(C, &vc, depsgraph);
me = BKE_mesh_from_object(vc.obact);
const MPoly *polys = BKE_mesh_polys(me);
const int *corner_verts = BKE_mesh_corner_verts(me);
const blender::Span<int> corner_verts = me->corner_verts();
const MDeformVert *dverts = BKE_mesh_deform_verts(me);
if (me && dverts && vc.v3d && vc.rv3d && me->vertex_group_names.first) {
@ -448,7 +448,7 @@ static bool weight_paint_set(Object *ob, float paintweight)
const short paint_selmode = ME_EDIT_PAINT_SEL_MODE(me);
const MPoly *polys = BKE_mesh_polys(me);
const int *corner_verts = BKE_mesh_corner_verts(me);
const blender::Span<int> corner_verts = me->corner_verts();
MDeformVert *dvert = BKE_mesh_deform_verts_for_write(me);
if (me->totpoly == 0 || dvert == nullptr) {
@ -478,7 +478,7 @@ static bool weight_paint_set(Object *ob, float paintweight)
}
do {
const int vidx = corner_verts[mp->loopstart + fidx];
const int vidx = corner_verts[mp->loopstart + fidx];
if (!dvert[vidx].flag) {
if ((paint_selmode == SCE_SELECT_VERTEX) && !(select_vert && select_vert[vidx])) {

View File

@ -802,7 +802,7 @@ static void sculpt_expand_grids_to_faces_falloff(SculptSession *ss,
static void sculpt_expand_vertex_to_faces_falloff(Mesh *mesh, ExpandCache *expand_cache)
{
const MPoly *polys = BKE_mesh_polys(mesh);
const int *corner_verts = BKE_mesh_corner_verts(mesh);
const blender::Span<int> corner_verts = mesh->corner_verts();
for (int p = 0; p < mesh->totpoly; p++) {
const MPoly *poly = &polys[p];
@ -1979,7 +1979,7 @@ static void sculpt_expand_delete_face_set_id(int *r_face_sets,
const int totface = ss->totfaces;
MeshElemMap *pmap = ss->pmap;
const MPoly *polys = BKE_mesh_polys(mesh);
const int *corner_verts = BKE_mesh_corner_verts(mesh);
const blender::Span<int> corner_verts = mesh->corner_verts();
/* Check that all the face sets IDs in the mesh are not equal to `delete_id`
* before attempting to delete it. */

View File

@ -89,8 +89,8 @@ static float *SCULPT_geodesic_mesh_create(Object *ob,
float(*vert_positions)[3] = SCULPT_mesh_deformed_positions_get(ss);
const MEdge *edges = BKE_mesh_edges(mesh);
const MPoly *polys = BKE_mesh_polys(mesh);
const int *corner_verts = BKE_mesh_corner_verts(mesh);
const int *corner_edges = BKE_mesh_corner_edges(mesh);
const blender::Span<int> corner_verts = mesh->corner_verts();
const blender::Span<int> corner_edges = mesh->corner_edges();
float *dists = static_cast<float *>(MEM_malloc_arrayN(totvert, sizeof(float), __func__));
BLI_bitmap *edge_tag = BLI_BITMAP_NEW(totedge, "edge tag");
@ -102,7 +102,7 @@ static float *SCULPT_geodesic_mesh_create(Object *ob,
mesh->totedge,
polys,
mesh->totpoly,
corner_edges,
corner_edges.data(),
mesh->totloop);
}
if (!ss->vemap) {