3#include "../../Math/Vec3.h"
30 void Update(
float deltaTime);
39 std::function<
void()> onComplete =
nullptr);
48 void MoveTo(
const Vec3 &newPosition,
const Vec3 &newTarget,
float duration = 1.0f,
49 std::function<
void()> onComplete =
nullptr);
87 float ApplyEasing(
float t)
const;
96 Vec3 Lerp(
const Vec3 &start,
const Vec3 &end,
float t)
const;
101 bool m_IsAnimating =
false;
102 float m_AnimationTime = 0.0f;
103 float m_AnimationDuration = 1.0f;
107 Vec3 m_StartPosition;
113 std::function<void()> m_OnComplete;
Abstract base class for all camera types.
Definition BaseCamera.h:34
Handles smooth camera transitions and animations.
Definition CameraAnimator.h:18
void Update(float deltaTime)
Update the animation - call this every frame.
Definition CameraAnimator.cpp:11
EasingType
Set the easing function type.
Definition CameraAnimator.h:66
bool IsAnimating() const
Check if any animation is currently active.
Definition CameraAnimator.h:55
void MoveTo(const Vec3 &newPosition, const Vec3 &newTarget, float duration=1.0f, std::function< void()> onComplete=nullptr)
Smoothly move camera to a new position and target.
Definition CameraAnimator.cpp:61
void SetEasingType(EasingType type)
Set the easing type for animations.
Definition CameraAnimator.h:79
void StopAnimation()
Stop any current animation.
Definition CameraAnimator.cpp:79
void FocusOnPosition(const Vec3 &targetPosition, float duration=1.0f, std::function< void()> onComplete=nullptr)
Smoothly focus the camera on a target position.
Definition CameraAnimator.cpp:49