QCAD
Open Source 2D CAD
|
Abstract base class for spatial index implementations. More...
#include <RSpatialIndex.h>
Public Member Functions | |
virtual void | addToIndex (int id, const QList< RBox > &bbs) |
Adds a new entry at multiple positions into this spatial index. More... | |
virtual void | addToIndex (int id, int pos, const RBox &bb) |
Adds a new entry into this spatial index. More... | |
virtual void | addToIndex (int id, int pos, double x1, double y1, double z1, double x2, double y2, double z2)=0 |
Adds a new entry into this spatial index. More... | |
virtual void | bulkLoad (const QList< int > &ids, const QList< QList< RBox > > &bbs) |
virtual void | bulkLoadSimple (const QList< int > &ids, const QList< RBox > &bbs) |
virtual void | clear ()=0 |
virtual RSpatialIndex * | create ()=0 |
virtual QMap< int, QSet< int > > | queryContained (const RBox &b, RSpatialIndexVisitor *dataVisitor=NULL) |
Queries the index for all items that are completely inside the given box. More... | |
virtual QMap< int, QSet< int > > | queryContained (double x1, double y1, double z1, double x2, double y2, double z2, RSpatialIndexVisitor *dataVisitor=NULL)=0 |
Queries the index for all items that are completely inside the given box x1,y1,z1,x2,y2,z2. More... | |
virtual QMap< int, QSet< int > > | queryIntersected (const RBox &b, RSpatialIndexVisitor *dataVisitor=NULL) |
Queries the index for all items that are completely inside or intersect with the given box. More... | |
virtual QMap< int, QSet< int > > | queryIntersected (double x1, double y1, double z1, double x2, double y2, double z2, RSpatialIndexVisitor *dataVisitor=NULL)=0 |
Queries the index for all items that are completely inside or intersect with the given box x1,y1,z1,x2,y2,z2. More... | |
virtual QPair< int, int > | queryNearestNeighbor (double x, double y, double z) |
Convenience implementation for scripts. More... | |
virtual QMap< int, QSet< int > > | queryNearestNeighbor (unsigned int k, double x, double y, double z, RSpatialIndexVisitor *dataVisitor=NULL)=0 |
Queries the index for closest neighbor items. More... | |
virtual bool | removeFromIndex (int id, const QList< RBox > &bb) |
Removes the entry with the given ID from this spatial index. More... | |
virtual bool | removeFromIndex (int id, int pos, const RBox &bb) |
Removes the entry with the given ID from this spatial index. More... | |
virtual bool | removeFromIndex (int id, int pos, double x1, double y1, double z1, double x2, double y2, double z2)=0 |
Removes the entry with the given ID from this spatial index. More... | |
RSpatialIndex () | |
virtual | ~RSpatialIndex () |
Public Member Functions inherited from RRequireHeap | |
void | doDelete () |
Static Public Member Functions | |
static int | getId (qint64 siid) |
static int | getPos (qint64 siid) |
static qint64 | getSIId (int id, int pos) |
Protected Attributes | |
int | idCounter |
Additional Inherited Members | |
Protected Member Functions inherited from RRequireHeap | |
virtual | ~RRequireHeap () |
Abstract base class for spatial index implementations.
|
inline |
|
inlinevirtual |
|
virtual |
Adds a new entry at multiple positions into this spatial index.
|
virtual |
Adds a new entry into this spatial index.
Reimplemented in RSpatialIndexNavel.
|
pure virtual |
Adds a new entry into this spatial index.
Implemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
virtual |
Reimplemented in RSpatialIndexNavel.
|
virtual |
|
pure virtual |
Implemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
pure virtual |
Implemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
static |
|
static |
|
static |
|
virtual |
Queries the index for all items that are completely inside the given box.
|
pure virtual |
Queries the index for all items that are completely inside the given box x1,y1,z1,x2,y2,z2.
x1 | lower region boundary of the first dimension. |
y1 | lower region boundary of the second dimension. |
z1 | lower region boundary of the third dimension. |
x2 | higher region boundary of the first dimension. |
y2 | higher region boundary of the second dimension. |
z2 | higher region boundary of the third dimension. |
dataVisitor | The item data is handed back to the caller over this object (visitor pattern). |
Implemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
virtual |
Queries the index for all items that are completely inside or intersect with the given box.
|
pure virtual |
Queries the index for all items that are completely inside or intersect with the given box x1,y1,z1,x2,y2,z2.
x1 | lower region boundary of the first dimension. |
y1 | lower region boundary of the second dimension. |
z1 | lower region boundary of the third dimension. |
x2 | higher region boundary of the first dimension. |
y2 | higher region boundary of the second dimension. |
z2 | higher region boundary of the third dimension. |
dataVisitor | The item data is handed back to the caller over this object (visitor pattern). |
Implemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
virtual |
Convenience implementation for scripts.
Reimplemented in RSpatialIndexNavel.
|
pure virtual |
Queries the index for closest neighbor items.
x1 | position of the first dimension. |
y1 | position of the second dimension. |
z1 | position of the third dimension. |
dataVisitor | The item data is handed back to the caller over this object (visitor pattern). |
Implemented in RSpatialIndexNavel.
|
virtual |
Removes the entry with the given ID from this spatial index.
the bounding boxes are provided for faster lookup.
Reimplemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
virtual |
Removes the entry with the given ID from this spatial index.
the bounding box is provided for faster lookup.
Reimplemented in RSpatialIndexNavel.
|
pure virtual |
Removes the entry with the given ID from this spatial index.
Removes the entry with the given ID from this spatial index. the bounding box is provided for fast lookup.
Implemented in RSpatialIndexNavel, and RSpatialIndexSimple.
|
protected |