UNPKG

@thi.ng/matrices

Version:

Matrix & quaternion operations for 2D/3D geometry processing

23 lines (22 loc) 869 B
import { maddN2, maddN3 } from "@thi.ng/vectors/maddn"; import { mulN2, mulN3 } from "@thi.ng/vectors/muln"; import { safeDiv2, safeDiv3 } from "@thi.ng/vectors/safe-div"; import { concat } from "./concat.js"; import { scale23, scale44 } from "./scale.js"; import { translation23, translation44 } from "./translation.js"; const fit23 = (out, srcPos, srcSize, destPos, destSize) => concat( out, translation23(null, maddN2([], destSize, 0.5, destPos)), scale23(null, safeDiv2([], destSize, srcSize)), translation23(null, mulN2(null, maddN2([], srcSize, 0.5, srcPos), -1)) ); const fit44 = (out, srcPos, srcSize, destPos, destSize) => concat( out, translation44(null, maddN3([], destSize, 0.5, destPos)), scale44(null, safeDiv3([], destSize, srcSize)), translation44(null, mulN3(null, maddN3([], srcSize, 0.5, srcPos), -1)) ); export { fit23, fit44 };