UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

21 lines 2.52 kB
import { TgdTransfo } from "./../../math/index.js"; import { tgdCalcMix } from "../../math/math.js"; import { tgdActionCreateTransfoInterpolation } from "./transfo.js"; export function tgdActionCreateCameraInterpolation(camera, destination) { const transfoDestination = new TgdTransfo(camera.transfo).from(destination); if (typeof destination.distance === "number") transfoDestination.distance = destination.distance; const beginZoom = camera.zoom; const endZoom = destination.zoom ?? beginZoom; const action = tgdActionCreateTransfoInterpolation(camera.transfo, {}, transfoDestination); const beginSpaceHeightAtTarget = camera.spaceHeightAtTarget; const endSpaceHeightAtTarget = destination.spaceHeightAtTarget ?? camera.spaceHeightAtTarget; return (t) => { action(t); if (typeof destination.spaceHeightAtTarget === "number") { camera.spaceHeightAtTarget = tgdCalcMix(beginSpaceHeightAtTarget, endSpaceHeightAtTarget, t); } camera.zoom = tgdCalcMix(beginZoom, endZoom, t); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2FjdGlvbi9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDNUMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRS9ELE1BQU0sVUFBVSxrQ0FBa0MsQ0FBQyxNQUFpQixFQUFFLFdBQW9DO0lBQ3RHLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMzRSxJQUFJLE9BQU8sV0FBVyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQUUsa0JBQWtCLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUE7SUFDaEcsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUM3QixNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQTtJQUM3QyxNQUFNLE1BQU0sR0FBRyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQzFGLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFBO0lBQzNELE1BQU0sc0JBQXNCLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQTtJQUU1RixPQUFPLENBQUMsQ0FBUyxFQUFFLEVBQUU7UUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ1QsSUFBSSxPQUFPLFdBQVcsQ0FBQyxtQkFBbUIsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0RCxNQUFNLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2hHLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUMsQ0FBQTtBQUNMLENBQUMifQ==