summaryrefslogtreecommitdiff
path: root/base/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'base/matrix.c')
-rw-r--r--base/matrix.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/base/matrix.c b/base/matrix.c
index 659193f5..43c3f4e1 100644
--- a/base/matrix.c
+++ b/base/matrix.c
@@ -85,3 +85,22 @@ fz_transformpoint(fz_matrix m, fz_point p)
return t;
}
+fz_rect
+fz_transformaabb(fz_matrix m, fz_rect r)
+{
+ fz_point s, t, u, v;
+ s.x = r.min.x; s.y = r.min.y;
+ t.x = r.min.x; t.y = r.max.y;
+ u.x = r.max.x; u.y = r.max.y;
+ v.x = r.max.x; v.y = r.min.y;
+ s = fz_transformpoint(m, s);
+ t = fz_transformpoint(m, t);
+ u = fz_transformpoint(m, u);
+ v = fz_transformpoint(m, v);
+ r.min.x = MIN4(s.x, t.x, u.x, v.x);
+ r.min.y = MIN4(s.y, t.y, u.y, v.y);
+ r.max.x = MAX4(s.x, t.x, u.x, v.x);
+ r.max.y = MAX4(s.y, t.y, u.y, v.y);
+ return r;
+}
+