MCPcopy
hub / github.com/processing/p5.js / #transpose4x4

Method #transpose4x4

src/math/Matrices/Matrix.js:1792–1845  ·  view source on GitHub ↗

* transpose according to a given matrix * @param {p5.Matrix|Float32Array|Number[]} a the matrix to be * based on to transpose * @private * @chainable

(a)

Source from the content-addressed store, hash-verified

1790 * @chainable
1791 */
1792 #transpose4x4(a) {
1793 console.log('====> 4x4');
1794 let a01, a02, a03, a12, a13, a23;
1795 if (a instanceof Matrix) {
1796 a01 = a.matrix[1];
1797 a02 = a.matrix[2];
1798 a03 = a.matrix[3];
1799 a12 = a.matrix[6];
1800 a13 = a.matrix[7];
1801 a23 = a.matrix[11];
1802
1803 this.matrix[0] = a.matrix[0];
1804 this.matrix[1] = a.matrix[4];
1805 this.matrix[2] = a.matrix[8];
1806 this.matrix[3] = a.matrix[12];
1807 this.matrix[4] = a01;
1808 this.matrix[5] = a.matrix[5];
1809 this.matrix[6] = a.matrix[9];
1810 this.matrix[7] = a.matrix[13];
1811 this.matrix[8] = a02;
1812 this.matrix[9] = a12;
1813 this.matrix[10] = a.matrix[10];
1814 this.matrix[11] = a.matrix[14];
1815 this.matrix[12] = a03;
1816 this.matrix[13] = a13;
1817 this.matrix[14] = a23;
1818 this.matrix[15] = a.matrix[15];
1819 } else if (isMatrixArray(a)) {
1820 a01 = a[1];
1821 a02 = a[2];
1822 a03 = a[3];
1823 a12 = a[6];
1824 a13 = a[7];
1825 a23 = a[11];
1826
1827 this.matrix[0] = a[0];
1828 this.matrix[1] = a[4];
1829 this.matrix[2] = a[8];
1830 this.matrix[3] = a[12];
1831 this.matrix[4] = a01;
1832 this.matrix[5] = a[5];
1833 this.matrix[6] = a[9];
1834 this.matrix[7] = a[13];
1835 this.matrix[8] = a02;
1836 this.matrix[9] = a12;
1837 this.matrix[10] = a[10];
1838 this.matrix[11] = a[14];
1839 this.matrix[12] = a03;
1840 this.matrix[13] = a13;
1841 this.matrix[14] = a23;
1842 this.matrix[15] = a[15];
1843 }
1844 return this;
1845 }
1846
1847 /**
1848 * This function is only for 3x3 matrices.

Callers 1

transposeMethod · 0.95

Calls 1

isMatrixArrayFunction · 0.70

Tested by

no test coverage detected