#include<iostream>
#include<cmath>
#include "point.h"
using namespace std;

Point::Point()
{
	x = 0.0;
	y = 0.0;
}

Point::Point(double xvalue, double yvalue)
{
	SetAll(xvalue, yvalue);
}

void Point::SetAll(double xvalue, double yvalue)
{
	x = xvalue;
	y = yvalue;
	return;
}

double Point::GetX(void) const
{
	return x;
}

double Point::GetY(void) const
{
	return y;
}

double Point::Distance(Point p)
{
	return sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
}

double Point::Slope(Point p)
{
	double slope = 0;
	double xdelta = x - p.x;
	double ydelta = y - p.y;
	
	if(xdelta != 0)
	{
		slope = ydelta/xdelta;
	}
	else
	{
		return UNDEFINED;
	}
	
	return slope;
}

