@thi.ng/matrices
Version:
Matrix & quaternion operations for 2D/3D geometry processing
35 lines (34 loc) • 691 B
JavaScript
import { isNumber } from "@thi.ng/checks/is-number";
import { setC, setC4, setC6 } from "@thi.ng/vectors/setc";
const scale22 = (m, s) => (s = isNumber(s) ? [s, s] : s, setC4(m || [], s[0], 0, 0, s[1]));
const scale23 = (m, s) => (s = isNumber(s) ? [s, s] : s, setC6(m || [], s[0], 0, 0, s[1], 0, 0));
const scale33 = (m, s) => (s = isNumber(s) ? [s, s, s] : s, setC(m || [], s[0], 0, 0, 0, s[1], 0, 0, 0, s[2]));
const scale44 = (m, s) => (s = isNumber(s) ? [s, s, s] : s, setC(
m || [],
// x
s[0],
0,
0,
0,
// y
0,
s[1],
0,
0,
// z
0,
0,
s[2],
0,
// w
0,
0,
0,
s[3] !== void 0 ? s[3] : 1
));
export {
scale22,
scale23,
scale33,
scale44
};