UNPKG

bot18

Version:

A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f

4,804 lines (1,272 loc) 64.8 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Module: mat3</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Module: mat3</h1> <section> <header> </header> <article> <div class="container-overview"> <div class="description">3x3 Matrix</div> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line3">line 3</a> </li></ul></dd> </dl> </div> <h3 class="subsection-title">Methods</h3> <h4 class="name" id=".add"><span class="type-signature">(static) </span>add<span class="signature">(out, a, b)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Adds two mat3's </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the first operand</td> </tr> <tr> <td class="name"><code>b</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the second operand</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line622">line 622</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".adjoint"><span class="type-signature">(static) </span>adjoint<span class="signature">(out, a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Calculates the adjugate of a mat3 </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the source matrix</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line237">line 237</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".clone"><span class="type-signature">(static) </span>clone<span class="signature">(a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Creates a new mat3 initialized with values from an existing matrix </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">matrix to clone</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line53">line 53</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> a new 3x3 matrix </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".copy"><span class="type-signature">(static) </span>copy<span class="signature">(out, a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Copy the values from one mat3 to another </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the source matrix</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line74">line 74</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".create"><span class="type-signature">(static) </span>create<span class="signature">()</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Creates a new identity mat3 </div> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line13">line 13</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> a new 3x3 matrix </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".determinant"><span class="type-signature">(static) </span>determinant<span class="signature">(a)</span><span class="type-signature"> &rarr; {Number}</span></h4> <div class="description"> Calculates the determinant of a mat3 </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the source matrix</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line260">line 260</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> determinant of a </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Number</span> </dd> </dl> <h4 class="name" id=".equals"><span class="type-signature">(static) </span>equals<span class="signature">(a, b)</span><span class="type-signature"> &rarr; {Boolean}</span></h4> <div class="description"> Returns whether or not the matrices have approximately the same elements in the same position. </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">The first matrix.</td> </tr> <tr> <td class="name"><code>b</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">The second matrix.</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line721">line 721</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> True if the matrices are equal, false otherwise. </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Boolean</span> </dd> </dl> <h4 class="name" id=".exactEquals"><span class="type-signature">(static) </span>exactEquals<span class="signature">(a, b)</span><span class="type-signature"> &rarr; {Boolean}</span></h4> <div class="description"> Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===) </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">The first matrix.</td> </tr> <tr> <td class="name"><code>b</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">The second matrix.</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line708">line 708</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> True if the matrices are equal, false otherwise. </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Boolean</span> </dd> </dl> <h4 class="name" id=".frob"><span class="type-signature">(static) </span>frob<span class="signature">(a)</span><span class="type-signature"> &rarr; {Number}</span></h4> <div class="description"> Returns Frobenius norm of a mat3 </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the matrix to calculate Frobenius norm of</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line610">line 610</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> Frobenius norm </div> <dl> <dt> Type </dt> <dd> <span class="param-type">Number</span> </dd> </dl> <h4 class="name" id=".fromMat2d"><span class="type-signature">(static) </span>fromMat2d<span class="signature">(out, a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Copies the values from a mat2d into a mat3 </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat2d</span> </td> <td class="description last">the matrix to copy</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line467">line 467</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".fromMat4"><span class="type-signature">(static) </span>fromMat4<span class="signature">(out, a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Copies the upper-left 3x3 values into the given mat3. </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving 3x3 matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat4</span> </td> <td class="description last">the source 4x4 matrix</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line34">line 34</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".fromQuat"><span class="type-signature">(static) </span>fromQuat<span class="signature">(out, q)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Calculates a 3x3 matrix from the given quaternion </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">mat3 receiving operation result</td> </tr> <tr> <td class="name"><code>q</code></td> <td class="type"> <span class="param-type">quat</span> </td> <td class="description last">Quaternion to create matrix from</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line490">line 490</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".fromRotation"><span class="type-signature">(static) </span>fromRotation<span class="signature">(out, rad)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Creates a matrix from a given angle This is equivalent to (but much faster than): mat3.identity(dest); mat3.rotate(dest, dest, rad); </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">mat3 receiving operation result</td> </tr> <tr> <td class="name"><code>rad</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">the angle to rotate the matrix by</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line417">line 417</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".fromScaling"><span class="type-signature">(static) </span>fromScaling<span class="signature">(out, v)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Creates a matrix from a vector scaling This is equivalent to (but much faster than): mat3.identity(dest); mat3.scale(dest, dest, vec); </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">mat3 receiving operation result</td> </tr> <tr> <td class="name"><code>v</code></td> <td class="type"> <span class="param-type">vec2</span> </td> <td class="description last">Scaling vector</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line445">line 445</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".fromTranslation"><span class="type-signature">(static) </span>fromTranslation<span class="signature">(out, v)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Creates a matrix from a vector translation This is equivalent to (but much faster than): mat3.identity(dest); mat3.translate(dest, dest, vec); </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">mat3 receiving operation result</td> </tr> <tr> <td class="name"><code>v</code></td> <td class="type"> <span class="param-type">vec2</span> </td> <td class="description last">Translation vector</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line393">line 393</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".fromValues"><span class="type-signature">(static) </span>fromValues<span class="signature">(m00, m01, m02, m10, m11, m12, m20, m21, m22)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Create a new mat3 with the given values </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>m00</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 0, row 0 position (index 0)</td> </tr> <tr> <td class="name"><code>m01</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 0, row 1 position (index 1)</td> </tr> <tr> <td class="name"><code>m02</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 0, row 2 position (index 2)</td> </tr> <tr> <td class="name"><code>m10</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 1, row 0 position (index 3)</td> </tr> <tr> <td class="name"><code>m11</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 1, row 1 position (index 4)</td> </tr> <tr> <td class="name"><code>m12</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 1, row 2 position (index 5)</td> </tr> <tr> <td class="name"><code>m20</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 2, row 0 position (index 6)</td> </tr> <tr> <td class="name"><code>m21</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 2, row 1 position (index 7)</td> </tr> <tr> <td class="name"><code>m22</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">Component in column 2, row 2 position (index 8)</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line101">line 101</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> A new mat3 </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".identity"><span class="type-signature">(static) </span>identity<span class="signature">(out)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Set a mat3 to the identity matrix </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line149">line 149</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".invert"><span class="type-signature">(static) </span>invert<span class="signature">(out, a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Inverts a mat3 </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the source matrix</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line201">line 201</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".mul"><span class="type-signature">(static) </span>mul<span class="signature">()</span><span class="type-signature"></span></h4> <div class="description"> Alias for mat3.multiply </div> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line739">line 739</a> </li></ul></dd> </dl> <h4 class="name" id=".multiply"><span class="type-signature">(static) </span>multiply<span class="signature">(out, a, b)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Multiplies two mat3's </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the first operand</td> </tr> <tr> <td class="name"><code>b</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the second operand</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line276">line 276</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".multiplyScalar"><span class="type-signature">(static) </span>multiplyScalar<span class="signature">(out, a, b)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Multiply each element of the matrix by a scalar. </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the matrix to scale</td> </tr> <tr> <td class="name"><code>b</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">amount to scale the matrix's elements by</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line666">line 666</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".multiplyScalarAndAdd"><span class="type-signature">(static) </span>multiplyScalarAndAdd<span class="signature">(out, a, b, scale)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Adds two mat3's after multiplying each element of the second operand by a scalar value. </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving vector</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the first operand</td> </tr> <tr> <td class="name"><code>b</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the second operand</td> </tr> <tr> <td class="name"><code>scale</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">the amount to scale b's elements by before adding</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line688">line 688</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".normalFromMat4"><span class="type-signature">(static) </span>normalFromMat4<span class="signature">(out, a)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">mat3 receiving operation result</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat4</span> </td> <td class="description last">Mat4 to derive the normal matrix from</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line529">line 529</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".projection"><span class="type-signature">(static) </span>projection<span class="signature">(out, width, height)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Generates a 2D projection matrix with the given bounds </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">mat3 frustum matrix will be written into</td> </tr> <tr> <td class="name"><code>width</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="description last">Width of your gl context</td> </tr> <tr> <td class="name"><code>height</code></td> <td class="type"> <span class="param-type">number</span> </td> <td class="description last">Height of gl context</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line579">line 579</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".rotate"><span class="type-signature">(static) </span>rotate<span class="signature">(out, a, rad)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Rotates a mat3 by the given angle </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the matrix to rotate</td> </tr> <tr> <td class="name"><code>rad</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="description last">the angle to rotate the matrix by</td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> <a href="mat3.js.html">mat3.js</a>, <a href="mat3.js.html#line335">line 335</a> </li></ul></dd> </dl> <h5>Returns:</h5> <div class="param-desc"> out </div> <dl> <dt> Type </dt> <dd> <span class="param-type">mat3</span> </dd> </dl> <h4 class="name" id=".scale"><span class="type-signature">(static) </span>scale<span class="signature">(out, a, v)</span><span class="type-signature"> &rarr; {mat3}</span></h4> <div class="description"> Scales the mat3 by the dimensions in the given vec2 </div> <h5>Parameters:</h5> <table class="params"> <thead> <tr> <th>Name</th> <th>Type</th> <th class="last">Description</th> </tr> </thead> <tbody> <tr> <td class="name"><code>out</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the receiving matrix</td> </tr> <tr> <td class="name"><code>a</code></td> <td class="type"> <span class="param-type">mat3</span> </td> <td class="description last">the matrix to