summaryrefslogtreecommitdiff
path: root/include/sys_math3d.h
blob: 58e140553b9d6fe91d0cb880c77520f1b86c499d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#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

// void Math3d_normalizeXyz_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