diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-08-14 14:22:13 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-08-14 14:22:13 +0200 |
commit | be12aaf416c67b516821c1a95d95544b4e2ae5ce (patch) | |
tree | 4251c7b8cd577144d61ddcfea9b3467bb0d8b5d5 /gfx/thebes/gfxMatrix.h | |
parent | c8666d1565d2656eca7f913411579409c6b95e62 (diff) | |
download | UXP-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.
Diffstat (limited to 'gfx/thebes/gfxMatrix.h')
-rw-r--r-- | gfx/thebes/gfxMatrix.h | 12 |
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. |