forked from bartvdbraak/blender
Bugfix, own testing
When pressure was zero, a sculpt brush was still being executed with step amount divided by zero, and thus entering eternal loop. Maybe tablet-specific this but I wonder how this never got reported...
This commit is contained in:
parent
4134e4f3ae
commit
d1b14e7878
@ -769,14 +769,18 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const
|
||||
float pressure;
|
||||
|
||||
pressure = event_tablet_data(event, NULL);
|
||||
scale = (brush_size(stroke->brush)*pressure*stroke->brush->spacing/50.0f) / length;
|
||||
mul_v2_fl(vec, scale);
|
||||
if(pressure > FLT_EPSILON) {
|
||||
scale = (brush_size(stroke->brush)*pressure*stroke->brush->spacing/50.0f) / length;
|
||||
if(scale > FLT_EPSILON) {
|
||||
mul_v2_fl(vec, scale);
|
||||
|
||||
steps = (int)(1.0f / scale);
|
||||
steps = (int)(1.0f / scale);
|
||||
|
||||
for(i = 0; i < steps; ++i, ++cnt) {
|
||||
add_v2_v2(mouse, vec);
|
||||
paint_brush_stroke_add_step(C, op, event, mouse);
|
||||
for(i = 0; i < steps; ++i, ++cnt) {
|
||||
add_v2_v2(mouse, vec);
|
||||
paint_brush_stroke_add_step(C, op, event, mouse);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -306,6 +306,7 @@ static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test)
|
||||
{
|
||||
test->radius_squared= ss->cache->radius_squared;
|
||||
copy_v3_v3(test->location, ss->cache->location);
|
||||
test->dist= 0.0f; /* just for initialize */
|
||||
}
|
||||
|
||||
static int sculpt_brush_test(SculptBrushTest *test, float co[3])
|
||||
|
Loading…
Reference in New Issue
Block a user