1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<HTML>
3<HEAD>
4<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
5<META name="Author" content="Leona">
6<META name="GENERATOR" content="Microsoft FrontPage 5.0">
7<META http-equiv="Content-Style-Type" content="text/css">
8<LINK rel="stylesheet" type="text/css" href="../CSS/revolution.css">
9<TITLE><STRONG><EM><CODE>mtx</CODE></EM></STRONG></TITLE>
10</HEAD>
11<BODY>
12<H1>Matrix-Vector (MTX) Library API Function List</H1>
13<H2><A name="General">General</A></H2>
14<TABLE border="1">
15  <TBODY>
16    <TR>
17<TD><A href="../mtx/general/MTXConcat.html">MTXConcat</A></TD>
18<TD>Multiplies matrices a and b and stores the result in ab.</TD>
19    </TR>
20    <TR>
21<TD><A href="../mtx/general/MTXConcatArray.html">MTXConcatArray</A></TD>
22<TD>Performs matrix concatenation for arrays.</TD>
23    </TR>
24    <TR>
25<TD><A href="../mtx/general/MTXCopy.html">MTXCopy</A></TD>
26<TD>Copies the contents of src into dst.</TD>
27    </TR>
28    <TR>
29<TD><A href="../mtx/general/MTXIdentity.html">MTXIdentity</A></TD>
30<TD>Sets matrix m as an identity matrix.</TD>
31    </TR>
32    <TR>
33<TD><A href="../mtx/general/MTXInverse.html">MTXInverse</A></TD>
34<TD>Generates the inverse of a 3x4 matrix at high speed.</TD>
35    </TR>
36    <TR>
37<TD><A href="../mtx/general/MTXInvXpose.html">MTXInvXpose</A></TD>
38<TD>Calculates the transpose of the inverse of a 3x4 matrix.</TD>
39    </TR>
40    <TR>
41<TD><A href="../mtx/general/MTXMultVec.html">MTXMultVec</A></TD>
42<TD>Post-multiplies matrix m by the 3D vector or point.</TD>
43    </TR>
44    <TR>
45<TD><A href="../mtx/general/MTXMultVecSR.html">MTXMultVecSR</A></TD>
46<TD>Post-multiplies the 3x3 sub-matrix by the 3D vector or point.</TD>
47    </TR>
48    <TR>
49<TD><A href="../mtx/general/MTXMultVecArray.html">MTXMultVecArray</A></TD>
50<TD>Post-multiplies matrix m by the number of 3D vectors given by count.</TD>
51    </TR>
52    <TR>
53<TD><A href="../mtx/general/MTXMultVecArraySR.html">MTXMultVecArraySR</A></TD>
54<TD>Post-multiplies a 3x3 sub-matrix (the scaling and rotation component of m) by the number of 3D vectors given by count.</TD>
55    </TR>
56    <TR>
57<TD><A href="../mtx/general/MTXRowCol.html">MTXRowCol</A></TD>
58<TD>This macro provides safe access to the elements of Mtx and Mtx44 type matrices.</TD>
59    </TR>
60    <TR>
61<TD><A href="../mtx/general/MTXTranspose.html">MTXTranspose</A></TD>
62<TD>Copies the transpose of src to xPose.</TD>
63    </TR>
64  </TBODY>
65</TABLE>
66<H2><A name="Model">Model</A></H2>
67<TABLE border="1">
68  <TBODY>
69    <TR>
70<TD><A href="../mtx/model/MTXQuat.html">MTXQuat</A></TD>
71<TD>Sets a rotation matrix from a quaternion.</TD>
72    </TR>
73    <TR>
74<TD><A href="../mtx/model/MTXReflect.html">MTXReflect</A></TD>
75<TD>Reflects a rotation matrix with respect to a plane.&nbsp;</TD>
76    </TR>
77    <TR>
78<TD><A href="../mtx/model/MTXRotAxisDeg.html">MTXRotAxisDeg</A></TD>
79<TD>Sets the matrix to be rotated around the axis having the (x,y,z) component specified by axis.</TD>
80    </TR>
81    <TR>
82<TD><A href="../mtx/model/MTXRotAxisRad.html">MTXRotAxisRad,</A></TD>
83<TD>Sets the matrix to be rotated around the axis having the (x,y,z) component specified by axis.</TD>
84    </TR>
85    <TR>
86<TD><A href="../mtx/model/MTXRotDeg.html">MTXRotDeg</A></TD>
87<TD>Creates a rotation matrix about one of the major (X, Y, Z ) axes.</TD>
88    </TR>
89    <TR>
90<TD><A href="../mtx/model/MTXRotRad.html">MTXRotRad,</A></TD>
91<TD>Creates a rotation matrix about one of the major (X, Y, Z ) axes.</TD>
92    </TR>
93    <TR>
94<TD><A href="../mtx/model/MTXRotTrig.html">MTXRotTrig</A></TD>
95<TD>Creates the matrix that will undergo the rotation specified by in and cos about one of the major (X, Y, Z ) axes.</TD>
96    </TR>
97    <TR>
98<TD><A href="../mtx/model/MTXScale.html">MTXScale</A></TD>
99<TD>Sets the scaling matrix consisting of the three scaling parameters (x,y,z).</TD>
100    </TR>
101    <TR>
102<TD><A href="../mtx/model/MTXScaleApply.html">MTXScaleApply</A></TD>
103<TD>Applies the scaling transform specified by ( xS, yS, zS ) to <STRONG><EM>src</EM></STRONG> and stores the result in <STRONG><EM>dst</EM></STRONG>.</TD>
104    </TR>
105    <TR>
106<TD><A href="../mtx/model/MTXTrans.html">MTXTrans</A></TD>
107<TD>Sets the matrix that will undergo parallel translation consisting of the three parallel translation parameters (x,y,z).</TD>
108    </TR>
109    <TR>
110<TD><A href="../mtx/model/MTXTransApply.html">MTXTransApply</A></TD>
111<TD>Applies the parallel translation specified by ( xT, yT, zT ) to <STRONG><EM>src</EM></STRONG> and stores the result in <STRONG><EM>dst</EM></STRONG>.</TD>
112    </TR>
113  </TBODY>
114</TABLE>
115<H2><A name="View"></A>View</H2>
116<TABLE border="1">
117  <TBODY>
118    <TR>
119<TD><A href="../mtx/view/MTXLookAt.html">MTXLookAt</A></TD>
120<TD>Creates the matrix that will be converted from world coordinate space to camera space.</TD>
121    </TR>
122  </TBODY>
123</TABLE>
124<H2><A name="Projection">Projection</A></H2>
125<TABLE border="1">
126  <TBODY>
127    <TR>
128<TD><A href="../mtx/Projection/MTXFrustum.html">MTXFrustum</A></TD>
129<TD>Sets the 4x4 perspective transform matrix based on the viewing volume dimension.</TD>
130    </TR>
131    <TR>
132<TD><A href="../mtx/Projection/MTXOrtho.html">MTXOrtho</A></TD>
133<TD>Sets teh 4x4 matrix for orthographic transformation.</TD>
134    </TR>
135    <TR>
136<TD><A href="../mtx/Projection/MTXPerspective.html">MTXPerspective</A></TD>
137<TD>Sets the 4x4 perspective transform matrix based on two parameters for field-of-view and aspect ratio.</TD>
138    </TR>
139  </TBODY>
140</TABLE>
141<H2><A name="Texture Projection">Texture Projection</A></H2>
142<TABLE border="1">
143  <TBODY>
144    <TR>
145<TD><A href="../mtx/Texture_Projection/MTXLightFrustum.html">MTXLightFrustum</A></TD>
146<TD>Sets the 3x4 perspective transform matrix based on the dimension number of the viewing volume, two scaling values, and a parallel translation value.</TD>
147    </TR>
148    <TR>
149<TD><A href="../mtx/Texture_Projection/MTXLightOrtho.html">MTXLightOrtho</A></TD>
150<TD>Sets the 3x4 matrix for orthographic projection.</TD>
151    </TR>
152    <TR>
153<TD><A href="../mtx/Texture_Projection/MTXLightPerspective.html">MTXLightPerspective</A></TD>
154<TD>Sets the 3x4 perspective transform matrix based on the field-of-view, two scaling values for aspectRatio, and two parallel translation values.</TD>
155    </TR>
156  </TBODY>
157</TABLE>
158<H2><A name="Stack">Stack</A></H2>
159<TABLE border="1">
160  <TBODY>
161    <TR>
162<TD><A href="../mtx/stack/MTXAllocStack.html">MTXAllocStack</A></TD>
163<TD>This macro allocates memory for MtxStack.</TD>
164    </TR>
165    <TR>
166<TD><A href="../mtx/stack/MTXFreeStack.html">MTXFreeStack</A></TD>
167<TD>This macro frees memory that has been allocated to the Ptr-&gt;stackBase by MTXAllocStack.</TD>
168    </TR>
169    <TR>
170<TD><A href="../mtx/stack/MTXGetStackPtr.html">MTXGetStackPtr</A></TD>
171<TD>Returns a pointer to the top matrix in the matrix stack pointed to by sPtr-&gt;stackPtr.</TD>
172    </TR>
173    <TR>
174<TD><A href="../mtx/stack/MTXInitStack.html">MTXInitStack</A></TD>
175<TD>Initializes the other members of MTXStack after MTXAllocStack allocates memory for the stackBase pointer for MTXStack.</TD>
176    </TR>
177    <TR>
178<TD><A href="../mtx/stack/MTXPop.html">MTXPop</A></TD>
179<TD>Pops the top matrix beginning from stackPtr, a member of sPtr (sPtr-&gt;stackPtr<TT>-MTX_PTR_OFFSET</TT>).</TD>
180    </TR>
181    <TR>
182<TD><A href="../mtx/stack/MTXPush.html">MTXPush</A></TD>
183<TD>Copies matrix m to available elements in the stack pointed by sPtr.</TD>
184    </TR>
185    <TR>
186<TD><A href="../mtx/stack/MTXPushFwd.html">MTXPushFwd</A></TD>
187<TD>This function pushes transform matrices forward in the stack.</TD>
188    </TR>
189    <TR>
190<TD><A href="../mtx/stack/MTXPushInv.html">MTXPushInv</A></TD>
191<TD>Calculates the inverse of m, multiplies by sPtr-&gt;stackPtr from the front, and pushes the result on the stack.</TD>
192    </TR>
193    <TR>
194<TD><A href="../mtx/stack/MTXPushInvXpose.html">MTXPushInvXpose</A></TD>
195<TD>Pushes a forward-facing composite transform matrix of an inverse transpose matrix.</TD>
196    </TR>
197  </TBODY>
198</TABLE>
199<H2><A name="Vector">Vector</A></H2>
200<TABLE border="1">
201  <TBODY>
202    <TR>
203<TD><A href="../mtx/vector/VECAdd.html">VECAdd</A></TD>
204<TD>Finds the sum of two vectors.</TD>
205    </TR>
206    <TR>
207<TD><A href="../mtx/vector/VECCrossProduct.html">VECCrossProduct</A></TD>
208<TD>Finds the outer product of two vectors.</TD>
209    </TR>
210    <TR>
211<TD><A href="../mtx/vector/VECDotProduct.html">VECDotProduct</A></TD>
212<TD>Finds the inner product of two vectors.</TD>
213    </TR>
214    <TR>
215<TD><A href="../mtx/vector/VECHalfAngle.html">VECHalfAngle</A></TD>
216<TD>Finds the halfway vector between two vectors.</TD>
217    </TR>
218    <TR>
219<TD><A href="../mtx/vector/VECMag.html">VECMag</A></TD>
220<TD>Finds the length of the given vector.</TD>
221    </TR>
222    <TR>
223<TD><A href="../mtx/vector/VECNormalize.html">VECNormalize</A></TD>
224<TD>Normalizes src and stores it in unit.</TD>
225    </TR>
226    <TR>
227<TD><A href="../mtx/vector/VECReflect.html">VECReflect</A></TD>
228<TD>Reflects an incident vector versus a normal such that the angle of incidence equals the angle of reflection.</TD>
229    </TR>
230    <TR>
231<TD><A href="../mtx/vector/VECScale.html">VECScale</A></TD>
232<TD>Multiplies a vector by a scalar.</TD>
233    </TR>
234    <TR>
235<TD><A href="../mtx/vector/VECSquareDistance.html">VECSquareDistance</A></TD>
236<TD>Returns the square of the distance between vectors a and b.</TD>
237    </TR>
238    <TR>
239<TD><A href="../mtx/vector/VECSquareMag.html">VECSquareMag</A></TD>
240<TD>Returns the square of the magnitude of vector v.</TD>
241    </TR>
242    <TR>
243<TD><A href="../mtx/vector/VECSubtract.html">VECSubtract</A></TD>
244<TD>Subtracts vector b from vector a (a-b) and stores the result in a_b.</TD>
245    </TR>
246  </TBODY>
247</TABLE>
248<H2><A name="Quaternion">Quaternion</A></H2>
249<TABLE border="1">
250  <TBODY>
251    <TR>
252<TD><A href="../mtx/Quaternion/QUATAdd.html">QUATAdd</A></TD>
253<TD>Adds two quaternions ( <code><em><strong>p</strong></em> + <em><strong>q</strong></em></code> ) and places the result in <code><em><strong>r</strong></em></code>.</TD>
254    </TR>
255    <TR>
256<TD><A href="../mtx/Quaternion/QUATDivide.html">QUATDivide</A></TD>
257<TD>Divides quaternion <EM><STRONG><CODE>p</CODE></STRONG></EM> by another quaternion <CODE><EM><STRONG>q</STRONG></EM></CODE> and stores the result in <CODE><EM><STRONG>r</STRONG></EM></CODE>.</TD>
258    </TR>
259    <TR>
260<TD><A href="../mtx/Quaternion/QUATDotProduct.html">QUATDotProduct</A></TD>
261<TD>Computes the dot product of two given quaternions.</TD>
262    </TR>
263    <TR>
264<TD><A href="../mtx/Quaternion/QUATExp.html">QUATExp</A></TD>
265<TD>Exponentiates quaternion <code><em><strong>q</strong></em></code> and stores the resulting quaternion in <strong><em><font face="Courier New"><code>r</code></font></em></strong>.</TD>
266    </TR>
267    <TR>
268<TD><A href="../mtx/Quaternion/QUATInverse.html">QUATInverse</A></TD>
269<TD>Computes the inverse of quaternion <code><em><strong>src</strong></em></code> and place resultant quaternion in <strong><em><code>inv</code></em></strong>.</TD>
270    </TR>
271    <TR>
272<TD><A href="../mtx/Quaternion/QUATLerp.html">QUATLerp</A></TD>
273<TD>Performs linear interpolation on two quaternions.</TD>
274    </TR>
275    <TR>
276<TD><A href="../mtx/Quaternion/QUATLogN.html">QUATLogN</A></TD>
277<TD>Computes the natural logarithm of quaternion <code><em><strong>q</strong></em></code> and stores the resulting pure quaternion in <strong><em><font face="Courier New"><code>r</code></font></em></strong>.</TD>
278    </TR>
279    <TR>
280<TD><A href="../mtx/Quaternion/QUATMtx.html">QUATMtx</A></TD>
281<TD>Converts a model rotation matrix to a unit quaternion.</TD>
282    </TR>
283    <TR>
284<TD><A href="../mtx/Quaternion/QUATMultiply.html">QUATMultiply</A></TD>
285<TD>Multiplies two quaternions (<CODE><EM><STRONG>p</STRONG></EM> <CODE>x</CODE> <EM><STRONG>q</STRONG></EM></CODE>) and stores the result in <CODE><EM><STRONG>pq</STRONG></EM></CODE>.</TD>
286    </TR>
287    <TR>
288<TD><A href="../mtx/Quaternion/QUATNormalize.html">QUATNormalize</A></TD>
289<TD>Normalizes a quaternion <code><em><strong>src</strong></em></code> and places resultant unit quaternion in <strong><em><font face="Courier New"><code>unit</code></font></em></strong>.</TD>
290    </TR>
291    <TR>
292<TD><A href="../mtx/Quaternion/QUATRotAxisRad.html">QUATRotAxisRad</A></TD>
293<TD>Sets a quaternion for rotation about an arbitrary axis whose ( x, y, z ) components are specified by <code><em><strong>axis</strong></em></code>.&nbsp;</TD>
294    </TR>
295    <TR>
296<TD><A href="../mtx/Quaternion/QUATScale.html">QUATScale</A></TD>
297<TD>Multiplies a quaternion by a scalar value.</TD>
298    </TR>
299    <TR>
300<TD><A href="../mtx/Quaternion/QUATSlerp.html">QUATSlerp</A></TD>
301<TD>Computes spherical linear interpolation (Slerp) of two quaternions.</TD>
302    </TR>
303    <TR>
304<TD><A href="../mtx/Quaternion/QUATSquad.html">QUATSquad</A></TD>
305<TD>Performs spherical 3D (Squad) interpolation on two quaternions.</TD>
306    </TR>
307    <TR>
308<TD><A href="../mtx/Quaternion/QUATSubtract.html">QUATSubtract</A></TD>
309<TD>Subtracts two quaternions ( <code><em><strong>p</strong></em> - <em><strong>q</strong></em></code> ) and places the result in <code><em><strong>r</strong></em></code>.</TD>
310    </TR>
311  </TBODY>
312</TABLE>
313<H2><A name="Pairedsingles">Special Paired Single Operations</A></H2>
314<TABLE border="1">
315  <TBODY>
316    <TR>
317<TD><A href="../mtx/Paired_Singles/PSMTXReorder.html">PSMTXReorder</A></TD>
318<TD>Converts a matrix from row-major to column-major format.</TD>
319    </TR>
320    <TR>
321<TD><A href="../mtx/Paired_Singles/PSMTXROMultVecArray.html">PSMTXROMultVecArray</A></TD>
322<TD>This is the column-major matrix version of PSMTXMultVecArray.</TD>
323    </TR>
324  </TBODY>
325</TABLE>
326<H2><A name="Unit Conversion">Unit Conversion</A></H2>
327<TABLE border="1">
328  <TBODY>
329    <TR>
330<TD><A href="../mtx/Unit_Conversion/MTXDegToRad.html">MTXDegToRad</A></TD>
331<TD>Macro to convert degrees to radians.</TD>
332    </TR>
333    <TR>
334<TD><A href="../mtx/Unit_Conversion/MTXRadToDeg.html">MTXRadToDeg</A></TD>
335<TD>Macro to convert radians to degrees.</TD>
336    </TR>
337  </TBODY>
338</TABLE>
339<H2><A name="Structures">Structures</A></H2>
340<TABLE border="1">
341  <TBODY>
342    <TR>
343<TD><A href="../mtx/structures/Mtx_MtxPtr.html">Mtx,MtxPtr</A></TD>
344<TD>This structure represents a 3x4 2D matrix consisting of 12 floating-point values.</TD>
345    </TR>
346    <TR>
347<TD><A href="../mtx/structures/Mtx44_Mtx44Ptr.html">Mtx44,Mtx44Ptr</A></TD>
348<TD>This structure represents a 4x4 2D matrix consisting of 16 floating-point values.</TD>
349    </TR>
350    <TR>
351<TD><A href="../mtx/structures/MtxStack_MtxStackPtr.html">MtxStack,MtxStackPtr</A></TD>
352<TD>This represents an array of automatically allocated Mtx type matrices.</TD>
353    </TR>
354    <TR>
355<TD><A href="../mtx/structures/Point3d_Point3dPtr.html">Point3d,Point3dPtr</A></TD>
356<TD>This is a 3D point expressed in terms of x, y, z.</TD>
357    </TR>
358    <TR>
359<TD><A href="../mtx/structures/Quaternion_QuaternionPtr.html">Quaternion,QuaternionPtr</A></TD>
360<TD>This quaternion type consists of three vector components (x, y, z) and one scalar component (w).</TD>
361    </TR>
362    <TR>
363<TD><A href="../mtx/structures/ROMtx_ROMtxPtr.html">ROMtx, ROMtxPtr</A></TD>
364<TD>This is the standard representation of a column of Mtx or MtxPtr.</TD>
365    </TR>
366    <TR>
367<TD><A href="../mtx/structures/Vec_VecPtr.html">Vec,VecPtr</A></TD>
368<TD>This is a three-element vector expressed in terms of x, y, z.</TD>
369    </TR>
370  </TBODY>
371</TABLE>
372<H3><A name="Mtx44 Extension" href="../mtx/Mtx44ext.html">Mtx44 Extension</A></H3>
373<P><CODE><BR></CODE></P>
374<p>
375</BODY>
376</HTML>