1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
2 <!-- saved from url=(0013)about:internet -->
3 <?xml-stylesheet type=
"text/xsl" href=
"mathml.xsl"?><html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:
pref=
"http://www.w3.org/2002/Math/preference" pref:
renderer=
"mathplayer-dl"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>gluUnProject4
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.73.2" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"gluUnProject4"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>gluUnProject4 — map window and clip coordinates to object coordinates
</p></div><div class=
"refsynopsisdiv"><h2>C Specification
</h2><div class=
"funcsynopsis"><table border=
"0" summary=
"Function synopsis" cellspacing=
"0" cellpadding=
"0"><tr><td><code class=
"funcdef">GLint
<b class=
"fsfunc">gluUnProject4
</b>(
</code></td><td>GLdouble
</td><td><var class=
"pdparam">winX
</var>,
</td></tr><tr><td> </td><td>GLdouble
</td><td><var class=
"pdparam">winY
</var>,
</td></tr><tr><td> </td><td>GLdouble
</td><td><var class=
"pdparam">winZ
</var>,
</td></tr><tr><td> </td><td>GLdouble
</td><td><var class=
"pdparam">clipW
</var>,
</td></tr><tr><td> </td><td>const GLdouble *
</td><td><var class=
"pdparam">model
</var>,
</td></tr><tr><td> </td><td>const GLdouble *
</td><td><var class=
"pdparam">proj
</var>,
</td></tr><tr><td> </td><td>const GLint *
</td><td><var class=
"pdparam">view
</var>,
</td></tr><tr><td> </td><td>GLdouble
</td><td><var class=
"pdparam">nearVal
</var>,
</td></tr><tr><td> </td><td>GLdouble
</td><td><var class=
"pdparam">farVal
</var>,
</td></tr><tr><td> </td><td>GLdouble*
</td><td><var class=
"pdparam">objX
</var>,
</td></tr><tr><td> </td><td>GLdouble*
</td><td><var class=
"pdparam">objY
</var>,
</td></tr><tr><td> </td><td>GLdouble*
</td><td><var class=
"pdparam">objZ
</var>,
</td></tr><tr><td> </td><td>GLdouble*
</td><td><var class=
"pdparam">objW
</var><code>)
</code>;
</td></tr></table></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"parameters"></a><h2>Parameters
</h2><div class=
"variablelist"><dl><dt><span class=
"term"><em class=
"parameter"><code>winX
</code></em>,
</span><span class=
"term"><em class=
"parameter"><code>winY
</code></em>,
</span><span class=
"term"><em class=
"parameter"><code>winZ
</code></em></span></dt><dd><p>
4 Specify the window coordinates to be mapped.
5 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>clipW
</code></em></span></dt><dd><p>
6 Specify the clip w coordinate to be mapped.
7 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>model
</code></em></span></dt><dd><p>
8 Specifies the modelview matrix (as from a
<a class=
"citerefentry" href=
"glGetDoublev.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetDoublev
</span></span></a> call).
9 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>proj
</code></em></span></dt><dd><p>
10 Specifies the projection matrix (as from a
<a class=
"citerefentry" href=
"glGetDoublev.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetDoublev
</span></span></a> call).
11 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>view
</code></em></span></dt><dd><p>
12 Specifies the viewport (as from a
<a class=
"citerefentry" href=
"glGetIntegerv.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetIntegerv
</span></span></a> call).
13 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>nearVal
</code></em>,
</span><span class=
"term"><em class=
"parameter"><code>farVal
</code></em></span></dt><dd><p>
14 Specifies the near and far planes (as from a
<a class=
"citerefentry" href=
"glGetDoublev.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGetDoublev
</span></span></a> call).
15 </p></dd><dt><span class=
"term"><em class=
"parameter"><code>objX
</code></em>,
</span><span class=
"term"><em class=
"parameter"><code>objY
</code></em>,
</span><span class=
"term"><em class=
"parameter"><code>objZ
</code></em>,
</span><span class=
"term"><em class=
"parameter"><code>objW
</code></em></span></dt><dd><p>
16 Returns the computed object coordinates.
17 </p></dd></dl></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
18 <code class=
"function">gluUnProject4
</code> maps the specified window coordinatesi:
<em class=
"parameter"><code>winX
</code></em>,
<em class=
"parameter"><code>winY
</code></em>, and
<em class=
"parameter"><code>winZ
</code></em>
19 and its clip w coordinate
<em class=
"parameter"><code>clipW
</code></em>
22 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
24 <mml:mfenced open=
"(" close=
")">
25 <mml:mi mathvariant=
"italic">objX
</mml:mi>
26 <mml:mi mathvariant=
"italic">objY
</mml:mi>
27 <mml:mi mathvariant=
"italic">objZ
</mml:mi>
28 <mml:mi mathvariant=
"italic">objW
</mml:mi>
31 using
<em class=
"parameter"><code>model
</code></em>,
<em class=
"parameter"><code>proj
</code></em>, and
<em class=
"parameter"><code>view
</code></em>.
<em class=
"parameter"><code>clipW
</code></em> can be other than
32 1 as for vertices in
<a class=
"citerefentry" href=
"glFeedbackBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glFeedbackBuffer
</span></span></a> when data type
33 <code class=
"constant">GLU_4D_COLOR_TEXTURE
</code> is returned.
34 This also handles the case
35 where the
<em class=
"parameter"><code>nearVal
</code></em> and
<em class=
"parameter"><code>farVal
</code></em> planes are different from the default,
36 0 and
1, respectively.
38 value of
<code class=
"constant">GLU_TRUE
</code> indicates success; a return value of
<code class=
"constant">GLU_FALSE
</code>
41 To compute the coordinates
42 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
44 <mml:mfenced open=
"(" close=
")">
45 <mml:mi mathvariant=
"italic">objX
</mml:mi>
46 <mml:mi mathvariant=
"italic">objY
</mml:mi>
47 <mml:mi mathvariant=
"italic">objZ
</mml:mi>
48 <mml:mi mathvariant=
"italic">objW
</mml:mi>
51 <code class=
"function">gluUnProject4
</code> multiplies the normalized device coordinates by the inverse of
52 <em class=
"parameter"><code>model
</code></em> *
<em class=
"parameter"><code>proj
</code></em> as follows:
54 </p><div class=
"informalequation"><mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
57 <mml:mfenced open=
"(" close=
")">
60 <mml:mi mathvariant=
"italic">objX
</mml:mi>
63 <mml:mi mathvariant=
"italic">objY
</mml:mi>
66 <mml:mi mathvariant=
"italic">objZ
</mml:mi>
69 <mml:mi mathvariant=
"italic">objW
</mml:mi>
76 <mml:mi mathvariant=
"italic">INV
</mml:mi>
78 <mml:mfenced open=
"(" close=
")">
80 <mml:mi mathvariant=
"italic">P
</mml:mi>
82 <mml:mi mathvariant=
"italic">M
</mml:mi>
87 <mml:mfenced open=
"(" close=
")">
92 <mml:mfenced open=
"" close=
"">
96 <mml:mfenced open=
"(" close=
")">
98 <mml:mi mathvariant=
"italic">winX
</mml:mi>
101 <mml:mi mathvariant=
"italic">view
</mml:mi>
103 <mml:mfenced open=
"[" close=
"]">
111 <mml:mfenced open=
"" close=
"">
113 <mml:mi mathvariant=
"italic">view
</mml:mi>
115 <mml:mfenced open=
"[" close=
"]">
128 <mml:mfenced open=
"" close=
"">
132 <mml:mfenced open=
"(" close=
")">
134 <mml:mi mathvariant=
"italic">winY
</mml:mi>
137 <mml:mi mathvariant=
"italic">view
</mml:mi>
139 <mml:mfenced open=
"[" close=
"]">
147 <mml:mfenced open=
"" close=
"">
149 <mml:mi mathvariant=
"italic">view
</mml:mi>
151 <mml:mfenced open=
"[" close=
"]">
164 <mml:mfenced open=
"" close=
"">
168 <mml:mfenced open=
"(" close=
")">
170 <mml:mi mathvariant=
"italic">winZ
</mml:mi>
172 <mml:mi mathvariant=
"italic">nearVal
</mml:mi>
177 <mml:mfenced open=
"" close=
"">
178 <mml:mfenced open=
"(" close=
")">
180 <mml:mi mathvariant=
"italic">farVal
</mml:mi>
182 <mml:mi mathvariant=
"italic">nearVal
</mml:mi>
192 <mml:mi mathvariant=
"italic">clipW
</mml:mi>
200 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll"><mml:mi mathvariant=
"italic">INV
</mml:mi></mml:math>
201 denotes matrix inversion.
203 <code class=
"function">gluUnProject4
</code> is equivalent to
<a class=
"citerefentry" href=
"gluUnProject.xml"><span class=
"citerefentry"><span class=
"refentrytitle">gluUnProject
</span></span></a> when
<em class=
"parameter"><code>clipW
</code></em> is
1,
<em class=
"parameter"><code>nearVal
</code></em> is
0, and
204 <em class=
"parameter"><code>farVal
</code></em> is
1.
205 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"notes"></a><h2>Notes
</h2><p>
206 <code class=
"function">gluUnProject4
</code> is available only if the GLU version is
1.3 or greater.
207 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
208 <a class=
"citerefentry" href=
"gluProject.xml"><span class=
"citerefentry"><span class=
"refentrytitle">gluProject
</span></span></a>,
209 <a class=
"citerefentry" href=
"gluUnProject.xml"><span class=
"citerefentry"><span class=
"refentrytitle">gluUnProject
</span></span></a>,
210 <a class=
"citerefentry" href=
"glFeedbackBuffer.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glFeedbackBuffer
</span></span></a>,
211 <a class=
"citerefentry" href=
"glGet.xml"><span class=
"citerefentry"><span class=
"refentrytitle">glGet
</span></span></a>
212 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
213 Copyright
<span class=
"trademark"></span>©
1991-
2006
214 Silicon Graphics, Inc. This document is licensed under the SGI
215 Free Software B License. For details, see
216 <a class=
"ulink" href=
"http://oss.sgi.com/projects/FreeB/" target=
"_top">http://oss.sgi.com/projects/FreeB/
</a>.
217 </p></div></div></body></html>