Files
OpenArena/doc/html/class_open_arena_1_1_camera.html
2006-07-19 00:03:26 -04:00

834 lines
40 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>OpenArena: OpenArena::Camera Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="namespace_open_arena.html">OpenArena</a>::<a class="el" href="class_open_arena_1_1_camera.html">Camera</a></div>
<h1>OpenArena::Camera Class Reference</h1><!-- doxytag: class="OpenArena::Camera" -->The <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> class represents a camera or view in 3-dimensional space.
<a href="#_details">More...</a>
<p>
<code>#include &lt;camera.h&gt;</code>
<p>
<a href="class_open_arena_1_1_camera-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#bb376200420ebb3a66d05ec0aa9349b9">Camera</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> object. <a href="#bb376200420ebb3a66d05ec0aa9349b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#a9aa0d60f8f88ed64e695dcd2a5ead25">Position</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this Camera's position. <a href="#a9aa0d60f8f88ed64e695dcd2a5ead25"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#55fdaa3adbb54036cbeabb58621151c7">View</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the view vector of this camera. <a href="#55fdaa3adbb54036cbeabb58621151c7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#1059827a14e8be84398b344e2c9a6ac6">UpVector</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a vector pointing up with respect to the view. <a href="#1059827a14e8be84398b344e2c9a6ac6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#90e293115cfc8b82e56c5975af2b2340">Strafe</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns this Camera's strafe vector. <a href="#90e293115cfc8b82e56c5975af2b2340"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#e442c80b0291b9e72e188b8f267f0f8b">PositionCamera</a> (double xpos, double ypos, double zpos, double xview, double yview, double zview, double xup, double yup, double zup)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Relocates and reorients this <a class="el" href="class_open_arena_1_1_camera.html">Camera</a>. <a href="#e442c80b0291b9e72e188b8f267f0f8b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#c647757a221f41f78487fb11fc9cedb9">PositionCamera</a> (<a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a> pos, <a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a> view, <a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a> up)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Relocates and reorients this <a class="el" href="class_open_arena_1_1_camera.html">Camera</a>. <a href="#c647757a221f41f78487fb11fc9cedb9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#8d3d5a12988ca56c7d86caecab77f891">RotateView</a> (double angle, <a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a> axis)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the camera a given ammount around a given axis. <a href="#8d3d5a12988ca56c7d86caecab77f891"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#74996afcd49ed188350c9dcaf46c9064">RotateView</a> (double angle, double X, double Y, double Z)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotates the camera a given ammount around a given axis. <a href="#74996afcd49ed188350c9dcaf46c9064"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#c6d1ddc9aedc346967227e7892ced12c">SetViewByMouse</a> (<a class="el" href="class_open_arena_1_1_window.html">Window</a> window)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the view and up vectors based on mouse movement. <a href="#c6d1ddc9aedc346967227e7892ced12c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#7c509721078606ef3d1348be2314b704">StrafeCamera</a> (double speed)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Moves the camera along its strafe axis a given distance. <a href="#7c509721078606ef3d1348be2314b704"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#d9a8e82dfd65dc414630142769b2e939">MoveCamera</a> (double speed)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Moves the camera along its view vector a given number of units. <a href="#d9a8e82dfd65dc414630142769b2e939"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#28bc2891a2d4f08cd3208bdf40cb7e21">Update</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Recalculates the strafe vector. <a href="#28bc2891a2d4f08cd3208bdf40cb7e21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#157113367b26e66f41a7c03a96041237">Look</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calls gluLookAt to tell OpenGL where to render from. <a href="#157113367b26e66f41a7c03a96041237"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#0431a9b2752d9074011a2bb29b1dfd21">RotateHorizontal</a> (float angle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write brief comment for RotateHorizontal here. <a href="#0431a9b2752d9074011a2bb29b1dfd21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#dbaec1b05c7495babd28136204fad594">RotateVertical</a> (float angle)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write brief comment for RotateVertical here. <a href="#dbaec1b05c7495babd28136204fad594"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#219a76dc8e65945774e3528947f7d968">GetUpVector</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write brief comment for GetUpVector here. <a href="#219a76dc8e65945774e3528947f7d968"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#d5a25265612eb37c611fde3d3b412469">GetRightVector</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write brief comment for GetRightVector here. <a href="#d5a25265612eb37c611fde3d3b412469"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#42750b47e5606fb71ba715da9a4b3a9a">GetForwardVector</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write brief comment for GetForwardVector here. <a href="#42750b47e5606fb71ba715da9a4b3a9a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#d29881ee271ce07f1d4164e22ae1fdac">UpdateVectors</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#d7de81b78e41164443888012d105ed55">m_vPosition</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#49a63a47dbc79ce926fb6e68e65c4ade">m_vView</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#b48b08d52de388a5d1bd06a242714116">m_vUpVector</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_arena_1_1_camera.html#e5cd1fa4c3d236d319e667fdd407bfef">m_vStrafe</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> class represents a camera or view in 3-dimensional space.
<p>
The <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> class maintains location, view, and orientation (up view) vectors. The <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> can be moved and rotated in any direction. It includes a wrapper, <a class="el" href="class_open_arena_1_1_camera.html#157113367b26e66f41a7c03a96041237">Look()</a>, for gluLookAt.<p>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="bb376200420ebb3a66d05ec0aa9349b9"></a><!-- doxytag: member="OpenArena::Camera::Camera" ref="bb376200420ebb3a66d05ec0aa9349b9" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">OpenArena::Camera::Camera </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> object.
<p>
Creates a new <a class="el" href="class_open_arena_1_1_camera.html">Camera</a> object located at the origin, pointing at the negative z-axis with up being the positive y-axis.
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="42750b47e5606fb71ba715da9a4b3a9a"></a><!-- doxytag: member="OpenArena::Camera::GetForwardVector" ref="42750b47e5606fb71ba715da9a4b3a9a" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::GetForwardVector </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Write brief comment for GetForwardVector here.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>Write description of return value here.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>&lt;exception</em>&nbsp;</td><td>class&gt; Description of criteria for throwing this exception.</td></tr>
</table>
</dl>
Write detailed description for GetForwardVector here.<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Write remarks for GetForwardVector here.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd>Separate items with the '|' character. </dd></dl>
</div>
</div><p>
<a class="anchor" name="d5a25265612eb37c611fde3d3b412469"></a><!-- doxytag: member="OpenArena::Camera::GetRightVector" ref="d5a25265612eb37c611fde3d3b412469" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::GetRightVector </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Write brief comment for GetRightVector here.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>Write description of return value here.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>&lt;exception</em>&nbsp;</td><td>class&gt; Description of criteria for throwing this exception.</td></tr>
</table>
</dl>
Write detailed description for GetRightVector here.<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Write remarks for GetRightVector here.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd>Separate items with the '|' character. </dd></dl>
</div>
</div><p>
<a class="anchor" name="219a76dc8e65945774e3528947f7d968"></a><!-- doxytag: member="OpenArena::Camera::GetUpVector" ref="219a76dc8e65945774e3528947f7d968" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::GetUpVector </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Write brief comment for GetUpVector here.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>Write description of return value here.</dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>&lt;exception</em>&nbsp;</td><td>class&gt; Description of criteria for throwing this exception.</td></tr>
</table>
</dl>
Write detailed description for GetUpVector here.<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Write remarks for GetUpVector here.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd>Separate items with the '|' character. </dd></dl>
</div>
</div><p>
<a class="anchor" name="157113367b26e66f41a7c03a96041237"></a><!-- doxytag: member="OpenArena::Camera::Look" ref="157113367b26e66f41a7c03a96041237" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::Look </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Calls gluLookAt to tell OpenGL where to render from.
<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Uses the position, view, and up vectors.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="d9a8e82dfd65dc414630142769b2e939"></a><!-- doxytag: member="OpenArena::Camera::MoveCamera" ref="d9a8e82dfd65dc414630142769b2e939" args="(double speed)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::MoveCamera </td>
<td>(</td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>speed</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Moves the camera along its view vector a given number of units.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>speed</em>&nbsp;</td><td>The distance to move the camera.</td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="a9aa0d60f8f88ed64e695dcd2a5ead25"></a><!-- doxytag: member="OpenArena::Camera::Position" ref="a9aa0d60f8f88ed64e695dcd2a5ead25" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::Position </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns this Camera's position.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>This Camera's position as a <a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a> vector.</dd></dl>
Returns this Camera's position.
</div>
</div><p>
<a class="anchor" name="c647757a221f41f78487fb11fc9cedb9"></a><!-- doxytag: member="OpenArena::Camera::PositionCamera" ref="c647757a221f41f78487fb11fc9cedb9" args="(Vec3d pos, Vec3d view, Vec3d up)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::PositionCamera </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td>
<td class="paramname"> <em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td>
<td class="paramname"> <em>view</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td>
<td class="paramname"> <em>up</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Relocates and reorients this <a class="el" href="class_open_arena_1_1_camera.html">Camera</a>.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>The new position vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>view</em>&nbsp;</td><td>The new view vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>up</em>&nbsp;</td><td>The new up vector.</td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="e442c80b0291b9e72e188b8f267f0f8b"></a><!-- doxytag: member="OpenArena::Camera::PositionCamera" ref="e442c80b0291b9e72e188b8f267f0f8b" args="(double xpos, double ypos, double zpos, double xview, double yview, double zview, double xup, double yup, double zup)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::PositionCamera </td>
<td>(</td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>xpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>ypos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>zpos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>xview</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>yview</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>zview</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>xup</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>yup</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>zup</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Relocates and reorients this <a class="el" href="class_open_arena_1_1_camera.html">Camera</a>.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>xpos</em>&nbsp;</td><td>The x-coordinate of the new position vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>ypos</em>&nbsp;</td><td>The y-coordinate of the new position vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>zpos</em>&nbsp;</td><td>The z-coordinate of the new position vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>xview</em>&nbsp;</td><td>The x-coordinate of the new view vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>yview</em>&nbsp;</td><td>The y-coordinate of the new view vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>zview</em>&nbsp;</td><td>The z-coordinate of the new view vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>xup</em>&nbsp;</td><td>The x-coordinate of the new up vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>yup</em>&nbsp;</td><td>The y-coordinate of the new up vector.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>zup</em>&nbsp;</td><td>The z-coordinate of the new up vector.</td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="0431a9b2752d9074011a2bb29b1dfd21"></a><!-- doxytag: member="OpenArena::Camera::RotateHorizontal" ref="0431a9b2752d9074011a2bb29b1dfd21" args="(float angle)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::RotateHorizontal </td>
<td>(</td>
<td class="paramtype">float&nbsp;</td>
<td class="paramname"> <em>angle</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Write brief comment for RotateHorizontal here.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>angle</em>&nbsp;</td><td>Description of parameter angle.</td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>&lt;exception</em>&nbsp;</td><td>class&gt; Description of criteria for throwing this exception.</td></tr>
</table>
</dl>
Write detailed description for RotateHorizontal here.<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Write remarks for RotateHorizontal here.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd>Separate items with the '|' character. </dd></dl>
</div>
</div><p>
<a class="anchor" name="dbaec1b05c7495babd28136204fad594"></a><!-- doxytag: member="OpenArena::Camera::RotateVertical" ref="dbaec1b05c7495babd28136204fad594" args="(float angle)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::RotateVertical </td>
<td>(</td>
<td class="paramtype">float&nbsp;</td>
<td class="paramname"> <em>angle</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Write brief comment for RotateVertical here.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>angle</em>&nbsp;</td><td>Description of parameter angle.</td></tr>
</table>
</dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>&lt;exception</em>&nbsp;</td><td>class&gt; Description of criteria for throwing this exception.</td></tr>
</table>
</dl>
Write detailed description for RotateVertical here.<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Write remarks for RotateVertical here.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd>Separate items with the '|' character. </dd></dl>
</div>
</div><p>
<a class="anchor" name="74996afcd49ed188350c9dcaf46c9064"></a><!-- doxytag: member="OpenArena::Camera::RotateView" ref="74996afcd49ed188350c9dcaf46c9064" args="(double angle, double X, double Y, double Z)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::RotateView </td>
<td>(</td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>X</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>Y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>Z</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Rotates the camera a given ammount around a given axis.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>angle</em>&nbsp;</td><td>The number of degrees to rotate.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>X</em>&nbsp;</td><td>The x component of the vector representing the axis to rotate around</td></tr>
<tr><td valign="top"></td><td valign="top"><em>Y</em>&nbsp;</td><td>The y component of the vector representing the axis to rotate around</td></tr>
<tr><td valign="top"></td><td valign="top"><em>Z</em>&nbsp;</td><td>The z component of the vector representing the axis to rotate around</td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>The vector should be normalized as the values get passed directly to glRotatef().</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="8d3d5a12988ca56c7d86caecab77f891"></a><!-- doxytag: member="OpenArena::Camera::RotateView" ref="8d3d5a12988ca56c7d86caecab77f891" args="(double angle, Vec3d axis)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::RotateView </td>
<td>(</td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>angle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3d</a>&nbsp;</td>
<td class="paramname"> <em>axis</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Rotates the camera a given ammount around a given axis.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>angle</em>&nbsp;</td><td>The number of degrees to rotate.</td></tr>
<tr><td valign="top"></td><td valign="top"><em>axis</em>&nbsp;</td><td>A vector representing the axis to rotate around.</td></tr>
</table>
</dl>
This method passes the arguments to glRotatef()<p>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="c6d1ddc9aedc346967227e7892ced12c"></a><!-- doxytag: member="OpenArena::Camera::SetViewByMouse" ref="c6d1ddc9aedc346967227e7892ced12c" args="(Window window)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::SetViewByMouse </td>
<td>(</td>
<td class="paramtype"><a class="el" href="class_open_arena_1_1_window.html">Window</a>&nbsp;</td>
<td class="paramname"> <em>window</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Updates the view and up vectors based on mouse movement.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>window</em>&nbsp;</td><td>The <a class="el" href="class_open_arena_1_1_window.html">Window</a> used to get the mouse coordinates.</td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd>This will be removed in favor of some sort of event trigger.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="90e293115cfc8b82e56c5975af2b2340"></a><!-- doxytag: member="OpenArena::Camera::Strafe" ref="90e293115cfc8b82e56c5975af2b2340" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::Strafe </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns this Camera's strafe vector.
<p>
The strafe axis is an axis perpendicular to both the up vector and the view vector.<p>
<dl compact><dt><b>Returns:</b></dt><dd>This Camera's strafe vector.</dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="7c509721078606ef3d1348be2314b704"></a><!-- doxytag: member="OpenArena::Camera::StrafeCamera" ref="7c509721078606ef3d1348be2314b704" args="(double speed)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::StrafeCamera </td>
<td>(</td>
<td class="paramtype">double&nbsp;</td>
<td class="paramname"> <em>speed</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Moves the camera along its strafe axis a given distance.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>speed</em>&nbsp;</td><td>The distance to move.</td></tr>
</table>
</dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="28bc2891a2d4f08cd3208bdf40cb7e21"></a><!-- doxytag: member="OpenArena::Camera::Update" ref="28bc2891a2d4f08cd3208bdf40cb7e21" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::Update </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Recalculates the strafe vector.
<p>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="d29881ee271ce07f1d4164e22ae1fdac"></a><!-- doxytag: member="OpenArena::Camera::UpdateVectors" ref="d29881ee271ce07f1d4164e22ae1fdac" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void OpenArena::Camera::UpdateVectors </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [private]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="1059827a14e8be84398b344e2c9a6ac6"></a><!-- doxytag: member="OpenArena::Camera::UpVector" ref="1059827a14e8be84398b344e2c9a6ac6" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::UpVector </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a vector pointing up with respect to the view.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>A vector pointing up with respect to the view.</dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<a class="anchor" name="55fdaa3adbb54036cbeabb58621151c7"></a><!-- doxytag: member="OpenArena::Camera::View" ref="55fdaa3adbb54036cbeabb58621151c7" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> OpenArena::Camera::View </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the view vector of this camera.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The view vector of this camera.</dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd></dd></dl>
</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="d7de81b78e41164443888012d105ed55"></a><!-- doxytag: member="OpenArena::Camera::m_vPosition" ref="d7de81b78e41164443888012d105ed55" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> <a class="el" href="class_open_arena_1_1_camera.html#d7de81b78e41164443888012d105ed55">OpenArena::Camera::m_vPosition</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="e5cd1fa4c3d236d319e667fdd407bfef"></a><!-- doxytag: member="OpenArena::Camera::m_vStrafe" ref="e5cd1fa4c3d236d319e667fdd407bfef" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> <a class="el" href="class_open_arena_1_1_camera.html#e5cd1fa4c3d236d319e667fdd407bfef">OpenArena::Camera::m_vStrafe</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="b48b08d52de388a5d1bd06a242714116"></a><!-- doxytag: member="OpenArena::Camera::m_vUpVector" ref="b48b08d52de388a5d1bd06a242714116" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> <a class="el" href="class_open_arena_1_1_camera.html#b48b08d52de388a5d1bd06a242714116">OpenArena::Camera::m_vUpVector</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="49a63a47dbc79ce926fb6e68e65c4ade"></a><!-- doxytag: member="OpenArena::Camera::m_vView" ref="49a63a47dbc79ce926fb6e68e65c4ade" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_open_arena_1_1_vec3d.html">Vec3f</a> <a class="el" href="class_open_arena_1_1_camera.html#49a63a47dbc79ce926fb6e68e65c4ade">OpenArena::Camera::m_vView</a><code> [private]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="camera_8h.html">camera.h</a><li>src/<a class="el" href="camera_8cpp.html">camera.cpp</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Tue Jul 11 00:17:52 2006 for OpenArena by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>