From e5ae3d4dbbf91a5eb6204f8c2462d42577e54682 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Sat, 22 Jan 2022 22:00:26 +0000 Subject: [PATCH 01/18] removed unused parameters --- src/core/shape/vertex.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/core/shape/vertex.js b/src/core/shape/vertex.js index 775889f3dc..35bffcaff7 100644 --- a/src/core/shape/vertex.js +++ b/src/core/shape/vertex.js @@ -958,20 +958,11 @@ p5.prototype.quadraticVertex = function(...args) { * @method vertex * @param {Number} x * @param {Number} y - * @param {Number} z z-coordinate of the vertex. + * @param {Number} [z] z-coordinate of the vertex. * Defaults to 0 if not specified. * @chainable */ -/** - * @method vertex - * @param {Number} x - * @param {Number} y - * @param {Number} [z] - * @param {Number} u the vertex's texture u-coordinate - * @param {Number} v the vertex's texture v-coordinate - * @chainable - */ -p5.prototype.vertex = function(x, y, moveTo, u, v) { +p5.prototype.vertex = function(x, y, moveTo) { if (this._renderer.isP3D) { this._renderer.vertex(...arguments); } else { From f6974e9f2564842720753ddbc5dd09de9b70fcf7 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Sat, 22 Jan 2022 22:00:52 +0000 Subject: [PATCH 02/18] fixed parameter naming error --- lib/addons/p5.sound.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/addons/p5.sound.js b/lib/addons/p5.sound.js index ca19c190a9..a8a7e3f450 100644 --- a/lib/addons/p5.sound.js +++ b/lib/addons/p5.sound.js @@ -218,7 +218,7 @@ function getAudioContext() { * example below. This method utilizes * StartAudioContext * , a library by Yotam Mann (MIT Licence, 2016).

- * @param {Element|Array} [element(s)] This argument can be an Element, + * @param {Element|Array} [elements] This argument can be an Element, * Selector String, NodeList, p5.Element, * jQuery Element, or an Array of any of those. * @param {Function} [callback] Callback to invoke when the AudioContext From 7880ad218e4de50963cc748dc64a0abb91ddc045 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Sat, 22 Jan 2022 22:41:53 +0000 Subject: [PATCH 03/18] Added previous chainable jsDoc --- src/core/shape/vertex.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/core/shape/vertex.js b/src/core/shape/vertex.js index 35bffcaff7..971bdda246 100644 --- a/src/core/shape/vertex.js +++ b/src/core/shape/vertex.js @@ -962,6 +962,15 @@ p5.prototype.quadraticVertex = function(...args) { * Defaults to 0 if not specified. * @chainable */ +/** + * @method vertex + * @param {Number} x + * @param {Number} y + * @param {Number} [z] + * @param {Number} [u] the vertex's texture u-coordinate + * @param {Number} [v] the vertex's texture v-coordinate + * @chainable + */ p5.prototype.vertex = function(x, y, moveTo) { if (this._renderer.isP3D) { this._renderer.vertex(...arguments); From 6af0a3e1072b924a05e6896a5a107485645abac8 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Fri, 28 Jan 2022 14:17:06 +0000 Subject: [PATCH 04/18] reinstated removed params --- src/core/shape/vertex.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/shape/vertex.js b/src/core/shape/vertex.js index 971bdda246..cd4efd9dac 100644 --- a/src/core/shape/vertex.js +++ b/src/core/shape/vertex.js @@ -971,7 +971,7 @@ p5.prototype.quadraticVertex = function(...args) { * @param {Number} [v] the vertex's texture v-coordinate * @chainable */ -p5.prototype.vertex = function(x, y, moveTo) { +p5.prototype.vertex = function(x, y, moveTo, u, v) {) { if (this._renderer.isP3D) { this._renderer.vertex(...arguments); } else { From fa068490dd746e4e85bcb547b2c88aa67e8f1c83 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Fri, 28 Jan 2022 14:18:27 +0000 Subject: [PATCH 05/18] removed wrongly pasted chars --- src/core/shape/vertex.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/shape/vertex.js b/src/core/shape/vertex.js index cd4efd9dac..5b11fef20d 100644 --- a/src/core/shape/vertex.js +++ b/src/core/shape/vertex.js @@ -971,7 +971,7 @@ p5.prototype.quadraticVertex = function(...args) { * @param {Number} [v] the vertex's texture v-coordinate * @chainable */ -p5.prototype.vertex = function(x, y, moveTo, u, v) {) { + p5.prototype.vertex = function(x, y, moveTo, u, v) { if (this._renderer.isP3D) { this._renderer.vertex(...arguments); } else { From 774876c319aba80676eaf82ec04bfd2480a7bd3e Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Fri, 28 Jan 2022 14:21:18 +0000 Subject: [PATCH 06/18] linting formatting --- src/core/shape/vertex.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/shape/vertex.js b/src/core/shape/vertex.js index 5b11fef20d..a02c80b6ad 100644 --- a/src/core/shape/vertex.js +++ b/src/core/shape/vertex.js @@ -971,7 +971,7 @@ p5.prototype.quadraticVertex = function(...args) { * @param {Number} [v] the vertex's texture v-coordinate * @chainable */ - p5.prototype.vertex = function(x, y, moveTo, u, v) { +p5.prototype.vertex = function(x, y, moveTo, u, v) { if (this._renderer.isP3D) { this._renderer.vertex(...arguments); } else { From 8dc937b6324fff67115929cfea27c1b2d2c151b7 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Fri, 28 Jan 2022 14:54:25 +0000 Subject: [PATCH 07/18] Added 4x4 matrix method definition --- src/core/transform.js | 45 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index 1fe637e5d9..be60f12bb5 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -25,14 +25,45 @@ import p5 from './main'; * alt="The transformation matrix used when applyMatrix is called"/> * * @method applyMatrix - * @param {Number|Array} a numbers which define the 2×3 matrix to be multiplied, or an array of numbers - * @param {Number} b numbers which define the 2×3 matrix to be multiplied - * @param {Number} c numbers which define the 2×3 matrix to be multiplied - * @param {Number} d numbers which define the 2×3 matrix to be multiplied - * @param {Number} e numbers which define the 2×3 matrix to be multiplied - * @param {Number} f numbers which define the 2×3 matrix to be multiplied + * @param {Array} arr an array of numbers * @chainable - * @example + * + */ + +/** + * @method applyMatrix + * @param {Number} a_2x3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} b_2x3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} c_2x3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} d_2x3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} e_2x3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} f_2x3 numbers which define the 2×3 matrix to be multiplied + * @chainable + * + */ + +/** +* @method applyMatrix +* @param {Number} a_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} b_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} c_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} d_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} e_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} f_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} g_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} h_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} i_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} j_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} k_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} l_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} m_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} n_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} o_4x4 numbers which define the 4x4 matrix to be multiplied +* @param {Number} p_4x4 numbers which define the 4x4 matrix to be multiplied +* @chainable +* +* @example +* *
* * function setup() { From 2c0298720aff68678b3cdd74eb7f00ca532af60b Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:03:21 +0000 Subject: [PATCH 08/18] linting errors --- src/core/transform.js | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index be60f12bb5..2aae4533ce 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -27,7 +27,6 @@ import p5 from './main'; * @method applyMatrix * @param {Array} arr an array of numbers * @chainable - * */ /** @@ -39,31 +38,28 @@ import p5 from './main'; * @param {Number} e_2x3 numbers which define the 2×3 matrix to be multiplied * @param {Number} f_2x3 numbers which define the 2×3 matrix to be multiplied * @chainable - * */ /** -* @method applyMatrix -* @param {Number} a_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} b_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} c_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} d_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} e_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} f_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} g_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} h_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} i_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} j_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} k_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} l_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} m_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} n_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} o_4x4 numbers which define the 4x4 matrix to be multiplied -* @param {Number} p_4x4 numbers which define the 4x4 matrix to be multiplied -* @chainable -* -* @example -* + * @method applyMatrix + * @param {Number} a_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} c_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} d_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} e_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} f_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} g_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} h_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} i_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} j_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} k_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} l_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} m_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} n_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} o_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} p_4x4 numbers which define the 4x4 matrix to be multiplied + * @chainable + * @example *
* * function setup() { From 5918b1276e69cebe1417135a1be09c50c4fc1b51 Mon Sep 17 00:00:00 2001 From: Gareth Williams Date: Fri, 28 Jan 2022 15:49:27 +0000 Subject: [PATCH 09/18] linting errors --- src/core/transform.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index 2aae4533ce..ea2997813e 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -27,8 +27,7 @@ import p5 from './main'; * @method applyMatrix * @param {Array} arr an array of numbers * @chainable - */ - + */ /** * @method applyMatrix * @param {Number} a_2x3 numbers which define the 2×3 matrix to be multiplied @@ -38,8 +37,7 @@ import p5 from './main'; * @param {Number} e_2x3 numbers which define the 2×3 matrix to be multiplied * @param {Number} f_2x3 numbers which define the 2×3 matrix to be multiplied * @chainable - */ - + */ /** * @method applyMatrix * @param {Number} a_4x4 numbers which define the 4x4 matrix to be multiplied From 72aaaaf5abacfbfd925f8363e05ecb480092ecc1 Mon Sep 17 00:00:00 2001 From: Gareth Williams Date: Fri, 28 Jan 2022 15:54:18 +0000 Subject: [PATCH 10/18] Trying to resolve lint errors --- src/core/transform.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index ea2997813e..6b2fd65a84 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -27,7 +27,7 @@ import p5 from './main'; * @method applyMatrix * @param {Array} arr an array of numbers * @chainable - */ + */ /** * @method applyMatrix * @param {Number} a_2x3 numbers which define the 2×3 matrix to be multiplied @@ -37,7 +37,7 @@ import p5 from './main'; * @param {Number} e_2x3 numbers which define the 2×3 matrix to be multiplied * @param {Number} f_2x3 numbers which define the 2×3 matrix to be multiplied * @chainable - */ + */ /** * @method applyMatrix * @param {Number} a_4x4 numbers which define the 4x4 matrix to be multiplied From e9a391632ecb79e8ce32f19871a28ab1b6a0aca1 Mon Sep 17 00:00:00 2001 From: Gareth Williams Date: Mon, 31 Jan 2022 22:24:00 +0000 Subject: [PATCH 11/18] Update transform.js --- src/core/transform.js | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index 6b2fd65a84..fbb5724614 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -25,37 +25,37 @@ import p5 from './main'; * alt="The transformation matrix used when applyMatrix is called"/> * * @method applyMatrix - * @param {Array} arr an array of numbers + * @param {Array} arr an array of numbers - should be 6 or 16 length (2*3 or 4*4 matrix values) * @chainable */ /** * @method applyMatrix - * @param {Number} a_2x3 numbers which define the 2×3 matrix to be multiplied - * @param {Number} b_2x3 numbers which define the 2×3 matrix to be multiplied - * @param {Number} c_2x3 numbers which define the 2×3 matrix to be multiplied - * @param {Number} d_2x3 numbers which define the 2×3 matrix to be multiplied - * @param {Number} e_2x3 numbers which define the 2×3 matrix to be multiplied - * @param {Number} f_2x3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} e + * @param {Number} f * @chainable */ /** * @method applyMatrix - * @param {Number} a_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} c_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} d_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} e_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} f_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} g_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} h_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} i_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} j_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} k_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} l_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} m_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} n_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} o_4x4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} p_4x4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} e + * @param {Number} f + * @param {Number} g + * @param {Number} h + * @param {Number} i + * @param {Number} j + * @param {Number} k + * @param {Number} l + * @param {Number} m + * @param {Number} n + * @param {Number} o + * @param {Number} p * @chainable * @example *
From f56aeadb1d4556d20b8e2d469ebdc2a4dce73545 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:43:25 +0000 Subject: [PATCH 12/18] added 4x4 matrix image --- .../assets/transformation-matrix-4-4.png | Bin 0 -> 6864 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png diff --git a/docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png b/docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png new file mode 100644 index 0000000000000000000000000000000000000000..f4203b3312de13cc2c9b4bb100faaf01eb5f8373 GIT binary patch literal 6864 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 Date: Tue, 1 Feb 2022 11:47:13 +0000 Subject: [PATCH 13/18] Added 4-4 image to docs --- src/core/transform.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core/transform.js b/src/core/transform.js index fbb5724614..174709ef48 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -24,6 +24,9 @@ import p5 from './main'; * > The transformation matrix used when applyMatrix is called * + * The transformation matrix used when applyMatrix is called with 4x4 matrix + * * @method applyMatrix * @param {Array} arr an array of numbers - should be 6 or 16 length (2*3 or 4*4 matrix values) * @chainable From f161f709a4cc53771d6c7fd8c46382e4c3b04750 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Fri, 4 Feb 2022 10:06:17 +0000 Subject: [PATCH 14/18] Updated applymatrix images --- .../assets/transformation-matrix-4-4.png | Bin 6864 -> 17288 bytes .../assets/transformation-matrix.png | Bin 2713 -> 7740 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png b/docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png index f4203b3312de13cc2c9b4bb100faaf01eb5f8373..0a13ff730e5b1e4a2ece2e7192346dd294fd54cd 100644 GIT binary patch literal 17288 zcmeIaWl&t*x9*EO!QI{6J-BNK?j9hxLvXj??h=A)2(H03kOU6|4X#0g^qsu_y=(7t z_dRuXom;o+emEbZy}FxTYt1>v^E|)NF&b*}=qSV}P*70liV8AXP*Bij;P2Z=2;lb* z0#E$l4>(&%RY@qQ#`mZX=J4R($Sw-{?od!KzC8bePG@;R0{#=*Lsrk@m9ve9x4D}& zl)Rg@wUfJ@vxmuRB=8hzG({OnZ6A~4eALy~mK}YW)2>EQ?!xpphFb*_Wie@t|B$zvhBt8*prB?X4=4q*VQ`H zX-uykyeqfHjP_20Af2ST$w7GFv6@mCJxyFX>hU(pY0*oS3eUqIZh5TVt91zk!b=#H zxPtG^{~UaO>fFxaeUsAcv9Bf6YK&NdePZTfUUAf!Xl z0G{`v=wC0Z4aE{$A`^~c2Hq-K1G7`!pH6#VmXG9RIIaAjkV@cLp)7_o}~ zS5Kn8@Jf?-I19U+33{5>@ARs@+`nravpr(v9`dAF$T4%9KL+H1mZhg zJaNfmM&B(z)9oE(GlAS1gHPkN;0*512-FWJkaPy!udF{*&NDtIbTovE$FKCEu+C zfjscjn@sx;d=Wb9gWb_%nh1Ja2ol0!P)p;wKQx6L`FsOM@xRs z!sho{=jZtS1=FD8RhL0@w?toqQaN-Xb}wqYKL4Y}C>5v4PE*L=g(v-yyJP2|!-tWe zhbV|zj5Xx(CX-9#cTw2$tIAJv6=Mi)K>gcmnjK9VJ$|nbq}$7?mM8N}BP9?K!U-Sb z*v<~=5dP3dU>fkN3-WaDHW?U*gjIg=+ek&i@UxSr_`{jBkWRIQfDl!%_sJ^LF7HRC ze9?F!=ogbamWe{c64lxW`El7H!RO$*K*qSXs&t0f-K3yas%gGzPU6w!ym3`bzv5rnj}kJvxfntov-a#f#0f-=)t4< zWUh0iQ%o_9kG=6ry^kxsV~tuu9_$||R;mPd(q83Ny{;Z_Oo4@2G$C{NURD0}D=j#Z zp)jB+NT(7_n1Cnj?d!b2zx&fa{ZH9OlwKfh6n#I>G!0C)$1)*h>3lvm&n47-J6V3b z@vvk1W<7|*QVu>Pg%~_lI_b4!`mYQ&!)=E~>~^R`V=^r2_YzNSuX+RD?ZvXxxv;ly zW4kV^XL0r~^}Ope(mh&yG97kYe|O{gK{c1YJU`RKuhRW)CsU-Nz_03ZBMd`nzaoVc z+?nd4)fRUbJJa8FO^=Oyenm{D>zXj_)wk~wGeL9kQxo)EA4Cs-{p6sF%&3{b>+pls z_Gg#x^pwCl>t1E~j~LS*5anxF&)sU>dM^{7U+{b2k+g+qESkJ1az6#;WR-dhI@0{O z{gGB?q`s*vuEBP2Rr8@?5d@vP|72YLJ**dT-<`xNFHz0qpGKqzpj^O5*Sroro3#4u zyxw!s+^u-}qt1B6xWz6RvhNgl`wQ{2bkqyC1O}^z=ApQX^z@(2#C-N`uPW3$#pV|w z9t81kAy1DxImOaZ8TUp^annPS8*h3~&POOXwhU?w_-%C>}b-G=!Je z39sDD5r5b5ZIh+{x6ve88%YCmk@Z9dw<*z}Uc)xw!h(talzxXtWl-x`j5gG~RB}ep zY_qNUUf1Px>XuJdH17w2o(>Cm$@Be+!g1G;M6#iE67A4{FIe)Ux+->;n2hJo_uUyJ z@Zo&KO=X^ORp30FW7aCRgaDu42&cg9caYYi40G_*fr7>L-CiNZ@&r^b!&y*t9{uKC zVNix{aih&tjuwPN@^km~vU1{9W8kA7#7;MOEYdEpL$AkX0^%tI0%=S1&eq?SAmH+qi_w~!t_;%zYKKbq)T$8 zc|URA~7h~ zH4nHfhjF{k6mE=Ua>)fbY0oUpL?GZae1KpYw}|@)b?2FL^dptL})*cdi

L55#LpQo(1?|zl1@XQf#KGCi> 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 literal 6864 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 wK>Ui*N6K!Y{D+`_1LO!}Q~&?~ literal 2713 zcmb7GX*3j!8XiVtOvY#VgvmM-H(@Zwl66djtVxl5ONNv+24$HUQb?Bi5@X5EpsXK7 z8b(>hJ{j9!L@9eQU#P2d?!SBPkNckUF6Uj&`}}x*JSlcIW>5$W0ssJ@7UmfHqf9&U z1~Bj_eyqxpI!Y)zD~I#He*HQs|6emxdtQ5VBNT3La|y6fJ$Tz8=kT2N$Y8U_@(EZ!Fa+C#59`(LjU`!mMxYpd(nyZ!gzc=jKxa91`F_|yW#&Qmx zlwJCK0YT~6R|TH#@v+7}gSKTg9X&_C2~-YkZ(z9zYvk0+F<3C%z&G+pM}NOvHNCPH zw?%g;-7@v7WN_qskQ1;8SdW%nepTxQO+dAlMz-TCToX1V#}Dw+wq`5OeN}5v;{H_b zTzkjm!^Wlg)LF}>!+BB$lXYDh} zFFm4FjJLBYd+$`j2dblIS()^<&6N3FgP|)C?VQ5^kI8;vD7Bc0k`ku8c%vN2Cr!!K z*XXX6zVNhnEO~oIZMaqW+C4VPBk+&;7XdeOZW9!Z`4_hgKTDo%oi)Y3I%5SqRMu4B z8n=`p)h&3%?NxweSA{w>qe!0`KF#)r`TPY!*-Zk2y=zuY_#CYt!&jQDx$(?=*6UpG zsH~{J)=eLR?OSv~?OB1o&)a6A_b%Q@?HZ*_=$ZSJs)*dlK(@txR6wvBhAswE`3f?#@v(`;!Gh@@3N)RgcqR7F{3bhoecc;Y^CM>*1l?Kk56jKj7 zF2&$l+&m1#C~?8bHesece?Bq9V?x4w{%eEWpx zKjC7T;OCyjeT@3>aJGH+js-y`_v*v!JT}%b38QB#6q2IXTok>fq-SKbTAyy6+)cPSa75-_*Rp$QyYcYL2i@-=cuDfV4$eh0SHxQi=Epm_(oQT%+^z z|03~~KwqW0sIjBnGlPH{#ydOrt+FG+U(V&?#MOgB^*;@_*Go(lmqihbpW#^3PTYlcCJxLl^SdS_aC>*b)_07(9GjYy-?nI;9iEAE78j8}E?fR2Lml?? zN7(z!8vNj}8U==;O(#tYUz9%}1;Uz&9tO|)W{ zCxPr=q2=`t++)W8=08HYT~EcuCW$)JhXt`wL{JjQ8+bQls@4MMb<#9{nVeS-&c(ryqhJ@;PtXLl6e zqDU#3qY%8YS1`C2Qj$j%;@uXdCz}(p3wQc23Y>4(tg2K$`*L(fTStB0p@i$!ji#^l zR{jtzbOFTQH}UxArEn?zcZi zb{F^fJ3WKhQzP*jct(V;UKi(#4Q~CaDKPORf!sFje{gZNU@Rv{J0Y;^bFp|iG7_ai zz3Z9?vu@SZ{$W;W^sWDtE#jEziM)e@VsY`YE5t!bn1XyeEhTy0!KRRQ2VJPsWlzc~ z6wun#*_u;z%uI$vf{~usbj@@tZgK?Q51(5!`^8X=m!$L3s--vjkXD7aeah2hR88Z) z4o)?xmH)lL$+%=sFa~x6UGWM=NGp21&sVMo*|xXay4!}a?y8ox++jlF&PSj&1#21CI@rC8)84w? zSlb!oUW|9{xd;&#=?BQ%Ankbjk0KAzxb%(FXUHSq#ZWS;d|X5GKXbR;+b z6bSSr_7`n$6eb9%p4|R`OLeJ;OF4c9aS#G?8uo9-zuL{{PVaZDBAvb%9NQrDtgjGRUen=hFRu@QGSOLlgU=;vLOI;88J z*u5HOcKeUWm^w!A_pRB6fV7QO*4k@l>O^nkP?c6kbzI9{0Mt>2Wl+uF)c%~ElV|*O zixaw9{oqDjYesSdx8S+r%^uOGv=a9yV(cPYJ*5t$^xo*C_w^CJp(Wuorth*>r_!M8 zG1=R~9PuD{8oA}g3onHZ4;`IMT@}E{z|c8EIL3^V|HKn&79I;_yxYYW0eIFV77tg_ zP=c5I=b!di@BZB|`dVN@C>I!e^csqb*-B{iRRo0n2Th3yeqh%r z{<)>a;*87_h%v$m4h`@dngXBu*F)>4M}R)9i0#TBbm^q3WkZa`zhMH0J0QOf5*j4Ul89{LWQc?;hVS(51;*^KJ+TDzW*_g5R8#; zQFWNy~TrF0vAb<=Ulgi2X^j_SgFt Date: Fri, 4 Feb 2022 10:06:25 +0000 Subject: [PATCH 15/18] Update transform.js --- src/core/transform.js | 44 +++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index 174709ef48..52b67f37da 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -33,32 +33,32 @@ import p5 from './main'; */ /** * @method applyMatrix - * @param {Number} a - * @param {Number} b - * @param {Number} c - * @param {Number} d - * @param {Number} e - * @param {Number} f + * @param {Number} a1 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a2 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a3 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a4 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a5 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a6 numbers which define the 2×3 matrix to be multiplied * @chainable */ /** * @method applyMatrix - * @param {Number} a - * @param {Number} b - * @param {Number} c - * @param {Number} d - * @param {Number} e - * @param {Number} f - * @param {Number} g - * @param {Number} h - * @param {Number} i - * @param {Number} j - * @param {Number} k - * @param {Number} l - * @param {Number} m - * @param {Number} n - * @param {Number} o - * @param {Number} p + * @param {Number} b1 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b2 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b3 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b4 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b5 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b6 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b7 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b8 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b9 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b10 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b11 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b12 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b13 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b14 numbers which define the 4x4 matrix to be multiplied + * @param {Number} b15 numbers which define the 4x4 matrix to be multipliedo + * @param {Number} b16 numbers which define the 4x4 matrix to be multiplied * @chainable * @example *

From decc9bbf3c8e5e0f0b29dcf64d69c65f668eb2c2 Mon Sep 17 00:00:00 2001 From: Gareth Williams Date: Tue, 8 Feb 2022 10:26:32 +0000 Subject: [PATCH 16/18] Reverted param names --- src/core/transform.js | 44 +++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/core/transform.js b/src/core/transform.js index 52b67f37da..08a51190ef 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -33,32 +33,32 @@ import p5 from './main'; */ /** * @method applyMatrix - * @param {Number} a1 numbers which define the 2×3 matrix to be multiplied - * @param {Number} a2 numbers which define the 2×3 matrix to be multiplied - * @param {Number} a3 numbers which define the 2×3 matrix to be multiplied - * @param {Number} a4 numbers which define the 2×3 matrix to be multiplied - * @param {Number} a5 numbers which define the 2×3 matrix to be multiplied - * @param {Number} a6 numbers which define the 2×3 matrix to be multiplied + * @param {Number} a numbers which define the 2×3 or 4x4 matrix to be multiplied + * @param {Number} b numbers which define the 2×3 or 4x4 matrix to be multiplied + * @param {Number} c numbers which define the 2×3 or 4x4 matrix to be multiplied + * @param {Number} d numbers which define the 2×3 or 4x4 matrix to be multiplied + * @param {Number} e numbers which define the 2×3 or 4x4 matrix to be multiplied + * @param {Number} f numbers which define the 2×3 or 4x4 matrix to be multiplied * @chainable */ /** * @method applyMatrix - * @param {Number} b1 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b2 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b3 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b4 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b5 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b6 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b7 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b8 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b9 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b10 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b11 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b12 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b13 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b14 numbers which define the 4x4 matrix to be multiplied - * @param {Number} b15 numbers which define the 4x4 matrix to be multipliedo - * @param {Number} b16 numbers which define the 4x4 matrix to be multiplied + * @param {Number} a + * @param {Number} b + * @param {Number} c + * @param {Number} d + * @param {Number} e + * @param {Number} f + * @param {Number} g numbers which define the 4x4 matrix to be multiplied + * @param {Number} h numbers which define the 4x4 matrix to be multiplied + * @param {Number} i numbers which define the 4x4 matrix to be multiplied + * @param {Number} j numbers which define the 4x4 matrix to be multiplied + * @param {Number} k numbers which define the 4x4 matrix to be multiplied + * @param {Number} l numbers which define the 4x4 matrix to be multiplied + * @param {Number} m numbers which define the 4x4 matrix to be multiplied + * @param {Number} n numbers which define the 4x4 matrix to be multiplied + * @param {Number} o numbers which define the 4x4 matrix to be multiplied + * @param {Number} p numbers which define the 4x4 matrix to be multiplied * @chainable * @example *
From c99e6348d9efedd8158330621428b59d731b2284 Mon Sep 17 00:00:00 2001 From: Gareth Williams <6419944+Gaweph@users.noreply.github.com> Date: Tue, 8 Feb 2022 10:28:14 +0000 Subject: [PATCH 17/18] changed images to match param names --- .../assets/transformation-matrix-4-4.png | Bin 17288 -> 6864 bytes .../assets/transformation-matrix.png | Bin 7740 -> 2713 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png b/docs/yuidoc-p5-theme/assets/transformation-matrix-4-4.png index 0a13ff730e5b1e4a2ece2e7192346dd294fd54cd..f4203b3312de13cc2c9b4bb100faaf01eb5f8373 100644 GIT binary patch literal 6864 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

L55#LpQo(1?|zl1@XQf#KGCi> zF;?l5ejy}7&zOx@W=tiD(mi1yyhnX`7K+M_DcNn-52L?o5^yeSJC;H>z5aA9u(uh< zk>MC;(Wi&^g&F%bUI}lu>rhp-mi1>lDb7+{&Wv~W*XfILh2rn5;!~kR)_Q}28cF5f zle68x-<@4daEQbaaNrMxwU)jYy-@gZxkrQZyx#iIsuRuArKMpFmX=lq8w?Ujg|y}j zF*WSEyZ!!LNU*UwLO3k(e?T%7ZQTs0RPEACP>-I; zHhSul?K%Yxr*(4YpC5*@gaq8Juai|?7q{bUz#RDp?+V+0W6YkhYfu+G4~HnaVZs(K ziHC@vgrQ3ue#mvgu8#7B%qer+6v}4Q?^!?M1eZ%G=gsIu*Y&c) z5G%(w1ZJ-%4uh9^5X8=p!H63TgD+AoNdiWT(ea5xvX#Ihs0ny+}$Syfn+gr+!s&=;W0l(V4D;BdCYz`RvL2+3{F{D ze-hs>OMPfQ=h~(CR;|mS0V_8s8^^=ZJSfMNoY)?Xfz>~LgVfBgvi@SO7Nz|qLi5iu zaq889T|E3~tRGg&lveY|=h*mPEZ>XqJNawEOwpUY*Gg5*G_-LI|ZX_O?7#P_$>$A7eIQ8JF$o^9L$he;sMqR)2O1c{+X4^u=66f`e0| z%KW(*%DI&@TGjVxHlCgfI-XhMWM(+2Mx+Y0eBuRc+B3&hrM9A2DJT+5O#hSi3P_!( zo$G1WWg_VogzJM8mo&RIb;5w1eZ2nh@~0g=M741Yrqk(fPd_eOFnI6Iyx9*X|=Y^nVFSu?VpiT*IeIR25i1CEC@IPs=^)VLIn zN!ccal#rKISX~iEp_Ke#CBf?=leTfyXwXPki+vHPY(6@_&$$90d@77Py{18>CGXI) z3LS;xtP&4ml`JX>MQ%x8di5civK_4L*uZrj6{{AwaGTkzTBCL?Ek{B_ZYiWb_>kTH zveKLrP_fd78LcE-5#)Ol#PLX_J&+)dqnN4}9G}|yUrVt^RTi$w$#!-H761>jeuC_Iny)MT4G9dFI zpBe)`3{QvHfR)sH)zyNUD`qphOXauuU}U;nfFdtO&TN)%0LMk}xnfQ{V%>;!$gYY6 z+)2p!4jwbOPSk(IG?6T?w!0gvm%4Q4YJ4zUSpMX&mXd;f^W2|_O|kB% znRu^xWKpO*iG#~6ZU;%0)Q_iE-O6tefm_>>ZYGf>!kXL zdGVAwNk@TiPHp@;=tv)%>n5i(OXU=Ac*Jc_J`9Ayqgp+5$b(Bxoq%_uV$I6(_E6@ZzE9!}2${)q^{37%icX=l!EP_F$IdTF3Xb zcK3>)526x}SE(zYAtD-4%NK5!c)BfxD4M4xwvXNho(~a}?4Xm2F1`chaLCQPOEt)- zMdHMetIwwhdZtjqbQrIi+VO;rI-j_q-;h#yXJay(=dpR8hJnuvHr?Tyg@E1c%ZK+% zXYe~BHLGQkTsAU0gUktzUH&Jc4`+iZM3UB;w1M@c^knW>wHX#@%sl&*lEKJqm{SBn z+#yV@{LC3e+*^{ts1Bj7bV=E@%*wk0*)Q~B&E2~VKG{Egtt-iKOvZuH8zc8P<+d(N zV@8zyIEGM^gUpGA`l(AKx8XMX!Eu$ye27=ckJ3G2^99U1QU=%=q#I_Ek5KH~m}N-X zZh>OWjI$8AL}qxhGFvRJx*GL%!YonWrZo3dF)2Dd*0kM}zw+&DL@+~h4m3)?O>AF& zL_pSQ(ha^-WAbPXxDny24f1h(c)H-AyB&hcJASYt zcf|J6*NQ?KMWBUhNmOjG8$R!+Kae$GYmC~;~B{@NQ_E!V9zemDBS(+QobzFPH~ z<$E9tQfFLNm&L(0_eX(hKUe+jB`@!0Cc-7kNuhRhZtT zbI~aFR(IHAx#dmMJV$$fv&~eM_EoPQmp;a>tQ!A}fTa?Dj1WZ{UVj$P_4cRKr9rV@ zKV9B0e|F~R>TJor$8+9?yST^rC|?p0+wM=!g|E@=6qDXwlKtZoW$T%agf&VVw%M`D|EORhdIhLz z8l`7Z{y(Vak8|b91d!R}wTNfkepE#KzoDNkFqX@P9I%tw?2J^^!Tz_~oP(*Qnb_Ncz zU`zwfBaYS)s>bLLd)6@|9yAia+mDhv2D}+IW?Nm`4u`Tqb)I}P8%6C)$OA*#=9DP3 zO9-jKMsSM8W6>Gq+KS{Wwjzfac7%l!-Ln66LJbsdw=g!@kdfvdpA&H>UrKS^D-Tm)nt@}y;2wZ{@l-&U%gtAt@+-!+Ic=q zl7BfZGShxB&a!i8ooT$wYTTi{Tdd`~soyq{$>Cks^VfcF0F@)nb?M7!n9{O}#n_S?%PRO2R?1=&Z}$1A#ltqj3yVCi-K z9NY-%AerIy5b^j;x!@x;EMeH?gDui4m5lQ$R zT}XKCD7Q3$bp8yqjO%?u04QyB6=a>@W4JHW=x-IiW{$0R>?j!06h8U9=9Mct)98be zDY{;3@F^vbAwo{=I-EoOqNbcU+T68bZeY<-q@cx*gM{QERrOSf9`aCn6Yta6T zzNL-KqI%=ZIVW~tf4)MQEs#qZk=K%sbEM(J(S`S*c@)_$kZ5cAZ7#)EOq$GyCkU)Y zc1um=lez_aKy~{JoBAK~xkBTiCZm`cFwO;H`&}O~iMLUzc)?*{^>lI~eZbUXlF@77 zEG!0#e)ANaSyFs6nr55jg!B@V76w|Ka>g+4ktYJWmO;PIm5UPYh4`%*B(({%SYYdV zTI5t=WrmZGp|0|`50^TsYZo-+6zmVIBfJR%>4fUHFzmcueP$M z8ufr=$qg3%t>LT)+21kp@e~p!p^7$|DhRBC!@27bLjE&iH-cdM_42#=t*H^hxH3>{ z__@yg_E*$|t7uzB-J8C=EpfR1TXZ6BnSejJ{BJL2bkKTqftNyOf-TE0hu29QZRgk8 z@Q=7Qni#ihaDK6`qb~8-;trPVIGhci^kPnw<;iM$%1?fuvyD)s4I)+cY$bM)TYP6J z9<{7xbYkA5F$mDS%1|?KWjXwB4<63n2c<>P6gJi(471hPCq>P+wauy>dx(o0Hd)2M zMIpW*Wt3_LO2K;9hT2Z)XNRW)mddLSDz4zpr#VR)iX(`FU+nUAf3}_Bi#ZqZok~!2 z(0tg8LPrkBh2fAtdGJ7 znW1l`R$^9>(CAM~--|OFXV{4#tsVgfMe#3jdsJ3_O-_3E8%+xbw;1MjO!8J8{M?7> zZGWIxhZ0;L|199dlL&DZ9-H9Y5P`6BxcE*{oB+CMm= zZ_r`y6Fp3SVk;_W+;xe{OO?`@H))Pn+neWsGR3;OOKfy$RKQ8V$?5eSZag5wfYry2 z=i9IPA~HwExi?ctQF#{e?=DRLLoeWafG)ZqD^1VrCRqK(wTn21#y$u*S5+$k}juay}4HF_XuVW`7H zxOg5jLIPgn)8ez#L~0u{Z^qg7Z0^SFg$=_;eGlQlt!AG@oAGo+705=>y>A!YPLduU zg|&zF@p6sH2O|AVLvhAW(pjPgBanZxg9XMANczm%oWmLWrpKVcc zT9|9)o+v+v!m0OI>_IFdBi^`qg`i?UeSHU;a|OgUeUI98@)r4*ff6~HzvY=GDJFw= zC{mNtkWV92_~DUE#86FCb2}M>HNys$R4>Hb!^^_SM~*_xhi8p=o#mBg))m=<2eV zstbAec7j<8&`{8i+#QAX1&vw_dF)WV7|aTK*)Z}W_ztaqe43^$Xfs4MBx8zYv||)e z&yi4IqyI%SvEye#%e-k-8e~?`clwt^KwGJh*qceXpg;AvENJ2!ynW{;wF@ak+n^^NZtPK&! zj!Nq8qbywE&*4(WZLx|N;do*9na!Yu(UXP~nt)Z0(uRMaFYBuwhA1x*mB?AzDduG3 z2pcPAxRx2O*{;5@w++>33|-V5CVjjk=D=!w0G#YdygxN6!A%&^4ZUiPl{SlUyIZ;T zin0IkC!u0JnI{rT%Ij5kb%?QVR`|9h%nKiKYS_@lGG%ycIL?r-qQT$s5=7P|57o;w z39Cc6XbhYwi{6Zjo%3-cGZ}v1FRX{$_d-|_#({HlqEvCaO>CZ1(ap)l09rtjtY!l& z#!q}bJ64KmiRl=e8Rteu2x;)k=ujy5A)_jvbcWct-L@5CkRu+|mT0-59eFi*8z`YC zr+iP^_pCN8 zCEMit#M}ro!r4>0S18!ag6?G2wD}pT)-ftjTZY^HFL|N~L}7VN-RQ7r%T8&>{SzW2 zgLboRX`>oIT%mSzvi1spqa7|3n=K?t$ZnFeG5Q-%E9g5@pz_e!5mL{@-^|e>+imK8 zp5lVTQw^By8T~xDXMu+AH;fhau!LXb#LuzW-Mahc6kp8CaBjaym=2z1QB3?&HbK3!k#{{S-3b64Jcj3Dt zPOF0YS5Cc;*DW0Zjy^g`@E$!ApVG#G*Yk#nHV-F@Qfwr!Pan%QrF4qR<#tO;|I@7r zF43y%2wBP0nMOo;|2C=$c`VJWhAU4NC1QidFI0w^v;$_|MW5xK%67zueMuW3dfHtY z4ZO@5sgR+9b~zRqkxy~H7a)9#h2%QSh9^Qf~bZK|Ws%IA=R=*#1>4fIQ) zphGxNixoJbB?EvP6MRCn=M{Z~gd_~rjfQa7gyP-j~pFA0O?%^qB zeoX7Wd-8BSPEoHZcsDEX_zb8jC@3|W{vx0u@ zGn$r1J092<3HI^Mi3~RPy~*q?c9Skar`}nsqP^pAWSp|o!xTE@@jrc!pi|s_jpXy8 z>QEnv+XfY%RiPt_+4A_!xLYsi=eD12x86T7?409swV$-itGP?uZR0>30|y1UOyWtl zMg(=j zCsz`xWG56`^Psx5iRGi`3OIX-v8~p=sz_WZQ%r5+5a06mjSF6BFqanEdoytY(uk9w z%qvVHGlm3r+iOS zdrmPaFX0<}GJ99AG&N+~Rm*~qBRRJQI#k#Ewf7KAEi|&=*BeR`C|p90OQNT*4WtHi zT=5i3^nGoJ=FFpvg$%!|v`IrJzKH%N!@1&Sa%a%kT9JLV7V7|u~2$KIhpz1C9H zV%ma1izy#f>C;JxOTwxlQ*cg$nBJ)sF4>Rp#B+TxzIWAa6fB6K>O(m5c|B01;f9~C z{p!9?f=uW5BQDZ&LHR-`;FOo;ui8gwDKl~ zqo&H0*yzNPP6*YftDa;0F-}RCHp(VSTv^Qvtp8@B|8E$8wt1!oY%Ufvpa7O6`Ti>{ zV1Z#!3eqU=i(U1gzp0LAS*p+B<38FauVaHHok!5cXWkrztJwNIdl+ObJr5VkQT{i; zqZx}sXW(gXv=YArr(|?`dXkHuXsz{au4AU!&1YqfZr;i%#q@9HrHeriTNK>tOUHTV zknL3Uyc|9U;RIs7i+bjO(46zL4=w6+`CpsH{*$LME+a85)&J9QGLWvBL!XPsb@Pjx z<*-9vFf@GQxpkeCCB$b--0MgW61z$Hk;0{nJ$fAg0MkcH&G}Qg0wT^`=aKFpPn_^o z&k{r=_bDP}u{K|4R?iyE`l_DMy|w{tZZ}bv`mnT9m0tw(ItC!y^I5$I_jX2Nr$JjMFe19#_tdy5Bq?II%_osuHadiM zvn(HgrO-yDQ=>;U5>N6YJjEA@uz3gXEWSFTGcFGkglh^OxbCvZBR{qm4~&{AQU+Uz z5585FE@9{ow7LY{bgtjori0@EgOF(Nh9_Mcc~pw;#0hAFse|ZL^0#V=@wH=IHo$Wk zZY4(QNrtVlB3~I0`=6x$eC?^~;!6_M;pT?u6@`HvHVIb9D+AW6pe=M3(s6qUg;<-Y z&92Ed5NByEAeobQ*r9bil%*L`mPR*fe+zQmd^W>Yh1VZa0z+Ain1zYFd+=G3Q8yO9 zV^LjztzG2L;evNv+a}6hiZVM^#Um&Ud7x@ccn+!6(0>NYUwHn5YU-TYxIL4w;Gb`= z@#Gn*lJY=GtJP!TwPZaF{61@P=5&UFh|YjJw>?lvz1X|X zq=>wyP2H#X<`Rn*qm7HQiVTAY7k$;lBgBJA z-FlPbuCoEu>0IX?rg|(IIYA7ut0ZmeY!iy1`2XW_{D0_jU}{AWYnXo>2#5p`P;9Tj zN4UFan#82~Hup(sv%WvTj#>xFKZSvMQ}C9>OC-{Ov;HRrYbq({;p2SopUJI-<~~aC zMuQ8nQkY4)#UYRzfDC0==E(h0if0H25huenbA9ikN=vK`a~X4zFa_QOJ5U{FVd=%K z{47BNK?{2x^-T9wi+avFd7_)I(>E&nN)^}g0 zZ28of_WqPu#yjHOz#!vy%o4=~i`)wVotXAr(Vz*O+@+^xb8V#GpMw|Hcz*l*`ka%zrN<>_k<3n%w(S{*u295C_ z#zrKM&zV^=*I*QecLu9IH3UN_lo~jF_0cd2eL-8p2~UtwY|Xpiw-AmVp#Trb#f6Ij zQ>!x_{+ncZ^5pe3f0yxFVNhoeu20qspMbIOZu4)!1^O0bs6H}?4Q)mD*<*k>x~TtZ z&;t**kg9RyBZw$pk0KY?*D7nXgPay&G-dWDPZ z4a~echBi<%R$|vvPc@_8#ekp1oeS;WU{mbc=>F;cbPXOAzYVkn-hiUfx%plCKI2ep zpJe)R69U(r0}`*Vfy+XBu>V3K>`eYaA#nKqgvZ?`-IBNBC%nG`;0=K)2825s`seyl zP)^Wdj!}scyNZD!OY=y4`uc4+k$^L`$WOTVdnrR19;A!49oW|INgwSo(MRJ+=+0Xj zd6WJ|?GA}is;2m6D(%n{^K>SqBKLL693FqK&V;=AWzK3;FetMXPG?r&TGPS&+AEH} ziI&h|?sbf}==m3%Cx-N>`)E8K-wUg~vQ)K;8JqXatrT>*zCNuG0ZmV|T^J0k+41S0 zRnbxKH?W~U4Cz1}>aP!PfO!b6yiIUJUxDO)OhM(D+SUzYtKs^CG<*KowpVta`~vsh z4;acrXpPhDy9SrGVSf2^XeUJO#<&rMzY52HgQc;GZ1e*}euqapNk;r4ts;G*5OE*}yHg+9N11Vca$ zRdSDTy(`raiHr#+H~@1jSa{DfvI|+>!i+QKg|d>?zB1?VvbYRFZi4UMjDB`8Y&L~< z{BzJLea=Oea=dV5uIHIZp?D2&JQESw!@SquEd=ce5*WFJINIA%ehiJ2E=oAXL#@t3 ze(7rYHi3TqrAv-NAhr9L8pJ%_5j{&$VOVjNmVsC$=|yd3f_P~`S$fD&rYr18P}T>_ z&LP4ri)CK!wM8d(IG08DC_cw5G?0&RPwa8(Ca34?K-cHmE!{Dt2%(n770P944$IdW6p=MJn4@P%|`YGd^-I^ZWZm zSnF@Y>b<;fi^zUpgqMT0DcEV=rQp-Uv025@Z)>BNY{T(p{19oBT+NRZEq1dyAEZm( zB6z_CjVOwt*+kh^2vX(t%Ch3^W{UYpGd+Mp=%N1$g%Bj-gg<}Wbl&=ji`}||iyFtr z1^3YVu=dVe(*bxQ>yo)f4ZYy&>poZv1@uv6!2d*%kk)Ev`@_5#y0H*%PlJqip8zr-;iC_&PENM20$E zFfL3XnMxp z&*}%nmOoK{meX$(1t^K1ml`0oNG7^1)?94pYL>Nv$->1YfOeUb z9VvhxPoL;c0?C*9?ly4NF|?&90IK$=$H|AdL^(%EYQQGRT^09nXgDZtSI!e9`4t=w*8O-E9THorTKKHg=r#`$ zlFpk|_}lio+}R5vWqSTVRyZZ*0fO43Y16FO?H(PQE_bZqP+&VuTf|!riT0_=a_oql zcD-r|GBQ^B`?8cSGw=WAHWYjZZi7c~=kzxiIP=)fGez51igDUdmqj$B=YLAh-3Fi2 z_&AElnuvxnU&^W&oct(;$q@(LX-%~pRU8_ehwIP1=|iy}e!wkGi`^JujoM*XTE!5$ z+;Aqsz2qE0!D^CgKp|vUWz{o7LgcpAYq$`S5Y3cq)4Gc)>DyEj7iNS0__FhNNt~7z zE`X5=+Q?^JRPAlpu_~eXlX7D;`Z1)(wVQe#`@JVieA1DHo}r zSFTBY^n@7kV(W_!ms7my2l(J7<*(Fr!PXOPmT#=8+oJT4#RGTSm{ek;_8Sy9*;(JR zKj)!!j8~qVSUL~BlA+(7Ocixr>aE9Ez?q8R;7a7ZWn)z83F9m;LU4%k3#L>tCC2S{ zY_%G7fL76gsy+Y?@v+C@54Mx4SkrH~bVYYbIXZUY)8iI?Y%EH}A#!mWbaL3vh`5xf zs0+9Q9UxvRh8NkVuZQPk!PC?s-8&EHvm3hHn<1d!+NBTe&_F?(i^*3lrbUz_+eC(Q zJS$G!%wU|g4ErSa9(x`qqP~j*?naOP4pe&O`DH@yn$JafK7F6np$P)*xZhd)DoCbK znShzo+4>}`fap~*#!W_4YCl@Q-i3VF1JsvO96noF|0f2=@?U(a&HjH5c0laf^UO@%%}WutjPN7W z18;{HwjRJb*_RQEMcpN{@oVHH>e(q=mo@8ik=I>q1V2N6L+YDmktl>VkS*UFCB_r- z*u)25sQ>PG#y$b4y>FTy7)so9+E3E_R_L9Y;+t{#u3lLk8RC{)ycBy8XNx#fofV&rH8tIwf?C zeer(>>qo=Uj{Xvq6kG+-y;yoT_F%q|>EXlg}eD z7+ccpRJDKFyiMQzN$*-b*Y&Syi_Tu$2Wpchuy2^@!IfnSy|a?RsO@G8GyUkJWT zOuuN@f{r7&oOBeK{x9nOKLZR@*T)OrxqKI=ZXa*fGcCVwr@*eCf^xz*^1o8}jSf@k zW-ihVxm=u1dN@kERA!Unj(t3J_$U7v@+Sp!!B#vE?>&{GV|6iLjB*~6=p0cqr%cn0 z!8Y*YJC~<+YBeEvGm1|xVZcam)RE7-vU69ma8ym?dZo(F)%yMASpumU-Q^X+8nv9`-kdND>&BXx;L z$skrfmyTAwkxgDr; z>s6tkDZYiYrPd0)|0C`H{|+!%Q87m7zhabR!e^Vb{k_;&dg~vil=NP36X`BiWJDBB z67#oJ4GN!+{GlSgixC=9NEn9rBBYE}=J!-vH{e;UTQT29ReTxc3#df`BqR(z^=%Nq z7cGT8yuq#e;xj<-dtMS6{|0G6rsUkJhrUA~X2btXR95H-@D$C$7aDm0(k|{sJM)Ku zM2)`Trc@#K-Nvc_0+@R?BDi)8%VWi%zI$7c{BWWE=DioZh^0BqW)RKdQp=lH6(FVh zCtt<0P#3?m>enM~{jO1OB6co|5K_PRUnD&i68lP#NiYk5Ix>d?>i;T0;{N+4< z$$7~A!r7MzaJX72q1S(td9PAc8UU5(4Y+yT#@a}k*I|H1XC)JWLwL)IUiMV%>x!X} zYK8Wya+OxZ`h0U}`k90v>z};Y-2+oUDq3uJfo%%6LX{|4MuU27lg%<)GAKC!Qb4NG zUSi8>m?LyZgWe?j*BHS?5tC`qf-TXz~;1tQnz|jxY>!L}=|8UDdV)n&a_z{2y69aJyOI*D{~`br%5mabD=W*w8PL zTezqrT~gH#m^qbjPR@U+`Pd|@Lw1!P+6K%Qmv73{n=6aBBmnZC2jHiPb3k{!wx`;q zX^qHLiKu@3Ozt*HWxWmk2`YXB@H5+afLTbnDL~O9f1Xd!Lvktr=)n(&mB4eRS+6HA zdBcG7{3Ab@#v%+f@DVy$X+Xixp2&d_4jYt#j--ampu774UZKvu2*lvuJ}NVVHitkX%>-c|9Y#=ko`2e|Xt5xd43*Mlb)K zk|JY+VF%1x&g>&AL@Rf?2?R%bz$=(0w&F%|L4x~IYoSYxi+*j6prMFnxysu`-0iuO zO)3tf`!o#JAgr(ruRr4oQ(3TpH@bl#_Wor5eOs{57!z(>^?>FdTH%*3-!rWcZq?CO zDC&8j-Dux%t8u#-@>*4cJ=rtgi8@t7u6h$1;}U|c!0j6%`cmdFOh-PHn4{;m3ZD{Zxa6x%8-anOI6}y8)3;LH6 zu3#Fz72-HNQ)c@tgvJdI3%U^u6Z}0L55t!ir{4(Pql!foAYt$W{gU*&F$y$qr3`UI zwnseCS3i>QbAVtOb`&!Nss@Z>h@J)8Ey{$Qrzg{eEM=&yZYXL(BifuWv~`FVY;dS-qg<8)+v~IaOV$m@-c#zD zG({{JEz615UiS0P+_c8iE70RWv)GnUC+&C!)ZQZ!%umSr!i40=rxA&BI@v!{8{Vp zM8#E!fI1DZIM~`OL>?7X=VfKAvyxOG@lxVSQ1~YP7}%i$($BR9{~dMs$d2bEiIWqx31)knkw{7|vg{vBw>GILQnXpZeZ^7DC-qmg zZYR(AhEW}OVl$b=T{t8qz^uOI(j9YJ_w1>6q7IMoOqKEAxewqNopkwLKB!;f3|pLS z^m7vsO2E3?0FaIwQ7qMT*O)o$ZYO){1aJ_Wg{tU*h#gB`xsK{OPhwY?SWUSu<86JP zjqxSp8_RDWHMvJ_^V)M!0B?}go;~S)tdCcI!RAPw>p$kX`rae;dEUc*U+AS3p#)k# z1+PFTo{U;0X^9l0LL7}<=sy0Bqz|)wc^}Nh(3NNZp5OcgWr;f@9$x4@9MM3)7dQ$e z;Udp3_Hf$$#qiwMw`=FU?(dR_vN1UECppF=pNBRx@X9N2b2bn`k1H}n5M9lZ>%ws> zCfd(}7qwkvqlG%j|G-uz%x&xHp775Y2rG7?EAqzsDXWZxMp~D~24^zJfBcc&%oCIoTP@)Sm zz`4kp1p{_U#2ai`Asnj&55^!TcGCr##IHw#-b>bu)c$)_`ZwAw_c}`pZpri}ZEYx? zI;3?lf71qV`OBG%h!6MKoDrxY+HhxJNX=*_HsesN8Xy?thEQ9r3Iam=p&!xONEOUW z-ROQ>PrhGtKy6f@(Z9V{M5q2Gp;?Z%CC3j%*Y1@OuI1Wgs|J(XHbV~5@HSaQt2RtK z^lHr4DPebN8^n|1vFAmUgE+gJ>|-`ho`DR$%uLb+96iP}!bxeLI7ii}@DjFtoWEbs zFyjp&nVQf-wj9df%O6YlsKtGjO@>z*r4`ZBkS>%_WjxbLrli1dpaJnXEuVED})K&#B`F+LkC$6rgM+9*+&xC_}` zEJ07G`Ve>I$!|TLrm=u8uHN)6T0U!!?MPNft|{=*0_Jn+5)Re^MxeEYg89Y;)vMS> z3h@9RA)y8kfyTHe$)=5#YigoQBa(*adr1-JlErTsS!+e2Acr3$QAw{Je6Q{V(`4A@ zQo&Zcli5zdz+CO{JnVR$!y0&L%w>L$?3>&ZNznv0fs`lP>5*K^Mu@;ymTby5jb;Ho zyLhMVyLh`ea!4};Vut)r$3JRwC*ApBp4;^`n)jkw1@P)3*Y#==k}y6PKeO_2y5eZd z6`9D-1U5-Zr=FcrFsCc#P}!l(|5je}0^Wjx_o;v9Wi_mDeIr#k1LBZzGLwQgZ|CJ% zv&wn)KVOP~hC>_7hg9+Z@_P~fx4ulFBp%9U0_|E>X$Ke{ERZ1ZO%05d{~9YnDe@S8 zB{yhdBhjY!FK6ZpIgMOA;~HK&bsj*3)WG)h=namKKqo%?*B48?vN7~qkWK{bM_PCn sK=z;G>qqa(FsPHc@;L8pK?ugupkAsGvUm^p)(j{`Sv8qDDYMZ33$q=7od5s; diff --git a/docs/yuidoc-p5-theme/assets/transformation-matrix.png b/docs/yuidoc-p5-theme/assets/transformation-matrix.png index d99c85f0ff801a332e8bbce80911ac26f075ba33..0d425429224a6c4a4ff3108e811629e88c03507f 100644 GIT binary patch literal 2713 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 wK>Ui*N6K!Y{D+`_1LO!}Q~&?~ From b438a6977413cff0e6e821adf9a567bd277e1cf2 Mon Sep 17 00:00:00 2001 From: Gareth Williams Date: Tue, 8 Feb 2022 11:37:52 +0000 Subject: [PATCH 18/18] Update transform.js --- src/core/transform.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/transform.js b/src/core/transform.js index 08a51190ef..180acdaaf2 100644 --- a/src/core/transform.js +++ b/src/core/transform.js @@ -24,7 +24,7 @@ import p5 from './main'; * > The transformation matrix used when applyMatrix is called * - * The transformation matrix used when applyMatrix is called with 4x4 matrix * * @method applyMatrix