Summary: | Edit raster selection breaks position | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | caetano <chameleonscales> |
Component: | Tools/Selection | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dimula73, griffinvalley |
Priority: | NOR | ||
Version: | 4.4.0-beta1 | ||
Target Milestone: | --- | ||
Platform: | Appimage | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/9509bce98ffc04e64dfd99caf67387d37f784f8d | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: | Broken edit selection |
Description
caetano
2020-09-25 09:11:57 UTC
I can confirm on Krita 5 pre-alpha (git 877573c) on KDE Neon with Qt 5.15.0. Git commit e767083bc9e761cc9b83f3b8102bef0fe1d21d1f by Dmitry Kazakov. Committed on 01/10/2020 at 10:30. Pushed by dkazakov into branch 'krita/4.3'. Catch a case when the simplex algorithm converges to a false point Sometimes the algorithm converges to a false point, even though error walue is still hight. It makes the transformation bounding box jump from place to place. Just ignore this transformation if the solution has not been found. M +8 -0 plugins/tools/tool_transform2/kis_free_transform_strategy.cpp M +10 -0 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.cpp M +1 -0 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.h https://invent.kde.org/graphics/krita/commit/e767083bc9e761cc9b83f3b8102bef0fe1d21d1f Git commit cec1b1ea818e995b1d1a146acbafa6e6a84c548c by Dmitry Kazakov. Committed on 01/10/2020 at 10:30. Pushed by dkazakov into branch 'krita/4.3'. Fix small jumps in free transform when the object is mirrored When the scale crosses the zero value, the algorithm could behave in a less stable way. To overcome this issue, for the reference value we shouldn't use any distance term. Instead we should calculate the expected position for the moved point and pass it to the algorithm explicitly. M +26 -27 plugins/tools/tool_transform2/kis_free_transform_strategy.cpp M +27 -17 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.cpp M +2 -2 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.h https://invent.kde.org/graphics/krita/commit/cec1b1ea818e995b1d1a146acbafa6e6a84c548c Git commit da452ab109c8a32d8d6c606a579233191a70a86d by Dmitry Kazakov. Committed on 01/10/2020 at 10:30. Pushed by dkazakov into branch 'master'. Catch a case when the simplex algorithm converges to a false point Sometimes the algorithm converges to a false point, even though error walue is still hight. It makes the transformation bounding box jump from place to place. Just ignore this transformation if the solution has not been found. M +8 -0 plugins/tools/tool_transform2/kis_free_transform_strategy.cpp M +10 -0 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.cpp M +1 -0 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.h https://invent.kde.org/graphics/krita/commit/da452ab109c8a32d8d6c606a579233191a70a86d Git commit 9509bce98ffc04e64dfd99caf67387d37f784f8d by Dmitry Kazakov. Committed on 01/10/2020 at 10:30. Pushed by dkazakov into branch 'master'. Fix small jumps in free transform when the object is mirrored When the scale crosses the zero value, the algorithm could behave in a less stable way. To overcome this issue, for the reference value we shouldn't use any distance term. Instead we should calculate the expected position for the moved point and pass it to the algorithm explicitly. M +26 -27 plugins/tools/tool_transform2/kis_free_transform_strategy.cpp M +27 -17 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.cpp M +2 -2 plugins/tools/tool_transform2/kis_free_transform_strategy_gsl_helpers.h https://invent.kde.org/graphics/krita/commit/9509bce98ffc04e64dfd99caf67387d37f784f8d issue still there in 4.4.2. Should we expect the fix in the next version? |