/****************************************************************************
**    TEST FILE FOR graph (Dynamic Layout Alg)
**
**    HEADER   - 2D VECTOR OPERATIONS
**
** Author: dr. Szirmay-Kalos Laszlo (szirmay@fsz.bme.hu)
**	   Technical University of Budapest, Hungary
*****************************************************************************/
/*
*    VECTOR - 2D GEOMETRIC VECTOR TYPE
*/
class	 vector {
    double x;				     // coordinates
    double y;
public:
    vector()			     { x = 0.0; y = 0.0;	      }
    vector(double x0, double y0)     { x = x0; y = y0;		      }
    void     operator=(const vector&	a)   { x = a.x; y = a.y;	      }
    void     operator+=(const vector& a)   { x += a.x; y += a.y;	      }
    void     operator/=(double d)    { if (d != 0.0) {x /= d; y /= d;}}
    void     operator*=(double d)    { x *= d; y *= d;		      }
    double	  X()		     { return x;		      }
    double	  Y()		     { return y;		      }
    double     Size();

// FRIENDS
    friend vector operator+(const vector&, const vector&);
    friend vector operator-(const vector&, const vector&);
    friend vector operator-(vector&);
    friend vector operator*(double, const vector&);
    friend vector operator*(double, vector&);
};
