1#pragma once
2
3#include <math/seadVector.h>
4
5namespace al {
6class IUseFluidSurface {
7public:
8 virtual bool calcIsInArea(const sead::Vector3f&) const = 0;
9 virtual void calcPos(sead::Vector3f*, const sead::Vector3f&) const = 0;
10 virtual void calcPosFlat(sead::Vector3f*, const sead::Vector3f&) const;
11 virtual void calcDisplacementPos(sead::Vector3f*, const sead::Vector3f&) const;
12 virtual void calcNormal(sead::Vector3f*, const sead::Vector3f&) const = 0;
13 virtual bool tryAddRipple(const sead::Vector3f&, f32, f32);
14 virtual bool tryAddRippleWithRange(const sead::Vector3f&, f32, f32, f32, f32);
15 virtual bool tryAddQuadRipple(const sead::Vector3f&, const sead::Vector3f&,
16 const sead::Vector3f&, const sead::Vector3f&, f32);
17 virtual const char* getTypeName() const = 0;
18 virtual void setFieldScale(f32);
19};
20} // namespace al
21