include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / man2 / glMultTransposeMatrix.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="glMultTransposeMatrix">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glMultTransposeMatrix</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glMultTransposeMatrix</refname>
17 <refpurpose>multiply the current matrix with the specified row-major ordered matrix</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glMultTransposeMatrixd</function></funcdef>
23 <paramdef>const GLdouble * <parameter>m</parameter></paramdef>
24 </funcprototype>
25 </funcsynopsis>
26 <funcsynopsis>
27 <funcprototype>
28 <funcdef>void <function>glMultTransposeMatrixf</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 row-major matrix.
51 </para>
52 </listitem>
53 </varlistentry>
54 </variablelist>
55 </refsect1>
56 <refsect1 id="description"><title>Description</title>
57 <para>
58 <function>glMultTransposeMatrix</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
63 <citerefentry><refentrytitle>glMatrixMode</refentrytitle></citerefentry>). It is either the projection matrix, 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>glMultTransposeMatrix</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:mrow>
341 <mml:mi mathvariant="italic">m</mml:mi>
342 <mml:mo>&af;</mml:mo>
343 <mml:mfenced open="[" close="]">
344 <mml:mn>16</mml:mn>
345 </mml:mfenced>
346 </mml:mrow>
347 <mml:mo>=</mml:mo>
348 <mml:mfenced open="{" close="}">
349 <mml:mrow>
350 <mml:mi mathvariant="italic">m</mml:mi>
351 <mml:mo>&af;</mml:mo>
352 <mml:mfenced open="[" close="]">
353 <mml:mn>0</mml:mn>
354 </mml:mfenced>
355 </mml:mrow>
356 <mml:mrow>
357 <mml:mi mathvariant="italic">m</mml:mi>
358 <mml:mo>&af;</mml:mo>
359 <mml:mfenced open="[" close="]">
360 <mml:mn>1</mml:mn>
361 </mml:mfenced>
362 </mml:mrow>
363 <mml:mi mathvariant="italic">...</mml:mi>
364 <mml:mrow>
365 <mml:mi mathvariant="italic">m</mml:mi>
366 <mml:mo>&af;</mml:mo>
367 <mml:mfenced open="[" close="]">
368 <mml:mn>15</mml:mn>
369 </mml:mfenced>
370 </mml:mrow>
371 </mml:mfenced>
372 </mml:mrow>
373 </mml:math></inlineequation>
374 replaces the current transformation with
375 <inlineequation><mml:math>
376 <!-- eqn: (C times M) times v:-->
377 <mml:mrow>
378 <mml:mfenced open="(" close=")">
379 <mml:mrow>
380 <mml:mi mathvariant="italic">C</mml:mi>
381 <mml:mo>&times;</mml:mo>
382 <mml:mi mathvariant="italic">M</mml:mi>
383 </mml:mrow>
384 </mml:mfenced>
385 <mml:mo>&times;</mml:mo>
386 <mml:mi mathvariant="italic">v</mml:mi>
387 </mml:mrow>
388 </mml:math></inlineequation>,
389 or
390 </para>
391 <para>
392 <informalequation><mml:math>
393 <!-- 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[4] above m[8] above m[12] } ccol { m[1] above m[5] above m[9] above m[13] } ccol { m[2] above m[6] above m[10] above m[14] } ccol { m[3] above m[7] above m[11] above m[15] } } right ) times left ( matrix { ccol { v[0] above v[1] above v[2] above v[3] } } right ):-->
394 <mml:mrow>
395 <mml:mfenced open="(" close=")">
396 <mml:mtable>
397 <mml:mtr>
398 <mml:mtd>
399 <mml:mrow>
400 <mml:mi mathvariant="italic">c</mml:mi>
401 <mml:mo>&af;</mml:mo>
402 <mml:mfenced open="[" close="]">
403 <mml:mn>0</mml:mn>
404 </mml:mfenced>
405 </mml:mrow>
406 </mml:mtd>
407 <mml:mtd>
408 <mml:mrow>
409 <mml:mi mathvariant="italic">c</mml:mi>
410 <mml:mo>&af;</mml:mo>
411 <mml:mfenced open="[" close="]">
412 <mml:mn>4</mml:mn>
413 </mml:mfenced>
414 </mml:mrow>
415 </mml:mtd>
416 <mml:mtd>
417 <mml:mrow>
418 <mml:mi mathvariant="italic">c</mml:mi>
419 <mml:mo>&af;</mml:mo>
420 <mml:mfenced open="[" close="]">
421 <mml:mn>8</mml:mn>
422 </mml:mfenced>
423 </mml:mrow>
424 </mml:mtd>
425 <mml:mtd>
426 <mml:mrow>
427 <mml:mi mathvariant="italic">c</mml:mi>
428 <mml:mo>&af;</mml:mo>
429 <mml:mfenced open="[" close="]">
430 <mml:mn>12</mml:mn>
431 </mml:mfenced>
432 </mml:mrow>
433 </mml:mtd>
434 </mml:mtr>
435 <mml:mtr>
436 <mml:mtd>
437 <mml:mrow>
438 <mml:mi mathvariant="italic">c</mml:mi>
439 <mml:mo>&af;</mml:mo>
440 <mml:mfenced open="[" close="]">
441 <mml:mn>1</mml:mn>
442 </mml:mfenced>
443 </mml:mrow>
444 </mml:mtd>
445 <mml:mtd>
446 <mml:mrow>
447 <mml:mi mathvariant="italic">c</mml:mi>
448 <mml:mo>&af;</mml:mo>
449 <mml:mfenced open="[" close="]">
450 <mml:mn>5</mml:mn>
451 </mml:mfenced>
452 </mml:mrow>
453 </mml:mtd>
454 <mml:mtd>
455 <mml:mrow>
456 <mml:mi mathvariant="italic">c</mml:mi>
457 <mml:mo>&af;</mml:mo>
458 <mml:mfenced open="[" close="]">
459 <mml:mn>9</mml:mn>
460 </mml:mfenced>
461 </mml:mrow>
462 </mml:mtd>
463 <mml:mtd>
464 <mml:mrow>
465 <mml:mi mathvariant="italic">c</mml:mi>
466 <mml:mo>&af;</mml:mo>
467 <mml:mfenced open="[" close="]">
468 <mml:mn>13</mml:mn>
469 </mml:mfenced>
470 </mml:mrow>
471 </mml:mtd>
472 </mml:mtr>
473 <mml:mtr>
474 <mml:mtd>
475 <mml:mrow>
476 <mml:mi mathvariant="italic">c</mml:mi>
477 <mml:mo>&af;</mml:mo>
478 <mml:mfenced open="[" close="]">
479 <mml:mn>2</mml:mn>
480 </mml:mfenced>
481 </mml:mrow>
482 </mml:mtd>
483 <mml:mtd>
484 <mml:mrow>
485 <mml:mi mathvariant="italic">c</mml:mi>
486 <mml:mo>&af;</mml:mo>
487 <mml:mfenced open="[" close="]">
488 <mml:mn>6</mml:mn>
489 </mml:mfenced>
490 </mml:mrow>
491 </mml:mtd>
492 <mml:mtd>
493 <mml:mrow>
494 <mml:mi mathvariant="italic">c</mml:mi>
495 <mml:mo>&af;</mml:mo>
496 <mml:mfenced open="[" close="]">
497 <mml:mn>10</mml:mn>
498 </mml:mfenced>
499 </mml:mrow>
500 </mml:mtd>
501 <mml:mtd>
502 <mml:mrow>
503 <mml:mi mathvariant="italic">c</mml:mi>
504 <mml:mo>&af;</mml:mo>
505 <mml:mfenced open="[" close="]">
506 <mml:mn>14</mml:mn>
507 </mml:mfenced>
508 </mml:mrow>
509 </mml:mtd>
510 </mml:mtr>
511 <mml:mtr>
512 <mml:mtd>
513 <mml:mrow>
514 <mml:mi mathvariant="italic">c</mml:mi>
515 <mml:mo>&af;</mml:mo>
516 <mml:mfenced open="[" close="]">
517 <mml:mn>3</mml:mn>
518 </mml:mfenced>
519 </mml:mrow>
520 </mml:mtd>
521 <mml:mtd>
522 <mml:mrow>
523 <mml:mi mathvariant="italic">c</mml:mi>
524 <mml:mo>&af;</mml:mo>
525 <mml:mfenced open="[" close="]">
526 <mml:mn>7</mml:mn>
527 </mml:mfenced>
528 </mml:mrow>
529 </mml:mtd>
530 <mml:mtd>
531 <mml:mrow>
532 <mml:mi mathvariant="italic">c</mml:mi>
533 <mml:mo>&af;</mml:mo>
534 <mml:mfenced open="[" close="]">
535 <mml:mn>11</mml:mn>
536 </mml:mfenced>
537 </mml:mrow>
538 </mml:mtd>
539 <mml:mtd>
540 <mml:mrow>
541 <mml:mi mathvariant="italic">c</mml:mi>
542 <mml:mo>&af;</mml:mo>
543 <mml:mfenced open="[" close="]">
544 <mml:mn>15</mml:mn>
545 </mml:mfenced>
546 </mml:mrow>
547 </mml:mtd>
548 </mml:mtr>
549 </mml:mtable>
550 </mml:mfenced>
551 <mml:mo>&times;</mml:mo>
552 <mml:mfenced open="(" close=")">
553 <mml:mtable>
554 <mml:mtr>
555 <mml:mtd>
556 <mml:mrow>
557 <mml:mi mathvariant="italic">m</mml:mi>
558 <mml:mo>&af;</mml:mo>
559 <mml:mfenced open="[" close="]">
560 <mml:mn>0</mml:mn>
561 </mml:mfenced>
562 </mml:mrow>
563 </mml:mtd>
564 <mml:mtd>
565 <mml:mrow>
566 <mml:mi mathvariant="italic">m</mml:mi>
567 <mml:mo>&af;</mml:mo>
568 <mml:mfenced open="[" close="]">
569 <mml:mn>1</mml:mn>
570 </mml:mfenced>
571 </mml:mrow>
572 </mml:mtd>
573 <mml:mtd>
574 <mml:mrow>
575 <mml:mi mathvariant="italic">m</mml:mi>
576 <mml:mo>&af;</mml:mo>
577 <mml:mfenced open="[" close="]">
578 <mml:mn>2</mml:mn>
579 </mml:mfenced>
580 </mml:mrow>
581 </mml:mtd>
582 <mml:mtd>
583 <mml:mrow>
584 <mml:mi mathvariant="italic">m</mml:mi>
585 <mml:mo>&af;</mml:mo>
586 <mml:mfenced open="[" close="]">
587 <mml:mn>3</mml:mn>
588 </mml:mfenced>
589 </mml:mrow>
590 </mml:mtd>
591 </mml:mtr>
592 <mml:mtr>
593 <mml:mtd>
594 <mml:mrow>
595 <mml:mi mathvariant="italic">m</mml:mi>
596 <mml:mo>&af;</mml:mo>
597 <mml:mfenced open="[" close="]">
598 <mml:mn>4</mml:mn>
599 </mml:mfenced>
600 </mml:mrow>
601 </mml:mtd>
602 <mml:mtd>
603 <mml:mrow>
604 <mml:mi mathvariant="italic">m</mml:mi>
605 <mml:mo>&af;</mml:mo>
606 <mml:mfenced open="[" close="]">
607 <mml:mn>5</mml:mn>
608 </mml:mfenced>
609 </mml:mrow>
610 </mml:mtd>
611 <mml:mtd>
612 <mml:mrow>
613 <mml:mi mathvariant="italic">m</mml:mi>
614 <mml:mo>&af;</mml:mo>
615 <mml:mfenced open="[" close="]">
616 <mml:mn>6</mml:mn>
617 </mml:mfenced>
618 </mml:mrow>
619 </mml:mtd>
620 <mml:mtd>
621 <mml:mrow>
622 <mml:mi mathvariant="italic">m</mml:mi>
623 <mml:mo>&af;</mml:mo>
624 <mml:mfenced open="[" close="]">
625 <mml:mn>7</mml:mn>
626 </mml:mfenced>
627 </mml:mrow>
628 </mml:mtd>
629 </mml:mtr>
630 <mml:mtr>
631 <mml:mtd>
632 <mml:mrow>
633 <mml:mi mathvariant="italic">m</mml:mi>
634 <mml:mo>&af;</mml:mo>
635 <mml:mfenced open="[" close="]">
636 <mml:mn>8</mml:mn>
637 </mml:mfenced>
638 </mml:mrow>
639 </mml:mtd>
640 <mml:mtd>
641 <mml:mrow>
642 <mml:mi mathvariant="italic">m</mml:mi>
643 <mml:mo>&af;</mml:mo>
644 <mml:mfenced open="[" close="]">
645 <mml:mn>9</mml:mn>
646 </mml:mfenced>
647 </mml:mrow>
648 </mml:mtd>
649 <mml:mtd>
650 <mml:mrow>
651 <mml:mi mathvariant="italic">m</mml:mi>
652 <mml:mo>&af;</mml:mo>
653 <mml:mfenced open="[" close="]">
654 <mml:mn>10</mml:mn>
655 </mml:mfenced>
656 </mml:mrow>
657 </mml:mtd>
658 <mml:mtd>
659 <mml:mrow>
660 <mml:mi mathvariant="italic">m</mml:mi>
661 <mml:mo>&af;</mml:mo>
662 <mml:mfenced open="[" close="]">
663 <mml:mn>11</mml:mn>
664 </mml:mfenced>
665 </mml:mrow>
666 </mml:mtd>
667 </mml:mtr>
668 <mml:mtr>
669 <mml:mtd>
670 <mml:mrow>
671 <mml:mi mathvariant="italic">m</mml:mi>
672 <mml:mo>&af;</mml:mo>
673 <mml:mfenced open="[" close="]">
674 <mml:mn>12</mml:mn>
675 </mml:mfenced>
676 </mml:mrow>
677 </mml:mtd>
678 <mml:mtd>
679 <mml:mrow>
680 <mml:mi mathvariant="italic">m</mml:mi>
681 <mml:mo>&af;</mml:mo>
682 <mml:mfenced open="[" close="]">
683 <mml:mn>13</mml:mn>
684 </mml:mfenced>
685 </mml:mrow>
686 </mml:mtd>
687 <mml:mtd>
688 <mml:mrow>
689 <mml:mi mathvariant="italic">m</mml:mi>
690 <mml:mo>&af;</mml:mo>
691 <mml:mfenced open="[" close="]">
692 <mml:mn>14</mml:mn>
693 </mml:mfenced>
694 </mml:mrow>
695 </mml:mtd>
696 <mml:mtd>
697 <mml:mrow>
698 <mml:mi mathvariant="italic">m</mml:mi>
699 <mml:mo>&af;</mml:mo>
700 <mml:mfenced open="[" close="]">
701 <mml:mn>15</mml:mn>
702 </mml:mfenced>
703 </mml:mrow>
704 </mml:mtd>
705 </mml:mtr>
706 </mml:mtable>
707 </mml:mfenced>
708 <mml:mo>&times;</mml:mo>
709 <mml:mfenced open="(" close=")">
710 <mml:mtable>
711 <mml:mtr>
712 <mml:mtd>
713 <mml:mrow>
714 <mml:mi mathvariant="italic">v</mml:mi>
715 <mml:mo>&af;</mml:mo>
716 <mml:mfenced open="[" close="]">
717 <mml:mn>0</mml:mn>
718 </mml:mfenced>
719 </mml:mrow>
720 </mml:mtd>
721 </mml:mtr>
722 <mml:mtr>
723 <mml:mtd>
724 <mml:mrow>
725 <mml:mi mathvariant="italic">v</mml:mi>
726 <mml:mo>&af;</mml:mo>
727 <mml:mfenced open="[" close="]">
728 <mml:mn>1</mml:mn>
729 </mml:mfenced>
730 </mml:mrow>
731 </mml:mtd>
732 </mml:mtr>
733 <mml:mtr>
734 <mml:mtd>
735 <mml:mrow>
736 <mml:mi mathvariant="italic">v</mml:mi>
737 <mml:mo>&af;</mml:mo>
738 <mml:mfenced open="[" close="]">
739 <mml:mn>2</mml:mn>
740 </mml:mfenced>
741 </mml:mrow>
742 </mml:mtd>
743 </mml:mtr>
744 <mml:mtr>
745 <mml:mtd>
746 <mml:mrow>
747 <mml:mi mathvariant="italic">v</mml:mi>
748 <mml:mo>&af;</mml:mo>
749 <mml:mfenced open="[" close="]">
750 <mml:mn>3</mml:mn>
751 </mml:mfenced>
752 </mml:mrow>
753 </mml:mtd>
754 </mml:mtr>
755 </mml:mtable>
756 </mml:mfenced>
757 </mml:mrow>
758 </mml:math></informalequation>
759 </para>
760 <para>
761 </para>
762 <para>
763 Where
764 <inlineequation><mml:math><mml:mi mathvariant="italic">v</mml:mi></mml:math></inlineequation>
765 is represented as a
766 <inlineequation><mml:math>
767 <!-- eqn: 4 times 1:-->
768 <mml:mrow>
769 <mml:mn>4</mml:mn>
770 <mml:mo>&times;</mml:mo>
771 <mml:mn>1</mml:mn>
772 </mml:mrow>
773 </mml:math></inlineequation>
774 matrix.
775 </para>
776 <para>
777 Calling <function>glMultTransposeMatrix</function> with matrix
778 <inlineequation><mml:math><mml:mi mathvariant="italic">M</mml:mi></mml:math></inlineequation>
779 is identical in operation to
780 <citerefentry><refentrytitle>glMultMatrix</refentrytitle></citerefentry> with
781 <inlineequation><mml:math>
782 <!-- eqn: M sup T:-->
783 <mml:msup><mml:mi mathvariant="italic">M</mml:mi>
784 <mml:mi mathvariant="italic">T</mml:mi>
785 </mml:msup>
786 </mml:math></inlineequation>,
787 where
788 <inlineequation><mml:math><mml:mi mathvariant="italic">T</mml:mi></mml:math></inlineequation>
789 represents the transpose.
790 </para>
791 </refsect1>
792 <refsect1 id="notes"><title>Notes</title>
793 <para>
794 <function>glMultTransposeMatrix</function> is available only if the GL version is 1.3 or greater.
795 </para>
796 <para>
797 While the elements of the matrix may be specified with
798 single or double precision, the GL may store or operate on these
799 values in less-than-single precision.
800 </para>
801 <para>
802 The order of the multiplication is important. For example, if the current
803 transformation is a rotation, and <function>glMultTransposeMatrix</function> is called with a translation matrix,
804 the translation is done directly on the coordinates to be transformed,
805 while the rotation is done on the results of that translation.
806 </para>
807 </refsect1>
808 <refsect1 id="errors"><title>Errors</title>
809 <para>
810 <constant>GL_INVALID_OPERATION</constant> is generated if <function>glMultTransposeMatrix</function>
811 is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
812 and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
813 </para>
814 </refsect1>
815 <refsect1 id="associatedgets"><title>Associated Gets</title>
816 <para>
817 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MATRIX_MODE</constant>
818 </para>
819 <para>
820 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_COLOR_MATRIX</constant>
821 </para>
822 <para>
823 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MODELVIEW_MATRIX</constant>
824 </para>
825 <para>
826 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_PROJECTION_MATRIX</constant>
827 </para>
828 <para>
829 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_TEXTURE_MATRIX</constant>
830 </para>
831 </refsect1>
832 <refsect1 id="seealso"><title>See Also</title>
833 <para>
834 <citerefentry><refentrytitle>glLoadIdentity</refentrytitle></citerefentry>,
835 <citerefentry><refentrytitle>glLoadMatrix</refentrytitle></citerefentry>,
836 <citerefentry><refentrytitle>glLoadTransposeMatrix</refentrytitle></citerefentry>,
837 <citerefentry><refentrytitle>glMatrixMode</refentrytitle></citerefentry>,
838 <citerefentry><refentrytitle>glPushMatrix</refentrytitle></citerefentry>
839 </para>
840 </refsect1>
841 <refsect1 id="Copyright"><title>Copyright</title>
842 <para>
843 Copyright <trademark class="copyright"></trademark> 1991-2006
844 Silicon Graphics, Inc. This document is licensed under the SGI
845 Free Software B License. For details, see
846 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
847 </para>
848 </refsect1>
849 </refentry>