Bug 308408 - Drawing-angle rotation is buggy with canvas rotation
Summary: Drawing-angle rotation is buggy with canvas rotation
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: git master (please specify the git hash!)
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-14 21:42 UTC by animtim
Modified: 2013-08-03 20:45 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description animtim 2012-10-14 21:42:30 UTC
When using "Drawing-Angle" input for rotation, the brush angle is changing with canvas rotation, it shouldn't.

Reproducible: Always

Steps to Reproduce:
1.take the "Block_paint" preset and draw a stroke
2.rotate canvas 90° and draw another stroke
3.see the 2 strokes width are different, they should be the same.
Comment 1 Halla Rempt 2012-10-27 10:15:04 UTC
Yes, I can confirm.
Comment 2 Dmitry Kazakov 2013-08-03 20:45:13 UTC
Git commit 1da74f325476c83b7db60dd39d1ce108a9f4d1d5 by Dmitry Kazakov.
Committed on 03/08/2013 at 19:18.
Pushed by dkazakov into branch 'master'.

Fixed Speed, Distance and Drawing Angle sensors

This patch makes the following user-visible changes:

1) Speed and Distance sensors are fixed
2) Drawing Angle sensor became much more stable and smooth
3) Drawing Angle sensor works right on the rotated canvas

Technical details:

This patch hugely refactors the distance information part of
our painting system. The two most significant changes:

1) KisPaintInformation doesn't have movement() method, because it
   used to get inconsistent *very* fast when the lien was split into
   chunks in paintBezierCurve. The access to drawingDistance(),
   drawingAngle() and drawingSpeep() parameters is provided only by means
   of teh associated KisDistanceInformation.

2) (follows from the point 1) From now on paintAt() function also accepts
    KisDistanceInformation object, because otherwise it will not be able
    to access the calculated parameters.
Related: bug 321771, bug 279442

M  +3    -1    krita/benchmarks/kis_low_memory_benchmark.cpp
M  +25   -23   krita/benchmarks/kis_stroke_benchmark.cpp
M  +67   -30   krita/image/brushengine/kis_paint_information.cc
M  +27   -8    krita/image/brushengine/kis_paint_information.h
M  +34   -34   krita/image/brushengine/kis_paintop.cc
M  +18   -11   krita/image/brushengine/kis_paintop.h
M  +39   -10   krita/image/kis_distance_information.cpp
M  +11   -2    krita/image/kis_distance_information.h
M  +29   -0    krita/image/kis_global.h
M  +23   -23   krita/image/kis_painter.cc
M  +10   -9    krita/image/kis_painter.h
M  +4    -6    krita/image/recorder/kis_recorded_path_paint_action.cpp
M  +6    -4    krita/image/tests/kis_paint_information_test.cpp
M  +3    -7    krita/plugins/paintops/curvebrush/kis_curve_paintop.cpp
M  +1    -1    krita/plugins/paintops/curvebrush/kis_curve_paintop.h
M  +3    -4    krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp
M  +1    -1    krita/plugins/paintops/defaultpaintops/brush/kis_brushop.h
M  +6    -6    krita/plugins/paintops/dynadraw/kis_dyna_paintop.cpp
M  +1    -1    krita/plugins/paintops/dynadraw/kis_dyna_paintop.h
M  +3    -4    krita/plugins/paintops/experiment/kis_experiment_paintop.cpp
M  +1    -1    krita/plugins/paintops/experiment/kis_experiment_paintop.h
M  +3    -7    krita/plugins/paintops/hairy/kis_hairy_paintop.cpp
M  +1    -1    krita/plugins/paintops/hairy/kis_hairy_paintop.h
M  +1    -1    krita/plugins/paintops/libbrush/kis_auto_brush.cpp
M  +2    -2    krita/plugins/paintops/libbrush/kis_brush.cpp
M  +5    -11   krita/plugins/paintops/libbrush/kis_imagepipe_brush.cpp
M  +1    -2    krita/plugins/paintops/libbrush/tests/kis_auto_brush_test.cpp
M  +8    -16   krita/plugins/paintops/libbrush/tests/kis_brush_test.cpp
M  +3    -6    krita/plugins/paintops/libbrush/tests/kis_imagepipe_brush_test.cpp
M  +5    -0    krita/plugins/paintops/libpaintop/kis_dynamic_sensor.cc
M  +1    -0    krita/plugins/paintops/libpaintop/kis_dynamic_sensor.h
M  +5    -2    krita/plugins/paintops/libpaintop/kis_pressure_rotation_option.cpp
M  +6    -10   krita/plugins/paintops/libpaintop/kis_pressure_scatter_option.cpp
M  +9    -13   krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensor_distance.cc
M  +1    -1    krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensor_distance.h
M  +9    -2    krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensor_list.cc
M  +2    -1    krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensor_list.h
M  +22   -12   krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.cc
M  +1    -0    krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.h
M  +8    -8    krita/plugins/paintops/libpaintop/tests/kis_sensors_test.cpp
M  +3    -6    krita/plugins/paintops/mypaint/mypaint_paintop.cpp
M  +1    -1    krita/plugins/paintops/mypaint/mypaint_paintop.h
M  +6    -7    krita/plugins/paintops/particle/kis_particle_paintop.cpp
M  +1    -1    krita/plugins/paintops/particle/kis_particle_paintop.h
M  +7    -8    krita/plugins/paintops/sketch/kis_sketch_paintop.cpp
M  +1    -1    krita/plugins/paintops/sketch/kis_sketch_paintop.h
M  +1    -1    krita/plugins/paintops/spray/spray_brush.cpp
M  +0    -2    krita/plugins/tools/defaulttools/kis_tool_line.cc
M  +3    -11   krita/ui/tool/kis_painting_information_builder.cpp
M  +0    -2    krita/ui/tool/kis_painting_information_builder.h
M  +2    -3    krita/ui/tool/kis_tool_freehand.cc
M  +24   -12   krita/ui/tool/kis_tool_freehand_helper.cpp
M  +3    -1    krita/ui/tool/kis_tool_freehand_helper.h
M  +6    -2    krita/ui/tool/kis_tool_multihand_helper.cpp
M  +3    -1    krita/ui/tool/kis_tool_multihand_helper.h
M  +7    -10   krita/ui/tool/strokes/freehand_stroke.cpp

http://commits.kde.org/calligra/1da74f325476c83b7db60dd39d1ce108a9f4d1d5