diff options
author | Joseph Eagar <joeedh@gmail.com> | 2022-06-03 20:35:41 +0300 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2022-06-03 20:41:05 +0300 |
commit | 8e02b53ae755742c6c2192e4def58be55deb1f98 (patch) | |
tree | 6cf3d734994202324b802861a9ed83a2ea6a5b9c /source/blender/editors/sculpt_paint/paint_stroke.c | |
parent | 2681e480eac0603d21174ce3bba5166dae010279 (diff) |
Sculpt: Fix zeroing of last position on stroke start
Fixes bug where clicking in empty space resets
viewport pivot in rotate around active mode
to zero.
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_stroke.c')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_stroke.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c index 210cffcbcda..c3c69bf4e0a 100644 --- a/source/blender/editors/sculpt_paint/paint_stroke.c +++ b/source/blender/editors/sculpt_paint/paint_stroke.c @@ -912,8 +912,13 @@ PaintStroke *paint_stroke_new(bContext *C, rv3d->rflag |= RV3D_PAINTING; } - zero_v3(ups->average_stroke_accum); - ups->average_stroke_counter = 0; + /* Preserve location from last stroke while applying and resetting + * ups->average_stroke_counter to 1. + */ + if (ups->average_stroke_counter) { + mul_v3_fl(ups->average_stroke_accum, 1.0f / (float)ups->average_stroke_counter); + ups->average_stroke_counter = 1; + } /* initialize here to avoid initialization conflict with threaded strokes */ BKE_curvemapping_init(br->curve); |