~oem-solutions-group/unity-2d/clutter-1.0

« back to all changes in this revision

Viewing changes to doc/reference/cogl/xml/cogl-matrix.xml

  • Committer: Bazaar Package Importer
  • Author(s): Emilio Pozuelo Monfort
  • Date: 2010-03-21 13:27:56 UTC
  • mto: (2.1.3 experimental)
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20100321132756-nf8yd30yxo3zzwcm
Tags: upstream-1.2.2
ImportĀ upstreamĀ versionĀ 1.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
2
 
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
4
 
<!ENTITY version "1.0.8">
5
 
]>
6
 
<refentry id="cogl-Matrices">
7
 
<refmeta>
8
 
<refentrytitle role="top_of_page" id="cogl-Matrices.top_of_page">Matrices</refentrytitle>
9
 
<manvolnum>3</manvolnum>
10
 
<refmiscinfo>COGL Library</refmiscinfo>
11
 
</refmeta>
12
 
 
13
 
<refnamediv>
14
 
<refname>Matrices</refname>
15
 
<refpurpose>Fuctions for initializing and manipulating 4x4
16
 
                    matrices.</refpurpose>
17
 
</refnamediv>
18
 
 
19
 
<refsynopsisdiv id="cogl-Matrices.synopsis" role="synopsis">
20
 
<title role="synopsis.title">Synopsis</title>
21
 
 
22
 
<synopsis>
23
 
                    <link linkend="CoglMatrix">CoglMatrix</link>;
24
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-init-identity">cogl_matrix_init_identity</link>           (<link linkend="CoglMatrix">CoglMatrix</link> *matrix);
25
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-frustum">cogl_matrix_frustum</link>                 (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
26
 
                                                         <link linkend="float">float</link> left,
27
 
                                                         <link linkend="float">float</link> right,
28
 
                                                         <link linkend="float">float</link> bottom,
29
 
                                                         <link linkend="float">float</link> top,
30
 
                                                         <link linkend="float">float</link> z_near,
31
 
                                                         <link linkend="float">float</link> z_far);
32
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-ortho">cogl_matrix_ortho</link>                   (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
33
 
                                                         <link linkend="float">float</link> left,
34
 
                                                         <link linkend="float">float</link> right,
35
 
                                                         <link linkend="float">float</link> bottom,
36
 
                                                         <link linkend="float">float</link> top,
37
 
                                                         <link linkend="float">float</link> z_near,
38
 
                                                         <link linkend="float">float</link> z_far);
39
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-perspective">cogl_matrix_perspective</link>             (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
40
 
                                                         <link linkend="float">float</link> fov_y,
41
 
                                                         <link linkend="float">float</link> aspect,
42
 
                                                         <link linkend="float">float</link> z_near,
43
 
                                                         <link linkend="float">float</link> z_far);
44
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-transform-point">cogl_matrix_transform_point</link>         (const <link linkend="CoglMatrix">CoglMatrix</link> *matrix,
45
 
                                                         <link linkend="float">float</link> *x,
46
 
                                                         <link linkend="float">float</link> *y,
47
 
                                                         <link linkend="float">float</link> *z,
48
 
                                                         <link linkend="float">float</link> *w);
49
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-multiply">cogl_matrix_multiply</link>                (<link linkend="CoglMatrix">CoglMatrix</link> *result,
50
 
                                                         const <link linkend="CoglMatrix">CoglMatrix</link> *a,
51
 
                                                         const <link linkend="CoglMatrix">CoglMatrix</link> *b);
52
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-rotate">cogl_matrix_rotate</link>                  (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
53
 
                                                         <link linkend="float">float</link> angle,
54
 
                                                         <link linkend="float">float</link> x,
55
 
                                                         <link linkend="float">float</link> y,
56
 
                                                         <link linkend="float">float</link> z);
57
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-translate">cogl_matrix_translate</link>               (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
58
 
                                                         <link linkend="float">float</link> x,
59
 
                                                         <link linkend="float">float</link> y,
60
 
                                                         <link linkend="float">float</link> z);
61
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-scale">cogl_matrix_scale</link>                   (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
62
 
                                                         <link linkend="float">float</link> sx,
63
 
                                                         <link linkend="float">float</link> sy,
64
 
                                                         <link linkend="float">float</link> sz);
65
 
<link linkend="void">void</link>                <link linkend="cogl-matrix-init-from-array">cogl_matrix_init_from_array</link>         (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
66
 
                                                         const <link linkend="float">float</link> *array);
67
 
const <link linkend="float">float</link> *       <link linkend="cogl-matrix-get-array">cogl_matrix_get_array</link>               (const <link linkend="CoglMatrix">CoglMatrix</link> *matrix);
68
 
</synopsis>
69
 
</refsynopsisdiv>
70
 
 
71
 
 
72
 
 
73
 
 
74
 
 
75
 
 
76
 
 
77
 
 
78
 
 
79
 
<refsect1 id="cogl-Matrices.description" role="desc">
80
 
<title role="desc.title">Description</title>
81
 
<para>
82
 
Matrices are used in Cogl to describe affine model-view transforms, texture
83
 
transforms, and projective transforms. This exposes a utility API that can
84
 
be used for direct manipulation of these matrices.</para>
85
 
<para>
86
 
</para>
87
 
</refsect1>
88
 
 
89
 
<refsect1 id="cogl-Matrices.details" role="details">
90
 
<title role="details.title">Details</title>
91
 
<refsect2 id="CoglMatrix" role="struct">
92
 
<title>CoglMatrix</title>
93
 
<indexterm zone="CoglMatrix"><primary sortas="Matrix">CoglMatrix</primary></indexterm><programlisting>typedef struct {
94
 
} CoglMatrix;
95
 
</programlisting>
96
 
<para>
97
 
A CoglMatrix holds a 4x4 transform matrix. This is a single precision,
98
 
column-major matrix which means it is compatible with what OpenGL expects.
99
 
</para>
100
 
<para>
101
 
A CoglMatrix can represent transforms such as, rotations, scaling,
102
 
translation, sheering, and linear projections. You can combine these
103
 
transforms by multiplying multiple matrices in the order you want them
104
 
applied.
105
 
</para>
106
 
<para>
107
 
The transformation of a vertex (x, y, z, w) by a CoglMatrix is given by:
108
 
</para>
109
 
<para>
110
 
<informalexample><programlisting>
111
 
  x_new = xx * x + xy * y + xz * z + xw * w
112
 
  y_new = yx * x + yy * y + yz * z + yw * w
113
 
  z_new = zx * x + zy * y + zz * z + zw * w
114
 
  w_new = wx * x + wy * y + wz * z + ww * w
115
 
</programlisting></informalexample>
116
 
</para>
117
 
<para>
118
 
Where w is normally 1
119
 
</para>
120
 
<para>
121
 
<note>You must consider the members of the CoglMatrix structure read only,
122
 
and all matrix modifications must be done via the cogl_matrix API. This
123
 
allows Cogl to annotate the matrices internally. Violation of this will give
124
 
undefined results. If you need to initialize a matrix with a constant other
125
 
than the identity matrix you can use <link linkend="cogl-matrix-init-from-array"><function>cogl_matrix_init_from_array()</function></link>.</note></para>
126
 
<para>
127
 
</para></refsect2>
128
 
<refsect2 id="cogl-matrix-init-identity" role="function">
129
 
<title>cogl_matrix_init_identity ()</title>
130
 
<indexterm zone="cogl-matrix-init-identity"><primary sortas="matrix_init_identity">cogl_matrix_init_identity</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_init_identity           (<link linkend="CoglMatrix">CoglMatrix</link> *matrix);</programlisting>
131
 
<para>
132
 
Resets matrix to the identity matrix:
133
 
<programlisting>
134
 
.xx=1; .xy=0; .xz=0; .xw=0;
135
 
.yx=0; .yy=1; .yz=0; .yw=0;
136
 
.zx=0; .zy=0; .zz=1; .zw=0;
137
 
.wx=0; .wy=0; .wz=0; .ww=1;
138
 
</programlisting></para>
139
 
<para>
140
 
</para><variablelist role="params">
141
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
142
 
<listitem><simpara> A 4x4 transformation matrix
143
 
</simpara></listitem></varlistentry>
144
 
</variablelist></refsect2>
145
 
<refsect2 id="cogl-matrix-frustum" role="function">
146
 
<title>cogl_matrix_frustum ()</title>
147
 
<indexterm zone="cogl-matrix-frustum"><primary sortas="matrix_frustum">cogl_matrix_frustum</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_frustum                 (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
148
 
                                                         <link linkend="float">float</link> left,
149
 
                                                         <link linkend="float">float</link> right,
150
 
                                                         <link linkend="float">float</link> bottom,
151
 
                                                         <link linkend="float">float</link> top,
152
 
                                                         <link linkend="float">float</link> z_near,
153
 
                                                         <link linkend="float">float</link> z_far);</programlisting>
154
 
<para>
155
 
Multiplies the matrix by the given frustum perspective matrix.</para>
156
 
<para>
157
 
</para><variablelist role="params">
158
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
159
 
<listitem><simpara> A 4x4 transformation matrix
160
 
</simpara></listitem></varlistentry>
161
 
<varlistentry><term><parameter>left</parameter>&#160;:</term>
162
 
<listitem><simpara> coord of left vertical clipping plane
163
 
</simpara></listitem></varlistentry>
164
 
<varlistentry><term><parameter>right</parameter>&#160;:</term>
165
 
<listitem><simpara> coord of right vertical clipping plane
166
 
</simpara></listitem></varlistentry>
167
 
<varlistentry><term><parameter>bottom</parameter>&#160;:</term>
168
 
<listitem><simpara> coord of bottom horizontal clipping plane
169
 
</simpara></listitem></varlistentry>
170
 
<varlistentry><term><parameter>top</parameter>&#160;:</term>
171
 
<listitem><simpara> coord of top horizontal clipping plane
172
 
</simpara></listitem></varlistentry>
173
 
<varlistentry><term><parameter>z_near</parameter>&#160;:</term>
174
 
<listitem><simpara> positive distance to near depth clipping plane
175
 
</simpara></listitem></varlistentry>
176
 
<varlistentry><term><parameter>z_far</parameter>&#160;:</term>
177
 
<listitem><simpara> positive distance to far depth clipping plane
178
 
</simpara></listitem></varlistentry>
179
 
</variablelist></refsect2>
180
 
<refsect2 id="cogl-matrix-ortho" role="function">
181
 
<title>cogl_matrix_ortho ()</title>
182
 
<indexterm zone="cogl-matrix-ortho"><primary sortas="matrix_ortho">cogl_matrix_ortho</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_ortho                   (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
183
 
                                                         <link linkend="float">float</link> left,
184
 
                                                         <link linkend="float">float</link> right,
185
 
                                                         <link linkend="float">float</link> bottom,
186
 
                                                         <link linkend="float">float</link> top,
187
 
                                                         <link linkend="float">float</link> z_near,
188
 
                                                         <link linkend="float">float</link> z_far);</programlisting>
189
 
<para>
190
 
Multiples the matrix by a parallel projection matrix.</para>
191
 
<para>
192
 
</para><variablelist role="params">
193
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
194
 
<listitem><simpara> A 4x4 transformation matrix
195
 
</simpara></listitem></varlistentry>
196
 
<varlistentry><term><parameter>left</parameter>&#160;:</term>
197
 
<listitem><simpara> The coordinate for the left clipping plane
198
 
</simpara></listitem></varlistentry>
199
 
<varlistentry><term><parameter>right</parameter>&#160;:</term>
200
 
<listitem><simpara> The coordinate for the right clipping plane
201
 
</simpara></listitem></varlistentry>
202
 
<varlistentry><term><parameter>bottom</parameter>&#160;:</term>
203
 
<listitem><simpara> The coordinate for the bottom clipping plane
204
 
</simpara></listitem></varlistentry>
205
 
<varlistentry><term><parameter>top</parameter>&#160;:</term>
206
 
<listitem><simpara> The coordinate for the top clipping plane
207
 
</simpara></listitem></varlistentry>
208
 
<varlistentry><term><parameter>z_near</parameter>&#160;:</term>
209
 
<listitem><simpara> The coordinate for the near clipping plane (may be negative if
210
 
         the plane is behind the viewer)
211
 
</simpara></listitem></varlistentry>
212
 
<varlistentry><term><parameter>z_far</parameter>&#160;:</term>
213
 
<listitem><simpara> The coordinate for the far clipping plane (may be negative if
214
 
        the plane is behind the viewer)
215
 
</simpara></listitem></varlistentry>
216
 
</variablelist></refsect2>
217
 
<refsect2 id="cogl-matrix-perspective" role="function">
218
 
<title>cogl_matrix_perspective ()</title>
219
 
<indexterm zone="cogl-matrix-perspective"><primary sortas="matrix_perspective">cogl_matrix_perspective</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_perspective             (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
220
 
                                                         <link linkend="float">float</link> fov_y,
221
 
                                                         <link linkend="float">float</link> aspect,
222
 
                                                         <link linkend="float">float</link> z_near,
223
 
                                                         <link linkend="float">float</link> z_far);</programlisting>
224
 
<para>
225
 
Multiplies the matrix by the described perspective matrix
226
 
</para>
227
 
<para>
228
 
Note: you should be careful not to have to great a <parameter>z_far</parameter> / <parameter>z_near</parameter> ratio
229
 
since that will reduce the effectiveness of depth testing since there wont
230
 
be enough precision to identify the depth of objects near to each other.</para>
231
 
<para>
232
 
</para><variablelist role="params">
233
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
234
 
<listitem><simpara> A 4x4 transformation matrix
235
 
</simpara></listitem></varlistentry>
236
 
<varlistentry><term><parameter>fov_y</parameter>&#160;:</term>
237
 
<listitem><simpara> A field of view angle for the Y axis
238
 
</simpara></listitem></varlistentry>
239
 
<varlistentry><term><parameter>aspect</parameter>&#160;:</term>
240
 
<listitem><simpara> The ratio of width to height determining the field of view angle
241
 
         for the x axis.
242
 
</simpara></listitem></varlistentry>
243
 
<varlistentry><term><parameter>z_near</parameter>&#160;:</term>
244
 
<listitem><simpara> The distance to the near clip plane.
245
 
         Never pass 0 and always pass a positive number.
246
 
</simpara></listitem></varlistentry>
247
 
<varlistentry><term><parameter>z_far</parameter>&#160;:</term>
248
 
<listitem><simpara> The distance to the far clip plane. (Should always be positive)
249
 
</simpara></listitem></varlistentry>
250
 
</variablelist></refsect2>
251
 
<refsect2 id="cogl-matrix-transform-point" role="function">
252
 
<title>cogl_matrix_transform_point ()</title>
253
 
<indexterm zone="cogl-matrix-transform-point"><primary sortas="matrix_transform_point">cogl_matrix_transform_point</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_transform_point         (const <link linkend="CoglMatrix">CoglMatrix</link> *matrix,
254
 
                                                         <link linkend="float">float</link> *x,
255
 
                                                         <link linkend="float">float</link> *y,
256
 
                                                         <link linkend="float">float</link> *z,
257
 
                                                         <link linkend="float">float</link> *w);</programlisting>
258
 
<para>
259
 
This transforms a point whos position is given and returned
260
 
as four float components.</para>
261
 
<para>
262
 
</para><variablelist role="params">
263
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
264
 
<listitem><simpara> A 4x4 transformation matrix
265
 
</simpara></listitem></varlistentry>
266
 
<varlistentry><term><parameter>x</parameter>&#160;:</term>
267
 
<listitem><simpara> The X component of your points position [in:out]
268
 
</simpara></listitem></varlistentry>
269
 
<varlistentry><term><parameter>y</parameter>&#160;:</term>
270
 
<listitem><simpara> The Y component of your points position [in:out]
271
 
</simpara></listitem></varlistentry>
272
 
<varlistentry><term><parameter>z</parameter>&#160;:</term>
273
 
<listitem><simpara> The Z component of your points position [in:out]
274
 
</simpara></listitem></varlistentry>
275
 
<varlistentry><term><parameter>w</parameter>&#160;:</term>
276
 
<listitem><simpara> The W component of your points position [in:out]
277
 
</simpara></listitem></varlistentry>
278
 
</variablelist></refsect2>
279
 
<refsect2 id="cogl-matrix-multiply" role="function">
280
 
<title>cogl_matrix_multiply ()</title>
281
 
<indexterm zone="cogl-matrix-multiply"><primary sortas="matrix_multiply">cogl_matrix_multiply</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_multiply                (<link linkend="CoglMatrix">CoglMatrix</link> *result,
282
 
                                                         const <link linkend="CoglMatrix">CoglMatrix</link> *a,
283
 
                                                         const <link linkend="CoglMatrix">CoglMatrix</link> *b);</programlisting>
284
 
<para>
285
 
This function multiples the two supplied matricies together and stores
286
 
the result in <parameter>result</parameter></para>
287
 
<para>
288
 
</para><variablelist role="params">
289
 
<varlistentry><term><parameter>result</parameter>&#160;:</term>
290
 
<listitem><simpara> The address of a 4x4 matrix to store the result in
291
 
</simpara></listitem></varlistentry>
292
 
<varlistentry><term><parameter>a</parameter>&#160;:</term>
293
 
<listitem><simpara> A 4x4 transformation matrix
294
 
</simpara></listitem></varlistentry>
295
 
<varlistentry><term><parameter>b</parameter>&#160;:</term>
296
 
<listitem><simpara> A 4x4 transformation matrix
297
 
</simpara></listitem></varlistentry>
298
 
</variablelist></refsect2>
299
 
<refsect2 id="cogl-matrix-rotate" role="function">
300
 
<title>cogl_matrix_rotate ()</title>
301
 
<indexterm zone="cogl-matrix-rotate"><primary sortas="matrix_rotate">cogl_matrix_rotate</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_rotate                  (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
302
 
                                                         <link linkend="float">float</link> angle,
303
 
                                                         <link linkend="float">float</link> x,
304
 
                                                         <link linkend="float">float</link> y,
305
 
                                                         <link linkend="float">float</link> z);</programlisting>
306
 
<para>
307
 
This function multiples your matrix with a rotation matrix that applies
308
 
a rotation of <link linkend="angle"><type>angle</type></link> degrees around the specified 3D vector.</para>
309
 
<para>
310
 
</para><variablelist role="params">
311
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
312
 
<listitem><simpara> A 4x4 transformation matrix
313
 
</simpara></listitem></varlistentry>
314
 
<varlistentry><term><parameter>angle</parameter>&#160;:</term>
315
 
<listitem><simpara> The angle you want to rotate in degrees
316
 
</simpara></listitem></varlistentry>
317
 
<varlistentry><term><parameter>x</parameter>&#160;:</term>
318
 
<listitem><simpara> X component of your rotation vector
319
 
</simpara></listitem></varlistentry>
320
 
<varlistentry><term><parameter>y</parameter>&#160;:</term>
321
 
<listitem><simpara> Y component of your rotation vector
322
 
</simpara></listitem></varlistentry>
323
 
<varlistentry><term><parameter>z</parameter>&#160;:</term>
324
 
<listitem><simpara> Z component of your rotation vector
325
 
</simpara></listitem></varlistentry>
326
 
</variablelist></refsect2>
327
 
<refsect2 id="cogl-matrix-translate" role="function">
328
 
<title>cogl_matrix_translate ()</title>
329
 
<indexterm zone="cogl-matrix-translate"><primary sortas="matrix_translate">cogl_matrix_translate</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_translate               (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
330
 
                                                         <link linkend="float">float</link> x,
331
 
                                                         <link linkend="float">float</link> y,
332
 
                                                         <link linkend="float">float</link> z);</programlisting>
333
 
<para>
334
 
</para><variablelist role="params">
335
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
336
 
<listitem><simpara>
337
 
</simpara></listitem></varlistentry>
338
 
<varlistentry><term><parameter>x</parameter>&#160;:</term>
339
 
<listitem><simpara>
340
 
</simpara></listitem></varlistentry>
341
 
<varlistentry><term><parameter>y</parameter>&#160;:</term>
342
 
<listitem><simpara>
343
 
</simpara></listitem></varlistentry>
344
 
<varlistentry><term><parameter>z</parameter>&#160;:</term>
345
 
<listitem><simpara>
346
 
</simpara></listitem></varlistentry>
347
 
</variablelist></refsect2>
348
 
<refsect2 id="cogl-matrix-scale" role="function">
349
 
<title>cogl_matrix_scale ()</title>
350
 
<indexterm zone="cogl-matrix-scale"><primary sortas="matrix_scale">cogl_matrix_scale</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_scale                   (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
351
 
                                                         <link linkend="float">float</link> sx,
352
 
                                                         <link linkend="float">float</link> sy,
353
 
                                                         <link linkend="float">float</link> sz);</programlisting>
354
 
<para>
355
 
This function multiples your matrix with a transform matrix that scales
356
 
along the X, Y and Z axis.</para>
357
 
<para>
358
 
</para><variablelist role="params">
359
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
360
 
<listitem><simpara> A 4x4 transformation matrix
361
 
</simpara></listitem></varlistentry>
362
 
<varlistentry><term><parameter>sx</parameter>&#160;:</term>
363
 
<listitem><simpara> The X scale factor
364
 
</simpara></listitem></varlistentry>
365
 
<varlistentry><term><parameter>sy</parameter>&#160;:</term>
366
 
<listitem><simpara> The Y scale factor
367
 
</simpara></listitem></varlistentry>
368
 
<varlistentry><term><parameter>sz</parameter>&#160;:</term>
369
 
<listitem><simpara> The Z scale factor
370
 
</simpara></listitem></varlistentry>
371
 
</variablelist></refsect2>
372
 
<refsect2 id="cogl-matrix-init-from-array" role="function">
373
 
<title>cogl_matrix_init_from_array ()</title>
374
 
<indexterm zone="cogl-matrix-init-from-array"><primary sortas="matrix_init_from_array">cogl_matrix_init_from_array</primary></indexterm><programlisting><link linkend="void">void</link>                cogl_matrix_init_from_array         (<link linkend="CoglMatrix">CoglMatrix</link> *matrix,
375
 
                                                         const <link linkend="float">float</link> *array);</programlisting>
376
 
<para>
377
 
This initialises <parameter>matrix</parameter> with the contents of <parameter>array</parameter></para>
378
 
<para>
379
 
</para><variablelist role="params">
380
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
381
 
<listitem><simpara> A 4x4 transformation matrix
382
 
</simpara></listitem></varlistentry>
383
 
<varlistentry><term><parameter>array</parameter>&#160;:</term>
384
 
<listitem><simpara> A linear array of 16 floats (column-major order)
385
 
</simpara></listitem></varlistentry>
386
 
</variablelist></refsect2>
387
 
<refsect2 id="cogl-matrix-get-array" role="function">
388
 
<title>cogl_matrix_get_array ()</title>
389
 
<indexterm zone="cogl-matrix-get-array"><primary sortas="matrix_get_array">cogl_matrix_get_array</primary></indexterm><programlisting>const <link linkend="float">float</link> *       cogl_matrix_get_array               (const <link linkend="CoglMatrix">CoglMatrix</link> *matrix);</programlisting>
390
 
<para>
391
 
This casts a CoglMatrix to a float array which can be directly passed to
392
 
OpenGL.</para>
393
 
<para>
394
 
</para><variablelist role="params">
395
 
<varlistentry><term><parameter>matrix</parameter>&#160;:</term>
396
 
<listitem><simpara> A 4x4 transformation matrix
397
 
</simpara></listitem></varlistentry>
398
 
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a pointer to the float array
399
 
</simpara></listitem></varlistentry>
400
 
</variablelist></refsect2>
401
 
 
402
 
</refsect1>
403
 
 
404
 
 
405
 
 
406
 
 
407
 
</refentry>