4 #include "DM/config.hpp"
5 #include "DM/Handle.hpp"
6 #include "DM/Iterator.hpp"
7 #include "DM/IPoint.hpp"
8 #include "DM/IPolygon.hpp"
9 #include "DM/IWindow.hpp"
10 #include "DM/IBox.hpp"
11 #include "DM/ICircle.hpp"
12 #include "DM/ISphere.hpp"
13 #include "DM/ICylinder.hpp"
14 #include "DM/ObjectBase.hpp"
15 #include "DM/IKnnQueryDescriptor.hpp"
16 #include "DM/IFilter.hpp"
17 #include "DM/IColBufferManagerWrite.hpp"
18 #include "DM/AutoLink.hpp"
23 class IIndexHelperSet;
24 class IClassificationMatrix;
51 virtual BoxHandle getIndexLimit()
const = 0;
53 virtual int64_t sizePoint()
const = 0;
54 virtual int indexDim()
const = 0;
56 virtual int64_t id()
const = 0;
57 virtual int64_t storageId()
const = 0;
59 virtual double estimatePointDensity()
const = 0;
64 virtual const_iterator_point beginPoint()
const = 0;
65 virtual const_iterator_point endPoint()
const = 0;
71 virtual void addPoint(
const IPoint &pt) = 0;
74 virtual void removePoint(int64_t
id) = 0;
76 virtual void build() = 0;
77 virtual void clear() = 0;
79 virtual void setChanged(
bool changed) = 0;
80 virtual bool isChanged()
const = 0;
83 virtual void searchPoint(
const IWindow &win, insert_iterator_point &instIt,
bool includeRightBoundary =
true) = 0;
84 virtual void searchPoint(
const IBox &box, insert_iterator_point &instIt,
bool includeRightBoundary =
true) = 0;
85 virtual void searchPoint(
const IPolygon &p, insert_iterator_point &instIt) = 0;
86 virtual void searchPoint(
const ICircle &c, insert_iterator_point &instIt) = 0;
87 virtual void searchPoint(
const ISphere &s, insert_iterator_point &instIt) = 0;
88 virtual void searchPoint(
const ICylinder &c, insert_iterator_point &instIt) = 0;
90 virtual void searchPoint(
int nnCount,
const IPoint &queryPt, insert_iterator_point &instIt,
91 double maxDistance = -1, SelectionMode selectionMode = SelectionMode::nearest) = 0;
92 virtual void searchPoint(
int nnCount,
const IPoint &queryPt,
const IFilter &filter, insert_iterator_point &instIt,
93 double maxDistance = -1, SelectionMode selectionMode = SelectionMode::nearest) = 0;
100 typedef Handle< IPointIndexLeaf > PointIndexLeafHandle;