metaforce/Runtime/Camera/CPathCamera.hpp

50 lines
1.3 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
#include "CGameCamera.hpp"
2017-11-20 17:33:21 +00:00
#include "CCameraSpline.hpp"
namespace urde
{
class CPathCamera : public CGameCamera
{
public:
enum class EInitialSplinePosition
{
2018-06-26 05:24:31 +00:00
BallCamBasis,
Negative,
Positive,
ClampBasis
};
2017-11-20 17:33:21 +00:00
private:
CCameraSpline x188_spline;
2018-06-25 01:02:29 +00:00
float x1d4_pos = 0.f;
float x1d8_time = 0.f;
2018-06-26 05:24:31 +00:00
float x1dc_lengthExtent;
2018-06-26 05:42:16 +00:00
float x1e0_filterMag;
float x1e4_filterProportion;
2017-11-20 17:33:21 +00:00
EInitialSplinePosition x1e8_initPos;
u32 x1ec_flags;
2018-06-26 05:42:16 +00:00
float x1f0_minEaseDist;
float x1f4_maxEaseDist;
2017-11-20 17:33:21 +00:00
public:
2018-06-26 05:42:16 +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);
2017-11-20 17:33:21 +00:00
void Accept(IVisitor&);
2018-06-25 01:02:29 +00:00
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&);
void Think(float, CStateManager&);
void Render(const CStateManager&) const {}
void ProcessInput(const CFinalInput&, CStateManager& mgr);
void Reset(const zeus::CTransform&, CStateManager& mgr);
2018-06-25 01:02:29 +00:00
zeus::CTransform MoveAlongSpline(float, CStateManager&);
2018-06-26 05:24:31 +00:00
void ClampToClosedDoor(CStateManager&);
};
}