Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2cca44f12eb8ef579d4d0baff7068f29 > files > 195

ghc-OpenGL-devel-2.2.3.0-7.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Graphics.Rendering.OpenGL.GL.CoordTrans</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Graphics-Rendering-OpenGL-GL-CoordTrans.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">OpenGL-2.2.3.0: A binding for the OpenGL graphics system</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>stable</td></tr><tr><th>Maintainer</th><td>sven.panne@aedion.de</td></tr></table><p class="caption">Graphics.Rendering.OpenGL.GL.CoordTrans</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Controlling the Viewport
</a></li><li><a href="#g:2">Matrices
</a></li><li><a href="#g:3">Normal Transformation
</a></li><li><a href="#g:4">Generating Texture Coordinates
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module corresponds to section 2.11 (Coordinate Transformations) of the
 OpenGL 2.1 specs.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:depthRange">depthRange</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLclampd">GLclampd</a>, <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLclampd">GLclampd</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Position">Position</a>  = <a href="#v:Position">Position</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLint">GLint</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLint">GLint</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Size">Size</a>  = <a href="#v:Size">Size</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a></li><li class="src short"><a href="#v:viewport">viewport</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a>, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a>)</li><li class="src short"><a href="#v:maxViewportDims">maxViewportDims</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:GettableStateVar">GettableStateVar</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:MatrixMode">MatrixMode</a> <ul class="subs"><li>= <a href="#v:Modelview">Modelview</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a>  </li><li>| <a href="#v:Projection">Projection</a>  </li><li>| <a href="#v:Texture">Texture</a>  </li><li>| <a href="#v:Color">Color</a>  </li><li>| <a href="#v:MatrixPalette">MatrixPalette</a>  </li></ul></li><li class="src short"><a href="#v:matrixMode">matrixMode</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a></li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Vector1">Vector1</a> a = <a href="#v:Vector1">Vector1</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Vector2">Vector2</a> a = <a href="#v:Vector2">Vector2</a> !a !a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Vector3">Vector3</a> a = <a href="#v:Vector3">Vector3</a> !a !a !a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Vector4">Vector4</a> a = <a href="#v:Vector4">Vector4</a> !a !a !a !a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:MatrixOrder">MatrixOrder</a> <ul class="subs"><li>= <a href="#v:ColumnMajor">ColumnMajor</a>  </li><li>| <a href="#v:RowMajor">RowMajor</a>  </li></ul></li><li class="src short"><span class="keyword">class</span> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> c =&gt; <a href="#t:MatrixComponent">MatrixComponent</a> c  <span class="keyword">where</span><ul class="subs"><li><a href="#v:rotate">rotate</a> :: c -&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li><a href="#v:translate">translate</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li><a href="#v:scale">scale</a> :: c -&gt; c -&gt; c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Matrix">Matrix</a> m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:withNewMatrix">withNewMatrix</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a>) -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (m c)</li><li><a href="#v:withMatrix">withMatrix</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; m c -&gt; (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a</li><li><a href="#v:newMatrix">newMatrix</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; [c] -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (m c)</li><li><a href="#v:getMatrixComponents">getMatrixComponents</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; m c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> [c]</li></ul></li><li class="src short"><a href="#v:currentMatrix">currentMatrix</a> :: (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> m, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c) =&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (m c)</li><li class="src short"><a href="#v:matrix">matrix</a> :: (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> m, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (m c)</li><li class="src short"><a href="#v:multMatrix">multMatrix</a> :: (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> m, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c) =&gt; m c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GLmatrix">GLmatrix</a> a</li><li class="src short"><a href="#v:loadIdentity">loadIdentity</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:ortho">ortho</a> :: <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:frustum">frustum</a> :: <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:depthClamp">depthClamp</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:Capability">Capability</a></li><li class="src short"><a href="#v:activeTexture">activeTexture</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:TextureUnit">TextureUnit</a></li><li class="src short"><a href="#v:preservingMatrix">preservingMatrix</a> ::  <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:unsafePreservingMatrix">unsafePreservingMatrix</a> ::  <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a</li><li class="src short"><a href="#v:stackDepth">stackDepth</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:GettableStateVar">GettableStateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a></li><li class="src short"><a href="#v:maxStackDepth">maxStackDepth</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:GettableStateVar">GettableStateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a></li><li class="src short"><a href="#v:rescaleNormal">rescaleNormal</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:Capability">Capability</a></li><li class="src short"><a href="#v:normalize">normalize</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:Capability">Capability</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Plane">Plane</a> a = <a href="#v:Plane">Plane</a> !a !a !a !a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TextureCoordName">TextureCoordName</a> <ul class="subs"><li>= <a href="#v:S">S</a>  </li><li>| <a href="#v:T">T</a>  </li><li>| <a href="#v:R">R</a>  </li><li>| <a href="#v:Q">Q</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TextureGenMode">TextureGenMode</a> <ul class="subs"><li>= <a href="#v:EyeLinear">EyeLinear</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a>)  </li><li>| <a href="#v:ObjectLinear">ObjectLinear</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a>)  </li><li>| <a href="#v:SphereMap">SphereMap</a>  </li><li>| <a href="#v:NormalMap">NormalMap</a>  </li><li>| <a href="#v:ReflectionMap">ReflectionMap</a>  </li></ul></li><li class="src short"><a href="#v:textureGenMode">textureGenMode</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureCoordName">TextureCoordName</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureGenMode">TextureGenMode</a>)</li></ul></div><div id="interface"><h1 id="g:1">Controlling the Viewport
</h1><div class="top"><p class="src"><a name="v:depthRange" class="def">depthRange</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLclampd">GLclampd</a>, <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLclampd">GLclampd</a>)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#depthRange" class="link">Source</a></p><div class="doc"><p>After clipping and division by <em>w</em>, depth coordinates range from -1 to 1,
 corresponding to the near and far clipping planes. <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:depthRange">depthRange</a></code> specifies a
 linear mapping of the normalized depth coordinates in this range to window
 depth coordinates. Regardless of the actual depth buffer implementation,
 window coordinate depth values are treated as though they range from 0
 through 1 (like color components). Thus, the values accepted by <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:depthRange">depthRange</a></code>
 are both clamped to this range before they are accepted.
</p><p>The initial setting of (0, 1) maps the near plane to 0 and the far plane to
 1. With this mapping, the depth buffer range is fully utilized.
</p><p>It is not necessary that the near value be less than the far value. Reverse
 mappings such as (1, 0) are acceptable.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Position" class="def">Position</a>  <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#Position" class="link">Source</a></p><div class="doc"><p>A 2-dimensional position, measured in pixels.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Position" class="def">Position</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLint">GLint</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLint">GLint</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Position" class="caption collapser" onclick="toggleSection('i:Position')">Instances</p><div id="section.i:Position" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Size" class="def">Size</a>  <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#Size" class="link">Source</a></p><div class="doc"><p>A 2-dimensional size, measured in pixels.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Size" class="def">Size</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a> !<a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Size" class="caption collapser" onclick="toggleSection('i:Size')">Instances</p><div id="section.i:Size" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:viewport" class="def">viewport</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Position">Position</a>, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a>)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#viewport" class="link">Source</a></p><div class="doc"><p>Controls the affine transformation from normalized device coordinates to
 window coordinates. The viewport state variable consists of the coordinates
 (<em>x</em>, <em>y</em>) of the lower left corner of the viewport rectangle, (in pixels,
 initial value (0,0)), and the size (<em>width</em>, <em>height</em>) of the viewport. When
 a GL context is first attached to a window, <em>width</em> and <em>height</em> are set to
 the dimensions of that window.
</p><p>Let (<em>xnd</em>, <em>ynd</em>) be normalized device coordinates. Then the window
 coordinates (<em>xw</em>, <em>yw</em>) are computed as follows:
</p><p><em>xw</em> = (<em>xnd</em> + 1) (<em>width</em>  / 2) + <em>x</em>
</p><p><em>yw</em> = (<em>ynd</em> + 1) (<em>heigth</em> / 2) + <em>y</em>
</p><p>Viewport width and height are silently clamped to a range that depends on the
 implementation, see <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:maxViewportDims">maxViewportDims</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:maxViewportDims" class="def">maxViewportDims</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:GettableStateVar">GettableStateVar</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Size">Size</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#maxViewportDims" class="link">Source</a></p><div class="doc"><p>The implementation-dependent maximum viewport width and height.
</p></div></div><h1 id="g:2">Matrices
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:MatrixMode" class="def">MatrixMode</a>  <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#MatrixMode" class="link">Source</a></p><div class="doc"><p>A matrix stack.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Modelview" class="def">Modelview</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a></td><td class="doc"><p>The modelview matrix stack of the specified vertex unit.
</p></td></tr><tr><td class="src"><a name="v:Projection" class="def">Projection</a></td><td class="doc"><p>The projection matrix stack.
</p></td></tr><tr><td class="src"><a name="v:Texture" class="def">Texture</a></td><td class="doc"><p>The texture matrix stack.
</p></td></tr><tr><td class="src"><a name="v:Color" class="def">Color</a></td><td class="doc"><p>The color matrix stack.
</p></td></tr><tr><td class="src"><a name="v:MatrixPalette" class="def">MatrixPalette</a></td><td class="doc"><p>The matrix palette stack.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:MatrixMode" class="caption collapser" onclick="toggleSection('i:MatrixMode')">Instances</p><div id="section.i:MatrixMode" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:matrixMode" class="def">matrixMode</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#matrixMode" class="link">Source</a></p><div class="doc"><p>Controls which matrix stack is the target for subsequent matrix operations.
 The initial value is (<code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:Modelview">Modelview</a></code> 0).
</p></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Vector1" class="def">Vector1</a> a <a href="src/Graphics-Rendering-OpenGL-GL-Tensor.html#Vector1" class="link">Source</a></p><div class="doc"><p>A one-dimensional vector.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Vector1" class="def">Vector1</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Vector1" class="caption collapser" onclick="toggleSection('i:Vector1')">Instances</p><div id="section.i:Vector1" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable1">Typeable1</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Foldable.html#t:Foldable">Foldable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Traversable.html#t:Traversable">Traversable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttribComponent">VertexAttribComponent</a> a =&gt; <a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttrib">VertexAttrib</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector1">Vector1</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Vector2" class="def">Vector2</a> a <a href="src/Graphics-Rendering-OpenGL-GL-Tensor.html#Vector2" class="link">Source</a></p><div class="doc"><p>A two-dimensional vector.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Vector2" class="def">Vector2</a> !a !a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Vector2" class="caption collapser" onclick="toggleSection('i:Vector2')">Instances</p><div id="section.i:Vector2" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable1">Typeable1</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Foldable.html#t:Foldable">Foldable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Traversable.html#t:Traversable">Traversable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttribComponent">VertexAttribComponent</a> a =&gt; <a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttrib">VertexAttrib</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector2">Vector2</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Vector3" class="def">Vector3</a> a <a href="src/Graphics-Rendering-OpenGL-GL-Tensor.html#Vector3" class="link">Source</a></p><div class="doc"><p>A three-dimensional vector.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Vector3" class="def">Vector3</a> !a !a !a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Vector3" class="caption collapser" onclick="toggleSection('i:Vector3')">Instances</p><div id="section.i:Vector3" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable1">Typeable1</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Foldable.html#t:Foldable">Foldable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Traversable.html#t:Traversable">Traversable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttribComponent">VertexAttribComponent</a> a =&gt; <a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttrib">VertexAttrib</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Vector4" class="def">Vector4</a> a <a href="src/Graphics-Rendering-OpenGL-GL-Tensor.html#Vector4" class="link">Source</a></p><div class="doc"><p>A four-dimensional vector.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Vector4" class="def">Vector4</a> !a !a !a !a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Vector4" class="caption collapser" onclick="toggleSection('i:Vector4')">Instances</p><div id="section.i:Vector4" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable1">Typeable1</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Foldable.html#t:Foldable">Foldable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Traversable.html#t:Traversable">Traversable</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Bounded">Bounded</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Read.html#t:Read">Read</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ix.html#t:Ix">Ix</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttribComponent">VertexAttribComponent</a> a =&gt; <a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:VertexAttrib">VertexAttrib</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector4">Vector4</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:MatrixOrder" class="def">MatrixOrder</a>  <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#MatrixOrder" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ColumnMajor" class="def">ColumnMajor</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RowMajor" class="def">RowMajor</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:MatrixOrder" class="caption collapser" onclick="toggleSection('i:MatrixOrder')">Instances</p><div id="section.i:MatrixOrder" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> c =&gt; <a name="t:MatrixComponent" class="def">MatrixComponent</a> c  <span class="keyword">where</span><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#MatrixComponent" class="link">Source</a></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:rotate" class="def">rotate</a> :: c -&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#rotate" class="link">Source</a></p><p class="src"><a name="v:translate" class="def">translate</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Vector3">Vector3</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#translate" class="link">Source</a></p><p class="src"><a name="v:scale" class="def">scale</a> :: c -&gt; c -&gt; c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#scale" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:MatrixComponent" class="caption collapser" onclick="toggleSection('i:MatrixComponent')">Instances</p><div id="section.i:MatrixComponent" class="show"><table><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Double">Double</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Float">Float</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Matrix" class="def">Matrix</a> m  <span class="keyword">where</span><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#Matrix" class="link">Source</a></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:withNewMatrix" class="def">withNewMatrix</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a>) -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (m c)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#withNewMatrix" class="link">Source</a></p><div class="doc"><p>Create a new matrix of the given order (containing undefined elements)
 and call the action to fill it with 4x4 elements.
</p></div><p class="src"><a name="v:withMatrix" class="def">withMatrix</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; m c -&gt; (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Ptr.html#t:Ptr">Ptr</a> c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#withMatrix" class="link">Source</a></p><div class="doc"><p>Call the action with the given matrix. <em>Note:</em> The action is <em>not</em>
 allowed to modify the matrix elements!
</p></div><p class="src"><a name="v:newMatrix" class="def">newMatrix</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; [c] -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> (m c)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#newMatrix" class="link">Source</a></p><p class="src"><a name="v:getMatrixComponents" class="def">getMatrixComponents</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c =&gt; <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixOrder">MatrixOrder</a> -&gt; m c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> [c]<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#getMatrixComponents" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Matrix" class="caption collapser" onclick="toggleSection('i:Matrix')">Instances</p><div id="section.i:Matrix" class="show"><table><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:GLmatrix">GLmatrix</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:currentMatrix" class="def">currentMatrix</a> :: (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> m, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c) =&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (m c)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#currentMatrix" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:matrix" class="def">matrix</a> :: (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> m, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c) =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (m c)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#matrix" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:multMatrix" class="def">multMatrix</a> :: (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> m, <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixComponent">MatrixComponent</a> c) =&gt; m c -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#multMatrix" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:GLmatrix" class="def">GLmatrix</a> a <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#GLmatrix" class="link">Source</a></p><div class="subs instances"><p id="control.i:GLmatrix" class="caption collapser" onclick="toggleSection('i:GLmatrix')">Instances</p><div id="section.i:GLmatrix" class="show"><table><tr><td class="src"><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Matrix">Matrix</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:GLmatrix">GLmatrix</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:GLmatrix">GLmatrix</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:GLmatrix">GLmatrix</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:GLmatrix">GLmatrix</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:loadIdentity" class="def">loadIdentity</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#loadIdentity" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:ortho" class="def">ortho</a> :: <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#ortho" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:frustum" class="def">frustum</a> :: <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#frustum" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:depthClamp" class="def">depthClamp</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:Capability">Capability</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#depthClamp" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:activeTexture" class="def">activeTexture</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-VertexSpec.html#t:TextureUnit">TextureUnit</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#activeTexture" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:preservingMatrix" class="def">preservingMatrix</a> ::  <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#preservingMatrix" class="link">Source</a></p><div class="doc"><p>Push the current matrix stack down by one, duplicating the current matrix,
 excute the given action, and pop the current matrix stack, replacing the
 current matrix with the one below it on the stack (i.e. restoring it to its
 previous state). The returned value is that of the given action. Note that
 a round-trip to the server is probably required. For a more efficient
 version, see <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:unsafePreservingMatrix">unsafePreservingMatrix</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:unsafePreservingMatrix" class="def">unsafePreservingMatrix</a> ::  <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/System-IO.html#t:IO">IO</a> a<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#unsafePreservingMatrix" class="link">Source</a></p><div class="doc"><p>A more efficient, but potentially dangerous version of <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:preservingMatrix">preservingMatrix</a></code>:
 The given action is not allowed to throw an exception or change the
 current matrix mode permanently.
</p></div></div><div class="top"><p class="src"><a name="v:stackDepth" class="def">stackDepth</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:GettableStateVar">GettableStateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#stackDepth" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:maxStackDepth" class="def">maxStackDepth</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:MatrixMode">MatrixMode</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:GettableStateVar">GettableStateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLsizei">GLsizei</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#maxStackDepth" class="link">Source</a></p></div><h1 id="g:3">Normal Transformation
</h1><div class="top"><p class="src"><a name="v:rescaleNormal" class="def">rescaleNormal</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:Capability">Capability</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#rescaleNormal" class="link">Source</a></p><div class="doc"><p>If <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:rescaleNormal">rescaleNormal</a></code> contains <code><a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#v:Enabled">Enabled</a></code>, normal vectors specified with
 <code>Graphics.Rendering.OpenGL.GL.VertexSpec.normal</code> are scaled by a scaling
 factor derived from the modelview matrix. <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:rescaleNormal">rescaleNormal</a></code> requires that the
 originally specified normals were of unit length, and that the modelview
 matrix contains only uniform scales for proper results. The initial value of
 <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:rescaleNormal">rescaleNormal</a></code> is <code><a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#v:Disabled">Disabled</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:normalize" class="def">normalize</a> :: <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:Capability">Capability</a><a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#normalize" class="link">Source</a></p><div class="doc"><p>If <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:normalize">normalize</a></code> contains <code><a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#v:Enabled">Enabled</a></code>, normal vectors specified with
 <code>Graphics.Rendering.OpenGL.GL.VertexSpec.normal</code> are scaled to unit length
 after transformation. The initial value of <code><a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:normalize">normalize</a></code> is <code><a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#v:Disabled">Disabled</a></code>.
</p></div></div><h1 id="g:4">Generating Texture Coordinates
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Plane" class="def">Plane</a> a <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#Plane" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Plane" class="def">Plane</a> !a !a !a !a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Plane" class="caption collapser" onclick="toggleSection('i:Plane')">Instances</p><div id="section.i:Plane" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> a =&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Foreign-Storable.html#t:Storable">Storable</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TextureCoordName" class="def">TextureCoordName</a>  <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#TextureCoordName" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:S" class="def">S</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:T" class="def">T</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:R" class="def">R</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Q" class="def">Q</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TextureCoordName" class="caption collapser" onclick="toggleSection('i:TextureCoordName')">Instances</p><div id="section.i:TextureCoordName" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureCoordName">TextureCoordName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureCoordName">TextureCoordName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureCoordName">TextureCoordName</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TextureGenMode" class="def">TextureGenMode</a>  <a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#TextureGenMode" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:EyeLinear" class="def">EyeLinear</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ObjectLinear" class="def">ObjectLinear</a> (<a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:Plane">Plane</a> <a href="Graphics-Rendering-OpenGL-GL-BasicTypes.html#t:GLdouble">GLdouble</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SphereMap" class="def">SphereMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NormalMap" class="def">NormalMap</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ReflectionMap" class="def">ReflectionMap</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TextureGenMode" class="caption collapser" onclick="toggleSection('i:TextureGenMode')">Instances</p><div id="section.i:TextureGenMode" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureGenMode">TextureGenMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureGenMode">TextureGenMode</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Text-Show.html#t:Show">Show</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureGenMode">TextureGenMode</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:textureGenMode" class="def">textureGenMode</a> :: <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureCoordName">TextureCoordName</a> -&gt; <a href="Graphics-Rendering-OpenGL-GL-StateVar.html#t:StateVar">StateVar</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Graphics-Rendering-OpenGL-GL-CoordTrans.html#t:TextureGenMode">TextureGenMode</a>)<a href="src/Graphics-Rendering-OpenGL-GL-CoordTrans.html#textureGenMode" class="link">Source</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>