1#pragma once
2
3#include <math/seadVector.h>
4
5#include "Library/Area/IUseAreaObj.h"
6#include "Library/HostIO/HioNode.h"
7
8namespace al {
9class AreaObjDirector;
10class AreaObjGroup;
11class AreaObj;
12class PlacementInfo;
13
14class CameraAngleVerticalRequester : public HioNode, public IUseAreaObj {
15public:
16 CameraAngleVerticalRequester();
17
18 AreaObjDirector* getAreaObjDirector() const override { return mAreaObjDirector; }
19
20 void init(AreaObjDirector* areaObjDirector);
21 void initAfterPlacement();
22 void update(const sead::Vector3f& position);
23
24private:
25 s32 mFramesUnchanged = 0;
26 f32 mAngleVertical = 0.0f;
27 const AreaObj* mRequestArea = nullptr;
28 const AreaObjGroup* mRequestAreaGroup = nullptr;
29 AreaObjDirector* mAreaObjDirector = nullptr;
30};
31} // namespace al
32