MCPcopy Index your code
hub / github.com/processing/p5.js / #mult4x4

Method #mult4x4

src/math/Matrices/Matrix.js:1655–1704  ·  view source on GitHub ↗

* Multiplies the current 4x4 matrix with another 4x4 matrix. * This method updates the current matrix with the result of the multiplication. * * @private * @param {number[]} _src - A 16-element array representing the 4x4 matrix to multiply with. * * @returns {this} The current inst

(_src)

Source from the content-addressed store, hash-verified

1653 * matrix.#mult4x4(srcMatrix);
1654 */
1655 #mult4x4(_src) {
1656 // each row is used for the multiplier
1657 let b0 = this.matrix[0],
1658 b1 = this.matrix[1],
1659 b2 = this.matrix[2],
1660 b3 = this.matrix[3];
1661 this.matrix[0] = b0 * _src[0] + b1 * _src[4] + b2 * _src[8] + b3 * _src[12];
1662 this.matrix[1] = b0 * _src[1] + b1 * _src[5] + b2 * _src[9] + b3 * _src[13];
1663 this.matrix[2] =
1664 b0 * _src[2] + b1 * _src[6] + b2 * _src[10] + b3 * _src[14];
1665 this.matrix[3] =
1666 b0 * _src[3] + b1 * _src[7] + b2 * _src[11] + b3 * _src[15];
1667
1668 b0 = this.matrix[4];
1669 b1 = this.matrix[5];
1670 b2 = this.matrix[6];
1671 b3 = this.matrix[7];
1672 this.matrix[4] = b0 * _src[0] + b1 * _src[4] + b2 * _src[8] + b3 * _src[12];
1673 this.matrix[5] = b0 * _src[1] + b1 * _src[5] + b2 * _src[9] + b3 * _src[13];
1674 this.matrix[6] =
1675 b0 * _src[2] + b1 * _src[6] + b2 * _src[10] + b3 * _src[14];
1676 this.matrix[7] =
1677 b0 * _src[3] + b1 * _src[7] + b2 * _src[11] + b3 * _src[15];
1678
1679 b0 = this.matrix[8];
1680 b1 = this.matrix[9];
1681 b2 = this.matrix[10];
1682 b3 = this.matrix[11];
1683 this.matrix[8] = b0 * _src[0] + b1 * _src[4] + b2 * _src[8] + b3 * _src[12];
1684 this.matrix[9] = b0 * _src[1] + b1 * _src[5] + b2 * _src[9] + b3 * _src[13];
1685 this.matrix[10] =
1686 b0 * _src[2] + b1 * _src[6] + b2 * _src[10] + b3 * _src[14];
1687 this.matrix[11] =
1688 b0 * _src[3] + b1 * _src[7] + b2 * _src[11] + b3 * _src[15];
1689
1690 b0 = this.matrix[12];
1691 b1 = this.matrix[13];
1692 b2 = this.matrix[14];
1693 b3 = this.matrix[15];
1694 this.matrix[12] =
1695 b0 * _src[0] + b1 * _src[4] + b2 * _src[8] + b3 * _src[12];
1696 this.matrix[13] =
1697 b0 * _src[1] + b1 * _src[5] + b2 * _src[9] + b3 * _src[13];
1698 this.matrix[14] =
1699 b0 * _src[2] + b1 * _src[6] + b2 * _src[10] + b3 * _src[14];
1700 this.matrix[15] =
1701 b0 * _src[3] + b1 * _src[7] + b2 * _src[11] + b3 * _src[15];
1702
1703 return this;
1704 }
1705
1706 /**
1707 * @param {p5.Matrix|Float32Array|Number[]} multMatrix The matrix

Callers 1

multMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected