|
|
#ifndef VECTOR_H #define VECTOR_H #include <string> #include "SelfTestingObject.h" #include "Length.h" #include "Angle.h" namespace Nobel { class VectorRep; /** Vektori. */ class Vector : public SelfTestingObject { public: /** Hae vektorin kulma suhteessa X-akseliin. * @return vektorin kulma ( ]-180, 180] astetta ) */ Angle getAngle() const; /** Hae vektorin pituus. * @return vektorin pituus (aina ei-negatiivinen) */ Length getLength() const; /** Hae vektorin x-komponentin pituus. * @return x-komponentin pituus */ Length getX() const; /** Hae vektorin y-komponentin pituus. * @return y-komponentin pituus */ Length getY() const; /** Hae vektorin tekstimuotoesitys * @return X, Y */ virtual std::string asString() const; /** Tarkista invariantti. * @return invariantin paikkaansapitävyys */ virtual bool invariant() const; /** Aseta vektori uudelleen. * @param a vektorin uusi kulma * @param l vektorin uusi pituus * @return viite muutettuun vektoriin */ Vector& setVector(const Angle& a, const Length& l); /** Aseta vektori uudelleen. * @param x uusi x-komponentin pituus * @param y uusi y-komponentin pituus * @return viite muutettuun vektoriin */ Vector& setVector(const Length& x, const Length& y); /** Yhteenlaskuoperaattori sijoituksella. * @param v yhteenlaskettava * @return viite muutettuun olioon */ Vector& operator+=(const Vector& v); /** Vähennyslaskuoperaattori sijoituksella. * @param v vähennettävä * @return viite muutettuun olioon */ Vector& operator-=(const Vector& v); /** Konstruktori. * @param x x-komponentin pituus * @param y y-komponentin pituus */ Vector(const Length& x, const Length& y); /** Konstruktori. * @param a vektorin kulma * @param l vektorin pituus */ Vector(const Angle& a, const Length& l); /** Kopiokonstruktori. * @param v kopioitava */ Vector(const Vector& v); /** Vaihto-operaatio. * @param v vaihdettava */ virtual void swap(Vector& v); /** Sijoitusoperaattori. * @param v sijoitettava. */ Vector& operator=(const Vector& v); /** Destruktori. */ virtual ~Vector(); private: /** Osoitin sisäiseen esitykseen. */ VectorRep* rep; }; /** Yhteenlaskuoperaattori vektoreille. * @param a summattava * @param b summattava * @return summa */ Vector operator+(const Vector& a, const Vector& b); /** Vähennyslaskuoperaattori vektoreille. * @param a mistä vähennetään * @param b mikä vähennetään * @return erotus */ Vector operator-(const Vector& a, const Vector& b); } #endif
Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50. |