Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
c_m3d_g_aab.h
Go to the documentation of this file.
1#ifndef C_M3D_G_AAB_H
2#define C_M3D_G_AAB_H
3
6#include "global.h"
7
8// Axis aligned bounding box
9class cM3dGAab {
10private:
11public:
12 /* 0x00 */ cXyz mMin;
13 /* 0x0C */ cXyz mMax;
14 /* 0x18 vtable */
15
16 virtual ~cM3dGAab() {}
17 void Set(const cXyz*, const cXyz*);
18 bool CrossY(const cXyz*) const;
19 bool UnderPlaneYUnder(f32) const;
20 bool TopPlaneYUnder(f32) const;
21 void ClearForMinMax();
22 void SetMinMax(const cXyz&);
23 void SetMinMax(const cM3dGAab&);
24 void SetMin(const cXyz&);
25 void SetMax(const cXyz&);
26 void CalcCenter(cXyz*) const;
27 void PlusR(f32);
28 const cXyz* GetMaxP() const { return &mMax; }
29 cXyz* GetMaxP() { return &mMax; }
30 const cXyz* GetMinP() const { return &mMin; }
31 cXyz* GetMinP() { return &mMin; }
32 const f32 GetMaxX() const { return mMax.x; }
33 const f32 GetMaxY() const { return mMax.y; }
34 const f32 GetMaxZ() const { return mMax.z; }
35 const f32 GetMinX() const { return mMin.x; }
36 const f32 GetMinY() const { return mMin.y; }
37 const f32 GetMinZ() const { return mMin.z; }
38 bool Cross(const cM3dGLin *param_1) const {
39 return cM3d_Cross_MinMaxBoxLine(GetMinP(), GetMaxP(), param_1->GetStartP(), param_1->GetEndP());
40 }
41 bool Cross(const cM3dGAab *param_1) const {
42 return cM3d_Cross_AabAab(this, param_1);
43 }
44 bool Cross(const cM3dGCyl *param_1) const {
45 return cM3d_Cross_AabCyl(this, param_1);
46 }
47 bool Cross(const cM3dGSph *param_1) const {
48 return cM3d_Cross_AabSph(this, param_1);
49 }
50}; // Size = 0x1C
51
52STATIC_ASSERT(0x1C == sizeof(cM3dGAab));
53
54#endif /* C_M3D_G_AAB_H */
bool cM3d_Cross_AabSph(const cM3dGAab *pAab, const cM3dGSph *pSph)
Definition c_m3d.cpp:176
bool cM3d_Cross_AabAab(const cM3dGAab *pAabA, const cM3dGAab *pAabB)
Definition c_m3d.cpp:144
bool cM3d_Cross_MinMaxBoxLine(Vec const *param_0, Vec const *param_1, Vec const *param_2, Vec const *param_3)
Definition c_m3d.cpp:409
bool cM3d_Cross_AabCyl(const cM3dGAab *pAab, const cM3dGCyl *pCyl)
Definition c_m3d.cpp:158
STATIC_ASSERT(0x1C==sizeof(cM3dGAab))
Definition c_m3d_g_aab.h:9
cXyz * GetMaxP()
Definition c_m3d_g_aab.h:29
bool Cross(const cM3dGLin *param_1) const
Definition c_m3d_g_aab.h:38
bool Cross(const cM3dGSph *param_1) const
Definition c_m3d_g_aab.h:47
const cXyz * GetMaxP() const
Definition c_m3d_g_aab.h:28
cXyz * GetMinP()
Definition c_m3d_g_aab.h:31
void SetMax(const cXyz &)
Definition c_m3d_g_aab.cpp:64
void ClearForMinMax()
Definition c_m3d_g_aab.cpp:37
bool CrossY(const cXyz *) const
Definition c_m3d_g_aab.cpp:13
bool UnderPlaneYUnder(f32) const
Definition c_m3d_g_aab.cpp:21
const f32 GetMinY() const
Definition c_m3d_g_aab.h:36
bool Cross(const cM3dGCyl *param_1) const
Definition c_m3d_g_aab.h:44
void CalcCenter(cXyz *) const
Definition c_m3d_g_aab.cpp:76
bool Cross(const cM3dGAab *param_1) const
Definition c_m3d_g_aab.h:41
cXyz mMin
Definition c_m3d_g_aab.h:12
void SetMinMax(const cXyz &)
Definition c_m3d_g_aab.cpp:42
void Set(const cXyz *, const cXyz *)
Definition c_m3d_g_aab.cpp:8
cXyz mMax
Definition c_m3d_g_aab.h:13
const f32 GetMaxZ() const
Definition c_m3d_g_aab.h:34
void PlusR(f32)
Definition c_m3d_g_aab.cpp:81
const f32 GetMinX() const
Definition c_m3d_g_aab.h:35
const f32 GetMaxX() const
Definition c_m3d_g_aab.h:32
const f32 GetMinZ() const
Definition c_m3d_g_aab.h:37
bool TopPlaneYUnder(f32) const
Definition c_m3d_g_aab.cpp:29
const cXyz * GetMinP() const
Definition c_m3d_g_aab.h:30
virtual ~cM3dGAab()
Definition c_m3d_g_aab.h:16
void SetMin(const cXyz &)
Definition c_m3d_g_aab.cpp:52
const f32 GetMaxY() const
Definition c_m3d_g_aab.h:33
Definition c_m3d_g_cyl.h:16
Definition c_m3d_g_lin.h:8
const cXyz * GetEndP() const
Definition c_m3d_g_lin.h:30
const cXyz * GetStartP() const
Definition c_m3d_g_lin.h:25
Definition c_m3d_g_sph.h:15
Definition c_xyz.h:7