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"
32 virtual BoxHandle getIndexLimit()
const = 0;
34 virtual int64_t sizePoint()
const=0;
36 virtual int64_t sizeLeaf()
const=0;
38 virtual double estimatePointDensity(
bool fastEstimation =
true)
const = 0;
41 virtual const_iterator_point beginPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
42 virtual const_iterator_point endPoint(
IteratorOrder order = IteratorOrder::internal)
const = 0;
44 virtual const_iterator_leaf beginLeaf(
IteratorOrder order = IteratorOrder::internal)
const = 0;
45 virtual const_iterator_leaf endLeaf(
IteratorOrder order = IteratorOrder::internal)
const = 0;
46 virtual iterator_leaf beginLeaf(
IteratorOrder order = IteratorOrder::internal) = 0;
47 virtual iterator_leaf endLeaf(
IteratorOrder order = IteratorOrder::internal) = 0;
61 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &insIt) = 0;
62 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt) = 0;
63 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt) = 0;
64 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt) = 0;
66 virtual void searchPoint(
const IWindow &win, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
67 virtual void searchPoint(
const IBox &box, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
68 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &insIt, insert_iterator_leaf &insLeaf) = 0;
69 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
70 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
71 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf) = 0;
82 virtual double searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt,
83 double maxDistance = -1, SelectionMode selectionMode = SelectionMode::nearest) = 0;
94 virtual double searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt, insert_iterator_leaf &insLeaf,
95 double maxDistance = -1, SelectionMode selectionMode = SelectionMode::nearest) = 0;
98 virtual int64_t sizePointCache()
const = 0;
99 virtual void sizePointCache(int64_t size) = 0;
102 virtual BoxHandle getLimit(
const const_iterator_leaf &it)
const = 0;
103 virtual BoxHandle getIndexLimit(
const const_iterator_leaf &it)
const = 0;
104 virtual int64_t sizePoint(
const const_iterator_leaf &it)
const = 0;
105 virtual int64_t id(
const const_iterator_leaf &it)
const = 0;
112 virtual void searchLeaf(
const IWindow &win, insert_iterator_leaf &insLeaf,
bool includeRightBoundary =
true) = 0;
115 virtual void freeMemory()
const = 0;
118 virtual void tileSizeHint(
double tilesize) = 0;
121 typedef Handle< IPointIndex > PointIndexHandle;