[Bf-blender-cvs] [1b2a2e08627] blender2.8: Cleanup: use new BKE_mesh_iterator foreach_mapped helpers in WPaint gradient code.

Bastien Montagne noreply at git.blender.org
Wed Jun 20 11:30:31 CEST 2018


Commit: 1b2a2e086275a6312a8c975c1636c83273f84d40
Author: Bastien Montagne
Date:   Wed Jun 20 11:09:52 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB1b2a2e086275a6312a8c975c1636c83273f84d40

Cleanup: use new BKE_mesh_iterator foreach_mapped helpers in WPaint gradient code.

===================================================================

M	source/blender/editors/sculpt_paint/paint_vertex_weight_ops.c

===================================================================

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);



More information about the Bf-blender-cvs mailing list