1#pragma once
2
3#include <container/seadObjArray.h>
4#include <math/seadVector.h>
5
6namespace al {
7class ScreenPointer;
8class ScreenPointCheckGroup;
9class ScreenPointTarget;
10class ScreenPointTargetHitInfo;
11
12class ScreenPointDirector {
13public:
14 ScreenPointDirector();
15 void registerTarget(ScreenPointTarget*);
16 void setCheckGroup(ScreenPointTarget*);
17 bool hitCheckSegment(ScreenPointer*, sead::ObjArray<ScreenPointTargetHitInfo>*, s32,
18 const sead::Vector3f&, const sead::Vector3f&);
19 bool hitCheckScreenCircle(ScreenPointer*, sead::ObjArray<ScreenPointTargetHitInfo>*, s32,
20 const sead::Vector2f&, f32, f32);
21 bool hitCheckLayoutCircle(ScreenPointer*, sead::ObjArray<ScreenPointTargetHitInfo>*, s32,
22 const sead::Vector2f&, f32, f32,
23 s32 (*)(const ScreenPointTargetHitInfo*,
24 const ScreenPointTargetHitInfo*));
25
26private:
27 ScreenPointCheckGroup* mCheckGroup;
28};
29
30static_assert(sizeof(ScreenPointDirector) == 0x8);
31
32} // namespace al
33