summaryrefslogtreecommitdiffstats
path: root/src/object/persp3d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/object/persp3d.cpp')
-rw-r--r--src/object/persp3d.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/object/persp3d.cpp b/src/object/persp3d.cpp
index 05ba5898b..5c6835e28 100644
--- a/src/object/persp3d.cpp
+++ b/src/object/persp3d.cpp
@@ -96,8 +96,11 @@ static Proj::Pt2 legacy_transform_forward(Proj::Pt2 pt, SPDocument const *doc) {
}
// <inkscape:perspective> stores inverted y-axis coordinates
- if (pt[2] && SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
- pt[1] = doc->getHeight().value("px") - pt[1];
+ if (SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
+ pt[1] *= -1;
+ if (pt[2]) {
+ pt[1] += doc->getHeight().value("px");
+ }
}
return pt;
@@ -108,8 +111,11 @@ static Proj::Pt2 legacy_transform_forward(Proj::Pt2 pt, SPDocument const *doc) {
*/
static Proj::Pt2 legacy_transform_backward(Proj::Pt2 pt, SPDocument const *doc) {
// <inkscape:perspective> stores inverted y-axis coordinates
- if (pt[2] && SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
- pt[1] = doc->getHeight().value("px") - pt[1];
+ if (SP_ACTIVE_DESKTOP && SP_ACTIVE_DESKTOP->is_yaxisdown()) {
+ pt[1] *= -1;
+ if (pt[2]) {
+ pt[1] += doc->getHeight().value("px");
+ }
}
// Written values are in 'user units'.