summaryrefslogtreecommitdiff
path: root/tree/transform.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2004-09-27 02:15:04 +0200
committerTor Andersson <tor@ghostscript.com>2004-09-27 02:15:04 +0200
commit6ddde92a3a45e970b05770633dc6a337d5d013c5 (patch)
tree1dec4612d7469839478e72d16d30a0da5755243c /tree/transform.c
downloadmupdf-6ddde92a3a45e970b05770633dc6a337d5d013c5.tar.xz
Initial import
Diffstat (limited to 'tree/transform.c')
-rw-r--r--tree/transform.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/tree/transform.c b/tree/transform.c
new file mode 100644
index 00000000..18910d6b
--- /dev/null
+++ b/tree/transform.c
@@ -0,0 +1,35 @@
+#include <fitz.h>
+
+fz_error *
+fz_newtransform(fz_node **nodep, fz_matrix m)
+{
+ fz_transform *node;
+
+ node = fz_malloc(sizeof (fz_transform));
+ if (!node)
+ return fz_outofmem;
+ *nodep = (fz_node*)node;
+
+ fz_initnode((fz_node*)node, FZ_NTRANSFORM);
+ node->child = nil;
+ node->m = m;
+
+ return nil;
+}
+
+void
+fz_freetransform(fz_transform *node)
+{
+ if (node->child)
+ fz_freenode(node->child);
+ fz_free(node);
+}
+
+fz_rect
+fz_boundtransform(fz_transform *node, fz_matrix ctm)
+{
+ if (!node->child)
+ return FZ_INFRECT;
+ return fz_boundnode(node->child, fz_concat(node->m, ctm));
+}
+