summaryrefslogtreecommitdiff
path: root/manuals/chickadee/Matrices.html
diff options
context:
space:
mode:
authorDavid Thompson <dthompson@vistahigherlearning.com>2020-04-08 17:10:29 -0400
committerDavid Thompson <dthompson@vistahigherlearning.com>2020-04-08 17:10:29 -0400
commite7d470e954d0a17ab1b2fe0065f46f78475272f9 (patch)
treeca4d9c00789f41dbbdbac33151824812dad879f7 /manuals/chickadee/Matrices.html
parentb660cbb5287f7cdcb6cebaba72afe8fc7d512616 (diff)
Add chickade 0.5.0 stuff.
Diffstat (limited to 'manuals/chickadee/Matrices.html')
-rw-r--r--manuals/chickadee/Matrices.html63
1 files changed, 25 insertions, 38 deletions
diff --git a/manuals/chickadee/Matrices.html b/manuals/chickadee/Matrices.html
index c5a0098..5f1e6fe 100644
--- a/manuals/chickadee/Matrices.html
+++ b/manuals/chickadee/Matrices.html
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
-<!-- Copyright (C) 2017, 2018, 2019 David Thompson davet@gnu.org
+<!-- Copyright (C) 2017-2020 David Thompson davet@gnu.org
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
@@ -18,7 +18,7 @@ Foundation Web site at http://www.gnu.org/licenses/fdl.html.
The document was typeset with
http://www.texinfo.org/ (GNU Texinfo).
-->
-<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
+<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Matrices (The Chickadee Game Toolkit)</title>
@@ -38,23 +38,14 @@ http://www.texinfo.org/ (GNU Texinfo).
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
-blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
-blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
-div.smalldisplay {margin-left: 3.2em}
-div.smallexample {margin-left: 3.2em}
-div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: inherit; font-size: smaller}
-pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: inherit; font-size: smaller}
-pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
@@ -89,21 +80,18 @@ ul.no-bullet {list-style: none}
</head>
<body lang="en">
-<a name="Matrices"></a>
-<div class="header">
+<span id="Matrices"></span><div class="header">
<p>
Next: <a href="Quaternions.html#Quaternions" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Grid.html#Grid" accesskey="p" rel="prev">Grid</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<a name="Matrices-1"></a>
-<h4 class="subsection">2.2.5 Matrices</h4>
+<span id="Matrices-1"></span><h4 class="subsection">2.2.5 Matrices</h4>
<p>The <code>(chickadee math matrix)</code> module provides an interface for
working with the most common type of matrices in game development: 4x4
transformation matrices.
</p>
-<a name="Another-Note-About-Performance"></a>
-<h4 class="subsubsection">2.2.5.1 Another Note About Performance</h4>
+<span id="Another-Note-About-Performance"></span><h4 class="subsubsection">2.2.5.1 Another Note About Performance</h4>
<p>Much like the vector API, the matrix API is commonly used in
performance critical code paths. In order to reduce the amount of
@@ -111,23 +99,22 @@ garbage generated and improve matrix multiplication performance, there
are many procedures that perform in-place modifications of matrix
objects.
</p>
-<a name="Matrix-Operations"></a>
-<h4 class="subsubsection">2.2.5.2 Matrix Operations</h4>
+<span id="Matrix-Operations"></span><h4 class="subsubsection">2.2.5.2 Matrix Operations</h4>
<dl>
-<dt><a name="index-make_002dmatrix4"></a>Procedure: <strong>make-matrix4</strong> <em>aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd</em></dt>
+<dt id="index-make_002dmatrix4">Procedure: <strong>make-matrix4</strong> <em>aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd</em></dt>
<dd>
<p>Return a new 4x4 matrix initialized with the given 16 values in
column-major format.
</p></dd></dl>
<dl>
-<dt><a name="index-make_002dnull_002dmatrix4"></a>Procedure: <strong>make-null-matrix4</strong></dt>
+<dt id="index-make_002dnull_002dmatrix4">Procedure: <strong>make-null-matrix4</strong></dt>
<dd><p>Return a new 4x4 matrix with all values initialized to 0.
</p></dd></dl>
<dl>
-<dt><a name="index-make_002didentity_002dmatrix4"></a>Procedure: <strong>make-identity-matrix4</strong></dt>
+<dt id="index-make_002didentity_002dmatrix4">Procedure: <strong>make-identity-matrix4</strong></dt>
<dd><p>Return a new 4x4 identity matrix. Any matrix multiplied by the
identity matrix yields the original matrix. This procedure is
equivalent to the following code:
@@ -142,12 +129,12 @@ equivalent to the following code:
</dd></dl>
<dl>
-<dt><a name="index-matrix4_003f"></a>Procedure: <strong>matrix4?</strong> <em>obj</em></dt>
+<dt id="index-matrix4_003f">Procedure: <strong>matrix4?</strong> <em>obj</em></dt>
<dd><p>Return <code>#t</code> if <var>obj</var> is a 4x4 matrix.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002a"></a>Procedure: <strong>matrix4*</strong> <em>. matrices</em></dt>
+<dt id="index-matrix4_002a">Procedure: <strong>matrix4*</strong> <em>. matrices</em></dt>
<dd><p>Return a new 4x4 matrix containing the product of multiplying all of
the given <var>matrices</var>.
</p>
@@ -155,7 +142,7 @@ the given <var>matrices</var>.
</p></dd></dl>
<dl>
-<dt><a name="index-orthographic_002dprojection"></a>Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt>
+<dt id="index-orthographic_002dprojection">Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt>
<dd>
<p>Return a new 4x4 matrix that represents an orthographic (2D)
projection for the horizontal clipping plane <var>top</var> and
@@ -164,7 +151,7 @@ and the depth clipping plane <var>near</var> and <var>far</var>.
</p></dd></dl>
<dl>
-<dt><a name="index-perspective_002dprojection"></a>Procedure: <strong>perspective-projection</strong> <em>fov aspect-ratio near far</em></dt>
+<dt id="index-perspective_002dprojection">Procedure: <strong>perspective-projection</strong> <em>fov aspect-ratio near far</em></dt>
<dd>
<p>Return a new 4x4 matrix that represents a perspective (3D) projection
with a field of vision of <var>fov</var> radians, an aspect ratio of
@@ -173,68 +160,68 @@ and <var>far</var>.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002dtranslate"></a>Procedure: <strong>matrix4-translate</strong> <em>x</em></dt>
+<dt id="index-matrix4_002dtranslate">Procedure: <strong>matrix4-translate</strong> <em>x</em></dt>
<dd><p>Return a new 4x4 matrix that represents a translation by <var>x</var>, a 2D
vector, a 3D vector, or a rectangle (in which case the bottom-left
corner of the rectangle is used).
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002dscale"></a>Procedure: <strong>matrix4-scale</strong> <em>s</em></dt>
+<dt id="index-matrix4_002dscale">Procedure: <strong>matrix4-scale</strong> <em>s</em></dt>
<dd><p>Return a new 4x4 matrix that represents a scaling along the X, Y, and
Z axes by the scaling factor <var>s</var>, a real number.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002drotate"></a>Procedure: <strong>matrix4-rotate</strong> <em>q</em></dt>
+<dt id="index-matrix4_002drotate">Procedure: <strong>matrix4-rotate</strong> <em>q</em></dt>
<dd><p>Return a new 4x4 matrix that represents a rotation about an arbitrary
axis defined by the quaternion <var>q</var>.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002drotate_002dz"></a>Procedure: <strong>matrix4-rotate-z</strong> <em>theta</em></dt>
+<dt id="index-matrix4_002drotate_002dz">Procedure: <strong>matrix4-rotate-z</strong> <em>theta</em></dt>
<dd><p>Return a new 4x4 matrix that represents a rotation about the Z axis by
<var>theta</var> radians.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002didentity_0021"></a>Procedure: <strong>matrix4-identity!</strong> <em>matrix</em></dt>
+<dt id="index-matrix4_002didentity_0021">Procedure: <strong>matrix4-identity!</strong> <em>matrix</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain the identity matrix.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002dmult_0021"></a>Procedure: <strong>matrix4-mult!</strong> <em>dest a b</em></dt>
+<dt id="index-matrix4_002dmult_0021">Procedure: <strong>matrix4-mult!</strong> <em>dest a b</em></dt>
<dd><p>Multiply the 4x4 matrix <var>a</var> by the 4x4 matrix <var>b</var> and store
the result in the 4x4 matrix <var>dest</var>.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002dtranslate_0021"></a>Procedure: <strong>matrix4-translate!</strong> <em>matrix x</em></dt>
+<dt id="index-matrix4_002dtranslate_0021">Procedure: <strong>matrix4-translate!</strong> <em>matrix x</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain a translation by <var>x</var>, a 2D
vector, a 3D vector, or a rectangle (in which case the bottom-left
corner of the rectangle is used).
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002dscale_0021"></a>Procedure: <strong>matrix4-scale!</strong> <em>matrix s</em></dt>
+<dt id="index-matrix4_002dscale_0021">Procedure: <strong>matrix4-scale!</strong> <em>matrix s</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain a scaling along the X, Y, and
Z axes by the scaling factor <var>s</var>, a real number.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002drotate_0021"></a>Procedure: <strong>matrix4-rotate!</strong> <em>matrix q</em></dt>
+<dt id="index-matrix4_002drotate_0021">Procedure: <strong>matrix4-rotate!</strong> <em>matrix q</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain a rotation about an arbitrary
axis defined by the quaternion <var>q</var>.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002drotate_002dz_0021"></a>Procedure: <strong>matrix4-rotate-z!</strong> <em>matrix theta</em></dt>
+<dt id="index-matrix4_002drotate_002dz_0021">Procedure: <strong>matrix4-rotate-z!</strong> <em>matrix theta</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain a rotation about the Z axis by
<var>theta</var> radians.
</p></dd></dl>
<dl>
-<dt><a name="index-matrix4_002d2d_002dtransform_0021"></a>Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:skew]</em></dt>
+<dt id="index-matrix4_002d2d_002dtransform_0021">Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:skew]</em></dt>
<dd>
<p>Modify <var>matrix</var> in-place to contain the transformation described
by <var>position</var>, a 2D vector or rectangle, <var>rotation</var>, a scalar
@@ -245,7 +232,7 @@ particular transformation will not be included in the result.
</p></dd></dl>
<dl>
-<dt><a name="index-transform_0021"></a>Procedure: <strong>transform!</strong> <em>matrix v</em></dt>
+<dt id="index-transform_0021">Procedure: <strong>transform!</strong> <em>matrix v</em></dt>
<dd><p>Modify the 2D vector <var>v</var> in-place by multiplying it by the 4x4
matrix <var>matrix</var>.
</p></dd></dl>