Path: blob/main/RSDKv4/Math.hpp
817 views
#ifndef MATH_H1#define MATH_H23#ifndef M_PI4#define M_PI 3.141592653589793238462643383279502885#endif67#undef M_PI_28#define M_PI_2 (M_PI * 2.0)910#undef M_PI_H11#define M_PI_H (M_PI * 0.5)1213#define MEM_ZERO(x) memset(&(x), 0, sizeof((x)))14#define MEM_ZEROP(x) memset((x), 0, sizeof(*(x)))1516extern int sinM7LookupTable[0x200];17extern int cosM7LookupTable[0x200];1819extern int sin512LookupTable[0x200];20extern int cos512LookupTable[0x200];2122extern int sin256LookupTable[0x100];23extern int cos256LookupTable[0x100];2425extern byte arcTan256LookupTable[0x100 * 0x100];2627// Setup Angles28void CalculateTrigAngles();2930inline int Sin512(int angle)31{32if (angle < 0)33angle = 0x200 - angle;3435angle &= 0x1FF;36return sin512LookupTable[angle];37}3839inline int Cos512(int angle)40{41if (angle < 0)42angle = 0x200 - angle;43angle &= 0x1FF;44return cos512LookupTable[angle];45}4647inline int Sin256(int angle)48{49if (angle < 0)50angle = 0x100 - angle;51angle &= 0xFF;52return sin256LookupTable[angle];53}5455inline int Cos256(int angle)56{57if (angle < 0)58angle = 0x100 - angle;59angle &= 0xFF;60return cos256LookupTable[angle];61}6263// Get Arc Tan value64byte ArcTanLookup(int X, int Y);6566inline double DegreesToRad(float degrees) { return (M_PI / 180) * degrees; }6768#endif // !MATH_H697071