1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadQuat.h>
5#include <math/seadVector.h>
6
7namespace al {
8struct ActorInitInfo;
9class LiveActor;
10class WaterSurfaceFinder;
11} // namespace al
12
13class WaterSurfaceShadow {
14public:
15 WaterSurfaceShadow(const al::ActorInitInfo& initInfo, const char* archiveName);
16 bool isAppearShadow() const;
17 void update(const sead::Vector3f& position, const sead::Vector3f& gravity, f32 distance);
18 void disappearShadow();
19 void setScale(f32 scale);
20 void setScale(f32 scaleX, f32 scaleZ);
21 void setQuat(const sead::Quatf& quat);
22
23private:
24 al::LiveActor* mActor = nullptr;
25 al::WaterSurfaceFinder* mWaterSurfaceFinder = nullptr;
26 f32 mMaxDistance = 500.0f;
27 f32 mEndFrame = 0.25f;
28 f32 mStartFrame = 1.0f;
29};
30