00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ANGLE_H
00009 #define ANGLE_H
00010
00011 #include <cmath>
00012
00013 namespace mimas {
00014
00020 class angle
00021 {
00022 private:
00025 double _angle;
00026
00027 void arcTan2(double y, double x );
00028 void normalize(void);
00029 public:
00030
00032 angle(void): _angle(0) {}
00036 angle( double aAngle ): _angle(aAngle) {}
00037
00038 angle( double y, double x ) { arcTan2(y,x); }
00039
00040
00041
00042
00043
00044 operator double() const {return _angle;}
00045
00046
00047 angle operator+( angle &a2 );
00048 angle operator-( angle &a2 );
00049 angle operator-(void) { return angle( -_angle ); }
00050
00051
00052 angle& operator+=(const angle& right);
00053 angle& operator+=(const double& right);
00054 };
00055
00056 };
00057
00058 #endif