@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
21 lines • 2.57 kB
JavaScript
import { tgdCalcMix } from "../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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9hY3Rpb24vdHJhbnNmby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRXBDLE1BQU0sVUFBVSxtQ0FBbUMsQ0FDL0MsT0FBbUIsRUFDbkIsV0FBd0UsRUFDeEUsV0FBd0U7SUFFeEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUN0RCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFBO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDakQsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBRXZELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDcEQsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNyRCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQy9DLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDekMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQTtJQUV2QyxPQUFPLENBQUMsQ0FBUyxFQUFFLEVBQUU7UUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3JELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNoRSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDMUIsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyJ9