mirror of
https://github.com/zeldaret/af.git
synced 2026-09-26 13:33:16 -04:00
7f426967ef
* 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>
121 lines
3.4 KiB
C
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
|