@Nullable public Figure findFigureExcept(Point2D.Double p, Collection ignore) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0 : { return null; } case 1: { Figure f = c.iterator().next(); return (! ignore.contains(f) || ! f.contains(p)) ? null : f; } default : { for (Figure f : getFiguresFrontToBack()) { if (! ignore.contains(f) && f.contains(p)) return f; } return null; } } } @Nullable public Figure findFigureBehind(Point2D.Double p, Figure figure) {
@Override public Figure findFigureExcept(Point2D.Double p, Collection<? extends Figure> ignore) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0: { return null; } case 1: { Figure f = c.iterator().next(); return (!ignore.contains(f) || !f.contains(p)) ? null : f; } default: { for (Figure f : getFiguresFrontToBack()) { if (!ignore.contains(f) && f.contains(p)) { return f; } } return null; } } }
@Override public Figure findFigureExcept(Point2D.Double p, Figure ignore) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0: { return null; } case 1: { Figure f = c.iterator().next(); return (f == ignore || !f.contains(p)) ? null : f; } default: { for (Figure f : getFiguresFrontToBack()) { if (f != ignore && f.contains(p)) { return f; } } return null; } } }
@Override public Figure findFigureInside(Point2D.Double p) { Collection<Figure> c = quadTree.findContains(p); for (Figure f : getFiguresFrontToBack()) { if (c.contains(f) && f.contains(p)) { return f.findFigureInside(p); } } return null; }
@Override public Figure findFigureInside(Point2D.Double p) { Collection<Figure> c = quadTree.findContains(p); for (Figure f : getFiguresFrontToBack()) { if (c.contains(f) && f.contains(p)){ return f.findFigureInside(p); } } return null; }
@Override public Figure findFigure(Point2D.Double p) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0: return null; case 1: { Figure f = c.iterator().next(); return (f.contains(p)) ? f : null; } default: { for (Figure f : getFiguresFrontToBack()) { if (c.contains(f) && f.contains(p)) { return f; } } return null; } } }
@Nullable public Figure findFigure(Point2D.Double p) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0 : return null; case 1: { Figure f = c.iterator().next(); return (f.contains(p)) ? f : null; } default : { for (Figure f : getFiguresFrontToBack()) { if (c.contains(f) && f.contains(p)) return f; } return null; } } } @Nullable public Figure findFigureExcept(Point2D.Double p, Figure ignore) {
@Nullable public Figure findFigureExcept(Point2D.Double p, Figure ignore) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0 : { return null; } case 1: { Figure f = c.iterator().next(); return (f == ignore || ! f.contains(p)) ? null : f; } default : { for (Figure f : getFiguresFrontToBack()) { if (f != ignore && f.contains(p)) return f; } return null; } } } @Nullable public Figure findFigureExcept(Point2D.Double p, Collection ignore) {