00001 #ifndef _Vector2D_hpp_
00002 #define _Vector2D_hpp_
00003
00007 #include <ostream>
00008
00009 using namespace std;
00010
00011 class Vector2D {
00012 public:
00013 Vector2D();
00014 Vector2D(const Vector2D&);
00015 Vector2D(double x, double y);
00016 Vector2D & operator=(const Vector2D &);
00017 void set(double x,double y);
00018 void setX(double x);
00019 void setY(double y);
00020 Vector2D & operator*=(double val);
00021 Vector2D & operator/=(double val);
00022 Vector2D & operator+=(const Vector2D&);
00023 Vector2D & operator-=(const Vector2D&);
00024 const double & x() const { return x_;}
00025 const double & y() const { return y_;}
00026 private:
00027 double x_;
00028 double y_;
00029 };
00030
00031 Vector2D operator*(const Vector2D&,double val);
00032 Vector2D operator/(const Vector2D&,double val);
00033 Vector2D operator+(const Vector2D&,const Vector2D &);
00034 Vector2D operator-(const Vector2D&,const Vector2D &);
00035
00036 ostream & operator<<(ostream & , const Vector2D &);
00037
00038 #endif