1#pragma once
2
3#include <gfx/seadCamera.h>
4#include <math/seadVector.h>
5
6#include "Library/Collision/IUseCollision.h"
7#include "Library/Nerve/NerveExecutor.h"
8
9namespace al {
10class CameraPoser;
11class CollisionDirector;
12class CollisionParts;
13class LookAtCamera;
14
15class CameraArrowCollider : public NerveExecutor, public IUseCollision {
16public:
17 CameraArrowCollider(CollisionDirector* director);
18
19 CollisionDirector* getCollisionDirector() const override;
20
21 void start();
22 void update(const sead::Vector3f& vec0, const sead::Vector3f& vec1, const sead::Vector3f& vec2);
23 void pushBackCollisionParts(CollisionParts* parts);
24 void makeLookAtCamera(sead::LookAtCamera* cam) const;
25
26 void exeKeep();
27 void exeShrink();
28
29 bool isShrink() const;
30 f32 getPushLength() const;
31};
32} // namespace al
33