@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
21 lines • 2.59 kB
JavaScript
import { tgdCalcMix } from "../../math/math.js";
export function tgdActionCreateTransfoInterpolation(transfo, transfoAtT0, transfoAtT1) {
const beginTransfo = transfo.clone().from(transfoAtT0);
const distanceAt0 = beginTransfo.distance;
const positionAt0 = beginTransfo.position.clone();
const scaleAt0 = beginTransfo.scale.clone();
const orientationAt0 = beginTransfo.orientation.clone();
const endTransfo = transfo.clone().from(transfoAtT1);
const orientationAt1 = endTransfo.orientation.clone();
const positionAt1 = endTransfo.position.clone();
const scaleAt1 = endTransfo.scale.clone();
const distanceAt1 = endTransfo.distance;
return (t) => {
transfo.distance = tgdCalcMix(distanceAt0, distanceAt1, t);
transfo.position.fromMix(positionAt0, positionAt1, t);
transfo.scale.fromMix(scaleAt0, scaleAt1, t);
transfo.orientation.fromSlerp(orientationAt0, orientationAt1, t);
transfo.updateMatrix();
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9hY3Rpb24vdHJhbnNmby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFNUMsTUFBTSxVQUFVLG1DQUFtQyxDQUMvQyxPQUFtQixFQUNuQixXQUF3RSxFQUN4RSxXQUF3RTtJQUV4RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUE7SUFDekMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNqRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzNDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7SUFFdkQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNwRCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3JELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0MsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFBO0lBRXZDLE9BQU8sQ0FBQyxDQUFTLEVBQUUsRUFBRTtRQUNqQixPQUFPLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzFELE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDckQsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM1QyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ2hFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUMxQixDQUFDLENBQUE7QUFDTCxDQUFDIn0=