1#pragma once
2
3#include <math/seadBoundBox.h>
4#include <math/seadMatrix.h>
5
6enum ClippingRequestKeeper {};
7
8namespace al {
9class LiveActor;
10struct ActorInitInfo;
11class ClippingJudge;
12class ViewIdHolder;
13
14class ClippingActorInfo {
15public:
16 ClippingActorInfo(LiveActor*);
17 void setTypeToSphere(f32, const sead::Vector3f*);
18 void startClipped();
19 void endClipped();
20 void updateClipping(const ClippingJudge*);
21 bool judgeClipping(const ClippingJudge*) const;
22 void updateClipping(ClippingRequestKeeper*, const ClippingJudge*);
23 bool isGroupClipping() const;
24 bool isGroupClippingInit() const;
25 void setTypeToObb(const sead::BoundBox3f&, const sead::Matrix34f*);
26 void setGroupClippingId(const ActorInitInfo&);
27 void setFarClipLevel20M();
28 void updateFarClipLevel();
29 void setFarClipLevelMax();
30 bool isFarClipLevelMax() const;
31 bool checkActiveViewGroupAny() const;
32 void initViewGroup(const ViewIdHolder*);
33 void registerViewGroupFarClipFlag(const bool*);
34
35 LiveActor* getLiveActor() const { return mLiveActor; }
36
37 void setIsEnableGroupClipping(const bool isEnableGroupClipping) {
38 mIsEnableGroupClipping = isEnableGroupClipping;
39 }
40
41private:
42 LiveActor* mLiveActor;
43 void* filler[0xc]; // offset isEnableGroupClipping to the correct place
44 bool mIsEnableGroupClipping;
45 // Remaining Member's missing
46};
47} // namespace al
48