diff options
| author | emilybrooks <emilybrooksemilybrooks@gmail.com> | 2023-07-29 10:46:30 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-29 13:46:30 -0400 |
| commit | be09c72d0ca03972fb3c43a858002a41a8e1c474 (patch) | |
| tree | 1c4fe14a14ebcd45cb4cad113257d6ec8125c498 /include/sys_matrix.h | |
| parent | ea9f4c68bb2afee5529aa1027b6762542d20bb8f (diff) | |
TwoHeadArena, THA_GA, sys_matrix OK (#18)
* matched TwoHeadArena and THA_GA
* header files
* started sys_matrix.c
* more functions matched
* sys_matrix matching
* imported data
* imported bss
* cleanup
* more cleanup
* last cleanup
* formatting
* moved prototypes
* add back ultra64.h
* remove dlabel jlabel temp fix
Diffstat (limited to 'include/sys_matrix.h')
| -rw-r--r-- | include/sys_matrix.h | 81 |
1 files changed, 46 insertions, 35 deletions
diff --git a/include/sys_matrix.h b/include/sys_matrix.h index 97ae120..f46411f 100644 --- a/include/sys_matrix.h +++ b/include/sys_matrix.h @@ -2,41 +2,52 @@ #define SYS_MATRIX_H #include "ultra64.h" +#include "z64math.h" -// void new_Matrix(); -// void Matrix_push(); -// void Matrix_pull(); -// void Matrix_get(); -// void Matrix_put(); -// void get_Matrix_now(); -// void Matrix_mult(); -// void Matrix_translate(); -// void Matrix_scale(); -// void Matrix_RotateX(); -// void Matrix_RotateY(); -// void Matrix_RotateZ(); -// void Matrix_rotateXYZ(); -// void Matrix_softcv3_mult(); -// void Matrix_softcv3_load(); -// void _MtxF_to_Mtx(); -// void _Matrix_to_Mtx(); -// void _Matrix_to_Mtx_new(); -// void _MtxF_to_Mtx_new(); -// void Matrix_Position(); -// void Matrix_Position_Zero(); -// void Matrix_Position_VecX(); -// void Matrix_Position_VecY(); -// void Matrix_Position_VecZ(); -// void Matrix_copy_MtxF(); -// void Matrix_MtxtoMtxF(); -// void Matrix_MtxF_Position2(); -// void Matrix_reverse(); -// void Matrix_rotate_scale_exchange(); -// void Matrix_to_rotate_new(); -// void Matrix_to_rotate2_new(); -// void Matrix_RotateVector(); -// void suMtxMakeTS(); -// void suMtxMakeSRT(); -// void suMtxMakeSRT_ZXY(); +struct GraphicsContext; +struct GameState; + +typedef enum { + /* 0 */ MTXMODE_NEW, // generates a new matrix + /* 1 */ MTXMODE_APPLY // applies transformation to the current matrix +} MatrixMode; + +void new_Matrix(struct GameState* gameState); +void Matrix_push(void); +void Matrix_pull(void); +void Matrix_get(MtxF* dest); +void Matrix_put(MtxF* src); +MtxF* get_Matrix_now(void); +void Matrix_mult(MtxF* mf, u8 mode); +void Matrix_translate(f32 x, f32 y, f32 z, u8 mode); +void Matrix_scale(f32 x, f32 y, f32 z, u8 mode); +void Matrix_RotateX(s16 x, MatrixMode mode); +void Matrix_RotateY(s16 y, MatrixMode mode); +void Matrix_RotateZ(s16 z, MatrixMode mode); +void Matrix_rotateXYZ(s16 x, s16 y, s16 z, MatrixMode mode); +void Matrix_softcv3_mult(Vec3f* translation, Vec3s* rot); +void Matrix_softcv3_load(f32 x, f32 y, f32 z, Vec3s* rot); +Mtx* _MtxF_to_Mtx(MtxF* src, Mtx* dest); +Mtx* _Matrix_to_Mtx(Mtx* dest); +Mtx* _Matrix_to_Mtx_new(struct GraphicsContext* gfxCtx); +void _MtxF_to_Mtx_new(MtxF* src, struct GraphicsContext* gfxCtx); +void Matrix_Position(Vec3f* src, Vec3f* dest); +void Matrix_Position_Zero(Vec3f* dest); +void Matrix_Position_VecX(f32 x, Vec3f* dest); +void Matrix_Position_VecY(f32 y, Vec3f* dest); +void Matrix_Position_VecZ(f32 z, Vec3f* dest); +void Matrix_copy_MtxF(MtxF* dest, MtxF* src); +void Matrix_MtxtoMtxF(Mtx* src, MtxF* dest); +void Matrix_MtxF_Position2(Vec3f* src, Vec3f* dest, MtxF* mf); +void Matrix_reverse(MtxF* mf); +void Matrix_rotate_scale_exchange(MtxF* mf); +void Matrix_to_rotate_new(MtxF* src, Vec3s* dest, s32 nonUniformScale); +void Matrix_to_rotate2_new(MtxF* src, Vec3s* dest, s32 nonUniformScale); +void Matrix_RotateVector(s16 angle, Vec3f* axis, u8 mode); +void suMtxMakeTS(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, f32 translateX, f32 translateY, f32 translateZ); +void suMtxMakeSRT(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, s16 rotX, s16 rotY, s16 rotZ, f32 translateX, + f32 translateY, f32 translateZ); +void suMtxMakeSRT_ZXY(Mtx* mtx, f32 scaleX, f32 scaleY, f32 scaleZ, s16 rotX, s16 rotY, s16 rotZ, f32 translateX, + f32 translateY, f32 translateZ); #endif |
