//File:	circle.cpp IMPLEMENTATION file
#include <string>
#include "circle.h"
using namespace std;

const double PI = 3.14159;

//Uses member initializer list
circle::circle () : m_rad(0.0), m_x(0.0), m_y(0.0), m_name("Unit Circle")
{
}

circle::circle (double xcoord, double ycoord, double radius, string name)
{
	m_x = xcoord;
	m_y = ycoord;
	m_rad = radius;
	m_name = name;
}

circle::~circle ()
{
}

double circle::circumference () const
{
	return (m_rad * 2.0 * PI);
}

double circle::radius () const
{
	return m_rad;
}

string circle::name () const
{
	return m_name;
}

void circle::center (double & x, double & y) const
{
	x = m_x;
	y = m_y;
}

ostream & operator << (ostream & out, const circle & c)
{
	out << c.m_name << " is located at (" << c.m_x << ", " << c.m_y << ")" << endl;
	out << "Its radius is: " << c.m_rad << endl;
	out << "Its circumference is: " << c.circumference() << endl;
	out << endl;

	return out;
}

istream & operator >> (istream & in, circle & c)
{
	in >> c.m_name >> c.m_x >> c.m_y >> c.m_rad;

	return in;
}
