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