Package org.tinspin.index
Interface BoxMap<T>
-
- All Superinterfaces:
Index
- All Known Implementing Classes:
PHTreeR,QuadTreeRKD,QuadTreeRKD0,RectArray,RTree
public interface BoxMap<T> extends Index
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceBoxMap.Factory-
Nested classes/interfaces inherited from interface org.tinspin.index.Index
Index.BEComparator, Index.BoxEntry<T>, Index.BoxEntryKnn<T>, Index.BoxFilterKnn<T>, Index.BoxIterator<T>, Index.BoxIteratorKnn<T>, Index.PEComparator, Index.PointEntry<T>, Index.PointEntryKnn<T>, Index.PointFilterKnn<T>, Index.PointIterator<T>, Index.PointIteratorKnn<T>, Index.QueryIterator<T>, Index.QueryIteratorKnn<T>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description booleancontains(double[] min, double[] max)Lookup an entry, using exact match.voidinsert(double[] min, double[] max, T value)Insert a box.Index.BoxIterator<T>iterator()default Index.BoxEntryKnn<T>query1nn(double[] center)Finds the nearest neighbor.TqueryExact(double[] min, double[] max)Lookup an entry, using exact match.Index.BoxIterator<T>queryIntersect(double[] min, double[] max)Index.BoxIteratorKnn<T>queryKnn(double[] center, int k)Finds the nearest neighbor.Tremove(double[] min, double[] max)Remove an entry.Tupdate(double[] minOld, double[] maxOld, double[] minNew, double[] maxNew)Update the position of an entry.-
Methods inherited from interface org.tinspin.index.Index
clear, getDepth, getDims, getNodeCount, getStats, size, toStringTree
-
-
-
-
Method Detail
-
insert
void insert(double[] min, double[] max, T value)Insert a box.- Parameters:
min- minimum cornermax- maximum cornervalue- value
-
remove
T remove(double[] min, double[] max)
Remove an entry.- Parameters:
min- minimum cornermax- maximum corner- Returns:
- the value of the entry or null if the entry was not found
-
update
T update(double[] minOld, double[] maxOld, double[] minNew, double[] maxNew)
Update the position of an entry.- Parameters:
minOld- old minmaxOld- old maxminNew- new minmaxNew- new max- Returns:
- the value, or null if the entries was not found
-
contains
boolean contains(double[] min, double[] max)Lookup an entry, using exact match.- Parameters:
min- minimum cornermax- maximum corner- Returns:
- `true` if an entry was found, otherwise `false`.
-
queryExact
T queryExact(double[] min, double[] max)
Lookup an entry, using exact match.- Parameters:
min- minimum cornermax- maximum corner- Returns:
- the value of the entry or null if the entry was not found
-
iterator
Index.BoxIterator<T> iterator()
- Returns:
- An iterator over all entries.
-
queryIntersect
Index.BoxIterator<T> queryIntersect(double[] min, double[] max)
- Parameters:
min- Lower left corner of the query windowmax- Upper right corner of the query window- Returns:
- All boxes that intersect with the query rectangle.
-
query1nn
default Index.BoxEntryKnn<T> query1nn(double[] center)
Finds the nearest neighbor. This uses Euclidean 'edge distance'. Other distance types can only be specified directly on the index implementations.- Parameters:
center- center point- Returns:
- the nearest neighbor
-
queryKnn
Index.BoxIteratorKnn<T> queryKnn(double[] center, int k)
Finds the nearest neighbor. This uses Euclidean 'edge distance', i.e. the distance to the edge of a box. Distance is 0 if the box overlaps with the search point. Other distance types can only be specified directly on the index implementations.- Parameters:
center- center pointk- number of neighbors- Returns:
- list of nearest neighbors
-
-