#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. |