gba-x3dtest
annotate src/sincos.h @ 6:73b5f2e5d18a
first triangle on screen
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 18 Jun 2014 04:13:02 +0300 |
parents | 8e9225853d75 |
children |
rev | line source |
---|---|
nuclear@3 | 1 #ifndef SINCOS_H_ |
nuclear@3 | 2 #define SINCOS_H_ |
nuclear@3 | 3 |
nuclear@3 | 4 #include <stdint.h> |
nuclear@3 | 5 |
nuclear@4 | 6 /*#define M_PI_X16 (int32_t)(M_PI * 65536.0) */ |
nuclear@4 | 7 #define M_PI_X16 (int32_t)((31416 << 16) / 10000) |
nuclear@3 | 8 |
nuclear@3 | 9 #define SINLUT_SCALE 512 |
nuclear@3 | 10 #define SINLUT_SIZE 512 |
nuclear@3 | 11 int16_t sinlut[SINLUT_SIZE]; |
nuclear@3 | 12 |
nuclear@3 | 13 void sincos_init(void); |
nuclear@3 | 14 |
nuclear@3 | 15 /* takes angle in [0, SINLUT_SIZE] and returns: |
nuclear@3 | 16 * sin(2 * angle / SINLUT_SIZE / pi) * SINLUT_SCALE |
nuclear@3 | 17 */ |
nuclear@3 | 18 int16_t sin_int(int16_t norm_angle); |
nuclear@3 | 19 int16_t cos_int(int16_t norm_angle); |
nuclear@3 | 20 |
nuclear@3 | 21 /* takes angle in fixed point 16.16 radians [0, 2pi << 16] |
nuclear@3 | 22 * and returns 16.16 fixed point in [-1 << 16, 1 << 16] |
nuclear@3 | 23 */ |
nuclear@3 | 24 int32_t sin_x16(int32_t radians); |
nuclear@3 | 25 int32_t cos_x16(int32_t radians); |
nuclear@3 | 26 |
nuclear@3 | 27 #endif /* SINCOS_H_ */ |