From 3123dce8c77ca25190fd6eb5a2f89975ba098c88 Mon Sep 17 00:00:00 2001 From: Timo Kokkonen Date: Sat, 30 Jul 2011 16:30:54 +0300 Subject: [PATCH] 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 --- quadtree.c | 5 +++++ quadtree.h | 3 +++ 2 files changed, 8 insertions(+) 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 -- 2.45.0