26 lines
494 B
JavaScript
26 lines
494 B
JavaScript
module.exports = transpose
|
|
|
|
/**
|
|
* Transpose the values of a mat2
|
|
*
|
|
* @alias mat2.transpose
|
|
* @param {mat2} out the receiving matrix
|
|
* @param {mat2} a the source matrix
|
|
* @returns {mat2} out
|
|
*/
|
|
function transpose(out, a) {
|
|
// If we are transposing ourselves we can skip a few steps but have to cache some values
|
|
if (out === a) {
|
|
var a1 = a[1]
|
|
out[1] = a[2]
|
|
out[2] = a1
|
|
} else {
|
|
out[0] = a[0]
|
|
out[1] = a[2]
|
|
out[2] = a[1]
|
|
out[3] = a[3]
|
|
}
|
|
|
|
return out
|
|
}
|