[Bf-blender-cvs] [9e277cd5e1f] soc-2017-vertex_paint: vertex selection now works fine with occluded mode

Darshan Kadu noreply at git.blender.org
Thu Aug 3 13:51:59 CEST 2017


Commit: 9e277cd5e1f36c9d3fd156c0a4ac63bdf3cb3c6e
Author: Darshan Kadu
Date:   Thu Aug 3 17:21:20 2017 +0530
Branches: soc-2017-vertex_paint
https://developer.blender.org/rB9e277cd5e1f36c9d3fd156c0a4ac63bdf3cb3c6e

vertex selection now works fine with occluded mode

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

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

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

diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index f25b2ed7691..e73090d6217 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -2827,7 +2827,7 @@ static void do_wpaint_brush_blur_task_cb_ex(
 			const float grid_alpha = ccgdm ? 1.0f / vd.gridsize : 1.0f;
 			const char v_flag = data->me->mvert[v_index].flag;
 			/* If the vertex is selected */
-			if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || non_occlude) {
+			if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || (non_occlude && !use_vert_sel)) {
 				/* Get the average poly weight */
 				int total_hit_loops = 0;
 				float weight_final = 0.0f;
@@ -2911,7 +2911,7 @@ static void do_wpaint_brush_smear_task_cb_ex(
 					const char v_flag = data->me->mvert[v_index].flag;
 
 					/* If the vertex is selected */
-					if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || non_occlude) {
+					if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || (non_occlude && !use_vert_sel)) {
 						/* Minimum dot product between brush direction and current
 						 * to neighbor direction is 0.0, meaning orthogonal. */
 						float stroke_dot_max = 0.0f;
@@ -3000,7 +3000,7 @@ static void do_wpaint_brush_draw_task_cb_ex(
 
 			const char v_flag = data->me->mvert[v_index].flag;
 			/* If the vertex is selected */
-			if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || non_occlude) {
+			if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || (non_occlude && !use_vert_sel)) {
 				const float view_dot = (vd.no && !non_occlude) ? dot_vf3vs3(cache->sculpt_normal_symm, vd.no) : 1.0;
 				if (view_dot > 0.0f) {
 					const float brush_fade = BKE_brush_curve_strength(brush, sqrtf(test.dist), cache->radius);
@@ -3790,7 +3790,7 @@ static void do_vpaint_brush_draw_task_cb_ex(
 			const bool v_flag = data->me->mvert[v_index].flag;
 
 			/* If the vertex is selected for painting. */
-			if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || non_occlude) {
+			if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || (non_occlude && !use_vert_sel)) {
 				/* Calc the dot prod. between ray norm on surf and current vert
 				 * (ie splash prevention factor), and only paint front facing verts. */
 			    float view_dot = (vd.no && !non_occlude) ? dot_vf3vs3(cache->sculpt_normal_symm, vd.no) : 1.0;
@@ -3887,7 +3887,7 @@ static void do_vpaint_brush_blur_task_cb_ex(
 				const float brush_fade = BKE_brush_curve_strength(brush, test.dist, cache->radius);
 
 				/* If the vertex is selected for painting. */
-				if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || non_occlude) {
+				if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || (non_occlude && !use_vert_sel)) {
 					/* Get the average poly color */
 					unsigned int color_final = 0;
 					int total_hit_loops = 0;
@@ -3991,7 +3991,7 @@ static void do_vpaint_brush_smear_task_cb_ex(
 				const bool v_flag = data->me->mvert[v_index].flag;
 
 				/* if the vertex is selected for painting. */
-				if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || non_occlude) {
+				if (!(use_face_sel || use_vert_sel) || v_flag & SELECT || (non_occlude && !use_vert_sel)) {
 					/* Calc the dot prod. between ray norm on surf and current vert
 					(ie splash prevention factor), and only paint front facing verts. */
 					const float view_dot = (vd.no && !non_occlude) ? dot_vf3vs3(cache->sculpt_normal_symm, vd.no) : 1.0;




More information about the Bf-blender-cvs mailing list