3 #include "DM/config.hpp"
4 #include "DM/Handle.hpp"
5 #include "DM/Iterator.hpp"
6 #include "DM/IPoint.hpp"
7 #include "DM/IPointIndexLeaf.hpp"
8 #include "DM/IAddInfoStatistics.hpp"
9 #include "DM/IIndexStats.hpp"
29 virtual BoxHandle getIndexLimit()
const = 0;
31 virtual int64_t sizePoint()
const=0;
33 virtual int64_t sizeLeaf()
const=0;
35 virtual double estimatePointDensity(
bool fastEstimation =
true)
const = 0;
38 virtual const_iterator_point beginPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
39 virtual const_iterator_point endPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
41 virtual const_iterator_leaf beginLeaf(
IteratorOrder order = IteratorOrder::internal)
const = 0;
42 virtual const_iterator_leaf endLeaf(
IteratorOrder order = IteratorOrder::internal)
const = 0;
43 virtual iterator_leaf beginLeaf(
IteratorOrder order = IteratorOrder::internal) = 0;
44 virtual iterator_leaf endLeaf(
IteratorOrder order = IteratorOrder::internal) = 0;
56 virtual void searchPoint(
const IWindow &win, insert_iterator_point &insIt,
bool includeRightBoundary =
true) = 0;
57 virtual void searchPoint(
const IBox &box, insert_iterator_point &insIt,
bool includeRightBoundary =
true) = 0;
58 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &insIt) = 0;
59 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt) = 0;
60 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt) = 0;
61 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt) = 0;
63 virtual void searchPoint(
const IWindow &win, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
64 virtual void searchPoint(
const IBox &box, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
65 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf) = 0;
66 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
67 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
68 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
78 virtual double searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt,
79 double maxDistance = -1) = 0;
89 virtual double searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf,
90 double maxDistance = -1) = 0;
93 virtual int64_t sizePointCache()
const = 0;
94 virtual void sizePointCache(int64_t size) = 0;
97 virtual BoxHandle getLimit(
const const_iterator_leaf &it)
const = 0;
98 virtual BoxHandle getIndexLimit(
const const_iterator_leaf &it)
const = 0;
99 virtual int64_t sizePoint(
const const_iterator_leaf &it)
const = 0;
100 virtual int64_t id(
const const_iterator_leaf &it)
const = 0;
107 virtual void searchLeaf(
const IWindow &win, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
110 virtual void freeMemory()
const = 0;
113 virtual void tileSizeHint(
double tilesize) = 0;
116 typedef Handle< IPointIndex > PointIndexHandle;