/** * Locate nearest neighbours for a given point in space. * @param nMin number of entries to be returned. More entries may or may not be returned if * several points have the same distance. * @param distanceFunction A distance function for rectangle data. This parameter is optional, * passing a {@code null} will use the default distance function. * @param center the center point * @return The query iterator. */ public PhKnnQuerySF<T> nearestNeighbour(int nMin, PhDistanceSF distanceFunction, double ... center) { long[] lCenter = new long[2*dims]; pre.pre(center, center, lCenter); PhDistanceSF df = distanceFunction == null ? dist : distanceFunction; return new PhKnnQuerySF<>(pht.nearestNeighbour(nMin, df, null, lCenter), dims, pre); }
@Override public boolean hasNext() { return iter.hasNext(); }
@Override public RectangleEntryDist<T> next() { //This reuses the entry object, but we have to clone the arrays... PhEntryDistSF<T> e = iter.nextEntryReuse(); return new DistEntryR<>(e.lower().clone(), e.upper().clone(), e.value(), e.dist()); }
@Override public QueryIteratorKnnPH<T> reset(double[] center, int k) { iter.reset(k, null, center); return this; }
@Override public T next() { return nextValue(); } @Override