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 | |
parent | c8666d1565d2656eca7f913411579409c6b95e62 (diff) | |
download | uxp-be12aaf416c67b516821c1a95d95544b4e2ae5ce.tar.gz |
Issue #438: Add an IsRectilinear helper method to gfxMatrix.
-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 9282a22dbb..4f92262cc1 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. |