Référence de la classe KoRTree< T > (modèle)

The KoRTree class is a template class that provides a R-tree. Plus de détails...

#include <KoRTree.h>

Graphe d'héritage de KoRTree< T >:

[légende]
Graphe de collaboration de KoRTree< T >:
[légende]
Liste de tous les membres

Fonctions membres publiques

 KoRTree (int capacity, int minimum)
 Constructor.
virtual ~KoRTree ()
 Destructor.
virtual void insert (const QRectF &bb, const T &data)
 Insert data item into the tree.
void remove (const T &data)
 Remove a data item from the tree.
virtual QList< T > intersects (const QRectF &rect) const
 Find all data items which intersects rect The items are sorted by insertion time in ascending order.
QList< T > contains (const QPointF &point) const
 Find all data item which contain the point The items are sorted by insertion time in ascending order.
QList< QRectF > keys () const
 Find all data rectangles The order is guaranteed to be the same as that used by values().
QList< T > values () const
 Find all data items The order is guaranteed to be the same as that used by keys().

Fonctions membres protégées

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

Attributs protégés

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

Classes

class  LeafNode
class  Node
class  NoneLeafNode

Description détaillée

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 dimentional bounding boxes which are repesented by a QRectF. For node splitting the Quadratic-Cost Algorithm is used as descibed by Guttman.

Définition à la ligne 45 du fichier KoRTree.h.


Documentation des contructeurs et destructeur

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

Constructor.

Paramètres:
capacity the capacity a node can take
minimum the minimum filling of a node max 0.5 * capacity

Définition à la ligne 297 du fichier KoRTree.h.

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

Destructor.

Définition à la ligne 308 du fichier KoRTree.h.

Références KoRTree< T >::m_root.


Documentation des fonctions membres

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

Insert data item into the tree.

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

Paramètres:
data 
bb 

Définition à la ligne 314 du fichier KoRTree.h.

Références KoRTree< T >::LeafNode::dataIdCounter, et KoRTree< T >::insertHelper().

Référencé par KoShapeManager::add(), Canvas::insert(), KoRTree< T >::remove(), et KoShapeManager::updateTree().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :

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

Remove a data item from the tree.

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

Paramètres:
data 

Définition à la ligne 382 du fichier KoRTree.h.

Références KoRTree< T >::Node::childBoundingBox(), KoRTree< T >::Node::childCount(), KoRTree< T >::condenseTree(), KoRTree< T >::LeafNode::getData(), KoRTree< T >::LeafNode::getDataId(), KoRTree< T >::NoneLeafNode::getNode(), KoRTree< T >::insert(), KoRTree< T >::insertHelper(), KoRTree< T >::m_leafMap, et KoRTree< T >::LeafNode::remove().

Référencé par Canvas::remove(), KoShapeManager::remove(), KoShapeManager::setShapes(), et KoShapeManager::updateTree().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :

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

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

Paramètres:
rect where the objects have to be in
Renvoie:
objects intersecting the rect

Définition à la ligne 421 du fichier KoRTree.h.

Références KoRTree< T >::Node::intersects(), et KoRTree< T >::m_root.

Référencé par KoShapeManager::paint(), Canvas::remove(), Canvas::select(), et KoShapeManager::shapesAt().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :

template<typename T>
QList< T > KoRTree< T >::contains ( const QPointF &  point  )  const

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

Paramètres:
point which should be contained in the objects
Renvoie:
objects which contain the point

Définition à la ligne 429 du fichier KoRTree.h.

Références KoRTree< T >::Node::contains(), et KoRTree< T >::m_root.

Référencé par Canvas::select(), et KoShapeManager::shapeAt().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :

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

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

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

Définition à la ligne 437 du fichier KoRTree.h.

Références KoRTree< T >::Node::keys(), et KoRTree< T >::m_root.

Voici le graphe d'appel pour cette fonction :

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

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

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

Définition à la ligne 445 du fichier KoRTree.h.

Références KoRTree< T >::m_root, et KoRTree< T >::Node::values().

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 270 du fichier KoRTree.h.

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

Définition à la ligne 274 du fichier KoRTree.h.

Référencé par KoRTree< T >::adjustTree().

Voici le graphe d'appel pour cette fonction :

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

Référencé par KoRTree< T >::adjustTree(), KoRTree< T >::insert(), et KoRTree< T >::insertHelper().

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 558 du fichier KoRTree.h.

Références KoRTree< T >::Node::childBoundingBox().

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 587 du fichier KoRTree.h.

Références KoRTree< T >::Node::boundingBox(), et KoRTree< T >::Node::childBoundingBox().

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 625 du fichier KoRTree.h.

Références KoRTree< T >::Node::boundingBox(), KoRTree< T >::Node::childCount(), KoRTree< T >::createNoneLeafNode(), KoRTree< T >::NoneLeafNode::insert(), KoRTree< T >::Node::isRoot(), KoRTree< T >::Node::level(), KoRTree< T >::m_root, KoRTree< T >::Node::parent(), KoRTree< T >::Node::place(), KoRTree< T >::Node::setChildBoundingBox(), KoRTree< T >::splitNode(), et KoRTree< T >::Node::updateBoundingBox().

Référencé par KoRTree< T >::insert(), et KoRTree< T >::insertHelper().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 320 du fichier KoRTree.h.

Références KoRTree< T >::adjustTree(), KoRTree< T >::Node::childCount(), KoRTree< T >::Node::chooseLeaf(), KoRTree< T >::LeafNode::getData(), KoRTree< T >::LeafNode::insert(), KoRTree< T >::m_capacity, KoRTree< T >::m_leafMap, KoRTree< T >::m_root, et KoRTree< T >::splitNode().

Référencé par KoRTree< T >::insert(), et KoRTree< T >::remove().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 359 du fichier KoRTree.h.

Références KoRTree< T >::adjustTree(), KoRTree< T >::Node::boundingBox(), KoRTree< T >::Node::chooseNode(), KoRTree< T >::NoneLeafNode::insert(), KoRTree< T >::Node::level(), KoRTree< T >::m_capacity, KoRTree< T >::m_root, et KoRTree< T >::splitNode().

Voici le graphe d'appel pour cette fonction :

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

Définition à la ligne 673 du fichier KoRTree.h.

Références KoRTree< T >::Node::boundingBox(), KoRTree< T >::Node::childCount(), KoRTree< T >::Node::isLeaf(), KoRTree< T >::Node::isRoot(), KoRTree< T >::m_minimum, KoRTree< T >::m_root, KoRTree< T >::Node::parent(), KoRTree< T >::Node::place(), KoRTree< T >::Node::remove(), et KoRTree< T >::Node::setParent().

Référencé par KoRTree< T >::remove().

Voici le graphe d'appel pour cette fonction :

Voici le graphe d'appel pour cette fonction :


Documentation des données membres

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

Définition à la ligne 290 du fichier KoRTree.h.

Référencé par KoRTree< T >::insert(), et KoRTree< T >::insertHelper().

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

Définition à la ligne 291 du fichier KoRTree.h.

Référencé par KoRTree< T >::condenseTree().

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

Définition à la ligne 292 du fichier KoRTree.h.

Référencé par KoRTree< T >::adjustTree(), KoRTree< T >::condenseTree(), KoRTree< T >::contains(), KoRTree< T >::insert(), KoRTree< T >::insertHelper(), KoRTree< T >::intersects(), KoRTree< T >::keys(), KoRTree< T >::values(), et KoRTree< T >::~KoRTree().

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

Définition à la ligne 293 du fichier KoRTree.h.

Référencé par KoRTree< T >::insertHelper(), et KoRTree< T >::remove().


La documentation de cette classe a été générée à partir du fichier suivant :
Généré le Wed Nov 22 23:48:42 2006 pour KPlato par  doxygen 1.5.1-p1