|
|
#ifndef ANGLE_H #define ANGLE_H #include <string> #include "SelfTestingObject.h" namespace Nobel { class AngleRep; /** Kulman mahdolliset mittayksiköt. PTU tarkoittaa pan-tilt-yksikön * käyttämää mittayksikköä. */ enum AngleUnit { Deg, Deg10th, Rad, PTU }; /** Itsekonvertoiva kulmayksikkö. Angle-luokan ilmentymät ovat * kulmia, jotka osaavat itse konvertoida itsensä toiseen mittayksikköön. */ class Angle : public SelfTestingObject { public: /** Palauta kulma annetussa mittayksikössä. * @param unit haluttu mittayksikkö * @return kulman koko */ double getAngle(AngleUnit unit) const; /** Palauta kulman esitys tekstimuodossa. * @return kulman suuruus asteissa */ virtual std::string asString() const; /** Tarkista onko olio eheässä tilassa. * @return olion eheys totuusarvona */ virtual bool invariant() const; /** Aseta kulman suuruus. * @param newAngle kulman uusi koko * @param unit koon mittayksikkö * @return viite muutettuun kulmaan */ Angle& setAngle(double newAngle, AngleUnit unit); /** Laske kulma yhteen sijoittamalla. * @param a yhteenlaskettava kulma * @return viite muutettuun olioon */ Angle& operator+=(const Angle& a); /** Vähennä kaksi kulmaa toisistaan sijoituksella. * @param a vähennettävä kulma * @return viite muutettuun olioon */ Angle& operator-=(const Angle& a); /** Konstruktori. * @param angle kulman koko * @param unit koon mittayksikkö */ Angle(double angle, AngleUnit unit); /** Kopiokonstruktori. * @param a kopioitava kulma */ Angle(const Angle& a); /** Vaihda kaksi kulmaa keskenään. * @param a vaihdettava kulma */ virtual void swap(Angle& a); /** Sijoitusoperaattori. * @param a sijoitettava kulma. */ Angle& operator=(const Angle& a); /** Destruktori. */ virtual ~Angle(); private: /** Osoitin kulman sisäiseen esitysmuotoon. */ AngleRep* rep; }; /** Kahden kulman yhteenlasku. * @param a ensimmäinen yhteenlaskettava * @param b toinen yhteenlaskettava * @return yhteenlaskettu kulma */ Angle operator+(const Angle& a, const Angle& b); /** Kahden kulman vähennyslasku. * @param a kulma, josta vähennetään * @param b kulma, joka vähennetään * @return vähennyslaskun tulos */ Angle operator-(const Angle& a, const Angle& b); /** Pienempi-kuin operaattori kulmille. * @param a vasen puoli * @param b oikea puoli * @return a < b */ bool operator<(const Angle& a, const Angle& b); /** Yhtäsuuruusvertailu kulmille. * @param a vasen puoli * @param b oikea puoli * @return a==b */ bool operator==(const Angle& a, const Angle& b); } #endif
Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50. |