* transpose according to a given matrix * @param {p5.Matrix|Float32Array|Number[]} a the matrix to be * based on to transpose * @private * @chainable
(a)
| 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. |
no test coverage detected