IPointIndex Class Referenceabstract

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< IPointIndexLeafconst_iterator_leaf
 Leaf iterator.
 
typedef Iterator< IPointIndexLeafiterator_leaf
 Leaf iterator.
 
typedef InsertIterator< IPointIndexLeafinsert_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 (IteratorOrder order=IteratorOrder::internal) const =0
 
virtual const_iterator_point endPoint (IteratorOrder order=IteratorOrder::internal) const =0
 
virtual const_iterator_leaf beginLeaf (IteratorOrder order=IteratorOrder::internal) const =0
 
virtual const_iterator_leaf endLeaf (IteratorOrder order=IteratorOrder::internal) const =0
 
virtual iterator_leaf beginLeaf (IteratorOrder order=IteratorOrder::internal)=0
 
virtual iterator_leaf endLeaf (IteratorOrder order=IteratorOrder::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, ControlObjectHandle control=ControlObjectHandle())=0
 
virtual void searchPoint (const IBox &box, insert_iterator_point &insIt, bool includeRightBoundary=true, ControlObjectHandle control=ControlObjectHandle())=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 More...
 
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 More...
 
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

◆ searchPoint() [1/2]

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

◆ searchPoint() [2/2]

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