navit  0.5.3-trunk
quadtree.h File Reference
#include <glib.h>

Go to the source code of this file.

Data Structures

struct  quadtree_item
 
struct  quadtree_node
 

Macros

#define QUADTREE_NODE_CAPACITY   10
 

Functions

struct quadtree_nodequadtree_node_new (struct quadtree_node *parent, double xmin, double xmax, double ymin, double ymax)
 
struct quadtree_itemquadtree_find_nearest_flood (struct quadtree_node *this_, struct quadtree_item *item, double current_max, struct quadtree_node *toSkip)
 
struct quadtree_itemquadtree_find_nearest (struct quadtree_node *this_, struct quadtree_item *item)
 
struct quadtree_itemquadtree_find_item (struct quadtree_node *this_, struct quadtree_item *item)
 
struct quadtree_nodequadtree_find_containing_node (struct quadtree_node *root, struct quadtree_item *item)
 
int quadtree_delete_item (struct quadtree_node *root, struct quadtree_item *item)
 
void quadtree_find_rect_items (struct quadtree_node *this_, double dXMin, double dXMax, double dYMin, double dYMax, GList **out)
 
void quadtree_split (struct quadtree_node *this_)
 
void quadtree_add (struct quadtree_node *this_, struct quadtree_item *item, struct quadtree_iter *iter)
 Add new node to quadtree. More...
 
void quadtree_destroy (struct quadtree_node *this_)
 
struct quadtree_iterquadtree_query (struct quadtree_node *this_, double dXMin, double dXMax, double dYMin, double dYMax, void(*item_free)(void *context, struct quadtree_item *qitem), void *context)
 
struct quadtree_itemquadtree_item_next (struct quadtree_iter *iter)
 
void quadtree_query_free (struct quadtree_iter *iter)
 
void quadtree_item_delete (struct quadtree_iter *iter)
 
struct quadtree_dataquadtree_data_dup (struct quadtree_data *qdata)
 
void quadtree_node_drop_garbage (struct quadtree_node *node, struct quadtree_iter *iter)
 Free space occupied by deleted unreferenced items. More...
 

Macro Definition Documentation

◆ QUADTREE_NODE_CAPACITY

#define QUADTREE_NODE_CAPACITY   10

Navit, a modular navigation system. Copyright (C) 2005-2011 Navit Team

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Function Documentation

◆ quadtree_add()

void quadtree_add ( struct quadtree_node this_,
struct quadtree_item item,
struct quadtree_iter iter 
)

Add new node to quadtree.

Parameters
this_pointer to the quadtree (root) node
itemitem to add
iterQuadtree iteration context. Can be NULL if no garbage collection is needed.
Returns
nothing

References quadtree_node::aa, quadtree_node::ab, quadtree_node::ba, quadtree_node::bb, dbg, quadtree_node::is_leaf, item, quadtree_node::items, lat, quadtree_item::latitude, quadtree_item::longitude, lvl_error, quadtree_node::node_num, QUADTREE_NODE_CAPACITY, quadtree_node_drop_garbage(), quadtree_node_new(), quadtree_split(), quadtree_node::xmax, quadtree_node::xmin, quadtree_node::ymax, and quadtree_node::ymin.

Referenced by csv_coord_set(), map_new_csv(), and quadtree_split().

◆ quadtree_data_dup()

struct quadtree_data* quadtree_data_dup ( struct quadtree_data qdata)

◆ quadtree_delete_item()

int quadtree_delete_item ( struct quadtree_node root,
struct quadtree_item item 
)

◆ quadtree_destroy()

void quadtree_destroy ( struct quadtree_node this_)

◆ quadtree_find_containing_node()

◆ quadtree_find_item()

◆ quadtree_find_nearest()

◆ quadtree_find_nearest_flood()

◆ quadtree_find_rect_items()

◆ quadtree_item_delete()

void quadtree_item_delete ( struct quadtree_iter iter)

◆ quadtree_item_next()

◆ quadtree_node_drop_garbage()

void quadtree_node_drop_garbage ( struct quadtree_node node,
struct quadtree_iter iter 
)

Free space occupied by deleted unreferenced items.

Parameters
nodepointer to the quadtree node
iterQuadtree iteration context.
Returns
nothing

References dbg, quadtree_iter::item_free, quadtree_iter::item_free_context, lvl_debug, and quadtree_node::node_num.

Referenced by quadtree_add(), and quadtree_item_next().

◆ quadtree_node_new()

struct quadtree_node* quadtree_node_new ( struct quadtree_node parent,
double  xmin,
double  xmax,
double  ymin,
double  ymax 
)

◆ quadtree_query()

◆ quadtree_query_free()

void quadtree_query_free ( struct quadtree_iter iter)

◆ quadtree_split()