]> git.itanic.dy.fi Git - sdl-planets/blobdiff - quadtree.h
Introduce struct quadree_ops
[sdl-planets] / quadtree.h
index 3d8f51835ddad4a2c6c549b856ab12b1fad2a3c2..917abd501b34dec4e6fea636c51590ddfef44bc4 100644 (file)
@@ -14,6 +14,10 @@ struct quadtree {
        long int depth;         /* The deepest subtree branch */
 };
 
+struct quadtree_ops {
+       int (*compare)(struct quadtree *a, struct quadtree *b);
+};
+
 static inline void init_quadtree(struct quadtree *t)
 {
        memset(t, 0, sizeof(*t));
@@ -33,14 +37,10 @@ struct quadtree_iterator {
        void (*callback)(struct quadtree *head, struct quadtree_iterator *it);
 };
 
-struct quadtree *quadtree_add(struct quadtree *parent,
-                             struct quadtree *new,
-                             int (*compare)(struct quadtree *a,
-                                            struct quadtree *b));
+struct quadtree *quadtree_add(struct quadtree *parent, struct quadtree *new,
+                             struct quadtree_ops *ops);
 
-struct quadtree *quadtree_del(struct quadtree *node,
-                             int (*compare)(struct quadtree *a,
-                                            struct quadtree *b));
+struct quadtree *quadtree_del(struct quadtree *node, struct quadtree_ops *ops);
 
 int walk_quadtree(const struct quadtree_iterator *iterator);