public class Triangle {

	Point p1;
	Point p2;
	Point p3;
	
	public Triangle()
	{
		p1 = new Point();
		p2 = new Point();
		p3 = new Point();
	}
	
	public Triangle(Point p1, Point p2, Point p3)
	{
		this.p1 = p1;
		this.p2 = p2;
		this.p3 = p3;
	}
	
	public boolean isRightTriangle()
	{
		if (!genericTriangle())
		{
		double d1 = getDistance(p1, p2);
		double d2 = getDistance(p2, p3);
		double d3 = getDistance(p1, p3);

		// check if any pair fulfills Pythagorean Theorem
		if ((d1*d1) + (d2*d2) == (d3 * d3))
			return true;
		else
			if ((d1*d1) + (d3*d3) == (d2 * d2))
				return true;
			else
				if ((d2*d2) + (d3*d3) == (d1 * d1))
					return true;
		}
		 return false;
	}
	
	private double getDistance(Point a, Point b)
	{
		double n1 = (b.getX()-a.getX()) * (b.getX()-a.getX());
		double n2 = (b.getY()-a.getY()) * (b.getY()-a.getY());
		
		return Math.sqrt(n1+n2);
				
	}
	
	private boolean genericTriangle()
	{
		if ((p1.x == 0) && (p1.y == 0) && (p2.x == 0) && (p2.y == 0) && (p3.x == 0) && (p3.y == 0))
		return true;
		else return false;
	}
	
}
