@Override public void insert(double[] lower, double[] upper, T value) { tree.put(lower, upper, value); }
@Override public T remove(double[] lower, double[] upper) { return tree.remove(lower, upper); }
/** * Create a new tree with the specified number of dimensions. * * @param dim number of dimensions * @return new tree * @param <T> value type of the tree */ public static <T> PhTreeSolidF<T> create(int dim) { return new PhTreeSolidF<>(dim); }
@Override public QueryIterator<RectangleEntry<T>> queryIntersect(double[] min, double[] max) { return new QueryIteratorPH<>(tree.queryIntersect(min, max)); }
@Override public PHStats getStats() { return new PHStats(tree.getInternalTree().getStats(), tree.getDims()); }
@Override public String toStringTree() { return tree.getInternalTree().toStringTree(); }
@Override public void clear() { tree.clear(); }
@Override public T queryExact(double[] lower, double[] upper) { return tree.get(lower, upper); }
@Override public int getDims() { return tree.getDims(); }
private PHTreeR(int dims) { tree = PhTreeSolidF.create(dims); }
/** * @param e the entry * @return whether the key exists * @see #contains(double[], double[]) */ public boolean contains(PhEntrySF<T> e) { return contains(e.lower(), e.upper()); }
/** * @param e an entry that describes the query rectangle * @return a query iterator * @see #queryIntersect(double[], double[]) */ public PhQuerySF<T> queryIntersect(PhEntrySF<T> e) { return queryIntersect(e.lower(), e.upper()); }
@Override public int getNodeCount() { return tree.getInternalTree().getStats().getNodeCount(); }
/** * @param e the entry * @return the value for the key * @see #remove(double[], double[]) */ public T remove(PhEntrySF<T> e) { return remove(e.lower(), e.upper()); }
/** * @param e the entry * @return any previous value for the key * @see #put(double[], double[], Object) */ public T put(PhEntrySF<T> e) { return put(e.lower(), e.upper(), e.value()); }
@Override public int getDepth() { return tree.getInternalTree().getStats().getBitDepth(); }
/** * Create a new tree with the specified number of dimensions. * * @param dim number of dimensions * @param pre a preprocessor instance * @return new tree * @param <T> value type of the tree */ public static <T> PhTreeSolidF<T> create(int dim, PreProcessorRangeF pre) { return new PhTreeSolidF<>(PhTree.create(dim*2), pre); }