[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22587] branches/blender2.5/blender/source /blender/editors/sculpt_paint/sculpt.c: 2.5/Sculpt:

Nicholas Bishop nicholasbishop at gmail.com
Tue Aug 18 01:37:39 CEST 2009


Revision: 22587
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22587
Author:   nicholasbishop
Date:     2009-08-18 01:37:39 +0200 (Tue, 18 Aug 2009)

Log Message:
-----------
2.5/Sculpt:

* Fixed tablet pressure for brush size.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/sculpt_paint/sculpt.c

Modified: branches/blender2.5/blender/source/blender/editors/sculpt_paint/sculpt.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/sculpt_paint/sculpt.c	2009-08-17 22:27:08 UTC (rev 22586)
+++ branches/blender2.5/blender/source/blender/editors/sculpt_paint/sculpt.c	2009-08-17 23:37:39 UTC (rev 22587)
@@ -125,7 +125,7 @@
 */
 typedef struct StrokeCache {
 	/* Invariants */
-	float radius;
+	float initial_radius;
 	float scale[3];
 	int flag;
 	float clip_tolerance[3];
@@ -133,6 +133,7 @@
 	float depth;
 
 	/* Variants */
+	float radius;
 	float true_location[3];
 	float location[3];
 	float flip;
@@ -214,21 +215,6 @@
  *
  */
 
-/* Return modified brush size. Uses current tablet pressure (if available) to
-   shrink the brush. Skipped for grab brush because only the first mouse down
-   size is used, which is small if the user has just touched the pen to the
-   tablet */
-static char brush_size(Sculpt *sd, SculptSession *ss)
-{
-	Brush *brush = paint_brush(&sd->paint);
-	float size= brush->size;
-	
-	if((brush->sculpt_tool != SCULPT_TOOL_GRAB) && (brush->flag & BRUSH_SIZE_PRESSURE))
-		size *= ss->cache->pressure;
-
-	return size;
-}
-
 /* Return modified brush strength. Includes the direction of the brush, positive
    values pull vertices, negative values push. Uses tablet pressure and a
    special multiplier found experimentally to scale the strength factor. */
@@ -1267,7 +1253,7 @@
 	}
 
 	unproject(cache->mats, cache->true_location, cache->initial_mouse[0], cache->initial_mouse[1], cache->depth);
-	cache->radius = unproject_brush_radius(ss, brush_size(sd, ss));
+	cache->initial_radius = unproject_brush_radius(ss, brush->size);
 	cache->rotation = 0;
 	cache->first_time = 1;
 }
@@ -1289,8 +1275,15 @@
 	/* Truly temporary data that isn't stored in properties */
 
 	cache->previous_pixel_radius = cache->pixel_radius;
-	cache->pixel_radius = brush_size(sd, ss);
+	cache->pixel_radius = brush->size;
 
+	if(brush->flag & BRUSH_SIZE_PRESSURE) {
+		cache->pixel_radius *= cache->pressure;
+		cache->radius = cache->initial_radius * cache->pressure;
+	}
+	else
+		cache->radius = cache->initial_radius;
+
 	if(brush->flag & BRUSH_ANCHORED) {
 		dx = cache->mouse[0] - cache->initial_mouse[0];
 		dy = cache->mouse[1] - cache->initial_mouse[1];





More information about the Bf-blender-cvs mailing list