/*	File: Circle.cpp
 *
 *	Design and Implementation Description: -
 *	History:
 *		Date:		 Author:	 Change:
 *		97-05-05	 KHU		 Creation.
 */

#include "Circle.h"

#include <assert.h>
#include <graphics.h>
#include <math.h>							// For M_PI.

	void Circle::Draw ()
	{
		circle (refPoint.x, refPoint.y, radius);
	}; // Draw

	Float Circle::Extent () const
	{
		Float result = 2 * M_PI * radius;
		assert(result >= 0.0);
		return result;
	}; // Extent

	Float Circle::Area () const
	{
		Float result = M_PI * radius * radius;
		assert(result >= 0.0);
		return result;
	}; // Area

	Circle::Circle (const CoordinatePair & centre, Float radius)
	{
		assert(radius >= 0.0);
		refPoint 	 = centre;
		this->radius = radius;
		CheckInvariant ();
	}; // Circle

	void Circle::CheckInvariant ()
	{
		ClosedFigure::CheckInvariant ();
		assert(radius >= 0.0);
	}; // CheckInvariant

// End of Circle.

