OdysseyDecomp/lib/al/Library/Screen/ScreenPointDirector.h
2025-12-03 23:43:19 +01:00

38 lines
1.4 KiB
C++

#pragma once
#include <container/seadObjArray.h>
#include <math/seadVector.h>
namespace al {
class ScreenPointer;
class ScreenPointCheckGroup;
class ScreenPointTarget;
struct ScreenPointTargetHitInfo;
class ScreenPointDirector {
public:
ScreenPointDirector();
void registerTarget(ScreenPointTarget*);
void setCheckGroup(ScreenPointTarget*);
bool hitCheckSegment(ScreenPointer* screenPointer,
sead::ObjArray<ScreenPointTargetHitInfo>* targetHitInfo, s32 size,
const sead::Vector3f& posStart, const sead::Vector3f& posEnd);
// TODO: Check meaning of radius and screenRadius
bool hitCheckScreenCircle(ScreenPointer* screenPointer,
sead::ObjArray<ScreenPointTargetHitInfo>* targetHitInfo, s32 size,
const sead::Vector2f& pos, f32 radius, f32 screenRadius);
// TODO: Check meaning of radius and screenRadius
bool hitCheckLayoutCircle(ScreenPointer* screenPointer,
sead::ObjArray<ScreenPointTargetHitInfo>* targetHitInfo, s32 size,
const sead::Vector2f& pos, f32 radius, f32 layoutRadius,
s32 (*cmp)(const ScreenPointTargetHitInfo*,
const ScreenPointTargetHitInfo*));
private:
ScreenPointCheckGroup* mCheckGroup;
};
static_assert(sizeof(ScreenPointDirector) == 0x8);
} // namespace al