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