metaforce/Runtime/Camera/CPathCamera.hpp

40 lines
1.3 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
#include "Runtime/Camera/CCameraSpline.hpp"
#include "Runtime/Camera/CGameCamera.hpp"
2021-04-10 08:42:06 +00:00
namespace metaforce {
2018-12-08 05:30:43 +00:00
class CPathCamera : public CGameCamera {
public:
2018-12-08 05:30:43 +00:00
enum class EInitialSplinePosition { BallCamBasis, Negative, Positive, ClampBasis };
2017-11-20 17:33:21 +00:00
private:
2018-12-08 05:30:43 +00:00
CCameraSpline x188_spline;
float x1d4_pos = 0.f;
float x1d8_time = 0.f;
float x1dc_lengthExtent;
float x1e0_filterMag;
float x1e4_filterProportion;
EInitialSplinePosition x1e8_initPos;
u32 x1ec_flags;
float x1f0_minEaseDist;
float x1f4_maxEaseDist;
2017-11-20 17:33:21 +00:00
public:
2018-12-08 05:30:43 +00:00
CPathCamera(TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, bool active,
float lengthExtent, float filterMag, float filterProportion, float minEaseDist, float maxEaseDist,
u32 flags, EInitialSplinePosition initPos);
void Accept(IVisitor&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override;
void Render(CStateManager&) override {}
void ProcessInput(const CFinalInput&, CStateManager& mgr) override;
void Reset(const zeus::CTransform&, CStateManager& mgr) override;
2018-12-08 05:30:43 +00:00
zeus::CTransform MoveAlongSpline(float, CStateManager&);
void ClampToClosedDoor(CStateManager&);
};
2021-04-10 08:42:06 +00:00
} // namespace metaforce