Inline operators
This commit is contained in:
parent
44ea52dfd4
commit
4cd1f0c28c
60
include/fp.h
60
include/fp.h
|
@ -6,37 +6,37 @@
|
|||
class fp {
|
||||
public:
|
||||
int i;
|
||||
fp(int v){
|
||||
inline fp(int v){
|
||||
i = v * FP_RIGHT;
|
||||
}
|
||||
fp(float v){
|
||||
inline fp(float v){
|
||||
i = v * FP_RIGHT;
|
||||
}
|
||||
fp(double v){
|
||||
inline fp(double v){
|
||||
i = v * FP_RIGHT;
|
||||
}
|
||||
fp(){ i = 0; }
|
||||
inline fp(){ i = 0; }
|
||||
|
||||
operator int() { return i / FP_RIGHT; }
|
||||
operator float() { return ((float)i) / ((float)FP_RIGHT); }
|
||||
inline operator int() { return i / FP_RIGHT; }
|
||||
inline operator float() { return ((float)i) / ((float)FP_RIGHT); }
|
||||
|
||||
fp operator + (fp o){
|
||||
inline fp operator + (fp o){
|
||||
fp r;
|
||||
r.i = i + o.i;
|
||||
return r;
|
||||
}
|
||||
fp operator - (fp o){
|
||||
inline fp operator - (fp o){
|
||||
fp r;
|
||||
r.i = i - o.i;
|
||||
return r;
|
||||
}
|
||||
fp operator * (fp o){
|
||||
inline fp operator * (fp o){
|
||||
// printf("%d %d %d\n", i, o.i, INT_MAX);
|
||||
fp r;
|
||||
r.i = (i * o.i) / FP_RIGHT;
|
||||
return r;
|
||||
}
|
||||
fp operator / (fp o){
|
||||
inline fp operator / (fp o){
|
||||
fp r;
|
||||
r.i = i*FP_RIGHT / o.i;
|
||||
return r;
|
||||
|
@ -59,27 +59,27 @@ class fp {
|
|||
// return *this;
|
||||
// }
|
||||
|
||||
bool operator > (fp o){ return i > o.i; }
|
||||
bool operator < (fp o){ return i < o.i; }
|
||||
bool operator > (int o){ return i > o*FP_RIGHT; }
|
||||
bool operator < (int o){ return i < o*FP_RIGHT; }
|
||||
bool operator > (float o){ return i > o*FP_RIGHT; }
|
||||
bool operator < (float o){ return i < o*FP_RIGHT; }
|
||||
bool operator > (double o){ return i > o*FP_RIGHT; }
|
||||
bool operator < (double o){ return i < o*FP_RIGHT; }
|
||||
bool operator >= (fp o){ return i >= o.i; }
|
||||
bool operator <= (fp o){ return i <= o.i; }
|
||||
bool operator >= (int o){ return i >= o*FP_RIGHT; }
|
||||
bool operator <= (int o){ return i <= o*FP_RIGHT; }
|
||||
bool operator >= (float o){ return i >= o*FP_RIGHT; }
|
||||
bool operator <= (float o){ return i <= o*FP_RIGHT; }
|
||||
bool operator >= (double o){ return i >= o*FP_RIGHT; }
|
||||
bool operator <= (double o){ return i <= o*FP_RIGHT; }
|
||||
inline bool operator > (fp o){ return i > o.i; }
|
||||
inline bool operator < (fp o){ return i < o.i; }
|
||||
inline bool operator > (int o){ return i > o*FP_RIGHT; }
|
||||
inline bool operator < (int o){ return i < o*FP_RIGHT; }
|
||||
inline bool operator > (float o){ return i > o*FP_RIGHT; }
|
||||
inline bool operator < (float o){ return i < o*FP_RIGHT; }
|
||||
inline bool operator > (double o){ return i > o*FP_RIGHT; }
|
||||
inline bool operator < (double o){ return i < o*FP_RIGHT; }
|
||||
inline bool operator >= (fp o){ return i >= o.i; }
|
||||
inline bool operator <= (fp o){ return i <= o.i; }
|
||||
inline bool operator >= (int o){ return i >= o*FP_RIGHT; }
|
||||
inline bool operator <= (int o){ return i <= o*FP_RIGHT; }
|
||||
inline bool operator >= (float o){ return i >= o*FP_RIGHT; }
|
||||
inline bool operator <= (float o){ return i <= o*FP_RIGHT; }
|
||||
inline bool operator >= (double o){ return i >= o*FP_RIGHT; }
|
||||
inline bool operator <= (double o){ return i <= o*FP_RIGHT; }
|
||||
|
||||
bool operator == (fp o){ return i == o.i; }
|
||||
bool operator == (int o){ return i == o*FP_RIGHT; }
|
||||
bool operator == (float o){ return i == o*FP_RIGHT; }
|
||||
bool operator == (double o){ return i == o*FP_RIGHT; }
|
||||
inline bool operator == (fp o){ return i == o.i; }
|
||||
inline bool operator == (int o){ return i == o*FP_RIGHT; }
|
||||
inline bool operator == (float o){ return i == o*FP_RIGHT; }
|
||||
inline bool operator == (double o){ return i == o*FP_RIGHT; }
|
||||
};
|
||||
|
||||
// typedef float fp;
|
||||
|
|
|
@ -12,30 +12,30 @@ struct vec3d {
|
|||
fp x;
|
||||
fp y;
|
||||
fp z;
|
||||
vec3d operator + (vec3d o){
|
||||
inline vec3d operator + (vec3d o){
|
||||
return {x + o.x, y + o.y, z + o.z};
|
||||
}
|
||||
vec3d operator - (vec3d o){
|
||||
inline vec3d operator - (vec3d o){
|
||||
return {x - o.x, y - o.y, z - o.z};
|
||||
}
|
||||
vec3d operator * (vec3d o){
|
||||
inline vec3d operator * (vec3d o){
|
||||
return {x * o.x, y * o.y, z * o.z};
|
||||
}
|
||||
vec3d operator / (vec3d o){
|
||||
inline vec3d operator / (vec3d o){
|
||||
return {x / o.x, y / o.y, z / o.z};
|
||||
}
|
||||
vec3d operator * (fp o){
|
||||
inline vec3d operator * (fp o){
|
||||
return {x * o, y * o, z * o};
|
||||
}
|
||||
vec3d operator / (fp o){
|
||||
inline vec3d operator / (fp o){
|
||||
return {x / o, y / o, z / o};
|
||||
}
|
||||
|
||||
bool operator == (vec3d o){
|
||||
inline bool operator == (vec3d o){
|
||||
return x == o.x && y == o.y && z == o.z;
|
||||
}
|
||||
|
||||
vec3d normalized(){
|
||||
inline vec3d normalized(){
|
||||
fp i_d = fp_isqrt(x*x + y*y + z*z);
|
||||
return (*this) * i_d;
|
||||
}
|
||||
|
@ -45,26 +45,26 @@ struct vec3f {
|
|||
float x;
|
||||
float y;
|
||||
float z;
|
||||
vec3f operator + (vec3f o){
|
||||
inline vec3f operator + (vec3f o){
|
||||
return {x + o.x, y + o.y, z + o.z};
|
||||
}
|
||||
vec3f operator - (vec3f o){
|
||||
inline vec3f operator - (vec3f o){
|
||||
return {x - o.x, y - o.y, z - o.z};
|
||||
}
|
||||
vec3f operator * (vec3f o){
|
||||
inline vec3f operator * (vec3f o){
|
||||
return {x * o.x, y * o.y, z * o.z};
|
||||
}
|
||||
vec3f operator / (vec3f o){
|
||||
inline vec3f operator / (vec3f o){
|
||||
return {x / o.x, y / o.y, z / o.z};
|
||||
}
|
||||
vec3f operator * (float o){
|
||||
inline vec3f operator * (float o){
|
||||
return {x * o, y * o, z * o};
|
||||
}
|
||||
vec3f operator / (float o){
|
||||
inline vec3f operator / (float o){
|
||||
return {x / o, y / o, z / o};
|
||||
}
|
||||
|
||||
bool operator == (vec3f o){
|
||||
inline bool operator == (vec3f o){
|
||||
return x == o.x && y == o.y && z == o.z;
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue