#include <KoRTree.h>
Graphe d'héritage de KoRTree< T >:
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 LeafNode * | createLeafNode (int capacity, int level, Node *parent) |
virtual NoneLeafNode * | createNoneLeafNode (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 |
Node * | m_root |
QMap< T, LeafNode * > | m_leafMap |
Classes | |
class | LeafNode |
class | Node |
class | NoneLeafNode |
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.
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.
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 :
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.
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 :
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.
rect | where the objects have to be in |
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 :
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.
point | which should be contained in the objects |
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 :
QList< QRectF > KoRTree< T >::keys | ( | ) | const |
Find all data rectangles The order is guaranteed to be the same as that used by values().
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 :
QList< T > KoRTree< T >::values | ( | ) | const |
Find all data items The order is guaranteed to be the same as that used by keys().
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 :
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 :
Référencé par KoRTree< T >::adjustTree(), KoRTree< T >::insert(), et KoRTree< T >::insertHelper().
Voici le graphe d'appel pour cette fonction :
Définition à la ligne 558 du fichier KoRTree.h.
Références KoRTree< T >::Node::childBoundingBox().
Voici le graphe d'appel pour cette fonction :
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 :
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 :
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 :
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 :
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 :
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().
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().
Définition à la ligne 293 du fichier KoRTree.h.
Référencé par KoRTree< T >::insertHelper(), et KoRTree< T >::remove().