Mario Kart 64
Loading...
Searching...
No Matches
math_util.h File Reference
#include <PR/ultratypes.h>
Include dependency graph for math_util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define sqr(x)   ((x) * (x))
 

Functions

double fabs (double x)
 
void func_802B5794 (Mat4, Vec3f, Vec3f)
 
s32 func_802B4F60 (s32, Vec3f, s32, f32, f32)
 
s32 render_set_position (Mat4, s32)
 
f32 dist_squared_bugged (Vec3f, Vec3f)
 
s32 get_xz_angle_between_points (Vec3f, Vec3f)
 
u32 func_802B5258 (Vec3f, Vec3s)
 
void vec3f_set (Vec3f, f32, f32, f32)
 
void vec3s_set (Vec3s, s16, s16, s16)
 
void * vec3f_copy_return (Vec3f, Vec3f)
 
void vec3s_copy (Vec3s, Vec3s)
 
void * vec3f_set_return (Vec3f, f32, f32, f32)
 
void mtxf_copy (Mat4, Mat4)
 
void mtxf_copy_n_element (s32 *, s32 *, s32)
 
void mtxf_identity (Mat4)
 
void add_translate_mat4_vec3f (Mat4, Mat4, Vec3f)
 
void add_translate_mat4_vec3f_lite (Mat4, Mat4, Vec3f)
 
void mtxf_translate (Mat4, Vec3f)
 
void mtxf_projection (Mat4, u16 *, f32, f32, f32, f32, f32)
 
void mtxf_lookat (Mat4, Vec3f, Vec3f)
 Create a lookat matrix (convert to coordinates relative to camera)
 
void mtxf_rotate_x (Mat4, s16)
 
void mtxf_rotate_y (Mat4, s16)
 
void mtxf_s16_rotate_z (Mat4, s16)
 
void func_802B5B14 (Vec3f b, Vec3s rotate)
 
void func_802B5CAC (s16, s16, Vec3f)
 
void func_802B5D30 (s16, s16, s32)
 
void set_course_lighting (Lights1 *, s16, s16, s32)
 
void mtxf_scale (Mat4, f32)
 
void mtxf_rotate_zxy_translate (Mat4, Vec3f, Vec3s)
 
void mtxf_transform_vec3f_mat3 (Vec3f, Mat3)
 
void mtxf_transform_vec3f_mat4 (Vec3f, Mat4)
 
void vec3f_rotate_y (Vec3f, s16)
 
void calculate_orientation_matrix (Mat3, f32, f32, f32, s16)
 
void calculate_rotation_matrix (Mat3, s16, f32, f32, f32)
 
void func_802B6BC0 (Mat4, s16, f32, f32, f32)
 
void func_802B6D58 (Mat4, Vec3f, Vec3f)
 
void mtxf_multiplication (Mat4, Mat4, Mat4)
 Multiply two 4x4 matrices.
 
void mtxf_to_mtx (Mtx *, Mat4)
 
u16 atan2_lookup (f32, f32)
 
u16 atan2s (f32, f32)
 
f32 atan2f (f32, f32)
 
s16 atan1s (f32)
 
s16 asin1s (f32)
 
f32 acos1f (f32)
 
u16 random_u16 (void)
 
u16 random_int (u16)
 
s16 angle_from_coords (f32, f32, f32, f32)
 
void planar_angles (Vec3f, Vec3f, Vec3s)
 
f32 sins (u16)
 
f32 coss (u16)
 
s32 is_between_angle (u16, u16, u16)
 
f32 distance_if_visible (Vec3f, Vec3f, u16, f32, f32, f32)
 

Variables

s32 D_802B91C0 []
 
Vec3f D_802B91C8
 

Macro Definition Documentation

◆ sqr

#define sqr ( x)    ((x) * (x))

Function Documentation

◆ acos1f()

f32 acos1f ( f32 value)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_translate_mat4_vec3f()

void add_translate_mat4_vec3f ( Mat4 src,
Mat4 dest,
Vec3f translate )
Here is the caller graph for this function:

◆ add_translate_mat4_vec3f_lite()

void add_translate_mat4_vec3f_lite ( Mat4 mat,
Mat4 dest,
Vec3f pos )

◆ angle_from_coords()

s16 angle_from_coords ( f32 ,
f32 ,
f32 ,
f32  )

◆ asin1s()

s16 asin1s ( f32 value)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ atan1s()

s16 atan1s ( f32 tan)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ atan2_lookup()

u16 atan2_lookup ( f32 y,
f32 x )
Here is the caller graph for this function:

◆ atan2f()

f32 atan2f ( f32 y,
f32 x )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ atan2s()

u16 atan2s ( f32 y,
f32 x )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_orientation_matrix()

void calculate_orientation_matrix ( Mat3 dest,
f32 axisZ,
f32 cosAxisY,
f32 axisX,
s16 rotationAngle )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_rotation_matrix()

void calculate_rotation_matrix ( Mat3 destMatrix,
s16 rotationAngle,
f32 axisX,
f32 axisY,
f32 axisZ )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ coss()

f32 coss ( u16 angle)

◆ dist_squared_bugged()

f32 dist_squared_bugged ( Vec3f from,
Vec3f to )
Here is the caller graph for this function:

◆ distance_if_visible()

f32 distance_if_visible ( Vec3f cameraPos,
Vec3f objectPos,
u16 orientationY,
f32 preloadDistanceSquared,
f32 fovDegrees,
f32 maxDistanceSquared )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fabs()

double fabs ( double x)
Here is the caller graph for this function:

◆ func_802B4F60()

s32 func_802B4F60 ( s32 ,
Vec3f ,
s32 ,
f32 ,
f32  )

◆ func_802B5258()

u32 func_802B5258 ( Vec3f arg0,
Vec3s arg1 )
Here is the call graph for this function:

◆ func_802B5794()

void func_802B5794 ( Mat4 ,
Vec3f ,
Vec3f  )

◆ func_802B5B14()

void func_802B5B14 ( Vec3f b,
Vec3s rotate )
Here is the call graph for this function:

◆ func_802B5CAC()

void func_802B5CAC ( s16 ,
s16 ,
Vec3f  )

◆ func_802B5D30()

void func_802B5D30 ( s16 arg0,
s16 arg1,
s32 arg2 )
Here is the call graph for this function:

◆ func_802B6BC0()

void func_802B6BC0 ( Mat4 arg0,
s16 arg1,
f32 arg2,
f32 arg3,
f32 arg4 )
Here is the call graph for this function:

◆ func_802B6D58()

void func_802B6D58 ( Mat4 arg0,
Vec3f arg1,
Vec3f arg2 )
Here is the call graph for this function:

◆ get_xz_angle_between_points()

s32 get_xz_angle_between_points ( Vec3f pointFrom,
Vec3f pointTo )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_between_angle()

s32 is_between_angle ( u16 angleCCW,
u16 angleCW,
u16 angleToCheck )
Here is the caller graph for this function:

◆ mtxf_copy()

void mtxf_copy ( Mat4 src,
Mat4 dest )

◆ mtxf_copy_n_element()

void mtxf_copy_n_element ( s32 * dest,
s32 * src,
s32 n )
Here is the caller graph for this function:

◆ mtxf_identity()

void mtxf_identity ( Mat4 mtx)
Here is the caller graph for this function:

◆ mtxf_lookat()

void mtxf_lookat ( Mat4 mtx,
Vec3f from,
Vec3f to )

Create a lookat matrix (convert to coordinates relative to camera)

Parameters
mtxDummy matrix overwritten with lookat matrix
fromWhere the camera is looking from
toWhere the camera is looking to
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtxf_multiplication()

void mtxf_multiplication ( Mat4 dest,
Mat4 mtxLeft,
Mat4 mtxRight )

Multiply two 4x4 matrices.

Parameters
destResult of multiplication is saved here
mtxLeftLeft matrix in product
mtxRightRight matrix to product
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtxf_projection()

void mtxf_projection ( Mat4 projMtx,
u16 * arg1,
f32 vertFov,
f32 aspectRatio,
f32 near,
f32 far,
f32 homogeneousScale )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtxf_rotate_x()

void mtxf_rotate_x ( Mat4 mtx,
s16 angle )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtxf_rotate_y()

void mtxf_rotate_y ( Mat4 mtx,
s16 angle )
Here is the call graph for this function:

◆ mtxf_rotate_zxy_translate()

void mtxf_rotate_zxy_translate ( Mat4 dest,
Vec3f translate,
Vec3s orientation )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtxf_s16_rotate_z()

void mtxf_s16_rotate_z ( Mat4 mtx,
s16 angle )
Here is the call graph for this function:

◆ mtxf_scale()

void mtxf_scale ( Mat4 mtx,
f32 coef )
Here is the caller graph for this function:

◆ mtxf_to_mtx()

void mtxf_to_mtx ( Mtx * dest,
Mat4 src )

Convert float matrix 'src' to fixed point matrix 'dest'. The float matrix may not contain entries larger than 65536 or the console crashes. The fixed point matrix has entries with a 16-bit integer part, so the floating point numbers are multiplied by 2^16 before being cast to a s32 integer. If this doesn't fit, the N64 and iQue consoles will throw an exception. On Wii and Wii U Virtual Console the value will simply be clamped and no crashes occur.

float-to-integer conversion responsible for PU crashes

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtxf_transform_vec3f_mat3()

void mtxf_transform_vec3f_mat3 ( Vec3f vec,
Mat3 mtx )
Here is the caller graph for this function:

◆ mtxf_transform_vec3f_mat4()

void mtxf_transform_vec3f_mat4 ( Vec3f vec,
Mat4 mat )
Here is the caller graph for this function:

◆ mtxf_translate()

void mtxf_translate ( Mat4 dest,
Vec3f translate )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ planar_angles()

void planar_angles ( Vec3f from,
Vec3f to,
Vec3s rotAngles )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ random_int()

u16 random_int ( u16 arg0)
Here is the call graph for this function:

◆ random_u16()

u16 random_u16 ( void )
Here is the caller graph for this function:

◆ render_set_position()

s32 render_set_position ( Mat4 mtx,
s32 mode )

Inserts matrix into the rsp. Position, rotation and mode of where to render the next object and check number of object already render Note that gMatrixObjectCount gets reset at the beginning of the game loop. So no cleanup needs to be performed.

Here is the call graph for this function:

◆ set_course_lighting()

void set_course_lighting ( Lights1 * lightAddr,
s16 rotateAngleY,
s16 rotateAngleX,
s32 lightCount )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sins()

f32 sins ( u16 angle)

◆ vec3f_copy_return()

void * vec3f_copy_return ( Vec3f dest,
Vec3f src )
Warning
function returns address of local variable
Here is the caller graph for this function:

◆ vec3f_rotate_y()

void vec3f_rotate_y ( Vec3f vec,
s16 rotAngleY )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ vec3f_set()

void vec3f_set ( Vec3f dest,
f32 coordX,
f32 coordY,
f32 coordZ )
Here is the caller graph for this function:

◆ vec3f_set_return()

void * vec3f_set_return ( Vec3f dest,
f32 x,
f32 y,
f32 z )

◆ vec3s_copy()

void vec3s_copy ( Vec3s dest,
Vec3s src )
Here is the caller graph for this function:

◆ vec3s_set()

void vec3s_set ( Vec3s dest,
s16 coordX,
s16 coordY,
s16 coordZ )
Here is the caller graph for this function:

Variable Documentation

◆ D_802B91C0

s32 D_802B91C0[]
extern

◆ D_802B91C8

Vec3f D_802B91C8
extern