aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/Matrix.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-10-31 22:53:11 +0800
committercrupest <crupest@outlook.com>2021-10-31 22:53:11 +0800
commit1dca2841da6f024f613d6dc16de456d5035f8fce (patch)
tree37ca6290afbe5900df2eb4a09e30024257d55316 /include/cru/platform/Matrix.hpp
parente68e0d9a5130e8bc0b634572b7fd44b9bfc0f8ef (diff)
downloadcru-1dca2841da6f024f613d6dc16de456d5035f8fce.tar.gz
cru-1dca2841da6f024f613d6dc16de456d5035f8fce.tar.bz2
cru-1dca2841da6f024f613d6dc16de456d5035f8fce.zip
...
Diffstat (limited to 'include/cru/platform/Matrix.hpp')
-rw-r--r--include/cru/platform/Matrix.hpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/cru/platform/Matrix.hpp b/include/cru/platform/Matrix.hpp
index 72459b79..47917d47 100644
--- a/include/cru/platform/Matrix.hpp
+++ b/include/cru/platform/Matrix.hpp
@@ -43,6 +43,15 @@ struct Matrix {
point.x * m12 + point.y * m22 + m32};
}
+ Rect TransformRect(const Rect& rect, bool normalize = true) const {
+ Point lefttop = TransformPoint(rect.GetLeftTop()),
+ rightbottom = TransformPoint(rect.GetRightBottom());
+ auto result =
+ Rect::FromVertices(lefttop.x, lefttop.y, rightbottom.x, rightbottom.y);
+ if (normalize) result = result.Normalize();
+ return result;
+ }
+
static Matrix Identity() {
return Matrix{1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f};
}