SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
AreaForm.hpp
1#pragma once
2
3#include <revolution.h>
4#include "Game/Util.hpp"
5#include "JSystem/JGeometry.hpp"
6
7class AreaForm {
8public:
9 virtual void init(const JMapInfoIter &);
10 virtual bool isInVolume(const TVec3f &) const;
11
12 TPos3f* _4;
13};
14
15class AreaFormCube : public AreaForm {
16public:
17 AreaFormCube(int);
18
19 virtual void init(const JMapInfoIter &);
20 virtual bool isInVolume(const TVec3f &) const;
21
22 void calcWorldPos(TVec3f *) const;
23 void calcWorldBox(TDirBox3f *) const;
24 void calcLocalPos(TVec3f *, const TVec3f &) const;
25 f32 getBaseSize();
26 void updateBoxParam();
27 void calcWorldMtx(TPos3f *) const;
28
29 int _8;
30 TVec3f mTranslation; // _C
31 TVec3f mRotation; // _18
32 TVec3f mScale; // _24
33 TBox3f mBounding; // _30
34 Mtx _48;
35};
36
37class AreaFormSphere : public AreaForm {
38public:
40
41 virtual void init(const JMapInfoIter &);
42 virtual bool isInVolume(const TVec3f &) const;
43
44 void calcUpVec(TVec3f *) const;
45 void calcPos(TVec3f *) const;
46
47 TVec3f mTranslation; // _8
48 f32 _14;
49 TVec3f mUp; // _18
50};
51
52class AreaFormBowl : public AreaForm {
53public:
55
56 virtual void init(const JMapInfoIter &);
57 virtual bool isInVolume(const TVec3f &) const;
58
59 void calcUpVec(const TVec3f &);
60
61 TVec3f mTranslation; // _8
62 TVec3f mUp; // _14
63 f32 _20;
64};
65
66class AreaFormCylinder : public AreaForm {
67public:
69
70 virtual void init(const JMapInfoIter &);
71 virtual bool isInVolume(const TVec3f &) const;
72
73 void calcPos(TVec3f *) const;
74 void calcCenterPos(TVec3f *) const;
75 void calcUpVec(TVec3f *) const;
76 void calcDir(const TVec3f &);
77
78 TVec3f mTranslation; // _8
79 TVec3f mRotation; // _14
80 f32 _20;
81 f32 _24;
82};