Bug 373074 - Perspective transform of a vector layer provides a completely incorrect result.
Summary: Perspective transform of a vector layer provides a completely incorrect result.
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Transform (show other bugs)
Version: 3.0.1.1
Platform: Microsoft Windows Microsoft Windows
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-29 13:49 UTC by Dave Freeman
Modified: 2017-03-23 07:19 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Visual steps to reproduce (301.87 KB, image/png)
2016-11-29 13:49 UTC, Dave Freeman
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dave Freeman 2016-11-29 13:49:44 UTC
Created attachment 102519 [details]
Visual steps to reproduce

1. Make a circle with the Elliptical Selection Tool.
2. Convert this circle to a vector circle with Select->Convert to Vector Selection
3. Select the Transform tool.
4. Select the Perspective mode of this tool in Tool Options.
5. Move the circle into a perspective of your choice.
6. Press Enter.

Result:
The circle result does not resemble the perspective chosen in step 5. See attached image. This transform works fine with a raster layer.
Comment 1 Halla Rempt 2016-12-07 14:01:54 UTC
Hi Dave,

Thanks for your report. I can confirm the issue.
Comment 2 animtim 2016-12-07 15:41:23 UTC
Actually, that is known that only simple Free transform ever worked directly on vector layers (and even, it seems to be more buggy than it used to be when used several times). All others show the preview, but don't get applied.

That said, it is possible to use any transform on any type of layer using a transform mask. But the result is the projection of the transform to pixels, not modified vectors.

The thing here, is that it's about vector selection, which is a bit different to handle, but the principle is the same.
Comment 3 Halla Rempt 2016-12-08 09:38:11 UTC
I'm tempted to make this a wish bug, but then we really need to disable the transform tool on vector layers.
Comment 4 Halla Rempt 2016-12-08 09:48:39 UTC
Git commit e0d7aa5b755da9f342a2038ca8b030d90efb7ed4 by Boudewijn Rempt.
Committed on 08/12/2016 at 09:47.
Pushed by rempt into branch 'krita/3.1'.

It doesn't work... The workaround is to use a transform mask.

M  +8    -0    plugins/tools/tool_transform2/kis_tool_transform.cc

https://commits.kde.org/krita/e0d7aa5b755da9f342a2038ca8b030d90efb7ed4
Comment 5 Halla Rempt 2016-12-08 09:48:44 UTC
Git commit 46396e6d10bfb26d5de14427bba52e2dd80f0b5e by Boudewijn Rempt.
Committed on 08/12/2016 at 09:48.
Pushed by rempt into branch 'rempt/impex-refactoring'.

It doesn't work... The workaround is to use a transform mask.

M  +8    -0    plugins/tools/tool_transform2/kis_tool_transform.cc

https://commits.kde.org/krita/46396e6d10bfb26d5de14427bba52e2dd80f0b5e
Comment 6 Halla Rempt 2016-12-08 09:49:32 UTC
Okay, disabled for now. Maybe with the vector tool refactoring we can make sure that the transform tool properly works on vector layers, but I kind of have a feeling that it will be really hard.
Comment 7 Dmitry Kazakov 2017-03-23 07:19:18 UTC
Git commit 788bf6f6fb63fe6c94307d43b34e1b923f3b8055 by Dmitry Kazakov.
Committed on 23/03/2017 at 07:15.
Pushed by dkazakov into branch 'kazakov/svg-loading'.

Fix transformations of a shape layer with transform tool

M  +5    -0    libs/ui/flake/kis_shape_layer.cc
M  +12   -0    libs/ui/flake/kis_shape_layer.h
M  +9    -0    libs/ui/flake/kis_shape_layer_canvas.cpp
M  +2    -0    libs/ui/flake/kis_shape_layer_canvas.h
M  +1    -1    plugins/tools/tool_transform2/kis_free_transform_strategy.cpp
M  +41   -4    plugins/tools/tool_transform2/kis_tool_transform.cc
M  +2    -0    plugins/tools/tool_transform2/kis_tool_transform.h
M  +21   -2    plugins/tools/tool_transform2/transform_transaction_properties.h

https://commits.kde.org/krita/788bf6f6fb63fe6c94307d43b34e1b923f3b8055