2014-06-25 16:29:58 +00:00
|
|
|
#pragma once
|
2017-10-31 17:12:50 +00:00
|
|
|
#ifndef ES_APP_ANIMATIONS_MOVE_CAMERA_ANIMATION_H
|
|
|
|
#define ES_APP_ANIMATIONS_MOVE_CAMERA_ANIMATION_H
|
2014-06-25 16:29:58 +00:00
|
|
|
|
|
|
|
#include "animations/Animation.h"
|
|
|
|
|
|
|
|
class MoveCameraAnimation : public Animation
|
|
|
|
{
|
|
|
|
public:
|
2017-10-28 20:24:35 +00:00
|
|
|
MoveCameraAnimation(Transform4x4f& camera, const Vector3f& target) : mCameraStart(camera), mTarget(target), cameraOut(camera) {}
|
2014-06-25 16:29:58 +00:00
|
|
|
|
|
|
|
int getDuration() const override { return 400; }
|
|
|
|
|
|
|
|
void apply(float t) override
|
|
|
|
{
|
|
|
|
// cubic ease out
|
|
|
|
t -= 1;
|
2017-11-13 22:16:38 +00:00
|
|
|
cameraOut.translation() = -Vector3f().lerp(-mCameraStart.translation(), mTarget, t*t*t + 1);
|
2014-06-25 16:29:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
2017-10-28 20:24:35 +00:00
|
|
|
Transform4x4f mCameraStart;
|
|
|
|
Vector3f mTarget;
|
2014-06-25 16:29:58 +00:00
|
|
|
|
2017-10-28 20:24:35 +00:00
|
|
|
Transform4x4f& cameraOut;
|
2014-06-25 16:29:58 +00:00
|
|
|
};
|
2017-10-31 17:12:50 +00:00
|
|
|
|
|
|
|
#endif // ES_APP_ANIMATIONS_MOVE_CAMERA_ANIMATION_H
|