[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