diff options
Diffstat (limited to 'Client/Source/Phy2D/Common/Settings.h')
-rw-r--r-- | Client/Source/Phy2D/Common/Settings.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Client/Source/Phy2D/Common/Settings.h b/Client/Source/Phy2D/Common/Settings.h new file mode 100644 index 0000000..87db164 --- /dev/null +++ b/Client/Source/Phy2D/Common/Settings.h @@ -0,0 +1,57 @@ +#pragma once + +#include "libfixmath/libfixmath/fixmath.h" + +namespace Phy2D +{ + +#define NUMBER_FLOAT false + +#if NUMBER_FLOAT +typedef float number; +#define NUMBER_MAX (FLT_MAX) +#define NUMBER_MIN (FLT_MIN) +#define SQRT(a) (sqrt((a))) +#define SIN(a) (sin((a))) +#define COS(a) (cos((a))) +#else +// 同时一定要开启内联函数扩展,否则执行效率会非常低 +typedef Fix16 number; +#define NUMBER_MAX (fix16_maximum) +#define NUMBER_MIN (fix16_minimum) +#define SQRT(a) ((a).sqrt()) +#define SIN(a) ((a).sin()) +#define COS(a) ((a).cos()) +#endif + +#if false + typedef fix16_t number; + +#define A (a) +#define B (b) + + #define Number(float_value) (fix16_from_float((float_value))) + #define to_float(n) (fix16_to_float((n))) + + inline bool eq(number a, number b) { return (A == B) ;} + inline bool lt(number a, number b) { return (A < B) ;} + inline bool le(number a, number b) { return (A <= B) ;} + inline bool gt(number a, number b) { return (A > B) ;} + inline bool ge(number a, number b) { return (A >= B) ;} + inline number add(number a, number b) { return (fix16_add(A, B)) ;} + inline number sub(number a, number b) { return (fix16_sub(A, B)) ;} + inline number mul(number a, number b) { return (fix16_mul(A, B)) ;} + inline number div(number a, number b) { return (fix16_div(A, B)) ;} + inline number mod(number a, number b) { return (fix16_mod(A, B)) ;} + inline number sin(number a) { return (fix16_sin(A)) ;} + inline number cos(number a) { return (fix16_cos(A)) ;} + inline number tan(number a) { return (fix16_tan(A)) ;} + inline number acos(number a) { return (fix16_acos(A)) ;} + inline number asin(number a) { return (fix16_asin(A)) ;} + inline number atan(number a) { return (fix16_atan(A)) ;} + inline number neg(number a) { return (fix16_sub(0, A)) ;} + inline number abs(number a) { return (fix16_abs(A)) ;} + inline number sqrt(number a) { return fix16_sqrt(a); } +#endif + +}
\ No newline at end of file |