|
|
#ifndef ANGLEREP_H #define ANGLEREP_H #include "SelfTestingObject.h" namespace NobelNS { /** Normalisoi niin, että alue on [0, 360[ * @param a normalisoitava * @return normalisoitu */ double normalize360(double a) { if( a < 0 ) { return fmod(a, -360) + 360; } else { return fmod(a, 360); } } /** Normalisoi niin, että alue on ]-180, 180]. * @param a normalisoitava * @return normalisoitu */ double normalize180(double a) { double t = normalize360(a); if(t > 180) t -= 360; return t; } /** Kulman sisäinen esitysmuoto. */ class AngleRep : public SelfTestingObject { public: /** Kulma asteissa. */ double angleDeg; /** Invariantin tarkistus. * @return true, jos angleDeg kuuluu alueelle ]-180, 180] */ virtual bool invariant() const { return (-180 < angleDeg) && (angleDeg <= 180); } /** Normalisoi kulma, niin että se on välillä ]-180, 180] astetta. */ void normalize() { angleDeg = normalize180(angleDeg); } /** Destruktori. */ virtual ~AngleRep() { } }; } #endif
Generated by: hoppq@ilenkone on Tue Mar 20 23:14:05 2001, using kdoc 2.0a53. |