StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
4 years ago
|
module.exports = translate;
|
||
|
|
||
|
/**
|
||
|
* Translate a mat4 by the given vector
|
||
|
*
|
||
|
* @param {mat4} out the receiving matrix
|
||
|
* @param {mat4} a the matrix to translate
|
||
|
* @param {vec3} v vector to translate by
|
||
|
* @returns {mat4} out
|
||
|
*/
|
||
|
function translate(out, a, v) {
|
||
|
var x = v[0], y = v[1], z = v[2],
|
||
|
a00, a01, a02, a03,
|
||
|
a10, a11, a12, a13,
|
||
|
a20, a21, a22, a23;
|
||
|
|
||
|
if (a === out) {
|
||
|
out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];
|
||
|
out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];
|
||
|
out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];
|
||
|
out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];
|
||
|
} else {
|
||
|
a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];
|
||
|
a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];
|
||
|
a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];
|
||
|
|
||
|
out[0] = a00; out[1] = a01; out[2] = a02; out[3] = a03;
|
||
|
out[4] = a10; out[5] = a11; out[6] = a12; out[7] = a13;
|
||
|
out[8] = a20; out[9] = a21; out[10] = a22; out[11] = a23;
|
||
|
|
||
|
out[12] = a00 * x + a10 * y + a20 * z + a[12];
|
||
|
out[13] = a01 * x + a11 * y + a21 * z + a[13];
|
||
|
out[14] = a02 * x + a12 * y + a22 * z + a[14];
|
||
|
out[15] = a03 * x + a13 * y + a23 * z + a[15];
|
||
|
}
|
||
|
|
||
|
return out;
|
||
|
};
|