177 lines
3.1 KiB
Java
177 lines
3.1 KiB
Java
|
/* Copyright (C) 2000 Free Software Foundation
|
||
|
|
||
|
This file is part of libjava.
|
||
|
|
||
|
This software is copyrighted work licensed under the terms of the
|
||
|
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||
|
details. */
|
||
|
|
||
|
package java.awt.geom;
|
||
|
|
||
|
/**
|
||
|
* @author Tom Tromey <tromey@cygnus.com>
|
||
|
* @date April 16, 2000
|
||
|
*/
|
||
|
|
||
|
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)
|
||
|
{
|
||
|
// fixme;
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public boolean intersects (double x, double y, double w, double h)
|
||
|
{
|
||
|
// fixme
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
public static class Double extends Ellipse2D
|
||
|
{
|
||
|
public double height;
|
||
|
public double width;
|
||
|
public double x;
|
||
|
public double y;
|
||
|
|
||
|
public Double ()
|
||
|
{
|
||
|
height = width = x = y = 0;
|
||
|
}
|
||
|
|
||
|
public Double (double x, double y, double w, double h)
|
||
|
{
|
||
|
this.x = x;
|
||
|
this.y = y;
|
||
|
this.height = h;
|
||
|
this.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;
|
||
|
this.height = h;
|
||
|
this.width = w;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static class Float extends Ellipse2D
|
||
|
{
|
||
|
public float height;
|
||
|
public float width;
|
||
|
public float x;
|
||
|
public float y;
|
||
|
|
||
|
public Float ()
|
||
|
{
|
||
|
height = width = x = y = 0;
|
||
|
}
|
||
|
|
||
|
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;
|
||
|
this.height = h;
|
||
|
this.width = w;
|
||
|
}
|
||
|
|
||
|
public void setFrame (double x, double y, double w, double h)
|
||
|
{
|
||
|
this.x = (float) x;
|
||
|
this.y = (float) y;
|
||
|
this.height = (float) h;
|
||
|
this.width = (float) w;
|
||
|
}
|
||
|
}
|
||
|
}
|