From 1b2a2e086275a6312a8c975c1636c83273f84d40 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 20 Jun 2018 11:09:52 +0200 Subject: Cleanup: use new BKE_mesh_iterator foreach_mapped helpers in WPaint gradient code. --- .../editors/sculpt_paint/paint_vertex_weight_ops.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'source/blender/editors/sculpt_paint') diff --git a/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c b/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c index 7d241835b62..01c62704db3 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c +++ b/source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c @@ -51,6 +51,7 @@ #include "BKE_context.h" #include "BKE_deform.h" #include "BKE_mesh.h" +#include "BKE_mesh_iterators.h" #include "BKE_mesh_mapping.h" #include "BKE_mesh_runtime.h" #include "BKE_modifier.h" @@ -785,31 +786,16 @@ static int paint_weight_gradient_exec(bContext *C, wmOperator *op) ED_view3d_init_mats_rv3d(ob, ar->regiondata); Mesh *me_eval = mesh_get_eval_final(depsgraph, scene, ob, scene->customdata_mask | CD_MASK_ORIGINDEX); - int *mv_orig_indices = CustomData_get_layer(&me_eval->vdata, CD_ORIGINDEX); - MVert *mv = me_eval->mvert; - /* NULL origindex is valid when wehave no generative modifiers... */ - BLI_assert(mv_orig_indices != NULL || me_eval->totvert == me->totvert); if (data.is_init) { data.vert_visit = BLI_BITMAP_NEW(me->totvert, __func__); - /* TODO add some similar helpers as DM's foreachMappedXXX callbacks, for evaluated mesh? */ - for (int mv_idx = 0; mv_idx < me_eval->totvert; mv_idx++, mv++) { - const int mv_orig_idx = mv_orig_indices != NULL ? mv_orig_indices[mv_idx] : mv_idx; - if (mv_orig_idx != ORIGINDEX_NONE) { - gradientVertInit__mapFunc(&data, mv_orig_idx, mv->co, NULL, NULL); - } - } + BKE_mesh_foreach_mapped_vert(me_eval, gradientVertInit__mapFunc, &data, MESH_FOREACH_NOP); MEM_freeN(data.vert_visit); data.vert_visit = NULL; } else { - for (int mv_idx = 0; mv_idx < me_eval->totvert; mv_idx++, mv++) { - const int mv_orig_idx = mv_orig_indices != NULL ? mv_orig_indices[mv_idx] : mv_idx; - if (mv_orig_idx != ORIGINDEX_NONE) { - gradientVertUpdate__mapFunc(&data, mv_orig_idx, mv->co, NULL, NULL); - } - } + BKE_mesh_foreach_mapped_vert(me_eval, gradientVertUpdate__mapFunc, &data, MESH_FOREACH_NOP); } DEG_id_tag_update(&ob->id, OB_RECALC_DATA); -- cgit v1.2.3