From: Timo Kokkonen Date: Sat, 30 Jul 2011 13:30:54 +0000 (+0300) Subject: quadtree: export rebalance statistics X-Git-Url: http://git.itanic.dy.fi/?p=sdl-planets;a=commitdiff_plain;h=3123dce8c77ca25190fd6eb5a2f89975ba098c88 quadtree: export rebalance statistics These variables can be used to examine how many times tree rebalance events have taken place and how many nodes were moved during the rebalances. Signed-off-by: Timo Kokkonen --- diff --git a/quadtree.c b/quadtree.c index 9d5c56d..5c712f7 100644 --- a/quadtree.c +++ b/quadtree.c @@ -3,6 +3,9 @@ #include "quadtree.h" +long int quadtree_rebalance_events; +long int quadtree_rebalanced_nodes; + #ifdef DEBUG #define debug 1 #else @@ -890,9 +893,11 @@ struct quadtree *quadtree_move(struct quadtree *node, struct vector new_pos, * tree. */ validate_tree(node); + quadtree_rebalanced_nodes += node->children; tree_parent = quadtree_del(node, ops); node->pos = new_pos; quadtree_add(tree_parent, node, ops); + quadtree_rebalance_events++; validate_tree(node); return tree_parent; diff --git a/quadtree.h b/quadtree.h index 6959bea..101d43a 100644 --- a/quadtree.h +++ b/quadtree.h @@ -76,4 +76,7 @@ static inline struct quadtree *quadtree_find_parent(const struct quadtree *node) return t; } +extern long int quadtree_rebalance_events; +extern long int quadtree_rebalanced_nodes; + #endif