From 6ddde92a3a45e970b05770633dc6a337d5d013c5 Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor@ghostscript.com>
Date: Mon, 27 Sep 2004 02:15:04 +0200
Subject: Initial import

---
 tree/tree.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 tree/tree.c

(limited to 'tree/tree.c')

diff --git a/tree/tree.c b/tree/tree.c
new file mode 100644
index 00000000..1a96ec38
--- /dev/null
+++ b/tree/tree.c
@@ -0,0 +1,63 @@
+#include <fitz.h>
+
+fz_error *
+fz_newtree(fz_tree **treep)
+{
+	fz_tree *tree;
+
+	tree = *treep = fz_malloc(sizeof (fz_tree));
+	if (!tree)
+		return fz_outofmem;
+
+	tree->root = nil;
+	tree->head = nil;
+
+	return nil;
+}
+
+void
+fz_freetree(fz_tree *tree)
+{
+	if (tree->root)
+		fz_freenode(tree->root);
+	fz_free(tree);
+}
+
+fz_rect
+fz_boundtree(fz_tree *tree, fz_matrix ctm)
+{
+	if (tree->root)
+		return fz_boundnode(tree->root, ctm);
+	return FZ_INFRECT;
+}
+
+void
+fz_insertnode(fz_node *node, fz_node *child)
+{
+	child->parent = node;
+
+	if (fz_isover(node))
+	{
+		child->next = ((fz_over*)node)->child;
+		((fz_over*)node)->child = child;
+	}
+
+	if (fz_ismask(node))
+	{
+		child->next = ((fz_mask*)node)->child;
+		((fz_mask*)node)->child = child;
+	}
+
+	if (fz_isblend(node))
+	{
+		child->next = ((fz_blend*)node)->child;
+		((fz_blend*)node)->child = child;
+	}
+
+	if (fz_istransform(node))
+	{
+		child->next = ((fz_transform*)node)->child;
+		((fz_transform*)node)->child = child;
+	}
+}
+
-- 
cgit v1.2.3