IPointIndex Class Reference

Interface to a point index object managing the point objects within the datamanager. More...

#include "IPointIndex.hpp"

+ Inheritance diagram for IPointIndex:

Public Types

typedef ConstIterator< IPointconst_iterator_point
 Point iterator.
typedef InsertIterator< IPointinsert_iterator_point
 Point insert iterator (used in searchPoint functions)
typedef ConstIterator
< IPointIndexLeaf
const_iterator_leaf
 Leaf iterator.
typedef Iterator< IPointIndexLeafiterator_leaf
 Leaf iterator.
typedef InsertIterator
< IPointIndexLeaf
insert_iterator_leaf
 Leaf 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 int64_t sizeLeaf () const =0
virtual double estimatePointDensity (bool fastEstimation=true) const =0
virtual const_iterator_point beginPoint (E_IteratorOrder order=eORDER_INTERNAL) const =0
virtual const_iterator_point endPoint (E_IteratorOrder order=eORDER_INTERNAL) const =0
virtual const_iterator_leaf beginLeaf (E_IteratorOrder order=eORDER_INTERNAL) const =0
virtual const_iterator_leaf endLeaf (E_IteratorOrder order=eORDER_INTERNAL) const =0
virtual iterator_leaf beginLeaf (E_IteratorOrder order=eORDER_INTERNAL)=0
virtual iterator_leaf endLeaf (E_IteratorOrder order=eORDER_INTERNAL)=0
virtual const_iterator_leaf beginLeaf (FilterHandle filter, WindowHandle limits=WindowHandle()) const =0
virtual const_iterator_leaf endLeaf (FilterHandle filter, WindowHandle limits=WindowHandle()) const =0
virtual PointIndexLeafHandle getLeaf (const_iterator_point &it)=0
virtual PointIndexLeafHandle getLeaf (int64_t leafId)=0
virtual PointHandle getPoint (int64_t id) const =0
 get point by id (if the id doesn't exist an empty handle is returned)
virtual void searchPoint (const IWindow &win, insert_iterator_point &insIt, bool includeRightBoundary=true)=0
virtual void searchPoint (const IBox &box, insert_iterator_point &insIt, bool includeRightBoundary=true)=0
virtual void searchPoint (const IPolygon &p, insert_iterator_point &insIt)=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 (const IWindow &win, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf, bool includeRightBoundary=true)=0
virtual void searchPoint (const IBox &box, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf, bool includeRightBoundary=true)=0
virtual void searchPoint (const IPolygon &p, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf)=0
virtual void searchPoint (const ICircle &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf)=0
virtual void searchPoint (const ISphere &s, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf)=0
virtual void searchPoint (const ICylinder &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf)=0
virtual double searchPoint (int nnCount, const IPoint &queryPt, insert_iterator_point &instIt, double maxDistance=-1)=0
 k nearest neighbour search potentially slow for the overall point index object. consider building a local kd tree -> IPointIndexLeaf
virtual double searchPoint (int nnCount, const IPoint &queryPt, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf, double maxDistance=-1)=0
 k nearest neighbour search potentially slow for the overall point index object. consider building a local kd tree -> IPointIndexLeaf
virtual int64_t sizePointCache () const =0
virtual void sizePointCache (int64_t size)=0
virtual BoxHandle getLimit (const const_iterator_leaf &it) const =0
virtual BoxHandle getIndexLimit (const const_iterator_leaf &it) const =0
virtual int64_t sizePoint (const const_iterator_leaf &it) const =0
virtual int64_t id (const const_iterator_leaf &it) const =0
virtual AddInfoStatisticsHandle getAddInfoStatistics () const =0
virtual AddInfoStatisticsHandle getLeafAddInfoStatistics (const const_iterator_leaf &it) const =0
virtual IndexStatsHandle getIndexStatistics () const =0
virtual void searchLeaf (const IWindow &win, insert_iterator_leaf &insLeaf, bool includeRightBoundary=true)=0
virtual void freeMemory () const =0
virtual void tileSizeHint (double tilesize)=0
- Public Member Functions inherited from ObjectBase
virtual void Delete ()

Detailed Description

Interface to a point index object managing the point objects within the datamanager.

Member Function Documentation

virtual double searchPoint ( int  nnCount,
const IPoint queryPt,
insert_iterator_point instIt,
double  maxDistance = -1 
)
pure virtual

k nearest neighbour search potentially slow for the overall point index object. consider building a local kd tree -> IPointIndexLeaf

Parameters
[in]nnCountnumber of k neighbour to find
[in]queryPtbase point for the neighbour search
[in]instItinsert iterator for collecting the found geometry objects
[in]maxDistancemaximum distance (not squared distance) for finding geometry objects (use -1 disabling the distance limit)
Returns
distance to the furthest found geometry object or 'maxDistance' in case on object was found
virtual double searchPoint ( int  nnCount,
const IPoint queryPt,
insert_iterator_point instIt,
insert_iterator_leaf insLeaf,
double  maxDistance = -1 
)
pure virtual

k nearest neighbour search potentially slow for the overall point index object. consider building a local kd tree -> IPointIndexLeaf

Parameters
[in]nnCountnumber of k neighbour to find
[in]queryPtbase point for the neighbour search
[in]instItinsert iterator for collecting the found geometry objects
[in]insLeafleaf inster iterator for storing all leafs for which nearest neighbour points where returned
[in]maxDistancemaximum distance (not squared distance) for finding geometry objects (use -1 disabling the distance limit)
Returns
distance to the furthest found geometry object or 'maxDistance' in case on object was found