16 lines
665 B
C++
16 lines
665 B
C++
#include "CameraPath.h"
|
|
#include "MathHelper.h"
|
|
#include "../inc/glm/glm.hpp"
|
|
|
|
CameraState CameraStateInterpolator::operator()(const CameraState& before, const CameraState& after, const double& time)
|
|
{
|
|
float t = (float)time;
|
|
CameraState res;
|
|
res.position = MathHelper::lerp(t, before.position, after.position);
|
|
res.direction = MathHelper::slerp(t, before.direction, after.direction);
|
|
res.target = MathHelper::lerp(t, before.target, after.target);
|
|
res.FOV = MathHelper::lerp(t, before.FOV, after.FOV);
|
|
res.nearPlane = MathHelper::lerp(t, before.nearPlane, after.nearPlane);
|
|
res.farPlane = MathHelper::lerp(t, before.farPlane, after.farPlane);
|
|
return res;
|
|
}; |