#ifndef _PROTO_ANGLES_HPP_ #define _PROTO_ANGLES_HPP_ class Angles { public: Angles(void); virtual ~Angles(); int angle360(void)const; int angle180(void)const; int angle120(void)const; int angle090(void)const; int angle060(void)const; int angle045(void)const; int angle030(void)const; int angle020(void)const; int angle015(void)const; int angle010(void)const; int angle005(void)const; int angle002(void)const; int angle001(void)const; int angle000(void)const; int angleHalfFOV(void)const; int screenWidth(void)const; void screenWidth(int screenWidth); private: void setAngles(void); int mAngle360; int mAngle180; int mAngle120; int mAngle090; int mAngle060; int mAngle045; int mAngle030; int mAngle020; int mAngle015; int mAngle010; int mAngle005; int mAngle002; int mAngle001; int mAngle000; int mScreenWidth; }; inline Angles::Angles(void) : mAngle360(0), mAngle180(0), mAngle120(0), mAngle090(0), mAngle060(0), mAngle045(0), mAngle030(0), mAngle020(0), mAngle015(0), mAngle010(0), mAngle005(0), mAngle002(0), mAngle001(0), mAngle000(0), mScreenWidth(0) { } inline Angles::~Angles() { } inline int Angles::screenWidth(void)const { return mScreenWidth; } inline void Angles::screenWidth(int screenWidth) { mScreenWidth=screenWidth; setAngles(); } inline void Angles::setAngles(void) { mAngle360=screenWidth()*360/60; mAngle180=angle360()/2; mAngle120=angle360()/3; mAngle090=angle360()/4; mAngle060=angle360()/6; mAngle045=angle360()/8; mAngle030=angle360()/12; mAngle020=angle360()/18; mAngle015=angle360()/24; mAngle010=angle360()/36; mAngle005=angle360()/72; mAngle002=angle360()/180; mAngle001=angle360()/360; mAngle000=0; } inline int Angles::angle360(void)const { return mAngle360; } inline int Angles::angle180(void)const { return mAngle180; } inline int Angles::angle120(void)const { return mAngle120; } inline int Angles::angle090(void)const { return mAngle090; } inline int Angles::angle060(void)const { return mAngle060; } inline int Angles::angle045(void)const { return mAngle045; } inline int Angles::angle030(void)const { return mAngle030; } inline int Angles::angle020(void)const { return mAngle020; } inline int Angles::angle015(void)const { return mAngle015; } inline int Angles::angle010(void)const { return mAngle010; } inline int Angles::angle005(void)const { return mAngle005; } inline int Angles::angle002(void)const { return mAngle002; } inline int Angles::angle001(void)const { return mAngle001; } inline int Angles::angle000(void)const { return mAngle000; } inline int Angles::angleHalfFOV(void)const { return angle030(); } #endif