| 1 | #pragma once |
| 2 | |
| 3 | #include <math/seadBoundBox.h> |
| 4 | #include <math/seadVector.h> |
| 5 | |
| 6 | namespace al { |
| 7 | class LiveActor; |
| 8 | struct ActorInitInfo; |
| 9 | class ClippingDirector; |
| 10 | |
| 11 | void initActorClipping(LiveActor* actor, const ActorInitInfo& initInfo); |
| 12 | void initGroupClipping(LiveActor* actor, const ActorInitInfo& initInfo); |
| 13 | f32 getClippingRadius(const LiveActor* actor); |
| 14 | void setClippingInfo(LiveActor* actor, f32, const sead::Vector3f*); |
| 15 | void setClippingObb(LiveActor* actor, const sead::BoundBox3f& boundingBox); |
| 16 | const sead::BoundBox3f& getClippingObb(LiveActor* actor); |
| 17 | const sead::Vector3f& getClippingCenterPos(const LiveActor* actor); |
| 18 | void setClippingNearDistance(LiveActor* actor, f32 near); |
| 19 | void expandClippingRadiusByShadowLength(LiveActor* actor, sead::Vector3f*, f32 radius); |
| 20 | bool tryExpandClippingToGround(LiveActor* actor, sead::Vector3f*, f32); |
| 21 | bool tryExpandClippingByShadowMaskLength(LiveActor* actor, sead::Vector3f*); |
| 22 | bool tryExpandClippingByDepthShadowLength(LiveActor* actor, sead::Vector3f*); |
| 23 | bool tryExpandClippingByExpandObject(LiveActor*, const ActorInitInfo& initInfo); |
| 24 | bool isClipped(const LiveActor*); |
| 25 | bool isInvalidClipping(const LiveActor*); |
| 26 | void invalidateClipping(LiveActor* actor); |
| 27 | void validateClipping(LiveActor* actor); |
| 28 | void onDrawClipping(LiveActor* actor); |
| 29 | void offDrawClipping(LiveActor* actor); |
| 30 | void onGroupClipping(LiveActor* actor); |
| 31 | void offGroupClipping(LiveActor* actor); |
| 32 | bool isInClippingFrustum(const LiveActor* actor, const sead::Vector3f&, f32, f32, s32); |
| 33 | bool isInClippingFrustum(const ClippingDirector* director, const sead::Vector3f&, f32, f32, s32); |
| 34 | bool isInClippingFrustumAllView(const LiveActor* actor, const sead::Vector3f& pos, f32, f32); |
| 35 | } // namespace al |
| 36 | |
| 37 | namespace alActorFunction { |
| 38 | void invalidateFarClipping(al::LiveActor*); |
| 39 | void validateFarClipping(al::LiveActor*); |
| 40 | f32 getFarClipDistance(const al::LiveActor*); |
| 41 | bool isInvalidFarClipping(const al::LiveActor*); |
| 42 | bool isDrawClipping(const al::LiveActor* actor); |
| 43 | bool checkActiveViewGroupAny(const al::LiveActor* actor); |
| 44 | } // namespace alActorFunction |
| 45 | |