1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadMatrix.h>
5#include <math/seadVector.h>
6
7namespace al {
8
9class GyroCameraCtrl {
10public:
11 GyroCameraCtrl();
12 void reset(const sead::Vector3f&, const sead::Vector3f&, const sead::Vector3f&);
13 void update(const sead::Vector3f&, const sead::Vector3f&, const sead::Vector3f&);
14 void reduceSensitivity();
15
16 void setIsValidGyro(bool isValidGyro) { mIsValidGyro = isValidGyro; }
17
18 void setSensitivityScale(f32 sensitivityScale) { mSensitivityScale = sensitivityScale; }
19
20private:
21 sead::Matrix34f _0;
22 sead::Vector3f _30;
23 sead::Vector3f _3c;
24 sead::Vector3f _48;
25 sead::Vector3f _54;
26 sead::Vector3f _60;
27 sead::Vector3f _6c;
28 f32 _78;
29 f32 _7c;
30 f32 _80;
31 f32 _84;
32 f32 _88;
33 f32 _8c;
34 f32 _90;
35 f32 _94;
36 f32 _98;
37 s32 mSensitivityLevel;
38 f32 _a0;
39 f32 _a4;
40 f32 mSensitivityScale;
41 bool mIsValidGyro;
42 f32 _b0;
43 f32 _b4;
44 f32 _b8;
45 f32 _bc;
46 f32 _c0;
47 f32 _c4;
48};
49
50static_assert(sizeof(GyroCameraCtrl) == 0xC8);
51
52} // namespace al
53