navit 0.5.3-trunk
Loading...
Searching...
No Matches
quadtree.h
Go to the documentation of this file.
1
20#ifndef QUADTREE_H
21#define QUADTREE_H
22
23#include <glib.h>
24
25#define QUADTREE_NODE_CAPACITY 10
26
28 double longitude;
29 double latitude;
32 void *data;
33};
34
47
48struct quadtree_iter;
49
50struct quadtree_node *quadtree_node_new(struct quadtree_node *parent, double xmin, double xmax, double ymin,
51 double ymax);
53 double current_max, struct quadtree_node *toSkip);
57int quadtree_delete_item(struct quadtree_node *root, struct quadtree_item *item);
58void quadtree_find_rect_items(struct quadtree_node *this_, double dXMin, double dXMax, double dYMin, double dYMax,
59 GList **out);
60void quadtree_split(struct quadtree_node *this_);
61void quadtree_add(struct quadtree_node *this_, struct quadtree_item *item, struct quadtree_iter *iter);
62void quadtree_destroy(struct quadtree_node *this_);
63struct quadtree_iter *quadtree_query(struct quadtree_node *this_, double dXMin, double dXMax, double dYMin,
64 double dYMax, void (*item_free)(void *context, struct quadtree_item *qitem),
65 void *context);
67void quadtree_query_free(struct quadtree_iter *iter);
68void quadtree_item_delete(struct quadtree_iter *iter);
69struct quadtree_data *quadtree_data_dup(struct quadtree_data *qdata);
71
72#endif
struct quadtree_data * quadtree_data_dup(struct quadtree_data *qdata)
Definition csv.c:58
void quadtree_find_rect_items(struct quadtree_node *this_, double dXMin, double dXMax, double dYMin, double dYMax, GList **out)
Definition quadtree.c:78
struct quadtree_item * quadtree_find_nearest_flood(struct quadtree_node *this_, struct quadtree_item *item, double current_max, struct quadtree_node *toSkip)
Definition quadtree.c:109
struct quadtree_item * quadtree_item_next(struct quadtree_iter *iter)
Definition quadtree.c:537
void quadtree_item_delete(struct quadtree_iter *iter)
Definition quadtree.c:527
#define QUADTREE_NODE_CAPACITY
Definition quadtree.h:25
void quadtree_split(struct quadtree_node *this_)
Definition quadtree.c:409
int quadtree_delete_item(struct quadtree_node *root, struct quadtree_item *item)
Definition quadtree.c:226
void quadtree_add(struct quadtree_node *this_, struct quadtree_item *item, struct quadtree_iter *iter)
Add new node to quadtree.
Definition quadtree.c:341
void quadtree_node_drop_garbage(struct quadtree_node *node, struct quadtree_iter *iter)
Free space occupied by deleted unreferenced items.
Definition quadtree.c:313
struct quadtree_node * quadtree_node_new(struct quadtree_node *parent, double xmin, double xmax, double ymin, double ymax)
Definition quadtree.c:63
void quadtree_query_free(struct quadtree_iter *iter)
Definition quadtree.c:515
struct quadtree_iter * quadtree_query(struct quadtree_node *this_, double dXMin, double dXMax, double dYMin, double dYMax, void(*item_free)(void *context, struct quadtree_item *qitem), void *context)
Definition quadtree.c:484
void quadtree_destroy(struct quadtree_node *this_)
Definition quadtree.c:454
struct quadtree_item * quadtree_find_item(struct quadtree_node *this_, struct quadtree_item *item)
Definition quadtree.c:153
struct quadtree_item * quadtree_find_nearest(struct quadtree_node *this_, struct quadtree_item *item)
Definition quadtree.c:248
struct quadtree_node * quadtree_find_containing_node(struct quadtree_node *root, struct quadtree_item *item)
Definition quadtree.c:192
Definition command.c:51
Represents an object on a map.
Definition item.h:122
Definition ch.c:41
Definition gpx2navit_txt.h:50
Definition csv.c:51
Definition quadtree.h:27
double latitude
Definition quadtree.h:29
int deleted
Definition quadtree.h:31
void * data
Definition quadtree.h:32
int ref_count
Definition quadtree.h:30
double longitude
Definition quadtree.h:28
Definition quadtree.c:35
void(* item_free)(void *context, struct quadtree_item *qitem)
Definition quadtree.c:41
Definition quadtree.h:35
struct quadtree_node * aa
Definition quadtree.h:38
double xmin
Definition quadtree.h:42
struct quadtree_node * ab
Definition quadtree.h:39
struct quadtree_item * items[QUADTREE_NODE_CAPACITY]
Definition quadtree.h:37
int node_num
Definition quadtree.h:36
double ymin
Definition quadtree.h:42
struct quadtree_node * parent
Definition quadtree.h:44
double xmax
Definition quadtree.h:42
struct quadtree_node * ba
Definition quadtree.h:40
int ref_count
Definition quadtree.h:45
struct quadtree_node * bb
Definition quadtree.h:41
double ymax
Definition quadtree.h:42
int is_leaf
Definition quadtree.h:43