Files
inspectredc 7f426967ef ac_ball OK and documented (#173)
* ac_ball OK

* hopefully format

* address warnings

* Apply suggestions from code review

Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>

* suggestions pt2

---------

Co-authored-by: emilybrooks <emilybrooksemilybrooks@gmail.com>
2024-04-15 16:19:43 -07:00

121 lines
3.4 KiB
C

#ifndef SYS_MATH_3D_H
#define SYS_MATH_3D_H
#include "ultra64.h"
#include "z64math.h"
#include "unk.h"
typedef struct Sphere {
/* 0x0 */ s_xyz center;
/* 0x6 */ s16 radius;
} Sphere; // size = 0x6
typedef struct Triangle {
/* 0x00 */ xyz_t vertices[3];
} Triangle; // size = 0x24
typedef struct Triangle3 {
/* 0x00 */ Triangle unk_00;
/* 0x24 */ xyz_t unk_24;
/* 0x30 */ f32 unk_30;
} Triangle3; // size = 0x34
typedef struct Pipe {
/* 0x0 */ s16 radius;
/* 0x2 */ s16 unk_2;
/* 0x4 */ s16 yShift;
/* 0x6 */ s_xyz pos;
} Pipe; // size = 0xC
f32 Math3d_normalizeXyz_t(xyz_t*);
// void func_800DA028_jp();
// void func_800DA148_jp();
// void Math3D_lineVsPosSuisenCross();
// void func_800DA4E0_jp();
// void func_800DA540_jp();
// void func_800DA720_jp();
// void Math3DInDivPos1();
// void Math3DInDivPos2();
// void M3D_getCos();
// void M3D_getCos2();
// void M3D_getRefVec();
// void func_800DA9E4_jp();
// void func_800DAA48_jp();
// void Math3DCheck3PointMinMaxAreaInside3D();
// void func_800DADAC_jp();
// void func_800DADC4_jp();
// void func_800DADE8_jp();
// void func_800DAE2C_jp();
// void func_800DAE5C_jp();
// void func_800DAE88_jp();
// void func_800DAEB0_jp();
// void Math3DLength();
// void func_800DAEF8_jp();
// void func_800DAF70_jp();
// void func_800DAFB0_jp();
// void func_800DAFF0_jp();
// void Math3DVectorProduct2Vec();
// void Math3DVectorProductXYZ();
// void func_800DB10C_jp();
// void func_800DB1B8_jp();
// void func_800DB368_jp();
// void func_800DB4E4_jp();
// void func_800DBF5C_jp();
// void func_800DC0C8_jp();
void Math3DPlane(xyz_t* arg0, xyz_t* arg1, xyz_t* arg2, f32* arg3, f32* arg4, f32* arg5, f32* arg6);
// void func_800DC268_jp();
// void func_800DC2A8_jp();
// void Math3DLengthPlaneAndPos();
// void func_800DC31C_jp();
// void func_800DC3A0_jp();
// void func_800DC6BC_jp();
// void func_800DC704_jp();
// void func_800DC754_jp();
// void func_800DC804_jp();
// void func_800DC8B0_jp();
// void func_800DC92C_jp();
// void func_800DCAA0_jp();
// void func_800DCB14_jp();
// void func_800DCE30_jp();
// void func_800DCE78_jp();
// void func_800DCF2C_jp();
// void func_800DCFA8_jp();
// void func_800DD130_jp();
// void func_800DD1A4_jp();
// void func_800DD4EC_jp();
// void func_800DD534_jp();
// void func_800DD5E8_jp();
// void func_800DD664_jp();
// void func_800DD7F0_jp();
// void func_800DD864_jp();
// void func_800DD940_jp();
// void func_800DDA48_jp();
// void func_800DDBAC_jp();
// void func_800DDC5C_jp();
// void func_800DDCAC_jp();
// void Math3D_sphereCrossLineSegment();
// void Math3D_sphereCrossTriangleCalc_cp();
s32 Math3D_sphereCrossTriangle3_cp(Sphere* sphere, Triangle3* triangle3, xyz_t* arg2);
// void func_800DE55C_jp();
// void func_800DE618_jp();
s32 Math3D_pipeCrossTriangle_cp(Pipe* pipe, Triangle* arg1, xyz_t* arg2);
// void func_800DF46C_jp();
// void func_800DF48C_jp();
s32 Math3D_sphereCrossSphere_cl(Sphere* sphere1, Sphere* sphere2, f32* arg2);
// void func_800DF4CC_jp();
s32 Math3D_sphereVsPipe_cl(Sphere* sphere, Pipe* pipe, f32* arg2);
// void func_800DF5C4_jp();
s32 Math3D_pipeVsPipe_cl(Pipe* pipe1, Pipe* pipe2, f32* arg2);
// void Math3D_pipeVsPipe_cl_cc();
// void func_800DF924_jp();
// void func_800DFCA4_jp();
// void func_800DFD10_jp();
// void func_800DFD7C_jp();
void sMath_RotateY(xyz_t* pos, f32 rad);
void sMath_RotateX(xyz_t* pos, f32 rad);
void sMath_RotateZ(xyz_t* pos, f32 rad);
extern xyz_t ZeroVec;
#endif