package java.awt.geom;
public abstract class Ellipse2D extends RectangularShape
{
protected Ellipse2D()
{
}
public boolean contains(double x, double y)
{
double rx = getWidth() / 2;
double ry = getHeight() / 2;
double tx = (x - getCenterX()) / rx;
double ty = (y - getCenterY()) / ry;
return tx * tx + ty * ty <= 1.0;
}
public boolean contains(double x, double y, double w, double h)
{
double x2 = x + w;
double y2 = y + h;
return (contains(x, y) && contains(x, y2)
&& contains(x2, y) && contains(x2, y2));
}
public PathIterator getPathIterator(AffineTransform at)
{
return new Arc2D.ArcIterator(this, at);
}
public boolean intersects(double x, double y, double w, double h)
{
return false;
}
public static class Double extends Ellipse2D
{
public double height;
public double width;
public double x;
public double y;
public Double()
{
}
public Double(double x, double y, double w, double h)
{
this.x = x;
this.y = y;
height = h;
width = w;
}
public Rectangle2D getBounds2D()
{
return new Rectangle2D.Double(x, y, width, height);
}
public double getHeight()
{
return height;
}
public double getWidth()
{
return width;
}
public double getX()
{
return x;
}
public double getY()
{
return y;
}
public boolean isEmpty()
{
return height <= 0 || width <= 0;
}
public void setFrame(double x, double y, double w, double h)
{
this.x = x;
this.y = y;
height = h;
width = w;
}
}
public static class Float extends Ellipse2D
{
public float height;
public float width;
public float x;
public float y;
public Float()
{
}
public Float(float x, float y, float w, float h)
{
this.x = x;
this.y = y;
this.height = h;
this.width = w;
}
public Rectangle2D getBounds2D()
{
return new Rectangle2D.Float(x, y, width, height);
}
public double getHeight()
{
return height;
}
public double getWidth()
{
return width;
}
public double getX()
{
return x;
}
public double getY()
{
return y;
}
public boolean isEmpty()
{
return height <= 0 || width <= 0;
}
public void setFrame(float x, float y, float w, float h)
{
this.x = x;
this.y = y;
height = h;
width = w;
}
public void setFrame(double x, double y, double w, double h)
{
this.x = (float) x;
this.y = (float) y;
height = (float) h;
width = (float) w;
}
} }