IPointIndexLeaf Class Referenceabstract

object representing a spatial leaf within a point index More...

#include "IPointIndexLeaf.hpp"

+ Inheritance diagram for IPointIndexLeaf:

Classes

struct  kd_tree_tag
 
struct  kd_tree_with_lazy_deletion_tag
 

Public Types

typedef ConstIterator< IPointconst_iterator_point
 Point iterator.
 
typedef InsertIterator< IPointinsert_iterator_point
 Point insert iterator (used in searchPoint functions)
 

Public Member Functions

virtual BoxHandle getLimit () const =0
 get points based bounding box
 
virtual BoxHandle getIndexLimit () const =0
 get index based bounding box (if no index bounding available the points based bounding box is returned)
 
virtual int64_t sizePoint () const =0
 
virtual int indexDim () const =0
 
virtual int64_t id () const =0
 identifier for direct leaf access by the IPointIndex object
 
virtual int64_t storageId () const =0
 get id of storage manager
 
virtual double estimatePointDensity () const =0
 
virtual IPointIndexLeafclone () const =0
 
virtual const_iterator_point beginPoint () const =0
 
virtual const_iterator_point endPoint () const =0
 
virtual PointHandle getPoint (int64_t id) const =0
 get point by id (if the id doesn't exist within the leaf an empty handle is returned)
 
virtual void addPoint (const IPoint &pt)=0
 
virtual void addPoint (PointHandle pt)=0
 
virtual void removePoint (int64_t id)=0
 
virtual void build ()=0
 
virtual void clear ()=0
 
virtual void setChanged (bool changed)=0
 
virtual bool isChanged () const =0
 
virtual void searchPoint (const IWindow &win, insert_iterator_point &instIt, bool includeRightBoundary=true)=0
 
virtual void searchPoint (const IBox &box, insert_iterator_point &instIt, bool includeRightBoundary=true)=0
 
virtual void searchPoint (const IPolygon &p, insert_iterator_point &instIt)=0
 
virtual void searchPoint (const ICircle &c, insert_iterator_point &instIt)=0
 
virtual void searchPoint (const ISphere &s, insert_iterator_point &instIt)=0
 
virtual void searchPoint (const ICylinder &c, insert_iterator_point &instIt)=0
 
virtual void searchPoint (int nnCount, const IPoint &queryPt, insert_iterator_point &instIt, double maxDistance=-1, SelectionMode selectionMode=SelectionMode::nearest)=0
 
virtual void searchPoint (int nnCount, const IPoint &queryPt, const IFilter &filter, insert_iterator_point &instIt, double maxDistance=-1, SelectionMode selectionMode=SelectionMode::nearest)=0
 
virtual bool operator== (const IPointIndexLeaf &ref) const =0
 
virtual bool operator!= (const IPointIndexLeaf &ref) const =0
 
- Public Member Functions inherited from ObjectBase
virtual void Delete ()
 

Static Public Member Functions

static IPointIndexLeafNew (const kd_tree_tag &, int dimension, bool threadsafe)
 create a new kd tree object
 
static IPointIndexLeafNew (const kd_tree_with_lazy_deletion_tag &, int dimension, bool threadsafe)
 

Detailed Description

object representing a spatial leaf within a point index

Whereas IPointIndexLeaf objects are fully kept in memory, IPointIndex objects may consists of multiple IPointIndexLeaf objects that can be swapped to disk. For details see Internal Structure of the Datamanager

Examples
DM_spatial_processing.cpp.