//package vectrex;
//
//import toxi.geom.Vec3D;
//import toxi.geom.XYZ;
//
//import java.util.*;
//
//
//public class OctSet<V extends XYZ> extends OctBox<V> implements Set<V> {
//
//
// final Map<V, OctBox<V>> data = new HashMap();
//
// public OctSet(Vec3D o, Vec3D extents, Vec3D resolution) {
// super(o, extents, resolution);
// }
//
// @Override
// public OctBox<V> ADD(V p) {
// OctBox<V> target = super.ADD(p);
// if (target!=null) {
// data.put(p, target);
// return target;
// }
// return null;
// }
//
// @Override
// public boolean remove(Object p) {
// //TODO use the value in data for fast access
// if (data.remove(p)!=null) {
// super.remove(p);
// return true;
// }
// return false;
// }
//
// @Override
// public int size() {
// return data.size();
// }
//
// @Override
// public boolean isEmpty() {
// return data.isEmpty();
// }
//
// @Override
// public boolean contains(Object o) {
// return data.containsKey(o);
// }
//
// @Override
// public Iterator<V> iterator() {
// return data.keySet().iterator();
// }
//
// @Override
// public Object[] toArray() {
// return data.keySet().toArray();
// }
//
// @Override
// public <T> T[] toArray(T[] a) {
// throw new UnsupportedOperationException();
// }
//
// @Override
// public boolean add(V v) {
// if (ADD(v)!=null) {
// return true;
// }
// return false;
// }
//
//
//
// @Override
// public boolean containsAll(Collection<?> c) {
// return data.keySet().containsAll(c);
// }
//
// @Override
// public boolean addAll(Collection<? extends V> c) {
// return putAll(c) == c.size();
// }
//
// @Override
// public boolean retainAll(Collection<?> c) {
// //SOON
// throw new UnsupportedOperationException();
// }
//
// @Override
// public boolean removeAll(Collection<?> points) {
// //SOON
// throw new UnsupportedOperationException();
// }
//}