@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
22 lines • 2.63 kB
JavaScript
import { TgdTransfo } from "./../../math/index.js";
import { tgdCalcMix } from "../math.js";
import { tgdActionCreateTransfoInterpolation } from "./transfo.js";
export function tgdActionCreateCameraInterpolation(camera, destination) {
var _a, _b;
const transfoDestination = new TgdTransfo(camera.transfo).from(destination);
if (typeof destination.distance === "number")
transfoDestination.distance = destination.distance;
const beginZoom = camera.zoom;
const endZoom = (_a = destination.zoom) !== null && _a !== void 0 ? _a : beginZoom;
const action = tgdActionCreateTransfoInterpolation(camera.transfo, {}, transfoDestination);
const beginSpaceHeightAtTarget = camera.spaceHeightAtTarget;
const endSpaceHeightAtTarget = (_b = destination.spaceHeightAtTarget) !== null && _b !== void 0 ? _b : 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2FjdGlvbi9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUUvRCxNQUFNLFVBQVUsa0NBQWtDLENBQzlDLE1BQWlCLEVBQ2pCLFdBQW9DOztJQUVwQyxNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDM0UsSUFBSSxPQUFPLFdBQVcsQ0FBQyxRQUFRLEtBQUssUUFBUTtRQUN4QyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQTtJQUN0RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQzdCLE1BQU0sT0FBTyxHQUFHLE1BQUEsV0FBVyxDQUFDLElBQUksbUNBQUksU0FBUyxDQUFBO0lBQzdDLE1BQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUM5QyxNQUFNLENBQUMsT0FBTyxFQUNkLEVBQUUsRUFDRixrQkFBa0IsQ0FDckIsQ0FBQTtJQUNELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFBO0lBQzNELE1BQU0sc0JBQXNCLEdBQ3hCLE1BQUEsV0FBVyxDQUFDLG1CQUFtQixtQ0FBSSxNQUFNLENBQUMsbUJBQW1CLENBQUE7SUFFakUsT0FBTyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNULElBQUksT0FBTyxXQUFXLENBQUMsbUJBQW1CLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEQsTUFBTSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FDbkMsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixDQUFDLENBQ0osQ0FBQTtRQUNMLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25ELENBQUMsQ0FBQTtBQUNMLENBQUMifQ==