| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <basis/seadTypes.h> |
| 4 | #include <math/seadBoundBox.h> |
| 5 | #include <thread/seadThread.h> |
| 6 | |
| 7 | namespace al { |
| 8 | struct ActorInitInfo; |
| 9 | class ClippingActorInfo; |
| 10 | class LiveActor; |
| 11 | class ClippingGroupHolder; |
| 12 | class ClippingJudge; |
| 13 | |
| 14 | class ClippingActorHolder { |
| 15 | public: |
| 16 | ClippingActorHolder(s32); |
| 17 | void updateAsync(sead::Thread*, s64); |
| 18 | ~ClippingActorHolder(); |
| 19 | void update(const ClippingJudge*); |
| 20 | ClippingActorInfo* registerActor(LiveActor*); |
| 21 | ClippingActorInfo* initGroupClipping(LiveActor*, const ActorInitInfo&); |
| 22 | void endInit(ClippingGroupHolder*); |
| 23 | void validateClipping(LiveActor*); |
| 24 | void invalidateClipping(LiveActor*); |
| 25 | void addToClippingTarget(LiveActor*); |
| 26 | void removeFromClippingTarget(LiveActor*); |
| 27 | void onGroupClipping(LiveActor*); |
| 28 | void offGroupClipping(LiveActor*); |
| 29 | f32 getClippingRadius(const LiveActor*); |
| 30 | ClippingActorInfo* find(const LiveActor*) const; |
| 31 | const sead::Vector3f& getClippingCenterPos(const LiveActor*); |
| 32 | void setTypeToSphere(LiveActor*, f32, const sead::Vector3f*); |
| 33 | void setTypeToObb(LiveActor* liveActor, const sead::BoundBox3f&); |
| 34 | const sead::BoundBox3f& getClippingObb(const LiveActor*); |
| 35 | void setNearClipDistance(LiveActor*, f32); |
| 36 | void setFarClipLevel20M(LiveActor*); |
| 37 | void setFarClipLevelMax(LiveActor*); |
| 38 | void updateFarClipLevel(); |
| 39 | |
| 40 | private: |
| 41 | void* filler[0x8]; |
| 42 | }; |
| 43 | |
| 44 | } // namespace al |
| 45 |