SpatialIndex::RTree::Node Class Reference

#include <Node.h>

Inheritance diagram for SpatialIndex::RTree::Node:

Inheritance graph
[legend]
Collaboration diagram for SpatialIndex::RTree::Node:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 36 of file Node.h.

Public Member Functions

virtual ~Node ()
virtual Tools::IObject * clone ()
virtual unsigned long getByteArraySize ()
virtual void loadFromByteArray (const byte *data)
virtual void storeToByteArray (byte **data, unsigned long &len)
virtual long getIdentifier () const
virtual void getShape (IShape **out) const
virtual unsigned long getChildrenCount () const
virtual long getChildIdentifier (unsigned long index) const
virtual void getChildShape (unsigned long index, IShape **out) const
virtual unsigned long getLevel () const
virtual bool isIndex () const
virtual bool isLeaf () const

Private Member Functions

 Node ()
 Node (RTree *pTree, long id, unsigned long level, unsigned long capacity)
virtual Nodeoperator= (const Node &)
virtual void insertEntry (unsigned long dataLength, byte *pData, Region &mbr, long id)
virtual void deleteEntry (unsigned long index)
virtual bool insertData (unsigned long dataLength, byte *pData, Region &mbr, long id, std::stack< long > &pathBuffer, byte *overflowTable)
virtual void reinsertData (unsigned long dataLength, byte *pData, Region &mbr, long id, std::vector< long > &reinsert, std::vector< long > &keep)
virtual void rtreeSplit (unsigned long dataLength, byte *pData, Region &mbr, long id, std::vector< long > &group1, std::vector< long > &group2)
virtual void rstarSplit (unsigned long dataLength, byte *pData, Region &mbr, long id, std::vector< long > &group1, std::vector< long > &group2)
virtual void pickSeeds (unsigned long &index1, unsigned long &index2)
virtual void condenseTree (std::stack< NodePtr > &toReinsert, std::stack< long > &pathBuffer, NodePtr &ptrThis)
virtual NodePtr chooseSubtree (const Region &mbr, unsigned long level, std::stack< long > &pathBuffer)=0
virtual NodePtr findLeaf (const Region &mbr, long id, std::stack< long > &pathBuffer)=0
virtual void split (unsigned long dataLength, byte *pData, Region &mbr, long id, NodePtr &left, NodePtr &right)=0

Private Attributes

RTreem_pTree
unsigned long m_level
long m_identifier
unsigned long m_children
unsigned long m_capacity
Region m_nodeMBR
byte ** m_pData
RegionPtrm_ptrMBR
long * m_pIdentifier
unsigned long * m_pDataLength
unsigned long m_totalDataLength

Friends

class RTree
class Leaf
class Index
class Tools::PointerPool< Node >
class BulkLoader

Classes

class  ReinsertEntry
class  RstarSplitEntry


Constructor & Destructor Documentation

virtual SpatialIndex::RTree::Node::~Node (  )  [virtual]

SpatialIndex::RTree::Node::Node (  )  [private]

SpatialIndex::RTree::Node::Node ( RTree pTree,
long  id,
unsigned long  level,
unsigned long  capacity 
) [private]


Member Function Documentation

virtual Tools::IObject* SpatialIndex::RTree::Node::clone (  )  [virtual]

virtual unsigned long SpatialIndex::RTree::Node::getByteArraySize (  )  [virtual]

virtual void SpatialIndex::RTree::Node::loadFromByteArray ( const byte data  )  [virtual]

virtual void SpatialIndex::RTree::Node::storeToByteArray ( byte **  data,
unsigned long &  len 
) [virtual]

virtual long SpatialIndex::RTree::Node::getIdentifier (  )  const [virtual]

virtual void SpatialIndex::RTree::Node::getShape ( IShape **  out  )  const [virtual]

virtual unsigned long SpatialIndex::RTree::Node::getChildrenCount (  )  const [virtual]

virtual long SpatialIndex::RTree::Node::getChildIdentifier ( unsigned long  index  )  const [virtual]

virtual void SpatialIndex::RTree::Node::getChildShape ( unsigned long  index,
IShape **  out 
) const [virtual]

virtual unsigned long SpatialIndex::RTree::Node::getLevel (  )  const [virtual]

virtual bool SpatialIndex::RTree::Node::isIndex (  )  const [virtual]

virtual bool SpatialIndex::RTree::Node::isLeaf (  )  const [virtual]

virtual Node& SpatialIndex::RTree::Node::operator= ( const Node  )  [private, virtual]

virtual void SpatialIndex::RTree::Node::insertEntry ( unsigned long  dataLength,
byte pData,
Region &  mbr,
long  id 
) [private, virtual]

virtual void SpatialIndex::RTree::Node::deleteEntry ( unsigned long  index  )  [private, virtual]

virtual bool SpatialIndex::RTree::Node::insertData ( unsigned long  dataLength,
byte pData,
Region &  mbr,
long  id,
std::stack< long > &  pathBuffer,
byte overflowTable 
) [private, virtual]

virtual void SpatialIndex::RTree::Node::reinsertData ( unsigned long  dataLength,
byte pData,
Region &  mbr,
long  id,
std::vector< long > &  reinsert,
std::vector< long > &  keep 
) [private, virtual]

virtual void SpatialIndex::RTree::Node::rtreeSplit ( unsigned long  dataLength,
byte pData,
Region &  mbr,
long  id,
std::vector< long > &  group1,
std::vector< long > &  group2 
) [private, virtual]

virtual void SpatialIndex::RTree::Node::rstarSplit ( unsigned long  dataLength,
byte pData,
Region &  mbr,
long  id,
std::vector< long > &  group1,
std::vector< long > &  group2 
) [private, virtual]

virtual void SpatialIndex::RTree::Node::pickSeeds ( unsigned long &  index1,
unsigned long &  index2 
) [private, virtual]

virtual void SpatialIndex::RTree::Node::condenseTree ( std::stack< NodePtr > &  toReinsert,
std::stack< long > &  pathBuffer,
NodePtr ptrThis 
) [private, virtual]

virtual NodePtr SpatialIndex::RTree::Node::chooseSubtree ( const Region &  mbr,
unsigned long  level,
std::stack< long > &  pathBuffer 
) [private, pure virtual]

Implemented in SpatialIndex::RTree::Index, and SpatialIndex::RTree::Leaf.

virtual NodePtr SpatialIndex::RTree::Node::findLeaf ( const Region &  mbr,
long  id,
std::stack< long > &  pathBuffer 
) [private, pure virtual]

Implemented in SpatialIndex::RTree::Index, and SpatialIndex::RTree::Leaf.

virtual void SpatialIndex::RTree::Node::split ( unsigned long  dataLength,
byte pData,
Region &  mbr,
long  id,
NodePtr left,
NodePtr right 
) [private, pure virtual]

Implemented in SpatialIndex::RTree::Index, and SpatialIndex::RTree::Leaf.


Friends And Related Function Documentation

friend class RTree [friend]

Reimplemented in SpatialIndex::RTree::Index, and SpatialIndex::RTree::Leaf.

Definition at line 184 of file Node.h.

friend class Leaf [friend]

Definition at line 185 of file Node.h.

friend class Index [friend]

Definition at line 186 of file Node.h.

friend class Tools::PointerPool< Node > [friend]

Definition at line 187 of file Node.h.

friend class BulkLoader [friend]

Reimplemented in SpatialIndex::RTree::Index, and SpatialIndex::RTree::Leaf.

Definition at line 188 of file Node.h.


Member Data Documentation

RTree* SpatialIndex::RTree::Node::m_pTree [private]

Definition at line 96 of file Node.h.

unsigned long SpatialIndex::RTree::Node::m_level [private]

Definition at line 99 of file Node.h.

Referenced by Tools::PointerPool< RTree::Node >::release().

long SpatialIndex::RTree::Node::m_identifier [private]

Definition at line 103 of file Node.h.

Referenced by Tools::PointerPool< RTree::Node >::release().

unsigned long SpatialIndex::RTree::Node::m_children [private]

Definition at line 106 of file Node.h.

Referenced by Tools::PointerPool< RTree::Node >::release().

unsigned long SpatialIndex::RTree::Node::m_capacity [private]

Definition at line 109 of file Node.h.

Region SpatialIndex::RTree::Node::m_nodeMBR [private]

Definition at line 112 of file Node.h.

byte** SpatialIndex::RTree::Node::m_pData [private]

Definition at line 115 of file Node.h.

Referenced by Tools::PointerPool< RTree::Node >::release().

RegionPtr* SpatialIndex::RTree::Node::m_ptrMBR [private]

Definition at line 118 of file Node.h.

long* SpatialIndex::RTree::Node::m_pIdentifier [private]

Definition at line 121 of file Node.h.

unsigned long* SpatialIndex::RTree::Node::m_pDataLength [private]

Definition at line 124 of file Node.h.

unsigned long SpatialIndex::RTree::Node::m_totalDataLength [private]

Definition at line 126 of file Node.h.

Referenced by Tools::PointerPool< RTree::Node >::release().


The documentation for this class was generated from the following file:
Generated on Tue Oct 28 16:52:08 2008 for Quantum GIS API Documentation by  doxygen 1.5.1