Files
Work/proto/source/ANGLES.HPP
2024-08-07 09:16:27 -04:00

179 lines
2.6 KiB
C++

#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