package geometry;
public class Circle extends GeometricObject {
    private Point center;
    private double radius;
    private static double maxRadius = -1;
    private static Circle maxCircle = null;
    public Circle(Point center, double radius) throws Exception {
	if (radius < 0)
	    throw new Exception ("Circle with negative radius.");
	circleNoException(center, radius);
    }
    private void circleNoException(Point center, double radius) {
	this.center = center;
	this.radius = radius;
	this.color = "pink";
	if (radius > maxRadius) {
	    maxRadius = radius;
	    maxCircle = this;
	}
    }
    public Circle(double radius) throws Exception {
	this(new Point(0.,0.), radius);
    }
    public Circle(Point center) { // No exception possible
	circleNoException(center, 1.0);
    }
    public Circle() {             // No exception possible
	circleNoException(new Point(0.,0.), 1.0);
    }
    public Point getCenter() {
	return this.center;
    }
    public double getRadius() {
	return this.radius;
    }
    public double area () {
	return Math.PI * radius * radius;
    }
    public static Circle largestCircle() {
	if (maxRadius < 0)
	    System.out.println("No circles created, so maximum circle is null");
	return maxCircle;
    }
    public boolean equals(Object obj) {
	if (obj instanceof Circle)
	    return radius == ((Circle)obj).radius; // Only radius counts
	return false;
    }
}
// Local Variables:
// c-basic-offset:  4
// compile-command: "javac *.java; java TestQuad"
// End: