Mario Kart 64
Loading...
Searching...
No Matches
math_util.h
Go to the documentation of this file.
1#ifndef MATH_UTIL_H
2#define MATH_UTIL_H
3
4#include <libultraship.h>
5#include <common_structs.h>
6
7// #define sins(x) gSineTable[(u16) (x) >> 4]
8// #define coss(x) gCosineTable[(u16) (x) >> 4]
9
10// #define min(a, b) ((a) <= (b) ? (a) : (b))
11// #define max(a, b) ((a) > (b) ? (a) : (b))
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#define sqr(x) ((x) * (x))
18
19// Here to appease the pragma gods
20double fabs(double x);
21
23s32 func_802B4F60(s32, Vec3f, s32, f32, f32);
29void vec3f_set(Vec3f, f32, f32, f32);
30void vec3s_set(Vec3s, s16, s16, s16);
33void* vec3f_set_return(Vec3f, f32, f32, f32);
34void mtxf_copy(Mat4, Mat4);
35void mtxf_copy_n_element(s32*, s32*, s32);
40void func_802B5564(Mat4, u16*, f32, f32, f32, f32, f32);
42void mtxf_rotate_x(Mat4, s16);
43void mtxf_rotate_y(Mat4, s16);
44void mtxf_s16_rotate_z(Mat4, s16);
45void func_802B5CAC(s16, s16, Vec3f);
46void func_802B5D30(s16, s16, s32);
47void set_track_light_direction(Lights1*, s16, s16, s32);
48void mtxf_scale(Mat4, f32);
52void func_802B64C4(Vec3f, s16);
53void calculate_orientation_matrix(Mat3, f32, f32, f32, s16);
54void calculate_rotation_matrix(Mat3, s16, f32, f32, f32);
55void func_802B6BC0(Mat4, s16, f32, f32, f32);
58void mtxf_to_mtx(Mtx*, Mat4);
59u16 atan2_lookup(f32, f32);
60u16 atan2s(f32, f32);
61f32 _atan2f(f32, f32);
62s16 func_802B7C40(f32);
63s16 func_802B7CA8(f32);
65u16 random_u16(void);
66u16 random_int(u16);
67s16 func_802B7F34(f32, f32, f32, f32);
69f32 sins(u16);
70f32 coss(u16);
71s32 is_visible_between_angle(u16, u16, u16);
72f32 is_within_render_distance(Vec3f, Vec3f, u16, f32, f32, f32);
73
74extern s32 D_802B91C0[];
75extern Vec3f D_802B91C8;
76//extern Mtx gIdentityMatrix;
77
78#ifdef __cplusplus
79}
80#endif
81
82#define DEGREES_CONVERSION_FACTOR 182
83
84#endif // MATH_UTIL_H
f32 Vec3f[3]
Definition common_structs.h:10
s16 Vec3s[3]
Definition common_structs.h:15
f32 Mat4[4][4]
Definition common_structs.h:20
f32 Mat3[3][3]
Definition common_structs.h:19
s32 D_802B91C0[2]
Definition math_util.c:17
Vec3f D_802B91C8
Definition math_util.c:18
void add_translate_mat4_vec3f_lite(Mat4, Mat4, Vec3f)
Definition math_util.c:220
u16 random_u16(void)
Definition math_util.c:1013
void vec3s_copy(Vec3s, Vec3s)
Definition math_util.c:146
void mtxf_multiplication(Mat4, Mat4, Mat4)
Definition math_util.c:804
f32 calculate_vector_angle_xy(f32)
Definition math_util.c:1005
u16 atan2_lookup(f32, f32)
Definition math_util.c:877
void vec3f_set(Vec3f, f32, f32, f32)
Definition math_util.c:114
void set_track_light_direction(Lights1 *, s16, s16, s32)
Definition math_util.c:409
void func_802B5CAC(s16, s16, Vec3f)
Definition math_util.c:394
s32 render_set_position(Mat4, s32)
Definition math_util.c:54
u16 random_int(u16)
Definition math_util.c:1041
void func_802B6D58(Mat4, Vec3f, Vec3f)
Definition math_util.c:772
u16 atan2s(f32, f32)
Definition math_util.c:901
f32 is_within_render_distance(Vec3f, Vec3f, u16, f32, f32, f32)
Definition math_util.c:1100
void vec3s_set(Vec3s, s16, s16, s16)
Definition math_util.c:120
void mtxf_to_mtx(Mtx *, Mat4)
Definition math_util.c:850
void mtxf_rotate_y(Mat4, s16)
Definition math_util.c:355
void mtxf_scale(Mat4, f32)
Definition math_util.c:436
void mtxf_identity(Mat4)
Definition math_util.c:179
void * vec3f_set_return(Vec3f, f32, f32, f32)
Definition math_util.c:152
void mtxf_copy(Mat4, Mat4)
Definition math_util.c:160
f32 func_802B51E8(Vec3f, Vec3f)
Definition math_util.c:84
f32 coss(u16)
Definition math_util.c:1067
void mtxf_rotate_x(Mat4, s16)
Definition math_util.c:335
s32 func_802B4F60(s32, Vec3f, s32, f32, f32)
s16 func_802B7F34(f32, f32, f32, f32)
Definition math_util.c:1045
f32 _atan2f(f32, f32)
Definition math_util.c:938
double fabs(double x)
void calculate_rotation_matrix(Mat3, s16, f32, f32, f32)
Definition math_util.c:700
void mtxf_pos_rotation_xyz(Mat4, Vec3f, Vec3s)
Definition math_util.c:450
void calculate_orientation_matrix(Mat3, f32, f32, f32, s16)
Definition math_util.c:604
void mtxf_copy_n_element(s32 *, s32 *, s32)
Definition math_util.c:172
void add_translate_mat4_vec3f(Mat4, Mat4, Vec3f)
Definition math_util.c:192
void func_802B7F7C(Vec3f, Vec3f, Vec3s)
Definition math_util.c:1049
s16 func_802B7CA8(f32)
Definition math_util.c:1001
u32 func_802B5258(Vec3f, Vec3s)
Definition math_util.c:105
void mtxf_s16_rotate_z(Mat4, s16)
Definition math_util.c:375
void func_802B5564(Mat4, u16 *, f32, f32, f32, f32, f32)
Definition math_util.c:236
void mtxf_translate_vec3f_mat4(Vec3f, Mat4)
Definition math_util.c:572
s16 func_802B7C40(f32)
Definition math_util.c:993
void mtxf_translate(Mat4, Vec3f)
Definition math_util.c:227
void func_802B5D30(s16, s16, s32)
Definition math_util.c:405
s32 get_angle_between_two_vectors(Vec3f, Vec3f)
Definition math_util.c:95
s32 is_visible_between_angle(u16, u16, u16)
Definition math_util.c:1071
void mtxf_translate_vec3f_mat3(Vec3f, Mat3)
Definition math_util.c:557
void func_802B5794(Mat4, Vec3f, Vec3f)
Definition math_util.c:268
void func_802B64C4(Vec3f, s16)
Definition math_util.c:589
f32 sins(u16)
Definition math_util.c:1063
void func_802B6BC0(Mat4, s16, f32, f32, f32)
Definition math_util.c:734
void * vec3f_copy_return(Vec3f, Vec3f)
Definition math_util.c:138