/*	File: Circle.h
 *
 *	Interface Description:
 *		Provides a concrete class Circle which is a kind of a closed figure.
 *		See also Figure.h, ClosedF.h.
 *	History:
 *		Date:		 Author:	 Change:
 *		97-05-05	 KHU		 Creation.
 */

#ifndef CIRCLE_H_
#define CIRCLE_H_

#include "ClosedF.h"

	class Circle : virtual public ClosedFigure
	{
	protected:
		// Attributes:

		Float radius;
			// Invariant: radius >= 0.

		// Commands:

		void Draw ();

	public:
		// Queries:

		Float Extent () const;

		Float Area () const;

		Float Radius () const
		{
			return radius;
		};

		const CoordinatePair & Centre () const
		{
			return refPoint;
		};

		// Constructors:

		Circle (/* IN */ const CoordinatePair & centre, Float radius);
			// Precondition: radius >= 0.0.

	protected:
		void CheckInvariant ();

	}; // Circle

#endif // CIRCLE_H_