From be12aaf416c67b516821c1a95d95544b4e2ae5ce Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 14 Aug 2019 14:22:13 +0200 Subject: Issue #438: Add an IsRectilinear helper method to gfxMatrix. --- gfx/thebes/gfxMatrix.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gfx/thebes') 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. -- cgit v1.2.3