--- /dev/null
+\r
+#include "mof/Vector2D.hpp"\r
+\r
+mof::Vector2D::Vector2D(real x_ , real y_)\r
+: x(x_) , y(y_)\r
+{}\r
+\r
+mof::Vector2D::Vector2D(int x_ , int y_)\r
+: x(mof::int2real(x_)) , y(mof::int2real(y_))\r
+{}\r
+\r
+\r
+mof::Vector2D::Vector2D(){\r
+ x = y = 0;\r
+}\r
+\r
+mof::Vector2D::~Vector2D(void)\r
+{\r
+}\r
+\r
+\r
+bool mof::Vector2D::operator == (const mof::Vector2D& obj) const{\r
+ if(x == obj.x && y == obj.y)return true;\r
+ else return false;\r
+}\r
+\r
+bool mof::Vector2D::operator != (const mof::Vector2D& obj) const{\r
+ return !(*this == obj);\r
+}\r
+ \r
+mof::Vector2D mof::Vector2D::operator - () const{\r
+ return mof::Vector2D( -x , -y);\r
+}\r
+ \r
+\r
+\r
+mof::Vector2D mof::Vector2D::operator +( const mof::Vector2D& rhs) const{\r
+ return mof::Vector2D(this->x + rhs.x , this->y + rhs.y);\r
+}\r
+\r
+\r
+mof::Vector2D mof::Vector2D::operator -( const mof::Vector2D& rhs) const{\r
+ return mof::Vector2D(this->x - rhs.x , this->y - rhs.y);\r
+}\r
+ \r
+mof::Vector2D mof::Vector2D::operator *(float rhs) const{\r
+ return mof::Vector2D(this->x * rhs , this->y * rhs);\r
+}\r
+\r
+\r
+mof::Vector2D mof::Vector2D::operator /(float rhs) const{\r
+ return mof::Vector2D(this->x / rhs , this->y / rhs);\r
+}\r
+\r
+\r
+mof::Vector2D mof::operator *(const mof::Vector2D& vec , float f){\r
+ mof::Vector2D obj;\r
+ obj.x = vec.x * f;\r
+ obj.y = vec.y * f;\r
+ return obj;\r
+}\r
+ \r
+mof::Vector2D mof::operator *(float f , const mof::Vector2D& vec ){\r
+ mof::Vector2D obj;\r
+ obj.x = vec.x * f;\r
+ obj.y = vec.y * f;\r
+ return obj;\r
+}\r
+\r
+std::ostream& mof::operator <<(std::ostream& os , const mof::Vector2D& obj)\r
+{\r
+ os << '(' << obj.x << ',' << obj.y << ')';\r
+ return os; \r
+}\r
+\r
--- /dev/null
+#ifndef VECTOR2D_HPP\r
+#define VECTOR2D_HPP\r
+#include <mof/real.hpp>\r
+#include <iostream>\r
+\r
+namespace mof{\r
+\r
+ struct Vector2D\r
+ {\r
+ real x , y;\r
+ \r
+ Vector2D(real x_ , real y_);\r
+ Vector2D(int x_ , int y_);\r
+ Vector2D();\r
+ ~Vector2D(void);\r
+ \r
+ mof::Vector2D operator +(const mof::Vector2D& rhs) const;\r
+ mof::Vector2D operator -(const mof::Vector2D& rhs) const;\r
+ mof::Vector2D operator *(float rhs) const;\r
+ mof::Vector2D operator /(float rhs) const;\r
+\r
+ bool operator ==(const mof::Vector2D& obj) const;\r
+ bool operator !=(const mof::Vector2D& obj) const;\r
+ mof::Vector2D operator -( ) const;\r
+\r
+ friend mof::Vector2D operator *(const mof::Vector2D& vec , real f);\r
+ friend mof::Vector2D operator *(real f , const mof::Vector2D & vec);\r
+ friend std::ostream& operator <<(std::ostream& os , const Vector2D& obj );\r
+\r
+ };\r
+\r
+};\r
+\r
+#endif\r