package ini.trakem2.display.inspect;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
public class ShapeProxy implements Shape
{
private Shape s;
/** Create a new proxy for {@code s}. */
public ShapeProxy(final Shape s) {
this.s = s;
}
/** Replace the wrapped {@link Shape} with {@code s}.
*
* @param s
*/
public final void set(final Shape s) {
this.s = s;
}
@Override
public final Rectangle getBounds() {
return s.getBounds();
}
@Override
public final Rectangle2D getBounds2D() {
return s.getBounds2D();
}
@Override
public final boolean contains(double x, double y) {
return s.contains(x, y);
}
@Override
public final boolean contains(Point2D p) {
return s.contains(p);
}
@Override
public final boolean intersects(double x, double y, double w, double h) {
return s.intersects(x, y, w, h);
}
@Override
public final boolean intersects(Rectangle2D r) {
return s.intersects(r);
}
@Override
public final boolean contains(double x, double y, double w, double h) {
return s.contains(x, y, w, h);
}
@Override
public final boolean contains(Rectangle2D r) {
return s.contains(r);
}
@Override
public final PathIterator getPathIterator(AffineTransform at) {
return s.getPathIterator(at);
}
@Override
public final PathIterator getPathIterator(AffineTransform at, double flatness) {
return s.getPathIterator(at, flatness);
}
}