QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RSpatialIndexSimple.h
Go to the documentation of this file.
1 #ifndef RSPATIALINDEXSIMPLE_H
2 #define RSPATIALINDEXSIMPLE_H
3 
4 #include <QSet>
5 #include <QList>
6 
7 #include "RSpatialIndex.h"
8 #include "RDebug.h"
9 #include "RMath.h"
10 
11 
12 
20 public:
22  virtual ~RSpatialIndexSimple();
23 
24  virtual void clear();
25 
29  virtual void addToIndex(
30  int id, int pos,
31  double x1, double y1, double z1,
32  double x2, double y2, double z2
33  );
34 
35  //virtual void removeFromIndex(int id);
36  virtual bool removeFromIndex(
37  int id, int pos,
38  double x1, double y1, double z1,
39  double x2, double y2, double z2);
40 
41  virtual bool removeFromIndex(int id, const QList<RBox>& bb);
42 
43  virtual QMap<int, QSet<int> > queryIntersected(
44  double x1, double y1, double z1,
45  double x2, double y2, double z2,
46  RSpatialIndexVisitor* dataVisitor=NULL
47  );
48 
49  virtual QMap<int, QSet<int> > queryContained(
50  double x1, double y1, double z1,
51  double x2, double y2, double z2,
52  RSpatialIndexVisitor* dataVisitor=NULL
53  );
54 
55  virtual QMap<int, QSet<int> > queryNearestNeighbor(
56  uint k,
57  double x, double y, double z,
58  RSpatialIndexVisitor* dataVisitor=NULL
59  );
60 
61 protected:
62  //QMultiHash<RBox, int> si;
63  QMap<int, QList<RBox> > si;
64 };
65 
66 //QDebug operator<<(QDebug dbg, RSpatialIndexSimple& si);
67 
69 
70 #endif