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 <PR/ultratypes.h>
5
6// #define sins(x) gSineTable[(u16) (x) >> 4]
7// #define coss(x) gCosineTable[(u16) (x) >> 4]
8
9// #define min(a, b) ((a) <= (b) ? (a) : (b))
10// #define max(a, b) ((a) > (b) ? (a) : (b))
11
12#define sqr(x) ((x) * (x))
13
14// Here to appease the pragma gods
15double fabs(double x);
16
17void func_802B5794(Mat4, Vec3f, Vec3f); // Unused
22u32 func_802B5258(Vec3f, Vec3s); // Unused
23void vec3f_set(Vec3f, f32, f32, f32);
24void vec3s_set(Vec3s, s16, s16, s16);
28void mtxf_copy(Mat4, Mat4);
39void func_802B5B14(Vec3f b, Vec3s rotate); // Unused
40void func_802B5CAC(s16, s16, Vec3f); // Unused
41void func_802B5D30(s16, s16, s32); // Unused
42void set_course_lighting(Lights1*, s16, s16, s32);
43void mtxf_scale(Mat4, f32);
50void func_802B6BC0(Mat4, s16, f32, f32, f32); // Unused
51void func_802B6D58(Mat4, Vec3f, Vec3f); // Unused
53void mtxf_to_mtx(Mtx*, Mat4);
60u16 random_u16(void);
64f32 sins(u16);
65f32 coss(u16);
68
69extern s32 D_802B91C0[]; // Unused
70extern Vec3f D_802B91C8;
71
72#endif // MATH_UTIL_H
f32 Vec3f[3]
Definition common_structs.h:6
s16 Vec3s[3]
Definition common_structs.h:11
f32 Mat4[4][4]
Definition common_structs.h:16
f32 Mat3[3][3]
Definition common_structs.h:15
void add_translate_mat4_vec3f_lite(Mat4, Mat4, Vec3f)
Definition math_util.c:262
u16 random_u16(void)
Definition math_util.c:1241
void vec3s_copy(Vec3s, Vec3s)
Definition math_util.c:173
s16 asin1s(f32)
Definition math_util.c:1212
void mtxf_multiplication(Mat4, Mat4, Mat4)
Multiply two 4x4 matrices.
Definition math_util.c:994
s16 angle_from_coords(f32, f32, f32, f32)
u16 atan2_lookup(f32, f32)
Definition math_util.c:1071
void mtxf_lookat(Mat4, Vec3f, Vec3f)
Create a lookat matrix (convert to coordinates relative to camera)
Definition math_util.c:335
void mtxf_transform_vec3f_mat3(Vec3f, Mat3)
Definition math_util.c:706
void vec3f_set(Vec3f, f32, f32, f32)
Definition math_util.c:123
void func_802B5CAC(s16, s16, Vec3f)
s32 render_set_position(Mat4, s32)
Definition math_util.c:47
u16 random_int(u16)
Definition math_util.c:1269
void func_802B6D58(Mat4, Vec3f, Vec3f)
Definition math_util.c:956
u16 atan2s(f32, f32)
Definition math_util.c:1102
void vec3f_rotate_y(Vec3f, s16)
Definition math_util.c:747
f32 acos1f(f32)
Definition math_util.c:1227
s32 D_802B91C0[]
Definition math_util.c:14
void vec3s_set(Vec3s, s16, s16, s16)
Definition math_util.c:136
void mtxf_to_mtx(Mtx *, Mat4)
Definition math_util.c:1040
void mtxf_rotate_y(Mat4, s16)
Definition math_util.c:436
void mtxf_scale(Mat4, f32)
Definition math_util.c:570
void mtxf_identity(Mat4)
Definition math_util.c:218
void * vec3f_set_return(Vec3f, f32, f32, f32)
Definition math_util.c:179
void mtxf_copy(Mat4, Mat4)
Definition math_util.c:191
f32 atan2f(f32, f32)
Definition math_util.c:1140
f32 coss(u16)
Definition math_util.c:1319
void mtxf_rotate_zxy_translate(Mat4, Vec3f, Vec3s)
Definition math_util.c:588
void planar_angles(Vec3f, Vec3f, Vec3s)
Definition math_util.c:1291
void mtxf_rotate_x(Mat4, s16)
Definition math_util.c:413
s32 func_802B4F60(s32, Vec3f, s32, f32, f32)
f32 dist_squared_bugged(Vec3f, Vec3f)
Definition math_util.c:79
s16 atan1s(f32)
Definition math_util.c:1199
double fabs(double x)
void calculate_rotation_matrix(Mat3, s16, f32, f32, f32)
Definition math_util.c:884
void calculate_orientation_matrix(Mat3, f32, f32, f32, s16)
Definition math_util.c:770
void mtxf_copy_n_element(s32 *, s32 *, s32)
Definition math_util.c:208
void add_translate_mat4_vec3f(Mat4, Mat4, Vec3f)
Definition math_util.c:235
void func_802B5B14(Vec3f b, Vec3s rotate)
Definition math_util.c:477
u32 func_802B5258(Vec3f, Vec3s)
Definition math_util.c:107
void mtxf_projection(Mat4, u16 *, f32, f32, f32, f32, f32)
Definition math_util.c:295
void mtxf_s16_rotate_z(Mat4, s16)
Definition math_util.c:459
void mtxf_translate(Mat4, Vec3f)
Definition math_util.c:273
void func_802B5D30(s16, s16, s32)
Definition math_util.c:523
void set_course_lighting(Lights1 *, s16, s16, s32)
Definition math_util.c:536
void func_802B5794(Mat4, Vec3f, Vec3f)
s32 get_xz_angle_between_points(Vec3f, Vec3f)
Definition math_util.c:97
f32 sins(u16)
Definition math_util.c:1310
void func_802B6BC0(Mat4, s16, f32, f32, f32)
Definition math_util.c:918
Vec3f D_802B91C8
Definition math_util.c:15
s32 is_between_angle(u16, u16, u16)
Definition math_util.c:1330
f32 distance_if_visible(Vec3f, Vec3f, u16, f32, f32, f32)
Definition math_util.c:1361
void * vec3f_copy_return(Vec3f, Vec3f)
Definition math_util.c:160
void mtxf_transform_vec3f_mat4(Vec3f, Mat4)
Definition math_util.c:725
signed int s32
Definition ultratypes.h:15
unsigned int u32
Definition ultratypes.h:16
signed short int s16
Definition ultratypes.h:13
float f32
Definition ultratypes.h:34
unsigned short int u16
Definition ultratypes.h:14