summaryrefslogtreecommitdiff
path: root/include/sys_math3d.h
diff options
context:
space:
mode:
authorAnghelo Carvajal <angheloalf95@gmail.com>2023-08-21 15:19:33 -0400
committerGitHub <noreply@github.com>2023-08-21 12:19:33 -0700
commit4a8731d40ad81cb9356bdba23e4aec772328214e (patch)
tree907c70ef7ffdcf5ac0dd3305c29d6caf7c9d4f22 /include/sys_math3d.h
parent74ba3014c974ae9a260d6485be71258310edb59a (diff)
`m_collision_obj.c` OK (#64)
* C file * func_80077620_jp, CollisionCheck_dt, CollisionCheck_clear * CollisionCheck_OC * CollisionCheck_Check1ClObjNoOC and CollisionCheck_Check2ClObjNoOC * CollisionCheck_OC_Pipe_Vs_JntSph, CollisionCheck_Status_ct, CollisionCheck_Status_Clear * CollisionCheck_OC_Pipe_Vs_Pipe and CollisionCheck_OCC * CollisionCheck_OC_JntSph_Vs_Pipe * CollisionCheck_OC_JntSph_Vs_JntSph * CollisionCheck_workTrisElemCenter, CollisionCheck_OCC_Tris_Vs_Pipe * CollisionCheck_OCC_Tris_Vs_JntSph * a bunch * ClObjElem_ct, ClObjTrisElemAttr_ct, ClObjTrisElemAttr_set, ClObjTrisElem_set, ClObjTris_ct, ClObjTris_set5_nzm * fix warnings * ClObj_ct, ClObj_dt, ClObj_OCClear, ClObjElem_OCClear, ClObjJntSphElem_OCClear, ClObjJntSph_OCClear, ClObjPipeAttr_dt, ClObjPipe_dt, ClObjPipe_OCClear, ClObjTrisElem_OCClear, ClObjTris_OCClear, CollisionCheck_setOCC, CollisionCheck_Status_set3, CollisionCheck_Uty_ActorWorldPosSetPipeC * ClObjTrisElem_OCCClear, ClObj_OCCClear, ClObjTris_OCCClear, CollisionCheck_Uty_setTrisPos_ad * get_type, CollisionCheck_setOC_HitInfo * ClObjTrisElemAttr_dt, ClObjTrisElem_dt, ClObjTris_dt_nzf * func_80076CC0_jp, func_80076D68_jp, func_80076E2C_jp * match all * naming * cleanup * cleanup * name some members and flags * more naming * and more cleaning up * idk * migrate data * format * premigrate collision data in actors
Diffstat (limited to 'include/sys_math3d.h')
-rw-r--r--include/sys_math3d.h48
1 files changed, 36 insertions, 12 deletions
diff --git a/include/sys_math3d.h b/include/sys_math3d.h
index adf186f..52e5322 100644
--- a/include/sys_math3d.h
+++ b/include/sys_math3d.h
@@ -2,8 +2,30 @@
#define SYS_MATH_3D_H
#include "ultra64.h"
+#include "z64math.h"
+#include "unk.h"
-extern Vec3f ZeroVec;
+typedef struct Sphere {
+ /* 0x0 */ Vec3s center;
+ /* 0x6 */ s16 radius;
+} Sphere; // size = 0x6
+
+typedef struct Triangle {
+ /* 0x00 */ Vec3f vertices[3];
+} Triangle; // size = 0x24
+
+typedef struct Triangle3 {
+ /* 0x00 */ Triangle unk_00;
+ /* 0x24 */ Vec3f unk_24;
+ /* 0x30 */ f32 unk_30;
+} Triangle3; // size = 0x34
+
+typedef struct Pipe {
+ /* 0x0 */ s16 radius;
+ /* 0x2 */ s16 unk_2;
+ /* 0x4 */ s16 yShift;
+ /* 0x6 */ Vec3s pos;
+} Pipe; // size = 0xC
// void Math3d_normalizeXyz_t();
// void func_800DA028_jp();
@@ -19,7 +41,7 @@ extern Vec3f ZeroVec;
// void M3D_getRefVec();
// void func_800DA9E4_jp();
// void func_800DAA48_jp();
-// void func_800DAB88_jp();
+// void Math3DCheck3PointMinMaxAreaInside3D();
// void func_800DADAC_jp();
// void func_800DADC4_jp();
// void func_800DADE8_jp();
@@ -40,10 +62,10 @@ extern Vec3f ZeroVec;
// void func_800DB4E4_jp();
// void func_800DBF5C_jp();
// void func_800DC0C8_jp();
-// void func_800DC154_jp();
+void Math3DPlane(Vec3f* arg0, Vec3f* arg1, Vec3f* arg2, f32* arg3, f32* arg4, f32* arg5, f32* arg6);
// void func_800DC268_jp();
// void func_800DC2A8_jp();
-// void func_800DC2E4_jp();
+// void Math3DLengthPlaneAndPos();
// void func_800DC31C_jp();
// void func_800DC3A0_jp();
// void func_800DC6BC_jp();
@@ -71,20 +93,20 @@ extern Vec3f ZeroVec;
// void func_800DDBAC_jp();
// void func_800DDC5C_jp();
// void func_800DDCAC_jp();
-// void func_800DDDF4_jp();
-// void func_800DDFFC_jp();
-// void func_800DE13C_jp();
+// void Math3D_sphereCrossLineSegment();
+// void Math3D_sphereCrossTriangleCalc_cp();
+s32 Math3D_sphereCrossTriangle3_cp(Sphere* sphere, Triangle3* triangle3, Vec3f* arg2);
// void func_800DE55C_jp();
// void func_800DE618_jp();
-// void func_800DEFEC_jp();
+s32 Math3D_pipeCrossTriangle_cp(Pipe* pipe, Triangle* arg1, Vec3f* arg2);
// void func_800DF46C_jp();
// void func_800DF48C_jp();
-// void func_800DF4AC_jp();
+s32 Math3D_sphereCrossSphere_cl(Sphere* sphere1, Sphere* sphere2, f32* arg2);
// void func_800DF4CC_jp();
-// void func_800DF5A4_jp();
+s32 Math3D_sphereVsPipe_cl(Sphere* sphere, Pipe* pipe, f32* arg2);
// void func_800DF5C4_jp();
-// void func_800DF734_jp();
-// void func_800DF754_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();
@@ -93,4 +115,6 @@ extern Vec3f ZeroVec;
// void sMath_RotateX();
// void sMath_RotateZ();
+extern Vec3f ZeroVec;
+
#endif