SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
IKJointCtrl.hpp
1#pragma once
2
3#include "Game/Util/IKJoint.hpp"
4#include "Game/Util/JointController.hpp"
5#include "JSystem/JGeometry/TMatrix.hpp"
6#include "Inline.hpp"
7
8class LiveActor;
9
11 const char* mName; // _0
12 f32 mNearLimitRate; // _4
13 f32 mFarLimitRate; // _8
14 f32 mEndDirMaxDegree; // _C
15 f32 mEndLocalDirX; // _10
16 f32 mEndLocalDirY; // _14
17 f32 mEndLocalDirZ; // _18
18};
19
21public:
23
24 void init(const IKJointCtrlParam &);
25 void setEndPosition(const TVec3f &, f32);
26 void setEndDirection(const TVec3f &, f32);
27 void endCtrl();
28 void setCallBackFunction();
29 bool updateRootJointCallBack(TPos3f *, const JointControllerInfo &);
30 bool updateMiddleJointCallBack(TPos3f *, const JointControllerInfo &);
31
32 void disableCallBack();
33 void enableCallBack();
34
35 const char* mName; // _0
36 TMtx34f _4;
37 TMtx34f _34;
38 LiveActor* mActor; // _64
39 IKJoint* mJoint; // _68
40 JointControlDelegator<IKJointCtrl>* mRootCtrl; // _6C
41 JointControlDelegator<IKJointCtrl>* mMiddleCtrl; // _70
43 TVec3f _78;
44 TVec3f mEndLocalDir; // _84
45 f32 _90;
46 f32 _94;
47 f32 _98;
48 f32 mNearLimitRate; // _9C
49 f32 mFarLimitRate; // _A0
50 f32 mEndDirMaxDegree; // _A4
51 f32 _A8;
52 f32 _AC;
53 u16 _B0;
54 u16 _B2;
55 u16 _B4;
56 u8 _B6;
57};
58
60public:
62
63 void addCtrl(const IKJointCtrlParam &);
64
65 void setEndPosition(const char *, const TVec3f &, f32);
66 void setEndDirection(const char *, const TVec3f &, f32);
67
68 void startUpdate();
69
70 void endUpdate();
71 void endCtrlAll();
72 void setCallBackFunction();
73 IKJointCtrl* findIKJointCtrl(const char *);
74
75 IKJointCtrl** mControls; // _0
76 s32 mNumControls; // _4
77 s32 _8;
78 LiveActor* mActor; // _C
79 u8 _10;
80};
81
83public:
84 static IKJointCtrlHolder* createIKJointCtrlHolder(LiveActor *);
85};
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24