Krita Source Code Documentation
Loading...
Searching...
No Matches
KoRTree< T >::Node Class Referenceabstract

#include <KoRTree.h>

+ Inheritance diagram for KoRTree< T >::Node:

Public Member Functions

virtual const QRectF & boundingBox () const
 
virtual const QRectF & childBoundingBox (int index) const
 
virtual int childCount () const
 
virtual LeafNodechooseLeaf (const QRectF &bb)=0
 
virtual NonLeafNodechooseNode (const QRectF &bb, int level)=0
 
virtual void clear ()
 
virtual void contained (const QRectF &point, QMap< int, T > &result) const =0
 
virtual void contains (const QPointF &point, QMap< int, T > &result) const =0
 
virtual void intersects (const QRectF &rect, QMap< int, T > &result) const =0
 
virtual bool isLeaf () const
 
virtual bool isRoot () const
 
virtual void keys (QList< QRectF > &result) const =0
 
virtual int level () const
 
virtual void move (Node *node, int index)=0
 
 Node (int capacity, int level, Node *parent)
 
virtual Nodeparent () const
 
virtual int place () const
 
virtual void remove (int index)
 
virtual void setChildBoundingBox (int index, const QRectF &rect)
 
virtual void setLevel (int level)
 
virtual void setParent (Node *parent)
 
virtual void setPlace (int place)
 
virtual void updateBoundingBox ()
 
virtual void values (QMap< int, T > &result) const =0
 
virtual ~Node ()
 

Protected Attributes

QRectF m_boundingBox
 
QVector< QRectF > m_childBoundingBox
 
int m_counter
 
int m_level
 
Nodem_parent
 
int m_place
 

Detailed Description

template<typename T>
class KoRTree< T >::Node

Definition at line 151 of file KoRTree.h.

Constructor & Destructor Documentation

◆ Node()

template<typename T >
KoRTree< T >::Node::Node ( int capacity,
int level,
Node * parent )

Definition at line 776 of file KoRTree.h.

778 , m_childBoundingBox(capacity)
779 , m_counter(0)
780 , m_place(0)
781#ifdef CALLIGRA_RTREE_DEBUG
782 , m_nodeId(nodeIdCnt++)
783#endif
784 , m_level(level)
785{
786}
Node * m_parent
Definition KoRTree.h:233
virtual int level() const
Definition KoRTree.h:212
virtual Node * parent() const
Definition KoRTree.h:174
QVector< QRectF > m_childBoundingBox
Definition KoRTree.h:235

◆ ~Node()

template<typename T >
virtual KoRTree< T >::Node::~Node ( )
inlinevirtual

Definition at line 158 of file KoRTree.h.

158{}

Member Function Documentation

◆ boundingBox()

template<typename T >
virtual const QRectF & KoRTree< T >::Node::boundingBox ( ) const
inlinevirtual

Definition at line 185 of file KoRTree.h.

185 {
186 return m_boundingBox;
187 }
QRectF m_boundingBox
Definition KoRTree.h:234

References KoRTree< T >::Node::m_boundingBox.

◆ childBoundingBox()

template<typename T >
virtual const QRectF & KoRTree< T >::Node::childBoundingBox ( int index) const
inlinevirtual

Definition at line 190 of file KoRTree.h.

190 {
191 return m_childBoundingBox[index];
192 }

References KoRTree< T >::Node::m_childBoundingBox.

◆ childCount()

template<typename T >
virtual int KoRTree< T >::Node::childCount ( ) const
inlinevirtual

Definition at line 181 of file KoRTree.h.

181 {
182 return m_counter;
183 }

References KoRTree< T >::Node::m_counter.

◆ chooseLeaf()

template<typename T >
virtual LeafNode * KoRTree< T >::Node::chooseLeaf ( const QRectF & bb)
pure virtual

◆ chooseNode()

template<typename T >
virtual NonLeafNode * KoRTree< T >::Node::chooseNode ( const QRectF & bb,
int level )
pure virtual

◆ clear()

template<typename T >
void KoRTree< T >::Node::clear ( )
virtual

Definition at line 808 of file KoRTree.h.

809{
810 m_counter = 0;
811 m_boundingBox = QRectF();
812}

◆ contained()

template<typename T >
virtual void KoRTree< T >::Node::contained ( const QRectF & point,
QMap< int, T > & result ) const
pure virtual

◆ contains()

template<typename T >
virtual void KoRTree< T >::Node::contains ( const QPointF & point,
QMap< int, T > & result ) const
pure virtual

◆ intersects()

template<typename T >
virtual void KoRTree< T >::Node::intersects ( const QRectF & rect,
QMap< int, T > & result ) const
pure virtual

◆ isLeaf()

template<typename T >
virtual bool KoRTree< T >::Node::isLeaf ( ) const
inlinevirtual

Reimplemented in KoRTree< T >::LeafNode.

Definition at line 201 of file KoRTree.h.

201 {
202 return false;
203 }

◆ isRoot()

template<typename T >
virtual bool KoRTree< T >::Node::isRoot ( ) const
inlinevirtual

Definition at line 198 of file KoRTree.h.

198 {
199 return m_parent == 0;
200 }

References KoRTree< T >::Node::m_parent.

◆ keys()

template<typename T >
virtual void KoRTree< T >::Node::keys ( QList< QRectF > & result) const
pure virtual

◆ level()

template<typename T >
virtual int KoRTree< T >::Node::level ( ) const
inlinevirtual

Definition at line 212 of file KoRTree.h.

212 {
213 return m_level;
214 }

References KoRTree< T >::Node::m_level.

◆ move()

template<typename T >
virtual void KoRTree< T >::Node::move ( Node * node,
int index )
pure virtual

◆ parent()

template<typename T >
virtual Node * KoRTree< T >::Node::parent ( ) const
inlinevirtual

Definition at line 174 of file KoRTree.h.

174 {
175 return m_parent;
176 }

References KoRTree< T >::Node::m_parent.

◆ place()

template<typename T >
virtual int KoRTree< T >::Node::place ( ) const
inlinevirtual

Definition at line 205 of file KoRTree.h.

205 {
206 return m_place;
207 }

References KoRTree< T >::Node::m_place.

◆ remove()

template<typename T >
void KoRTree< T >::Node::remove ( int index)
virtual

Reimplemented in KoRTree< T >::NonLeafNode, and KoRTree< T >::LeafNode.

Definition at line 789 of file KoRTree.h.

790{
791 for (int i = index + 1; i < m_counter; ++i) {
793 }
794 --m_counter;
796}
virtual void updateBoundingBox()
Definition KoRTree.h:799

◆ setChildBoundingBox()

template<typename T >
virtual void KoRTree< T >::Node::setChildBoundingBox ( int index,
const QRectF & rect )
inlinevirtual

Definition at line 193 of file KoRTree.h.

193 {
194 m_childBoundingBox[index] = rect;
195 }

References KoRTree< T >::Node::m_childBoundingBox.

◆ setLevel()

template<typename T >
virtual void KoRTree< T >::Node::setLevel ( int level)
inlinevirtual

Definition at line 215 of file KoRTree.h.

215 {
216 m_level = level;
217 }

References KoRTree< T >::Node::level(), and KoRTree< T >::Node::m_level.

◆ setParent()

template<typename T >
virtual void KoRTree< T >::Node::setParent ( Node * parent)
inlinevirtual

Definition at line 177 of file KoRTree.h.

177 {
179 }

References KoRTree< T >::Node::m_parent, and KoRTree< T >::Node::parent().

◆ setPlace()

template<typename T >
virtual void KoRTree< T >::Node::setPlace ( int place)
inlinevirtual

Definition at line 208 of file KoRTree.h.

208 {
209 m_place = place;
210 }
virtual int place() const
Definition KoRTree.h:205

References KoRTree< T >::Node::m_place, and KoRTree< T >::Node::place().

◆ updateBoundingBox()

template<typename T >
void KoRTree< T >::Node::updateBoundingBox ( )
virtual

Definition at line 799 of file KoRTree.h.

800{
801 m_boundingBox = QRectF();
802 for (int i = 0; i < m_counter; ++i) {
804 }
805}

◆ values()

template<typename T >
virtual void KoRTree< T >::Node::values ( QMap< int, T > & result) const
pure virtual

Member Data Documentation

◆ m_boundingBox

template<typename T >
QRectF KoRTree< T >::Node::m_boundingBox
protected

Definition at line 234 of file KoRTree.h.

◆ m_childBoundingBox

template<typename T >
QVector<QRectF> KoRTree< T >::Node::m_childBoundingBox
protected

Definition at line 235 of file KoRTree.h.

◆ m_counter

template<typename T >
int KoRTree< T >::Node::m_counter
protected

Definition at line 236 of file KoRTree.h.

◆ m_level

template<typename T >
int KoRTree< T >::Node::m_level
protected

Definition at line 242 of file KoRTree.h.

◆ m_parent

template<typename T >
Node* KoRTree< T >::Node::m_parent
protected

Definition at line 233 of file KoRTree.h.

◆ m_place

template<typename T >
int KoRTree< T >::Node::m_place
protected

Definition at line 238 of file KoRTree.h.


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