summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-08-14 14:22:13 +0200
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-08-14 14:22:13 +0200
commitbe12aaf416c67b516821c1a95d95544b4e2ae5ce (patch)
tree4251c7b8cd577144d61ddcfea9b3467bb0d8b5d5
parentc8666d1565d2656eca7f913411579409c6b95e62 (diff)
downloadUXP-be12aaf416c67b516821c1a95d95544b4e2ae5ce.tar
UXP-be12aaf416c67b516821c1a95d95544b4e2ae5ce.tar.gz
UXP-be12aaf416c67b516821c1a95d95544b4e2ae5ce.tar.lz
UXP-be12aaf416c67b516821c1a95d95544b4e2ae5ce.tar.xz
UXP-be12aaf416c67b516821c1a95d95544b4e2ae5ce.zip
Issue #438: Add an IsRectilinear helper method to gfxMatrix.
-rw-r--r--gfx/thebes/gfxMatrix.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gfx/thebes/gfxMatrix.h b/gfx/thebes/gfxMatrix.h
index 9282a22db..4f92262cc 100644
--- a/gfx/thebes/gfxMatrix.h
+++ b/gfx/thebes/gfxMatrix.h
@@ -112,6 +112,18 @@ public:
_31 == 0.0 && _32 == 0.0;
}
+ /* Returns true if the matrix is a rectilinear transformation (i.e.
+ * grid-aligned rectangles are transformed to grid-aligned rectangles)
+ */
+ bool IsRectilinear() const {
+ if (FuzzyEqual(_12, 0) && FuzzyEqual(_21, 0)) {
+ return true;
+ } else if (FuzzyEqual(_22, 0) && FuzzyEqual(_11, 0)) {
+ return true;
+ }
+ return false;
+ }
+
/**
* Inverts this matrix, if possible. Otherwise, the matrix is left
* unchanged.