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"
10 #include "DM/IControlObject.hpp"
30 virtual BoxHandle getIndexLimit()
const = 0;
32 virtual int64_t sizePoint()
const=0;
34 virtual int64_t sizeLeaf()
const=0;
36 virtual double estimatePointDensity(
bool fastEstimation =
true)
const = 0;
39 virtual const_iterator_point beginPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
40 virtual const_iterator_point endPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
42 virtual const_iterator_leaf beginLeaf(
IteratorOrder order = IteratorOrder::internal)
const = 0;
43 virtual const_iterator_leaf endLeaf(
IteratorOrder order = IteratorOrder::internal)
const = 0;
44 virtual iterator_leaf beginLeaf(
IteratorOrder order = IteratorOrder::internal) = 0;
45 virtual iterator_leaf endLeaf(
IteratorOrder order = IteratorOrder::internal) = 0;
59 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &insIt) = 0;
60 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt) = 0;
61 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt) = 0;
62 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt) = 0;
64 virtual void searchPoint(
const IWindow &win, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
65 virtual void searchPoint(
const IBox &box, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
66 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf) = 0;
67 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
68 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
69 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
79 virtual double searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt,
80 double maxDistance = -1) = 0;
90 virtual double searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf,
91 double maxDistance = -1) = 0;
94 virtual int64_t sizePointCache()
const = 0;
95 virtual void sizePointCache(int64_t size) = 0;
98 virtual BoxHandle getLimit(
const const_iterator_leaf &it)
const = 0;
99 virtual BoxHandle getIndexLimit(
const const_iterator_leaf &it)
const = 0;
100 virtual int64_t sizePoint(
const const_iterator_leaf &it)
const = 0;
101 virtual int64_t id(
const const_iterator_leaf &it)
const = 0;
108 virtual void searchLeaf(
const IWindow &win, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
111 virtual void freeMemory()
const = 0;
114 virtual void tileSizeHint(
double tilesize) = 0;
117 typedef Handle< IPointIndex > PointIndexHandle;