[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37138] branches/soc-2011-onion: Revision: 29285

Jason Wilkins Jason.A.Wilkins at gmail.com
Fri Jun 3 18:49:49 CEST 2011


Revision: 37138
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37138
Author:   jwilkins
Date:     2011-06-03 16:49:49 +0000 (Fri, 03 Jun 2011)
Log Message:
-----------
Revision: 29285
Author: nicholasbishop
Date: 4:44:11 PM, Sunday, June 06, 2010
Message:
* Sculpting now pays attention to the mask

Modified Paths:
--------------
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt.c

Property Changed:
----------------
    branches/soc-2011-onion/


Property changes on: branches/soc-2011-onion
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-29265,29277,29284,29324,29350
/trunk/blender:36833-37054
   + /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-29285,29324,29350
/trunk/blender:36833-37054

Modified: branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt.c	2011-06-03 16:20:20 UTC (rev 37137)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/sculpt.c	2011-06-03 16:49:49 UTC (rev 37138)
@@ -823,7 +823,7 @@
 
 /* Return a multiplier for brush strength on a particular vertex. */
 /* XXX: a lot of this code is the same as code in paint_stroke for loading the overlay */
-static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len)
+static float tex_strength(SculptSession *ss, Brush *br, float *point, float *mask, const float len)
 {
 	MTex *mtex = &br->mtex;
 	float avg= 1;
@@ -955,6 +955,9 @@
 
 	avg *= brush_curve_strength(br, len, ss->cache->radius); /* Falloff curve */
 
+	if (mask)
+		avg *= *mask;
+
 	return avg;
 }
 
@@ -1207,7 +1210,7 @@
 		origno= unode->no;
 
 		if(sculpt_brush_test(&test, vd.co)) {
-			const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[vd.i]);
+			const float fade = bstrength*tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[vd.i]);
 			float avg[3], val[3];
 
 			neighbor_average(ss, avg, vd.vert_indices[vd.i]);
@@ -1307,7 +1310,7 @@
 				fno= data[index].no;
 
 				if(sculpt_brush_test(&test, co)) {
-					const float fade = bstrength*tex_strength(ss, brush, co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[k]);
+					const float fade = bstrength*tex_strength(ss, brush, co, &(data[x + y*gridsize].mask), test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[k]);
 					float *avg, val[3];
 					float n;
 
@@ -1419,7 +1422,7 @@
 			if (sculpt_brush_test(&test, vd.co)) {
 			//if(sculpt_brush_test_cyl(&test, vd.co, ss->cache->location, an)) {
 				/* offset vertex */
-				float fade = tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				float fade = tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_v3fl(proxy[vd.i], offset, fade);
 
@@ -1473,7 +1476,7 @@
 			if (sculpt_brush_test(&test, vd.co)) {
 			//if(sculpt_brush_test_cyl(&test, vd.co, ss->cache->location, an)) {
 				/* offset vertex */
-				float fade = tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				float fade = tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_v3fl(proxy[vd.i], offset, fade);
 
@@ -1541,7 +1544,7 @@
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, vd.co)) {
 				/* offset vertex */
-				const float fade = tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_start, an, origno[vd.i]);
+				const float fade = tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_start, an, origno[vd.i]);
 				float val1[3];
 				float val2[3];
 
@@ -1591,7 +1594,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, vd.co)) {
-				float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[vd.i]);
+				float fade = bstrength*tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[vd.i]);
 				float val[3];
 
 				sub_v3_v3v3(val, test.location, vd.co);
@@ -1657,7 +1660,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, origco[vd.i])) {
-				const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_v3fl(proxy[vd.i], grab_delta, fade);
 
@@ -1707,7 +1710,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, vd.co)) {
-				const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				const float fade = bstrength*tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_v3fl(proxy[vd.i], cono, fade);
 
@@ -1765,7 +1768,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, vd.co)) {
-				const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				const float fade = bstrength*tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_v3fl(proxy[vd.i], grab_delta, fade);
 
@@ -1817,7 +1820,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, origco[vd.i])) {
-				const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_v3fl(proxy[vd.i], cono, fade);
 
@@ -1866,7 +1869,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, origco[vd.i])) {
-				const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+				const float fade = bstrength*tex_strength(ss, brush, origco[vd.i], vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 				mul_v3_m3v3(proxy[vd.i], m, origco[vd.i]);
 				sub_v3_v3(proxy[vd.i], origco[vd.i]);
@@ -1990,7 +1993,7 @@
 
 		BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
 			if(sculpt_brush_test(&test, vd.co)) {
-				const float fade = bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[vd.i]);
+				const float fade = bstrength*tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, ss->cache->view_normal, origno[vd.i]);
 				float val[3];
 
 				if(vd.fno) copy_v3_v3(val, vd.fno);
@@ -2350,7 +2353,7 @@
 				sub_v3_v3v3(val, intr, vd.co);
 
 				if (plane_trim(ss->cache, brush, val, &fade)) {
-					fade *= bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+					fade *= bstrength*tex_strength(ss, brush, vd.co, vd.mask, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 					mul_v3_v3fl(proxy[vd.i], val, fade);
 
@@ -2433,7 +2436,7 @@
 					sub_v3_v3v3(val, intr, vd.co);
 
 					if (plane_trim(ss->cache, brush, val, &fade)) {
-						fade *= bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+						fade *= bstrength*tex_strength(ss, brush, vd.co, vd.mask, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 						mul_v3_v3fl(proxy[vd.i], val, fade);
 
@@ -2536,7 +2539,7 @@
 					sub_v3_v3v3(val, intr, vd.co);
 
 					if (plane_trim(ss->cache, brush, val, &fade)) {
-						fade *= cube_fade*bstrength*tex_strength(ss, brush, vd.co, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+						fade *= cube_fade*bstrength*tex_strength(ss, brush, vd.co, vd.mask, test.dist)*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 						mul_v3_v3fl(proxy[vd.i], val, fade);
 
@@ -2607,7 +2610,7 @@
 					sub_v3_v3v3(val, intr, vd.co);
 
 					if (plane_trim(ss->cache, brush, val, &fade)) {
-						fade *= bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+						fade *= bstrength*tex_strength(ss, brush, vd.co, vd.mask, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 
 						mul_v3_v3fl(proxy[vd.i], val, fade);
 
@@ -2678,7 +2681,7 @@
 					sub_v3_v3v3(val, intr, vd.co);
 
 					if (plane_trim(ss->cache, brush, val, &fade)) {
-						fade *= bstrength*tex_strength(ss, brush, vd.co, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
+						fade *= bstrength*tex_strength(ss, brush, vd.co, vd.mask, sqrt(test.dist))*frontface(brush, ss->cache->frontface_start, ss->cache->frontface_range, an, origno[vd.i]);
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list