QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
SpatialIndex::RTree::Node Class Referenceabstract

#include <Node.h>

Inheritance diagram for SpatialIndex::RTree::Node:
SpatialIndex::INode SpatialIndex::IEntry Tools::ISerializable Tools::IObject SpatialIndex::RTree::Index SpatialIndex::RTree::Leaf

Classes

class  ReinsertEntry
 
class  RstarSplitEntry
 

Public Member Functions

virtual Tools::IObjectclone ()
 
virtual uint32_t getByteArraySize ()
 
virtual void getChildData (uint32_t index, uint32_t &length, byte **data) const
 
virtual id_type getChildIdentifier (uint32_t index) const
 
virtual uint32_t getChildrenCount () const
 
virtual void getChildShape (uint32_t index, IShape **out) const
 
virtual id_type getIdentifier () const
 
virtual uint32_t getLevel () const
 
virtual void getShape (IShape **out) const
 
virtual bool isIndex () const
 
virtual bool isLeaf () const
 
virtual void loadFromByteArray (const byte *data)
 
virtual void storeToByteArray (byte **data, uint32_t &len)
 
virtual ~Node ()
 
- Public Member Functions inherited from SpatialIndex::INode
virtual ~INode ()
 
- Public Member Functions inherited from SpatialIndex::IEntry
virtual ~IEntry ()
 
- Public Member Functions inherited from Tools::IObject
virtual ~IObject ()
 
- Public Member Functions inherited from Tools::ISerializable
virtual ~ISerializable ()
 

Private Member Functions

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

Private Attributes

uint32_t m_capacity
 
uint32_t m_children
 
id_type m_identifier
 
uint32_t m_level
 
Region m_nodeMBR
 
byte ** m_pData
 
uint32_t * m_pDataLength
 
id_typem_pIdentifier
 
RTreem_pTree
 
RegionPtrm_ptrMBR
 
uint32_t m_totalDataLength
 

Friends

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

Constructor & Destructor Documentation

◆ ~Node()

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

◆ Node() [1/2]

SpatialIndex::RTree::Node::Node ( )
private

◆ Node() [2/2]

SpatialIndex::RTree::Node::Node ( RTree * pTree,
id_type id,
uint32_t level,
uint32_t capacity )
private

Member Function Documentation

◆ chooseSubtree()

virtual NodePtr SpatialIndex::RTree::Node::chooseSubtree ( const Region & mbr,
uint32_t level,
std::stack< id_type > & pathBuffer )
privatepure virtual

◆ clone()

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

Implements Tools::IObject.

◆ condenseTree()

virtual void SpatialIndex::RTree::Node::condenseTree ( std::stack< NodePtr > & toReinsert,
std::stack< id_type > & pathBuffer,
NodePtr & ptrThis )
privatevirtual

◆ deleteEntry()

virtual void SpatialIndex::RTree::Node::deleteEntry ( uint32_t index)
privatevirtual

◆ findLeaf()

virtual NodePtr SpatialIndex::RTree::Node::findLeaf ( const Region & mbr,
id_type id,
std::stack< id_type > & pathBuffer )
privatepure virtual

◆ getByteArraySize()

virtual uint32_t SpatialIndex::RTree::Node::getByteArraySize ( )
virtual

Implements Tools::ISerializable.

◆ getChildData()

virtual void SpatialIndex::RTree::Node::getChildData ( uint32_t index,
uint32_t & length,
byte ** data ) const
virtual

Implements SpatialIndex::INode.

◆ getChildIdentifier()

virtual id_type SpatialIndex::RTree::Node::getChildIdentifier ( uint32_t index) const
virtual

Implements SpatialIndex::INode.

◆ getChildrenCount()

virtual uint32_t SpatialIndex::RTree::Node::getChildrenCount ( ) const
virtual

Implements SpatialIndex::INode.

◆ getChildShape()

virtual void SpatialIndex::RTree::Node::getChildShape ( uint32_t index,
IShape ** out ) const
virtual

Implements SpatialIndex::INode.

◆ getIdentifier()

virtual id_type SpatialIndex::RTree::Node::getIdentifier ( ) const
virtual

Implements SpatialIndex::IEntry.

◆ getLevel()

virtual uint32_t SpatialIndex::RTree::Node::getLevel ( ) const
virtual

Implements SpatialIndex::INode.

◆ getShape()

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

Implements SpatialIndex::IEntry.

◆ insertData()

virtual bool SpatialIndex::RTree::Node::insertData ( uint32_t dataLength,
byte * pData,
Region & mbr,
id_type id,
std::stack< id_type > & pathBuffer,
byte * overflowTable )
privatevirtual

◆ insertEntry()

virtual void SpatialIndex::RTree::Node::insertEntry ( uint32_t dataLength,
byte * pData,
Region & mbr,
id_type id )
privatevirtual

◆ isIndex()

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

Implements SpatialIndex::INode.

◆ isLeaf()

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

Implements SpatialIndex::INode.

◆ loadFromByteArray()

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

Implements Tools::ISerializable.

◆ operator=()

virtual Node & SpatialIndex::RTree::Node::operator= ( const Node & )
privatevirtual

◆ pickSeeds()

virtual void SpatialIndex::RTree::Node::pickSeeds ( uint32_t & index1,
uint32_t & index2 )
privatevirtual

◆ reinsertData()

virtual void SpatialIndex::RTree::Node::reinsertData ( uint32_t dataLength,
byte * pData,
Region & mbr,
id_type id,
std::vector< uint32_t > & reinsert,
std::vector< uint32_t > & keep )
privatevirtual

◆ rstarSplit()

virtual void SpatialIndex::RTree::Node::rstarSplit ( uint32_t dataLength,
byte * pData,
Region & mbr,
id_type id,
std::vector< uint32_t > & group1,
std::vector< uint32_t > & group2 )
privatevirtual

◆ rtreeSplit()

virtual void SpatialIndex::RTree::Node::rtreeSplit ( uint32_t dataLength,
byte * pData,
Region & mbr,
id_type id,
std::vector< uint32_t > & group1,
std::vector< uint32_t > & group2 )
privatevirtual

◆ split()

virtual void SpatialIndex::RTree::Node::split ( uint32_t dataLength,
byte * pData,
Region & mbr,
id_type id,
NodePtr & left,
NodePtr & right )
privatepure virtual

◆ storeToByteArray()

virtual void SpatialIndex::RTree::Node::storeToByteArray ( byte ** data,
uint32_t & len )
virtual

Implements Tools::ISerializable.

Friends And Related Symbol Documentation

◆ BulkLoader

friend class BulkLoader
friend

◆ Index

friend class Index
friend

◆ Leaf

friend class Leaf
friend

◆ RTree

friend class RTree
friend

◆ Tools::PointerPool< Node >

friend class Tools::PointerPool< Node >
friend

Member Data Documentation

◆ m_capacity

uint32_t SpatialIndex::RTree::Node::m_capacity
private

◆ m_children

uint32_t SpatialIndex::RTree::Node::m_children
private

◆ m_identifier

id_type SpatialIndex::RTree::Node::m_identifier
private

◆ m_level

uint32_t SpatialIndex::RTree::Node::m_level
private

◆ m_nodeMBR

Region SpatialIndex::RTree::Node::m_nodeMBR
private

◆ m_pData

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

◆ m_pDataLength

uint32_t* SpatialIndex::RTree::Node::m_pDataLength
private

◆ m_pIdentifier

id_type* SpatialIndex::RTree::Node::m_pIdentifier
private

◆ m_pTree

RTree* SpatialIndex::RTree::Node::m_pTree
private

◆ m_ptrMBR

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

◆ m_totalDataLength

uint32_t SpatialIndex::RTree::Node::m_totalDataLength
private

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