46
46
#include < math.h>
47
47
#include < float.h>
48
48
#include < assert.h>
49
- #include < float.h>
50
49
51
50
/*
52
51
** Some global constants.
61
60
#define WWMATH_OOSQRT2 0 .707106781f
62
61
#define WWMATH_OOSQRT3 0 .577350269f
63
62
64
- // (DRM 05/07/01) Temporarily eliminated _fastcall
65
- // on non-Microsoft compatible compilers. Jani
66
- // should be replacing this soon.
67
- #ifndef _MSC_VER
68
- #define __fastcall
69
- #endif // _MSC_VER
70
-
71
63
/*
72
64
** Macros to convert between degrees and radians
73
65
*/
@@ -124,14 +116,14 @@ static WWINLINE int Float_To_Int_Floor(const float& f);
124
116
static WWINLINE float Cos (float val);
125
117
static WWINLINE float Sin (float val);
126
118
static WWINLINE float Sqrt (float val);
127
- static float __fastcall Inv_Sqrt (float a); // Some 30% faster inverse square root than regular C++ compiled, from Intel's math library
119
+ static WWINLINE float Inv_Sqrt (float a); // Some 30% faster inverse square root than regular C++ compiled, from Intel's math library
128
120
static WWINLINE long Float_To_Long (float f);
129
121
#else
130
- static float Cos (float val);
131
- static float Sin (float val);
132
- static float Sqrt (float val);
133
- static float Inv_Sqrt (float a);
134
- static long Float_To_Long (float f);
122
+ static WWINLINE float Cos (float val);
123
+ static WWINLINE float Sin (float val);
124
+ static WWINLINE float Sqrt (float val);
125
+ static WWINLINE float Inv_Sqrt (float a);
126
+ static WWINLINE long Float_To_Long (float f);
135
127
#endif
136
128
137
129
@@ -146,36 +138,37 @@ static WWINLINE float Fast_Asin(float val);
146
138
static WWINLINE float Asin (float val);
147
139
148
140
149
- static float Atan (float x) { return static_cast <float >(atan (x)); }
150
- static float Atan2 (float y,float x) { return static_cast <float >(atan2 (y,x)); }
151
- static float Sign (float val);
152
- static float Ceil (float val) { return ceilf (val); }
153
- static float Floor (float val) { return floorf (val); }
154
- static bool Fast_Is_Float_Positive (const float & val);
155
- static bool Is_Power_Of_2 (const unsigned int val);
141
+ static WWINLINE float Atan (float x) { return static_cast <float >(atan (x)); }
142
+ static WWINLINE float Atan2 (float y,float x) { return static_cast <float >(atan2 (y,x)); }
143
+ static WWINLINE float Sign (float val);
144
+ static WWINLINE float Ceil (float val) { return ceilf (val); }
145
+ static WWINLINE float Floor (float val) { return floorf (val); }
146
+ static WWINLINE bool Fast_Is_Float_Positive (const float & val);
147
+ static WWINLINE bool Is_Power_Of_2 (const unsigned int val);
156
148
157
149
static float Random_Float (void );
158
- static float Random_Float (float min,float max);
159
- static float Clamp (float val, float min = 0 .0f , float max = 1 .0f );
160
- static double Clamp (double val, double min = 0 .0f , double max = 1 .0f );
161
- static int Clamp_Int (int val, int min_val, int max_val);
162
- static float Wrap (float val, float min = 0 .0f , float max = 1 .0f );
163
- static double Wrap (double val, double min = 0 .0f , double max = 1 .0f );
164
- static float Min (float a, float b);
165
- static float Max (float a, float b);
166
150
167
- static int Float_As_Int (const float f) { return *((int *)&f); }
151
+ static WWINLINE float Random_Float (float min,float max);
152
+ static WWINLINE float Clamp (float val, float min = 0 .0f , float max = 1 .0f );
153
+ static WWINLINE double Clamp (double val, double min = 0 .0f , double max = 1 .0f );
154
+ static WWINLINE int Clamp_Int (int val, int min_val, int max_val);
155
+ static WWINLINE float Wrap (float val, float min = 0 .0f , float max = 1 .0f );
156
+ static WWINLINE double Wrap (double val, double min = 0 .0f , double max = 1 .0f );
157
+ static WWINLINE float Min (float a, float b);
158
+ static WWINLINE float Max (float a, float b);
159
+
160
+ static WWINLINE int Float_As_Int (const float f) { return *((int *)&f); }
168
161
169
- static float Lerp (float a, float b, float lerp );
170
- static double Lerp (double a, double b, float lerp );
162
+ static WWINLINE float Lerp (float a, float b, float lerp );
163
+ static WWINLINE double Lerp (double a, double b, float lerp );
171
164
172
- static long Float_To_Long (double f);
165
+ static WWINLINE long Float_To_Long (double f);
173
166
174
- static unsigned char Unit_Float_To_Byte (float f) { return (unsigned char )(f*255 .0f ); }
175
- static float Byte_To_Unit_Float (unsigned char byte) { return ((float )byte) / 255 .0f ; }
167
+ static WWINLINE unsigned char Unit_Float_To_Byte (float f) { return (unsigned char )(f*255 .0f ); }
168
+ static WWINLINE float Byte_To_Unit_Float (unsigned char byte) { return ((float )byte) / 255 .0f ; }
176
169
177
- static bool Is_Valid_Float (float x);
178
- static bool Is_Valid_Double (double x);
170
+ static WWINLINE bool Is_Valid_Float (float x);
171
+ static WWINLINE bool Is_Valid_Double (double x);
179
172
180
173
};
181
174
@@ -602,7 +595,7 @@ WWINLINE int WWMath::Float_To_Int_Floor (const float& f)
602
595
// ----------------------------------------------------------------------------
603
596
604
597
#if defined(_MSC_VER) && defined(_M_IX86)
605
- WWINLINE float __fastcall WWMath::Inv_Sqrt (float a)
598
+ WWINLINE float WWMath::Inv_Sqrt (float a)
606
599
{
607
600
float retval;
608
601
0 commit comments