libs/flake

KoRTree< T > Class Template Reference

The KoRTree class is a template class that provides a R-tree. More...

#include <KoRTree.h>

Inheritance diagram for KoRTree< T >:

List of all members.

Classes

class  LeafNode
class  Node
class  NoneLeafNode

Public Member Functions

 KoRTree (int capacity, int minimum)
virtual ~KoRTree ()
void clear ()
QList< T > contains (const QPointF &point) const
virtual void insert (const QRectF &bb, const T &data)
virtual QList< T > intersects (const QRectF &rect) const
QList< QRectFkeys () const
void remove (const T &data)
QList< T > values () const

Protected Member Functions

void adjustTree (Node *node1, Node *node2)
void condenseTree (Node *node, QVector< Node * > &reinsert)
virtual LeafNodecreateLeafNode (int capacity, int level, Node *parent)
virtual NoneLeafNodecreateNoneLeafNode (int capacity, int level, Node *parent)
void insert (Node *node)
void insertHelper (const QRectF &bb, const T &data, int id)
QPair< int, int > pickNext (Node *node, QVector< bool > &marker, Node *group1, Node *group2)
QPair< int, int > pickSeeds (Node *node)
QPair< Node *, Node * > splitNode (Node *node)

Protected Attributes

int m_capacity
QMap< T, LeafNode * > m_leafMap
int m_minimum
Nodem_root

Detailed Description

template<typename T>
class KoRTree< T >

The KoRTree class is a template class that provides a R-tree.

This class implements a R-tree as described in "R-TREES. A DYNAMIC INDEX STRUCTURE FOR SPATIAL SEARCHING" by Antomn Guttman

It only supports 2 dimensional bounding boxes which are repesented by a QRectF. For node splitting the Quadratic-Cost Algorithm is used as descibed by Guttman.

Definition at line 50 of file KoRTree.h.


Constructor & Destructor Documentation

template<typename T >
KoRTree< T >::KoRTree ( int  capacity,
int  minimum 
) [inline]

Constructor.

Parameters:
capacity the capacity a node can take
minimum the minimum filling of a node max 0.5 * capacity

Definition at line 335 of file KoRTree.h.

template<typename T >
KoRTree< T >::~KoRTree (  )  [inline, virtual]

Destructor.

Definition at line 346 of file KoRTree.h.


Member Function Documentation

template<typename T >
void KoRTree< T >::adjustTree ( Node node1,
Node node2 
) [inline, protected]

Definition at line 636 of file KoRTree.h.

template<typename T>
void KoRTree< T >::clear (  )  [inline]

Definition at line 123 of file KoRTree.h.

template<typename T >
void KoRTree< T >::condenseTree ( Node node,
QVector< Node * > &  reinsert 
) [inline, protected]

Definition at line 678 of file KoRTree.h.

template<typename T >
QList< T > KoRTree< T >::contains ( const QPointF point  )  const [inline]

Find all data item which contain the point The items are sorted by insertion time in ascending order.

Parameters:
point which should be contained in the objects
Returns:
objects which contain the point

Definition at line 466 of file KoRTree.h.

template<typename T>
virtual LeafNode* KoRTree< T >::createLeafNode ( int  capacity,
int  level,
Node parent 
) [inline, protected, virtual]

Definition at line 310 of file KoRTree.h.

template<typename T>
virtual NoneLeafNode* KoRTree< T >::createNoneLeafNode ( int  capacity,
int  level,
Node parent 
) [inline, protected, virtual]

Definition at line 313 of file KoRTree.h.

template<typename T>
void KoRTree< T >::insert ( Node node  )  [inline, protected]

Definition at line 403 of file KoRTree.h.

template<typename T>
void KoRTree< T >::insert ( const QRectF bb,
const T &  data 
) [inline, virtual]

Insert data item into the tree.

This will insert a data item into the tree. If necessary the tree will adjust itself.

Parameters:
data 
bb 

Definition at line 352 of file KoRTree.h.

template<typename T>
void KoRTree< T >::insertHelper ( const QRectF bb,
const T &  data,
int  id 
) [inline, protected]

Definition at line 358 of file KoRTree.h.

template<typename T >
QList< T > KoRTree< T >::intersects ( const QRectF rect  )  const [inline, virtual]

Find all data items which intersects rect The items are sorted by insertion time in ascending order.

Parameters:
rect where the objects have to be in
Returns:
objects intersecting the rect

Definition at line 458 of file KoRTree.h.

template<typename T >
QList< QRectF > KoRTree< T >::keys (  )  const [inline]

Find all data rectangles The order is guaranteed to be the same as that used by values().

Returns:
a list containing all the data rectangles used in the tree

Definition at line 474 of file KoRTree.h.

template<typename T >
QPair< int, int > KoRTree< T >::pickNext ( Node node,
QVector< bool > &  marker,
Node group1,
Node group2 
) [inline, protected]

Definition at line 604 of file KoRTree.h.

template<typename T >
QPair< int, int > KoRTree< T >::pickSeeds ( Node node  )  [inline, protected]

Definition at line 579 of file KoRTree.h.

template<typename T>
void KoRTree< T >::remove ( const T &  data  )  [inline]

Remove a data item from the tree.

This removed a data item from the tree. If necessary the tree will adjust itself.

Parameters:
data 

Definition at line 422 of file KoRTree.h.

template<typename T >
QPair< typename KoRTree< T >::Node *, typename KoRTree< T >::Node * > KoRTree< T >::splitNode ( typename KoRTree< T >::Node node  )  [inline, protected]

Definition at line 507 of file KoRTree.h.

template<typename T >
QList< T > KoRTree< T >::values (  )  const [inline]

Find all data items The order is guaranteed to be the same as that used by keys().

Returns:
a list containing all the data used in the tree

Definition at line 482 of file KoRTree.h.


Member Data Documentation

template<typename T>
int KoRTree< T >::m_capacity [protected]

Definition at line 328 of file KoRTree.h.

template<typename T>
QMap<T, LeafNode *> KoRTree< T >::m_leafMap [protected]

Definition at line 331 of file KoRTree.h.

template<typename T>
int KoRTree< T >::m_minimum [protected]

Definition at line 329 of file KoRTree.h.

template<typename T>
Node* KoRTree< T >::m_root [protected]

Definition at line 330 of file KoRTree.h.


The documentation for this class was generated from the following file: