aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/awt/geom/Ellipse2D.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/awt/geom/Ellipse2D.java')
-rw-r--r--libjava/java/awt/geom/Ellipse2D.java176
1 files changed, 176 insertions, 0 deletions
diff --git a/libjava/java/awt/geom/Ellipse2D.java b/libjava/java/awt/geom/Ellipse2D.java
new file mode 100644
index 0000000..ab830ff
--- /dev/null
+++ b/libjava/java/awt/geom/Ellipse2D.java
@@ -0,0 +1,176 @@
+/* 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;
+ }
+ }
+}