653921b791748c5d1151b033b46938faa54b0786
[clinton/guile-figl.git] / upstream-man-pages / man2 / glMultMatrix.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="glMultMatrix">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glMultMatrix</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glMultMatrix</refname>
17 <refpurpose>multiply the current matrix with the specified matrix</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glMultMatrixd</function></funcdef>
23 <paramdef>const GLdouble * <parameter>m</parameter></paramdef>
24 </funcprototype>
25 </funcsynopsis>
26 <funcsynopsis>
27 <funcprototype>
28 <funcdef>void <function>glMultMatrixf</function></funcdef>
29 <paramdef>const GLfloat * <parameter>m</parameter></paramdef>
30 </funcprototype>
31 </funcsynopsis>
32 </refsynopsisdiv>
33 <!-- eqn: ignoring delim $$ -->
34 <refsect1 id="parameters"><title>Parameters</title>
35 <variablelist>
36 <varlistentry>
37 <term><parameter>m</parameter></term>
38 <listitem>
39 <para>
40 Points to 16 consecutive values that are used as the elements of
41 a
42 <inlineequation><mml:math>
43 <!-- eqn: 4 times 4:-->
44 <mml:mrow>
45 <mml:mn>4</mml:mn>
46 <mml:mo>&times;</mml:mo>
47 <mml:mn>4</mml:mn>
48 </mml:mrow>
49 </mml:math></inlineequation>
50 column-major matrix.
51 </para>
52 </listitem>
53 </varlistentry>
54 </variablelist>
55 </refsect1>
56 <refsect1 id="description"><title>Description</title>
57 <para>
58 <function>glMultMatrix</function> multiplies the current matrix with the one specified using <parameter>m</parameter>, and
59 replaces the current matrix with the product.
60 </para>
61 <para>
62 The current matrix is determined by the current matrix mode (see <citerefentry><refentrytitle>glMatrixMode</refentrytitle></citerefentry>). It is either the projection matrix,
63 modelview matrix,
64 or the texture matrix.
65 </para>
66 </refsect1>
67 <refsect1 id="examples"><title>Examples</title>
68 <para>
69 If the current matrix is
70 <inlineequation><mml:math><mml:mi mathvariant="italic">C</mml:mi></mml:math></inlineequation>
71 and the coordinates
72 to be transformed are
73 <inlineequation><mml:math>
74 <!-- eqn: v = (v[0], v[1], v[2], v[3]):-->
75 <mml:mrow>
76 <mml:mi mathvariant="italic">v</mml:mi>
77 <mml:mo>=</mml:mo>
78 <mml:mfenced open="(" close=")">
79 <mml:mrow>
80 <mml:mi mathvariant="italic">v</mml:mi>
81 <mml:mo>&af;</mml:mo>
82 <mml:mfenced open="[" close="]">
83 <mml:mn>0</mml:mn>
84 </mml:mfenced>
85 </mml:mrow>
86 <mml:mrow>
87 <mml:mi mathvariant="italic">v</mml:mi>
88 <mml:mo>&af;</mml:mo>
89 <mml:mfenced open="[" close="]">
90 <mml:mn>1</mml:mn>
91 </mml:mfenced>
92 </mml:mrow>
93 <mml:mrow>
94 <mml:mi mathvariant="italic">v</mml:mi>
95 <mml:mo>&af;</mml:mo>
96 <mml:mfenced open="[" close="]">
97 <mml:mn>2</mml:mn>
98 </mml:mfenced>
99 </mml:mrow>
100 <mml:mrow>
101 <mml:mi mathvariant="italic">v</mml:mi>
102 <mml:mo>&af;</mml:mo>
103 <mml:mfenced open="[" close="]">
104 <mml:mn>3</mml:mn>
105 </mml:mfenced>
106 </mml:mrow>
107 </mml:mfenced>
108 </mml:mrow>
109 </mml:math></inlineequation>,
110 then the current transformation is
111 <inlineequation><mml:math>
112 <!-- eqn: C times v:-->
113 <mml:mrow>
114 <mml:mi mathvariant="italic">C</mml:mi>
115 <mml:mo>&times;</mml:mo>
116 <mml:mi mathvariant="italic">v</mml:mi>
117 </mml:mrow>
118 </mml:math></inlineequation>,
119 or
120 </para>
121 <para>
122 <informalequation><mml:math>
123 <!-- eqn: left ( matrix { ccol { c[0] above c[1] above c[2] above c[3] } ccol { c[4] above c[5] above c[6] above c[7] } ccol { c[8] above c[9] above c[10] above c[11] } ccol { c[12] above c[13] above c[14] above c[15] } } right ) times left ( matrix { ccol { v[0] above v[1] above v[2] above v[3] } } right ):-->
124 <mml:mrow>
125 <mml:mfenced open="(" close=")">
126 <mml:mtable>
127 <mml:mtr>
128 <mml:mtd>
129 <mml:mrow>
130 <mml:mi mathvariant="italic">c</mml:mi>
131 <mml:mo>&af;</mml:mo>
132 <mml:mfenced open="[" close="]">
133 <mml:mn>0</mml:mn>
134 </mml:mfenced>
135 </mml:mrow>
136 </mml:mtd>
137 <mml:mtd>
138 <mml:mrow>
139 <mml:mi mathvariant="italic">c</mml:mi>
140 <mml:mo>&af;</mml:mo>
141 <mml:mfenced open="[" close="]">
142 <mml:mn>4</mml:mn>
143 </mml:mfenced>
144 </mml:mrow>
145 </mml:mtd>
146 <mml:mtd>
147 <mml:mrow>
148 <mml:mi mathvariant="italic">c</mml:mi>
149 <mml:mo>&af;</mml:mo>
150 <mml:mfenced open="[" close="]">
151 <mml:mn>8</mml:mn>
152 </mml:mfenced>
153 </mml:mrow>
154 </mml:mtd>
155 <mml:mtd>
156 <mml:mrow>
157 <mml:mi mathvariant="italic">c</mml:mi>
158 <mml:mo>&af;</mml:mo>
159 <mml:mfenced open="[" close="]">
160 <mml:mn>12</mml:mn>
161 </mml:mfenced>
162 </mml:mrow>
163 </mml:mtd>
164 </mml:mtr>
165 <mml:mtr>
166 <mml:mtd>
167 <mml:mrow>
168 <mml:mi mathvariant="italic">c</mml:mi>
169 <mml:mo>&af;</mml:mo>
170 <mml:mfenced open="[" close="]">
171 <mml:mn>1</mml:mn>
172 </mml:mfenced>
173 </mml:mrow>
174 </mml:mtd>
175 <mml:mtd>
176 <mml:mrow>
177 <mml:mi mathvariant="italic">c</mml:mi>
178 <mml:mo>&af;</mml:mo>
179 <mml:mfenced open="[" close="]">
180 <mml:mn>5</mml:mn>
181 </mml:mfenced>
182 </mml:mrow>
183 </mml:mtd>
184 <mml:mtd>
185 <mml:mrow>
186 <mml:mi mathvariant="italic">c</mml:mi>
187 <mml:mo>&af;</mml:mo>
188 <mml:mfenced open="[" close="]">
189 <mml:mn>9</mml:mn>
190 </mml:mfenced>
191 </mml:mrow>
192 </mml:mtd>
193 <mml:mtd>
194 <mml:mrow>
195 <mml:mi mathvariant="italic">c</mml:mi>
196 <mml:mo>&af;</mml:mo>
197 <mml:mfenced open="[" close="]">
198 <mml:mn>13</mml:mn>
199 </mml:mfenced>
200 </mml:mrow>
201 </mml:mtd>
202 </mml:mtr>
203 <mml:mtr>
204 <mml:mtd>
205 <mml:mrow>
206 <mml:mi mathvariant="italic">c</mml:mi>
207 <mml:mo>&af;</mml:mo>
208 <mml:mfenced open="[" close="]">
209 <mml:mn>2</mml:mn>
210 </mml:mfenced>
211 </mml:mrow>
212 </mml:mtd>
213 <mml:mtd>
214 <mml:mrow>
215 <mml:mi mathvariant="italic">c</mml:mi>
216 <mml:mo>&af;</mml:mo>
217 <mml:mfenced open="[" close="]">
218 <mml:mn>6</mml:mn>
219 </mml:mfenced>
220 </mml:mrow>
221 </mml:mtd>
222 <mml:mtd>
223 <mml:mrow>
224 <mml:mi mathvariant="italic">c</mml:mi>
225 <mml:mo>&af;</mml:mo>
226 <mml:mfenced open="[" close="]">
227 <mml:mn>10</mml:mn>
228 </mml:mfenced>
229 </mml:mrow>
230 </mml:mtd>
231 <mml:mtd>
232 <mml:mrow>
233 <mml:mi mathvariant="italic">c</mml:mi>
234 <mml:mo>&af;</mml:mo>
235 <mml:mfenced open="[" close="]">
236 <mml:mn>14</mml:mn>
237 </mml:mfenced>
238 </mml:mrow>
239 </mml:mtd>
240 </mml:mtr>
241 <mml:mtr>
242 <mml:mtd>
243 <mml:mrow>
244 <mml:mi mathvariant="italic">c</mml:mi>
245 <mml:mo>&af;</mml:mo>
246 <mml:mfenced open="[" close="]">
247 <mml:mn>3</mml:mn>
248 </mml:mfenced>
249 </mml:mrow>
250 </mml:mtd>
251 <mml:mtd>
252 <mml:mrow>
253 <mml:mi mathvariant="italic">c</mml:mi>
254 <mml:mo>&af;</mml:mo>
255 <mml:mfenced open="[" close="]">
256 <mml:mn>7</mml:mn>
257 </mml:mfenced>
258 </mml:mrow>
259 </mml:mtd>
260 <mml:mtd>
261 <mml:mrow>
262 <mml:mi mathvariant="italic">c</mml:mi>
263 <mml:mo>&af;</mml:mo>
264 <mml:mfenced open="[" close="]">
265 <mml:mn>11</mml:mn>
266 </mml:mfenced>
267 </mml:mrow>
268 </mml:mtd>
269 <mml:mtd>
270 <mml:mrow>
271 <mml:mi mathvariant="italic">c</mml:mi>
272 <mml:mo>&af;</mml:mo>
273 <mml:mfenced open="[" close="]">
274 <mml:mn>15</mml:mn>
275 </mml:mfenced>
276 </mml:mrow>
277 </mml:mtd>
278 </mml:mtr>
279 </mml:mtable>
280 </mml:mfenced>
281 <mml:mo>&times;</mml:mo>
282 <mml:mfenced open="(" close=")">
283 <mml:mtable>
284 <mml:mtr>
285 <mml:mtd>
286 <mml:mrow>
287 <mml:mi mathvariant="italic">v</mml:mi>
288 <mml:mo>&af;</mml:mo>
289 <mml:mfenced open="[" close="]">
290 <mml:mn>0</mml:mn>
291 </mml:mfenced>
292 </mml:mrow>
293 </mml:mtd>
294 </mml:mtr>
295 <mml:mtr>
296 <mml:mtd>
297 <mml:mrow>
298 <mml:mi mathvariant="italic">v</mml:mi>
299 <mml:mo>&af;</mml:mo>
300 <mml:mfenced open="[" close="]">
301 <mml:mn>1</mml:mn>
302 </mml:mfenced>
303 </mml:mrow>
304 </mml:mtd>
305 </mml:mtr>
306 <mml:mtr>
307 <mml:mtd>
308 <mml:mrow>
309 <mml:mi mathvariant="italic">v</mml:mi>
310 <mml:mo>&af;</mml:mo>
311 <mml:mfenced open="[" close="]">
312 <mml:mn>2</mml:mn>
313 </mml:mfenced>
314 </mml:mrow>
315 </mml:mtd>
316 </mml:mtr>
317 <mml:mtr>
318 <mml:mtd>
319 <mml:mrow>
320 <mml:mi mathvariant="italic">v</mml:mi>
321 <mml:mo>&af;</mml:mo>
322 <mml:mfenced open="[" close="]">
323 <mml:mn>3</mml:mn>
324 </mml:mfenced>
325 </mml:mrow>
326 </mml:mtd>
327 </mml:mtr>
328 </mml:mtable>
329 </mml:mfenced>
330 </mml:mrow>
331 </mml:math></informalequation>
332 </para>
333 <para>
334 </para>
335 <para>
336 Calling <function>glMultMatrix</function> with an argument of
337 <inlineequation><mml:math>
338 <!-- eqn: m = left { m[0], m[1], ..., m[15] right }:-->
339 <mml:mrow>
340 <mml:mi mathvariant="italic">m</mml:mi>
341 <mml:mo>=</mml:mo>
342 <mml:mfenced open="{" close="}">
343 <mml:mrow>
344 <mml:mi mathvariant="italic">m</mml:mi>
345 <mml:mo>&af;</mml:mo>
346 <mml:mfenced open="[" close="]">
347 <mml:mn>0</mml:mn>
348 </mml:mfenced>
349 </mml:mrow>
350 <mml:mrow>
351 <mml:mi mathvariant="italic">m</mml:mi>
352 <mml:mo>&af;</mml:mo>
353 <mml:mfenced open="[" close="]">
354 <mml:mn>1</mml:mn>
355 </mml:mfenced>
356 </mml:mrow>
357 <mml:mi mathvariant="italic">...</mml:mi>
358 <mml:mrow>
359 <mml:mi mathvariant="italic">m</mml:mi>
360 <mml:mo>&af;</mml:mo>
361 <mml:mfenced open="[" close="]">
362 <mml:mn>15</mml:mn>
363 </mml:mfenced>
364 </mml:mrow>
365 </mml:mfenced>
366 </mml:mrow>
367 </mml:math></inlineequation>
368 replaces the current transformation with
369 <inlineequation><mml:math>
370 <!-- eqn: (C times M) times v:-->
371 <mml:mrow>
372 <mml:mfenced open="(" close=")">
373 <mml:mrow>
374 <mml:mi mathvariant="italic">C</mml:mi>
375 <mml:mo>&times;</mml:mo>
376 <mml:mi mathvariant="italic">M</mml:mi>
377 </mml:mrow>
378 </mml:mfenced>
379 <mml:mo>&times;</mml:mo>
380 <mml:mi mathvariant="italic">v</mml:mi>
381 </mml:mrow>
382 </mml:math></inlineequation>,
383 or
384 </para>
385 <para>
386 <informalequation><mml:math>
387 <!-- eqn: left ( matrix { ccol { c[0] above c[1] above c[2] above c[3] } ccol { c[4] above c[5] above c[6] above c[7] } ccol { c[8] above c[9] above c[10] above c[11] } ccol { c[12] above c[13] above c[14] above c[15] } } right ) times left ( matrix { ccol { m[0] above m[1] above m[2] above m[3] } ccol { m[4] above m[5] above m[6] above m[7] } ccol { m[8] above m[9] above m[10] above m[11] } ccol { m[12] above m[13] above m[14] above m[15] } } right ) times left ( matrix { ccol { v[0] above v[1] above v[2] above v[3] } } right ):-->
388 <mml:mrow>
389 <mml:mfenced open="(" close=")">
390 <mml:mtable>
391 <mml:mtr>
392 <mml:mtd>
393 <mml:mrow>
394 <mml:mi mathvariant="italic">c</mml:mi>
395 <mml:mo>&af;</mml:mo>
396 <mml:mfenced open="[" close="]">
397 <mml:mn>0</mml:mn>
398 </mml:mfenced>
399 </mml:mrow>
400 </mml:mtd>
401 <mml:mtd>
402 <mml:mrow>
403 <mml:mi mathvariant="italic">c</mml:mi>
404 <mml:mo>&af;</mml:mo>
405 <mml:mfenced open="[" close="]">
406 <mml:mn>4</mml:mn>
407 </mml:mfenced>
408 </mml:mrow>
409 </mml:mtd>
410 <mml:mtd>
411 <mml:mrow>
412 <mml:mi mathvariant="italic">c</mml:mi>
413 <mml:mo>&af;</mml:mo>
414 <mml:mfenced open="[" close="]">
415 <mml:mn>8</mml:mn>
416 </mml:mfenced>
417 </mml:mrow>
418 </mml:mtd>
419 <mml:mtd>
420 <mml:mrow>
421 <mml:mi mathvariant="italic">c</mml:mi>
422 <mml:mo>&af;</mml:mo>
423 <mml:mfenced open="[" close="]">
424 <mml:mn>12</mml:mn>
425 </mml:mfenced>
426 </mml:mrow>
427 </mml:mtd>
428 </mml:mtr>
429 <mml:mtr>
430 <mml:mtd>
431 <mml:mrow>
432 <mml:mi mathvariant="italic">c</mml:mi>
433 <mml:mo>&af;</mml:mo>
434 <mml:mfenced open="[" close="]">
435 <mml:mn>1</mml:mn>
436 </mml:mfenced>
437 </mml:mrow>
438 </mml:mtd>
439 <mml:mtd>
440 <mml:mrow>
441 <mml:mi mathvariant="italic">c</mml:mi>
442 <mml:mo>&af;</mml:mo>
443 <mml:mfenced open="[" close="]">
444 <mml:mn>5</mml:mn>
445 </mml:mfenced>
446 </mml:mrow>
447 </mml:mtd>
448 <mml:mtd>
449 <mml:mrow>
450 <mml:mi mathvariant="italic">c</mml:mi>
451 <mml:mo>&af;</mml:mo>
452 <mml:mfenced open="[" close="]">
453 <mml:mn>9</mml:mn>
454 </mml:mfenced>
455 </mml:mrow>
456 </mml:mtd>
457 <mml:mtd>
458 <mml:mrow>
459 <mml:mi mathvariant="italic">c</mml:mi>
460 <mml:mo>&af;</mml:mo>
461 <mml:mfenced open="[" close="]">
462 <mml:mn>13</mml:mn>
463 </mml:mfenced>
464 </mml:mrow>
465 </mml:mtd>
466 </mml:mtr>
467 <mml:mtr>
468 <mml:mtd>
469 <mml:mrow>
470 <mml:mi mathvariant="italic">c</mml:mi>
471 <mml:mo>&af;</mml:mo>
472 <mml:mfenced open="[" close="]">
473 <mml:mn>2</mml:mn>
474 </mml:mfenced>
475 </mml:mrow>
476 </mml:mtd>
477 <mml:mtd>
478 <mml:mrow>
479 <mml:mi mathvariant="italic">c</mml:mi>
480 <mml:mo>&af;</mml:mo>
481 <mml:mfenced open="[" close="]">
482 <mml:mn>6</mml:mn>
483 </mml:mfenced>
484 </mml:mrow>
485 </mml:mtd>
486 <mml:mtd>
487 <mml:mrow>
488 <mml:mi mathvariant="italic">c</mml:mi>
489 <mml:mo>&af;</mml:mo>
490 <mml:mfenced open="[" close="]">
491 <mml:mn>10</mml:mn>
492 </mml:mfenced>
493 </mml:mrow>
494 </mml:mtd>
495 <mml:mtd>
496 <mml:mrow>
497 <mml:mi mathvariant="italic">c</mml:mi>
498 <mml:mo>&af;</mml:mo>
499 <mml:mfenced open="[" close="]">
500 <mml:mn>14</mml:mn>
501 </mml:mfenced>
502 </mml:mrow>
503 </mml:mtd>
504 </mml:mtr>
505 <mml:mtr>
506 <mml:mtd>
507 <mml:mrow>
508 <mml:mi mathvariant="italic">c</mml:mi>
509 <mml:mo>&af;</mml:mo>
510 <mml:mfenced open="[" close="]">
511 <mml:mn>3</mml:mn>
512 </mml:mfenced>
513 </mml:mrow>
514 </mml:mtd>
515 <mml:mtd>
516 <mml:mrow>
517 <mml:mi mathvariant="italic">c</mml:mi>
518 <mml:mo>&af;</mml:mo>
519 <mml:mfenced open="[" close="]">
520 <mml:mn>7</mml:mn>
521 </mml:mfenced>
522 </mml:mrow>
523 </mml:mtd>
524 <mml:mtd>
525 <mml:mrow>
526 <mml:mi mathvariant="italic">c</mml:mi>
527 <mml:mo>&af;</mml:mo>
528 <mml:mfenced open="[" close="]">
529 <mml:mn>11</mml:mn>
530 </mml:mfenced>
531 </mml:mrow>
532 </mml:mtd>
533 <mml:mtd>
534 <mml:mrow>
535 <mml:mi mathvariant="italic">c</mml:mi>
536 <mml:mo>&af;</mml:mo>
537 <mml:mfenced open="[" close="]">
538 <mml:mn>15</mml:mn>
539 </mml:mfenced>
540 </mml:mrow>
541 </mml:mtd>
542 </mml:mtr>
543 </mml:mtable>
544 </mml:mfenced>
545 <mml:mo>&times;</mml:mo>
546 <mml:mfenced open="(" close=")">
547 <mml:mtable>
548 <mml:mtr>
549 <mml:mtd>
550 <mml:mrow>
551 <mml:mi mathvariant="italic">m</mml:mi>
552 <mml:mo>&af;</mml:mo>
553 <mml:mfenced open="[" close="]">
554 <mml:mn>0</mml:mn>
555 </mml:mfenced>
556 </mml:mrow>
557 </mml:mtd>
558 <mml:mtd>
559 <mml:mrow>
560 <mml:mi mathvariant="italic">m</mml:mi>
561 <mml:mo>&af;</mml:mo>
562 <mml:mfenced open="[" close="]">
563 <mml:mn>4</mml:mn>
564 </mml:mfenced>
565 </mml:mrow>
566 </mml:mtd>
567 <mml:mtd>
568 <mml:mrow>
569 <mml:mi mathvariant="italic">m</mml:mi>
570 <mml:mo>&af;</mml:mo>
571 <mml:mfenced open="[" close="]">
572 <mml:mn>8</mml:mn>
573 </mml:mfenced>
574 </mml:mrow>
575 </mml:mtd>
576 <mml:mtd>
577 <mml:mrow>
578 <mml:mi mathvariant="italic">m</mml:mi>
579 <mml:mo>&af;</mml:mo>
580 <mml:mfenced open="[" close="]">
581 <mml:mn>12</mml:mn>
582 </mml:mfenced>
583 </mml:mrow>
584 </mml:mtd>
585 </mml:mtr>
586 <mml:mtr>
587 <mml:mtd>
588 <mml:mrow>
589 <mml:mi mathvariant="italic">m</mml:mi>
590 <mml:mo>&af;</mml:mo>
591 <mml:mfenced open="[" close="]">
592 <mml:mn>1</mml:mn>
593 </mml:mfenced>
594 </mml:mrow>
595 </mml:mtd>
596 <mml:mtd>
597 <mml:mrow>
598 <mml:mi mathvariant="italic">m</mml:mi>
599 <mml:mo>&af;</mml:mo>
600 <mml:mfenced open="[" close="]">
601 <mml:mn>5</mml:mn>
602 </mml:mfenced>
603 </mml:mrow>
604 </mml:mtd>
605 <mml:mtd>
606 <mml:mrow>
607 <mml:mi mathvariant="italic">m</mml:mi>
608 <mml:mo>&af;</mml:mo>
609 <mml:mfenced open="[" close="]">
610 <mml:mn>9</mml:mn>
611 </mml:mfenced>
612 </mml:mrow>
613 </mml:mtd>
614 <mml:mtd>
615 <mml:mrow>
616 <mml:mi mathvariant="italic">m</mml:mi>
617 <mml:mo>&af;</mml:mo>
618 <mml:mfenced open="[" close="]">
619 <mml:mn>13</mml:mn>
620 </mml:mfenced>
621 </mml:mrow>
622 </mml:mtd>
623 </mml:mtr>
624 <mml:mtr>
625 <mml:mtd>
626 <mml:mrow>
627 <mml:mi mathvariant="italic">m</mml:mi>
628 <mml:mo>&af;</mml:mo>
629 <mml:mfenced open="[" close="]">
630 <mml:mn>2</mml:mn>
631 </mml:mfenced>
632 </mml:mrow>
633 </mml:mtd>
634 <mml:mtd>
635 <mml:mrow>
636 <mml:mi mathvariant="italic">m</mml:mi>
637 <mml:mo>&af;</mml:mo>
638 <mml:mfenced open="[" close="]">
639 <mml:mn>6</mml:mn>
640 </mml:mfenced>
641 </mml:mrow>
642 </mml:mtd>
643 <mml:mtd>
644 <mml:mrow>
645 <mml:mi mathvariant="italic">m</mml:mi>
646 <mml:mo>&af;</mml:mo>
647 <mml:mfenced open="[" close="]">
648 <mml:mn>10</mml:mn>
649 </mml:mfenced>
650 </mml:mrow>
651 </mml:mtd>
652 <mml:mtd>
653 <mml:mrow>
654 <mml:mi mathvariant="italic">m</mml:mi>
655 <mml:mo>&af;</mml:mo>
656 <mml:mfenced open="[" close="]">
657 <mml:mn>14</mml:mn>
658 </mml:mfenced>
659 </mml:mrow>
660 </mml:mtd>
661 </mml:mtr>
662 <mml:mtr>
663 <mml:mtd>
664 <mml:mrow>
665 <mml:mi mathvariant="italic">m</mml:mi>
666 <mml:mo>&af;</mml:mo>
667 <mml:mfenced open="[" close="]">
668 <mml:mn>3</mml:mn>
669 </mml:mfenced>
670 </mml:mrow>
671 </mml:mtd>
672 <mml:mtd>
673 <mml:mrow>
674 <mml:mi mathvariant="italic">m</mml:mi>
675 <mml:mo>&af;</mml:mo>
676 <mml:mfenced open="[" close="]">
677 <mml:mn>7</mml:mn>
678 </mml:mfenced>
679 </mml:mrow>
680 </mml:mtd>
681 <mml:mtd>
682 <mml:mrow>
683 <mml:mi mathvariant="italic">m</mml:mi>
684 <mml:mo>&af;</mml:mo>
685 <mml:mfenced open="[" close="]">
686 <mml:mn>11</mml:mn>
687 </mml:mfenced>
688 </mml:mrow>
689 </mml:mtd>
690 <mml:mtd>
691 <mml:mrow>
692 <mml:mi mathvariant="italic">m</mml:mi>
693 <mml:mo>&af;</mml:mo>
694 <mml:mfenced open="[" close="]">
695 <mml:mn>15</mml:mn>
696 </mml:mfenced>
697 </mml:mrow>
698 </mml:mtd>
699 </mml:mtr>
700 </mml:mtable>
701 </mml:mfenced>
702 <mml:mo>&times;</mml:mo>
703 <mml:mfenced open="(" close=")">
704 <mml:mtable>
705 <mml:mtr>
706 <mml:mtd>
707 <mml:mrow>
708 <mml:mi mathvariant="italic">v</mml:mi>
709 <mml:mo>&af;</mml:mo>
710 <mml:mfenced open="[" close="]">
711 <mml:mn>0</mml:mn>
712 </mml:mfenced>
713 </mml:mrow>
714 </mml:mtd>
715 </mml:mtr>
716 <mml:mtr>
717 <mml:mtd>
718 <mml:mrow>
719 <mml:mi mathvariant="italic">v</mml:mi>
720 <mml:mo>&af;</mml:mo>
721 <mml:mfenced open="[" close="]">
722 <mml:mn>1</mml:mn>
723 </mml:mfenced>
724 </mml:mrow>
725 </mml:mtd>
726 </mml:mtr>
727 <mml:mtr>
728 <mml:mtd>
729 <mml:mrow>
730 <mml:mi mathvariant="italic">v</mml:mi>
731 <mml:mo>&af;</mml:mo>
732 <mml:mfenced open="[" close="]">
733 <mml:mn>2</mml:mn>
734 </mml:mfenced>
735 </mml:mrow>
736 </mml:mtd>
737 </mml:mtr>
738 <mml:mtr>
739 <mml:mtd>
740 <mml:mrow>
741 <mml:mi mathvariant="italic">v</mml:mi>
742 <mml:mo>&af;</mml:mo>
743 <mml:mfenced open="[" close="]">
744 <mml:mn>3</mml:mn>
745 </mml:mfenced>
746 </mml:mrow>
747 </mml:mtd>
748 </mml:mtr>
749 </mml:mtable>
750 </mml:mfenced>
751 </mml:mrow>
752 </mml:math></informalequation>
753 </para>
754 <para>
755 </para>
756 <para>
757 Where
758 <inlineequation><mml:math><mml:mi mathvariant="italic">v</mml:mi></mml:math></inlineequation>
759 is represented as a
760 <inlineequation><mml:math>
761 <!-- eqn: 4 times 1:-->
762 <mml:mrow>
763 <mml:mn>4</mml:mn>
764 <mml:mo>&times;</mml:mo>
765 <mml:mn>1</mml:mn>
766 </mml:mrow>
767 </mml:math></inlineequation>
768 matrix.
769 </para>
770 </refsect1>
771 <refsect1 id="notes"><title>Notes</title>
772 <para>
773 While the elements of the matrix may be specified with
774 single or double precision, the GL may store or operate on these
775 values in less-than-single precision.
776 </para>
777 <para>
778 In many computer languages,
779 <inlineequation><mml:math>
780 <!-- eqn: 4 times 4:-->
781 <mml:mrow>
782 <mml:mn>4</mml:mn>
783 <mml:mo>&times;</mml:mo>
784 <mml:mn>4</mml:mn>
785 </mml:mrow>
786 </mml:math></inlineequation>
787 arrays are represented
788 in row-major order. The transformations just described
789 represent these matrices in column-major order.
790 The order of the multiplication is important. For example, if the current
791 transformation is a rotation, and <function>glMultMatrix</function> is called with a translation matrix,
792 the translation is done directly on the coordinates to be transformed,
793 while the rotation is done on the results of that translation.
794 </para>
795 </refsect1>
796 <refsect1 id="errors"><title>Errors</title>
797 <para>
798 <constant>GL_INVALID_OPERATION</constant> is generated if <function>glMultMatrix</function>
799 is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
800 and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
801 </para>
802 </refsect1>
803 <refsect1 id="associatedgets"><title>Associated Gets</title>
804 <para>
805 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MATRIX_MODE</constant>
806 </para>
807 <para>
808 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_COLOR_MATRIX</constant>
809 </para>
810 <para>
811 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MODELVIEW_MATRIX</constant>
812 </para>
813 <para>
814 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_PROJECTION_MATRIX</constant>
815 </para>
816 <para>
817 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_TEXTURE_MATRIX</constant>
818 </para>
819 </refsect1>
820 <refsect1 id="seealso"><title>See Also</title>
821 <para>
822 <citerefentry><refentrytitle>glLoadIdentity</refentrytitle></citerefentry>,
823 <citerefentry><refentrytitle>glLoadMatrix</refentrytitle></citerefentry>,
824 <citerefentry><refentrytitle>glLoadTransposeMatrix</refentrytitle></citerefentry>,
825 <citerefentry><refentrytitle>glMatrixMode</refentrytitle></citerefentry>,
826 <citerefentry><refentrytitle>glMultTransposeMatrix</refentrytitle></citerefentry>,
827 <citerefentry><refentrytitle>glPushMatrix</refentrytitle></citerefentry>
828 </para>
829 </refsect1>
830 <refsect1 id="Copyright"><title>Copyright</title>
831 <para>
832 Copyright <trademark class="copyright"></trademark> 1991-2006
833 Silicon Graphics, Inc. This document is licensed under the SGI
834 Free Software B License. For details, see
835 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
836 </para>
837 </refsect1>
838 </refentry>