#ifndef __SBLENDED_VECTOR2D_H
	#define __SBLENDED_VECTOR2D_H

	#include<math.h>

	class Vector2D
	{
		public:
			float x;
			float y;
			Vector2D(float X, float Y);
			Vector2D(const Vector2D& Copy); // Copy Constructor
			Vector2D operator=(const Vector2D &Copy);

			Vector2D operator+(const Vector2D& Sum) const;
			Vector2D operator-(const Vector2D& Diff) const;
			void operator+=(const Vector2D& Sum);
			void operator-=(const Vector2D& Diff);

			float operator*(const Vector2D& Prod) const; // Euclidian Product
			Vector2D operator*(float Prod) const;
			void operator*=(float Prod);
			Vector2D operator/(float Div) const;
			void operator/=(float Div);

			Vector2D Perpendicular() const;
			float Length() const;
			Vector2D Normalized() const;
			float Theta() const; // angle between the vector and the x-axis (in degrees)

			static float Distance(const Vector2D& a, const Vector2D& b);
			static Vector2D IntersectionTwoPointsForm(const Vector2D& L1P1, const Vector2D& L1P2, const Vector2D& L2P1, const Vector2D& L2P2);
			static Vector2D IntersectionParameterForm(const Vector2D& L1P, const Vector2D& L1Dir, const Vector2D& L2P, const Vector2D& L2Dir);

	};

#endif

