rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man2 / glLoadMatrix.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="glLoadMatrix">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glLoadMatrix</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glLoadMatrix</refname>
17 <refpurpose>replace the current matrix with the specified matrix</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glLoadMatrixd</function></funcdef>
23 <paramdef>const GLdouble * <parameter>m</parameter></paramdef>
24 </funcprototype>
25 </funcsynopsis>
26 <funcsynopsis>
27 <funcprototype>
28 <funcdef>void <function>glLoadMatrixf</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 Specifies a pointer to 16 consecutive values, which are used as the
41 elements of 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>glLoadMatrix</function> replaces the current matrix with the one whose elements are specified by
59 <parameter>m</parameter>.
60 The current matrix is the projection matrix,
61 modelview matrix,
62 or texture matrix,
63 depending on the current matrix mode
64 (see <citerefentry><refentrytitle>glMatrixMode</refentrytitle></citerefentry>).
65 </para>
66 <para>
67 The current matrix, M, defines a transformation of coordinates.
68 For instance, assume M refers to the modelview matrix.
69 If
70 <inlineequation><mml:math>
71 <!-- eqn: v = (v[0], v[1], v[2], v[3]):-->
72 <mml:mrow>
73 <mml:mi mathvariant="italic">v</mml:mi>
74 <mml:mo>=</mml:mo>
75 <mml:mfenced open="(" close=")">
76 <mml:mrow>
77 <mml:mi mathvariant="italic">v</mml:mi>
78 <mml:mo>&af;</mml:mo>
79 <mml:mfenced open="[" close="]">
80 <mml:mn>0</mml:mn>
81 </mml:mfenced>
82 </mml:mrow>
83 <mml:mrow>
84 <mml:mi mathvariant="italic">v</mml:mi>
85 <mml:mo>&af;</mml:mo>
86 <mml:mfenced open="[" close="]">
87 <mml:mn>1</mml:mn>
88 </mml:mfenced>
89 </mml:mrow>
90 <mml:mrow>
91 <mml:mi mathvariant="italic">v</mml:mi>
92 <mml:mo>&af;</mml:mo>
93 <mml:mfenced open="[" close="]">
94 <mml:mn>2</mml:mn>
95 </mml:mfenced>
96 </mml:mrow>
97 <mml:mrow>
98 <mml:mi mathvariant="italic">v</mml:mi>
99 <mml:mo>&af;</mml:mo>
100 <mml:mfenced open="[" close="]">
101 <mml:mn>3</mml:mn>
102 </mml:mfenced>
103 </mml:mrow>
104 </mml:mfenced>
105 </mml:mrow>
106 </mml:math></inlineequation>
107 is the set of object coordinates
108 of a vertex,
109 and <parameter>m</parameter> points to an array of
110 <inlineequation><mml:math>
111 <!-- eqn: 16:-->
112 <mml:mn>16</mml:mn>
113 </mml:math></inlineequation>
114 single- or double-precision
115 floating-point values
116 <inlineequation><mml:math>
117 <!-- eqn: m = left { m[0], m[1], ..., m[15] right }:-->
118 <mml:mrow>
119 <mml:mi mathvariant="italic">m</mml:mi>
120 <mml:mo>=</mml:mo>
121 <mml:mfenced open="{" close="}">
122 <mml:mrow>
123 <mml:mi mathvariant="italic">m</mml:mi>
124 <mml:mo>&af;</mml:mo>
125 <mml:mfenced open="[" close="]">
126 <mml:mn>0</mml:mn>
127 </mml:mfenced>
128 </mml:mrow>
129 <mml:mrow>
130 <mml:mi mathvariant="italic">m</mml:mi>
131 <mml:mo>&af;</mml:mo>
132 <mml:mfenced open="[" close="]">
133 <mml:mn>1</mml:mn>
134 </mml:mfenced>
135 </mml:mrow>
136 <mml:mi mathvariant="italic">...</mml:mi>
137 <mml:mrow>
138 <mml:mi mathvariant="italic">m</mml:mi>
139 <mml:mo>&af;</mml:mo>
140 <mml:mfenced open="[" close="]">
141 <mml:mn>15</mml:mn>
142 </mml:mfenced>
143 </mml:mrow>
144 </mml:mfenced>
145 </mml:mrow>
146 </mml:math></inlineequation>,
147 then the modelview transformation
148 <inlineequation><mml:math>
149 <!-- eqn: M(v):-->
150 <mml:mrow>
151 <mml:mi mathvariant="italic">M</mml:mi>
152 <mml:mo>&af;</mml:mo>
153 <mml:mfenced open="(" close=")">
154 <mml:mi mathvariant="italic">v</mml:mi>
155 </mml:mfenced>
156 </mml:mrow>
157 </mml:math></inlineequation>
158 does the following:
159 </para>
160 <para>
161 <informalequation><mml:math>
162 <!-- eqn: M(v) = 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 ):-->
163 <mml:mrow>
164 <mml:mrow>
165 <mml:mi mathvariant="italic">M</mml:mi>
166 <mml:mo>&af;</mml:mo>
167 <mml:mfenced open="(" close=")">
168 <mml:mi mathvariant="italic">v</mml:mi>
169 </mml:mfenced>
170 </mml:mrow>
171 <mml:mo>=</mml:mo>
172 <mml:mrow>
173 <mml:mfenced open="(" close=")">
174 <mml:mtable>
175 <mml:mtr>
176 <mml:mtd>
177 <mml:mrow>
178 <mml:mi mathvariant="italic">m</mml:mi>
179 <mml:mo>&af;</mml:mo>
180 <mml:mfenced open="[" close="]">
181 <mml:mn>0</mml:mn>
182 </mml:mfenced>
183 </mml:mrow>
184 </mml:mtd>
185 <mml:mtd>
186 <mml:mrow>
187 <mml:mi mathvariant="italic">m</mml:mi>
188 <mml:mo>&af;</mml:mo>
189 <mml:mfenced open="[" close="]">
190 <mml:mn>4</mml:mn>
191 </mml:mfenced>
192 </mml:mrow>
193 </mml:mtd>
194 <mml:mtd>
195 <mml:mrow>
196 <mml:mi mathvariant="italic">m</mml:mi>
197 <mml:mo>&af;</mml:mo>
198 <mml:mfenced open="[" close="]">
199 <mml:mn>8</mml:mn>
200 </mml:mfenced>
201 </mml:mrow>
202 </mml:mtd>
203 <mml:mtd>
204 <mml:mrow>
205 <mml:mi mathvariant="italic">m</mml:mi>
206 <mml:mo>&af;</mml:mo>
207 <mml:mfenced open="[" close="]">
208 <mml:mn>12</mml:mn>
209 </mml:mfenced>
210 </mml:mrow>
211 </mml:mtd>
212 </mml:mtr>
213 <mml:mtr>
214 <mml:mtd>
215 <mml:mrow>
216 <mml:mi mathvariant="italic">m</mml:mi>
217 <mml:mo>&af;</mml:mo>
218 <mml:mfenced open="[" close="]">
219 <mml:mn>1</mml:mn>
220 </mml:mfenced>
221 </mml:mrow>
222 </mml:mtd>
223 <mml:mtd>
224 <mml:mrow>
225 <mml:mi mathvariant="italic">m</mml:mi>
226 <mml:mo>&af;</mml:mo>
227 <mml:mfenced open="[" close="]">
228 <mml:mn>5</mml:mn>
229 </mml:mfenced>
230 </mml:mrow>
231 </mml:mtd>
232 <mml:mtd>
233 <mml:mrow>
234 <mml:mi mathvariant="italic">m</mml:mi>
235 <mml:mo>&af;</mml:mo>
236 <mml:mfenced open="[" close="]">
237 <mml:mn>9</mml:mn>
238 </mml:mfenced>
239 </mml:mrow>
240 </mml:mtd>
241 <mml:mtd>
242 <mml:mrow>
243 <mml:mi mathvariant="italic">m</mml:mi>
244 <mml:mo>&af;</mml:mo>
245 <mml:mfenced open="[" close="]">
246 <mml:mn>13</mml:mn>
247 </mml:mfenced>
248 </mml:mrow>
249 </mml:mtd>
250 </mml:mtr>
251 <mml:mtr>
252 <mml:mtd>
253 <mml:mrow>
254 <mml:mi mathvariant="italic">m</mml:mi>
255 <mml:mo>&af;</mml:mo>
256 <mml:mfenced open="[" close="]">
257 <mml:mn>2</mml:mn>
258 </mml:mfenced>
259 </mml:mrow>
260 </mml:mtd>
261 <mml:mtd>
262 <mml:mrow>
263 <mml:mi mathvariant="italic">m</mml:mi>
264 <mml:mo>&af;</mml:mo>
265 <mml:mfenced open="[" close="]">
266 <mml:mn>6</mml:mn>
267 </mml:mfenced>
268 </mml:mrow>
269 </mml:mtd>
270 <mml:mtd>
271 <mml:mrow>
272 <mml:mi mathvariant="italic">m</mml:mi>
273 <mml:mo>&af;</mml:mo>
274 <mml:mfenced open="[" close="]">
275 <mml:mn>10</mml:mn>
276 </mml:mfenced>
277 </mml:mrow>
278 </mml:mtd>
279 <mml:mtd>
280 <mml:mrow>
281 <mml:mi mathvariant="italic">m</mml:mi>
282 <mml:mo>&af;</mml:mo>
283 <mml:mfenced open="[" close="]">
284 <mml:mn>14</mml:mn>
285 </mml:mfenced>
286 </mml:mrow>
287 </mml:mtd>
288 </mml:mtr>
289 <mml:mtr>
290 <mml:mtd>
291 <mml:mrow>
292 <mml:mi mathvariant="italic">m</mml:mi>
293 <mml:mo>&af;</mml:mo>
294 <mml:mfenced open="[" close="]">
295 <mml:mn>3</mml:mn>
296 </mml:mfenced>
297 </mml:mrow>
298 </mml:mtd>
299 <mml:mtd>
300 <mml:mrow>
301 <mml:mi mathvariant="italic">m</mml:mi>
302 <mml:mo>&af;</mml:mo>
303 <mml:mfenced open="[" close="]">
304 <mml:mn>7</mml:mn>
305 </mml:mfenced>
306 </mml:mrow>
307 </mml:mtd>
308 <mml:mtd>
309 <mml:mrow>
310 <mml:mi mathvariant="italic">m</mml:mi>
311 <mml:mo>&af;</mml:mo>
312 <mml:mfenced open="[" close="]">
313 <mml:mn>11</mml:mn>
314 </mml:mfenced>
315 </mml:mrow>
316 </mml:mtd>
317 <mml:mtd>
318 <mml:mrow>
319 <mml:mi mathvariant="italic">m</mml:mi>
320 <mml:mo>&af;</mml:mo>
321 <mml:mfenced open="[" close="]">
322 <mml:mn>15</mml:mn>
323 </mml:mfenced>
324 </mml:mrow>
325 </mml:mtd>
326 </mml:mtr>
327 </mml:mtable>
328 </mml:mfenced>
329 <mml:mo>&times;</mml:mo>
330 <mml:mfenced open="(" close=")">
331 <mml:mtable>
332 <mml:mtr>
333 <mml:mtd>
334 <mml:mrow>
335 <mml:mi mathvariant="italic">v</mml:mi>
336 <mml:mo>&af;</mml:mo>
337 <mml:mfenced open="[" close="]">
338 <mml:mn>0</mml:mn>
339 </mml:mfenced>
340 </mml:mrow>
341 </mml:mtd>
342 </mml:mtr>
343 <mml:mtr>
344 <mml:mtd>
345 <mml:mrow>
346 <mml:mi mathvariant="italic">v</mml:mi>
347 <mml:mo>&af;</mml:mo>
348 <mml:mfenced open="[" close="]">
349 <mml:mn>1</mml:mn>
350 </mml:mfenced>
351 </mml:mrow>
352 </mml:mtd>
353 </mml:mtr>
354 <mml:mtr>
355 <mml:mtd>
356 <mml:mrow>
357 <mml:mi mathvariant="italic">v</mml:mi>
358 <mml:mo>&af;</mml:mo>
359 <mml:mfenced open="[" close="]">
360 <mml:mn>2</mml:mn>
361 </mml:mfenced>
362 </mml:mrow>
363 </mml:mtd>
364 </mml:mtr>
365 <mml:mtr>
366 <mml:mtd>
367 <mml:mrow>
368 <mml:mi mathvariant="italic">v</mml:mi>
369 <mml:mo>&af;</mml:mo>
370 <mml:mfenced open="[" close="]">
371 <mml:mn>3</mml:mn>
372 </mml:mfenced>
373 </mml:mrow>
374 </mml:mtd>
375 </mml:mtr>
376 </mml:mtable>
377 </mml:mfenced>
378 </mml:mrow>
379 </mml:mrow>
380 </mml:math></informalequation>
381 </para>
382 <para>
383 </para>
384 <para>
385 Projection and texture transformations are similarly defined.
386 </para>
387 </refsect1>
388 <refsect1 id="notes"><title>Notes</title>
389 <para>
390 While the elements of the matrix may be specified with
391 single or double precision, the GL implementation may
392 store or operate on these values in less than single
393 precision.
394 </para>
395 </refsect1>
396 <refsect1 id="errors"><title>Errors</title>
397 <para>
398 <constant>GL_INVALID_OPERATION</constant> is generated if <function>glLoadMatrix</function>
399 is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
400 and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
401 </para>
402 </refsect1>
403 <refsect1 id="associatedgets"><title>Associated Gets</title>
404 <para>
405 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MATRIX_MODE</constant>
406 </para>
407 <para>
408 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_COLOR_MATRIX</constant>
409 </para>
410 <para>
411 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MODELVIEW_MATRIX</constant>
412 </para>
413 <para>
414 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_PROJECTION_MATRIX</constant>
415 </para>
416 <para>
417 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_TEXTURE_MATRIX</constant>
418 </para>
419 </refsect1>
420 <refsect1 id="seealso"><title>See Also</title>
421 <para>
422 <citerefentry><refentrytitle>glLoadIdentity</refentrytitle></citerefentry>,
423 <citerefentry><refentrytitle>glMatrixMode</refentrytitle></citerefentry>,
424 <citerefentry><refentrytitle>glMultMatrix</refentrytitle></citerefentry>,
425 <citerefentry><refentrytitle>glMultTransposeMatrix</refentrytitle></citerefentry>,
426 <citerefentry><refentrytitle>glPushMatrix</refentrytitle></citerefentry>
427 </para>
428 </refsect1>
429 <refsect1 id="Copyright"><title>Copyright</title>
430 <para>
431 Copyright <trademark class="copyright"></trademark> 1991-2006
432 Silicon Graphics, Inc. This document is licensed under the SGI
433 Free Software B License. For details, see
434 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
435 </para>
436 </refsect1>
437 </refentry>