@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
21 lines • 2.52 kB
JavaScript
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==