import type { EaseFn } from '../core/easing';
import type { Vec2 } from '../math/Vec2';

/**
 * Чистая математика перемещений кат-сцен: интерполяция точки по easing.
 * Общая для cameraMove и moveView — движение камеры и вьюх считается одинаково.
 */

/** Точка на кривой from→to в доле k (0..1), прошедшей через ease. */
export function applyEase(from: Vec2, to: Vec2, k: number, ease: EaseFn): Vec2 {
    const e = ease(Math.min(1, Math.max(0, k)));
    return { x: from.x + (to.x - from.x) * e, y: from.y + (to.y - from.y) * e };
}