Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 942400fecdd956c4a42f319760a792c6 > files > 104

libQGLViewer-doc-2.3.9-1.fc16.noarch.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/xhtml;charset=UTF-8"/>
<title>libQGLViewer: AxisPlaneConstraint Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link rel="shortcut icon" href="../images/qglviewer.ico" type="image/x-icon" />
<link rel="icon" href="../images/qglviewer.icon.png" type="image/png" />
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.7.2 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="../index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>

      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li>AxisPlaneConstraint      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<h1>AxisPlaneConstraint Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="qglviewer::AxisPlaneConstraint" --><!-- doxytag: inherits="qglviewer::Constraint" -->
<p>An abstract class for <a class="el" href="classqglviewer_1_1Frame.html" title="The Frame class represents a coordinate system, defined by a position and an orientation.">Frame</a> Constraints defined by an axis or a plane.  
<a href="#_details">More...</a></p>

<p><a href="classqglviewer_1_1AxisPlaneConstraint-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> { <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">FREE</a>, 
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AXIS</a>, 
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">PLANE</a>, 
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67">FORBIDDEN</a>
 }</td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1049b4e70e2fc0d46b4cfaf93d167515">AxisPlaneConstraint</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a88334a0bc0770afe6bd3af525f70ad9f">~AxisPlaneConstraint</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Translation constraint</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#ab7d724965c6765209f47c1abe7f7b7b4">constrainTranslation</a> (<a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;translation, <a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *const frame)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a722c30f7303a078681fbf516499579de">setTranslationConstraint</a> (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> type, const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;direction)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a0cee03d4db5722e992c20f042601eaa5">setTranslationConstraintType</a> (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> type)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a2b676c088af158a52724bbbab15d1a65">setTranslationConstraintDirection</a> (const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;direction)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classqglviewer_1_1Vec.html">Vec</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a431b0d36842122de9db3b4e4f00b8d7c">translationConstraintDirection</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
Rotation constraint</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a5de5f38e75b58476b7926171dba4b31b">constrainRotation</a> (<a class="el" href="classqglviewer_1_1Quaternion.html">Quaternion</a> &amp;rotation, <a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *const frame)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a116f0f394030f165b031287c1e1cf5ea">setRotationConstraint</a> (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> type, const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;direction)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a7c0dc83d6a770742719c8d3ffa67c4e5">setRotationConstraintType</a> (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> type)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a7cb6055005e69d6edac8fbb0d14dd0fa">setRotationConstraintDirection</a> (const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;direction)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a61a05b9e18948b2b787e355c90b7b85f">rotationConstraintType</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classqglviewer_1_1Vec.html">Vec</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#af982989dbeb2e0e63c85eecc09bd88d7">rotationConstraintDirection</a> () const </td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>An abstract class for <a class="el" href="classqglviewer_1_1Frame.html" title="The Frame class represents a coordinate system, defined by a position and an orientation.">Frame</a> Constraints defined by an axis or a plane. </p>
<p>AxisPlaneConstraint is an interface for (translation and/or rotation) <a class="el" href="classqglviewer_1_1Constraint.html" title="An interface class for Frame constraints.">Constraint</a> that are defined by a direction. <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a61a05b9e18948b2b787e355c90b7b85f">rotationConstraintType()</a> define how this direction should be interpreted: as an axis (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AxisPlaneConstraint::AXIS</a>) or as a plane normal (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">AxisPlaneConstraint::PLANE</a>). See the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type()</a> documentation for details.</p>
<p>The three implementations of this class: <a class="el" href="classqglviewer_1_1LocalConstraint.html" title="An AxisPlaneConstraint defined in the Frame local coordinate system.">LocalConstraint</a>, <a class="el" href="classqglviewer_1_1WorldConstraint.html" title="An AxisPlaneConstraint defined in the world coordinate system.">WorldConstraint</a> and <a class="el" href="classqglviewer_1_1CameraConstraint.html" title="An AxisPlaneConstraint defined in the camera coordinate system.">CameraConstraint</a> differ by the coordinate system in which this direction is expressed.</p>
<p>Different implementations of this class are illustrated in the <a href="../examples/constrainedCamera.html">contrainedCamera</a> and <a href="../examples/constrainedFrame.html">constrainedFrame</a> examples.</p>
<dl class="attention"><dt><b>Attention:</b></dt><dd>When applied, the rotational <a class="el" href="classqglviewer_1_1Constraint.html" title="An interface class for Frame constraints.">Constraint</a> may not intuitively follow the mouse displacement. A solution would be to directly measure the rotation angle in screen coordinates, but that would imply to know the <a class="el" href="classQGLViewer.html#a27a9e97573822d296b48e1c408b74042">QGLViewer::camera()</a>, so that we can compute the projected coordinates of the rotation center (as is done with the <a class="el" href="classQGLViewer.html#aded669cb17515ea2b5971496f9aef875a410b0fa7f49e7eedd6d739db37c67209">SCREEN_ROTATE</a> binding). However, adding an extra pointer to the <a class="el" href="classQGLViewer.html#a27a9e97573822d296b48e1c408b74042">QGLViewer::camera()</a> in all the AxisPlaneConstraint derived classes (which the user would have to update in a multi-viewer application) was judged as an overkill. </dd></dl>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a1d1cfd8ffb84e947f82999c682b666a7"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::Type" ref="a1d1cfd8ffb84e947f82999c682b666a7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Type lists the different types of translation and rotation constraints that are available.</p>
<p>It specifies the meaning of the constraint direction (see <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a431b0d36842122de9db3b4e4f00b8d7c">translationConstraintDirection()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#af982989dbeb2e0e63c85eecc09bd88d7">rotationConstraintDirection()</a>): as an axis direction (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AxisPlaneConstraint::AXIS</a>) or a plane normal (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">AxisPlaneConstraint::PLANE</a>). <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a> means no constraint while <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67">AxisPlaneConstraint::FORBIDDEN</a> completely forbids the translation and/or the rotation.</p>
<p>See <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a61a05b9e18948b2b787e355c90b7b85f">rotationConstraintType()</a>.</p>
<dl class="attention"><dt><b>Attention:</b></dt><dd>The <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">AxisPlaneConstraint::PLANE</a> Type is not valid for rotational constraint.</dd></dl>
<p>New derived classes can use their own extended enum for specific constraints: </p>
<div class="fragment"><pre class="fragment">    <span class="keyword">class </span>MyAxisPlaneConstraint : <span class="keyword">public</span> <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a1049b4e70e2fc0d46b4cfaf93d167515">AxisPlaneConstraint</a>
    {
    <span class="keyword">public</span>:
      <span class="keyword">enum</span> MyType { <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">FREE</a>, <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AXIS</a>, <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">PLANE</a>, <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67">FORBIDDEN</a>, CUSTOM };
      <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#ab7d724965c6765209f47c1abe7f7b7b4">constrainTranslation</a>(Vec &amp;translation, Frame *<span class="keyword">const</span> frame)
      {
        <span class="comment">// translationConstraintType() is simply an int. CUSTOM Type is handled seamlessly.</span>
        <span class="keywordflow">switch</span> (<a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType</a>())
        {
        <span class="keywordflow">case</span> MyAxisPlaneConstraint::FREE: ... <span class="keywordflow">break</span>;
        <span class="keywordflow">case</span> MyAxisPlaneConstraint::CUSTOM: ... <span class="keywordflow">break</span>;
        }
      };

      MyAxisPlaneConstraint* c = <span class="keyword">new</span> MyAxisPlaneConstraint();
      <span class="comment">// Note the Type conversion</span>
      c-&gt;setTranslationConstraintType(<a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">AxisPlaneConstraint::Type</a>(MyAxisPlaneConstraint::CUSTOM));
    };
</pre></div> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6"></a><!-- doxytag: member="FREE" ref="a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6" args="" -->FREE</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b"></a><!-- doxytag: member="AXIS" ref="a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b" args="" -->AXIS</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24"></a><!-- doxytag: member="PLANE" ref="a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24" args="" -->PLANE</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67"></a><!-- doxytag: member="FORBIDDEN" ref="a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67" args="" -->FORBIDDEN</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a1049b4e70e2fc0d46b4cfaf93d167515"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::AxisPlaneConstraint" ref="a1049b4e70e2fc0d46b4cfaf93d167515" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">AxisPlaneConstraint </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default constructor.</p>
<p><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a61a05b9e18948b2b787e355c90b7b85f">rotationConstraintType()</a> are set to <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a>. <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a431b0d36842122de9db3b4e4f00b8d7c">translationConstraintDirection()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#af982989dbeb2e0e63c85eecc09bd88d7">rotationConstraintDirection()</a> are set to (0,0,0). </p>

</div>
</div>
<a class="anchor" id="a88334a0bc0770afe6bd3af525f70ad9f"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::~AxisPlaneConstraint" ref="a88334a0bc0770afe6bd3af525f70ad9f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~AxisPlaneConstraint </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Virtual destructor. Empty. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a5de5f38e75b58476b7926171dba4b31b"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::constrainRotation" ref="a5de5f38e75b58476b7926171dba4b31b" args="(Quaternion &amp;rotation, Frame *const frame)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void constrainRotation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1Quaternion.html">Quaternion</a> &amp;&#160;</td>
          <td class="paramname"> <em>rotation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *const &#160;</td>
          <td class="paramname"> <em>frame</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Overloading of <a class="el" href="classqglviewer_1_1Constraint.html#a5de5f38e75b58476b7926171dba4b31b">Constraint::constrainRotation()</a>. Empty. </p>

<p>Reimplemented from <a class="el" href="classqglviewer_1_1Constraint.html#a5de5f38e75b58476b7926171dba4b31b">Constraint</a>.</p>

<p>Reimplemented in <a class="el" href="classqglviewer_1_1LocalConstraint.html#a71c099a2c356f715f8bf34052875cd25">LocalConstraint</a>, <a class="el" href="classqglviewer_1_1WorldConstraint.html#a71c099a2c356f715f8bf34052875cd25">WorldConstraint</a>, and <a class="el" href="classqglviewer_1_1CameraConstraint.html#a71c099a2c356f715f8bf34052875cd25">CameraConstraint</a>.</p>

</div>
</div>
<a class="anchor" id="ab7d724965c6765209f47c1abe7f7b7b4"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::constrainTranslation" ref="ab7d724965c6765209f47c1abe7f7b7b4" args="(Vec &amp;translation, Frame *const frame)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void constrainTranslation </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&#160;</td>
          <td class="paramname"> <em>translation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *const &#160;</td>
          <td class="paramname"> <em>frame</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Overloading of <a class="el" href="classqglviewer_1_1Constraint.html#ab7d724965c6765209f47c1abe7f7b7b4">Constraint::constrainTranslation()</a>. Empty </p>

<p>Reimplemented from <a class="el" href="classqglviewer_1_1Constraint.html#ab7d724965c6765209f47c1abe7f7b7b4">Constraint</a>.</p>

<p>Reimplemented in <a class="el" href="classqglviewer_1_1LocalConstraint.html#adc695bfbc605b5631be663b28a4ea9f6">LocalConstraint</a>, <a class="el" href="classqglviewer_1_1WorldConstraint.html#adc695bfbc605b5631be663b28a4ea9f6">WorldConstraint</a>, and <a class="el" href="classqglviewer_1_1CameraConstraint.html#adc695bfbc605b5631be663b28a4ea9f6">CameraConstraint</a>.</p>

</div>
</div>
<a class="anchor" id="af982989dbeb2e0e63c85eecc09bd88d7"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::rotationConstraintDirection" ref="af982989dbeb2e0e63c85eecc09bd88d7" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classqglviewer_1_1Vec.html">Vec</a> rotationConstraintDirection </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the axis direction used by the rotation constraint.</p>
<p>This direction is defined only when <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a61a05b9e18948b2b787e355c90b7b85f">rotationConstraintType()</a> is <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AxisPlaneConstraint::AXIS</a>.</p>
<p>The AxisPlaneConstraint derived classes express this direction in different coordinate system (camera for <a class="el" href="classqglviewer_1_1CameraConstraint.html" title="An AxisPlaneConstraint defined in the camera coordinate system.">CameraConstraint</a>, local for <a class="el" href="classqglviewer_1_1LocalConstraint.html" title="An AxisPlaneConstraint defined in the Frame local coordinate system.">LocalConstraint</a>, and world for <a class="el" href="classqglviewer_1_1WorldConstraint.html" title="An AxisPlaneConstraint defined in the world coordinate system.">WorldConstraint</a>). This value can be modified with <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a7cb6055005e69d6edac8fbb0d14dd0fa">setRotationConstraintDirection()</a>. </p>

</div>
</div>
<a class="anchor" id="a61a05b9e18948b2b787e355c90b7b85f"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::rotationConstraintType" ref="a61a05b9e18948b2b787e355c90b7b85f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> rotationConstraintType </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the rotation constraint <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type()</a>. </p>

</div>
</div>
<a class="anchor" id="a116f0f394030f165b031287c1e1cf5ea"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::setRotationConstraint" ref="a116f0f394030f165b031287c1e1cf5ea" args="(Type type, const Vec &amp;direction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setRotationConstraint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a>&#160;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&#160;</td>
          <td class="paramname"> <em>direction</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Simply calls <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a7c0dc83d6a770742719c8d3ffa67c4e5">setRotationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a7cb6055005e69d6edac8fbb0d14dd0fa">setRotationConstraintDirection()</a>. </p>

</div>
</div>
<a class="anchor" id="a7cb6055005e69d6edac8fbb0d14dd0fa"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::setRotationConstraintDirection" ref="a7cb6055005e69d6edac8fbb0d14dd0fa" args="(const Vec &amp;direction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setRotationConstraintDirection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&#160;</td>
          <td class="paramname"> <em>direction</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Defines the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#af982989dbeb2e0e63c85eecc09bd88d7">rotationConstraintDirection()</a>. The coordinate system where <code>direction</code> is expressed depends on your class implementation. </p>

</div>
</div>
<a class="anchor" id="a7c0dc83d6a770742719c8d3ffa67c4e5"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::setRotationConstraintType" ref="a7c0dc83d6a770742719c8d3ffa67c4e5" args="(Type type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setRotationConstraintType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a>&#160;</td>
          <td class="paramname"> <em>type</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type()</a> of the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a61a05b9e18948b2b787e355c90b7b85f">rotationConstraintType()</a>. Default is <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a>.</p>
<p>Depending on this value, the <a class="el" href="classqglviewer_1_1Frame.html" title="The Frame class represents a coordinate system, defined by a position and an orientation.">Frame</a> will freely rotate (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a>), will only be able to rotate around an axis (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AxisPlaneConstraint::AXIS</a>), or will not able to rotate at all (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67">AxisPlaneConstraint::FORBIDDEN</a>).</p>
<p>Use <a class="el" href="classqglviewer_1_1Frame.html#a6733704520780505759efdef38a68b8b">Frame::setOrientation()</a> to define the orientation of the constrained <a class="el" href="classqglviewer_1_1Frame.html" title="The Frame class represents a coordinate system, defined by a position and an orientation.">Frame</a> before it gets constrained.</p>
<dl class="attention"><dt><b>Attention:</b></dt><dd>An <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">AxisPlaneConstraint::PLANE</a> <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type()</a> is not meaningful for rotational constraints and will be ignored. </dd></dl>

</div>
</div>
<a class="anchor" id="a722c30f7303a078681fbf516499579de"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::setTranslationConstraint" ref="a722c30f7303a078681fbf516499579de" args="(Type type, const Vec &amp;direction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setTranslationConstraint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a>&#160;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&#160;</td>
          <td class="paramname"> <em>direction</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Simply calls <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a0cee03d4db5722e992c20f042601eaa5">setTranslationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a2b676c088af158a52724bbbab15d1a65">setTranslationConstraintDirection()</a>. </p>

</div>
</div>
<a class="anchor" id="a2b676c088af158a52724bbbab15d1a65"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::setTranslationConstraintDirection" ref="a2b676c088af158a52724bbbab15d1a65" args="(const Vec &amp;direction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setTranslationConstraintDirection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&#160;</td>
          <td class="paramname"> <em>direction</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Defines the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a431b0d36842122de9db3b4e4f00b8d7c">translationConstraintDirection()</a>. The coordinate system where <code>direction</code> is expressed depends on your class implementation. </p>

</div>
</div>
<a class="anchor" id="a0cee03d4db5722e992c20f042601eaa5"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::setTranslationConstraintType" ref="a0cee03d4db5722e992c20f042601eaa5" args="(Type type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setTranslationConstraintType </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a>&#160;</td>
          <td class="paramname"> <em>type</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type()</a> of the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType()</a>. Default is <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a>. </p>

</div>
</div>
<a class="anchor" id="a431b0d36842122de9db3b4e4f00b8d7c"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::translationConstraintDirection" ref="a431b0d36842122de9db3b4e4f00b8d7c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classqglviewer_1_1Vec.html">Vec</a> translationConstraintDirection </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the direction used by the translation constraint.</p>
<p>It represents the axis direction (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AxisPlaneConstraint::AXIS</a>) or the plane normal (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">AxisPlaneConstraint::PLANE</a>) depending on the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a12ad675910ffa86fbabefff2cd6a594a">translationConstraintType()</a>. It is undefined for <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a> or <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67">AxisPlaneConstraint::FORBIDDEN</a>.</p>
<p>The AxisPlaneConstraint derived classes express this direction in different coordinate system (camera for <a class="el" href="classqglviewer_1_1CameraConstraint.html" title="An AxisPlaneConstraint defined in the camera coordinate system.">CameraConstraint</a>, local for <a class="el" href="classqglviewer_1_1LocalConstraint.html" title="An AxisPlaneConstraint defined in the Frame local coordinate system.">LocalConstraint</a>, and world for <a class="el" href="classqglviewer_1_1WorldConstraint.html" title="An AxisPlaneConstraint defined in the world coordinate system.">WorldConstraint</a>). This value can be modified with <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a2b676c088af158a52724bbbab15d1a65">setTranslationConstraintDirection()</a>. </p>

</div>
</div>
<a class="anchor" id="a12ad675910ffa86fbabefff2cd6a594a"></a><!-- doxytag: member="qglviewer::AxisPlaneConstraint::translationConstraintType" ref="a12ad675910ffa86fbabefff2cd6a594a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type</a> translationConstraintType </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the translation constraint <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7">Type()</a>.</p>
<p>Depending on this value, the <a class="el" href="classqglviewer_1_1Frame.html" title="The Frame class represents a coordinate system, defined by a position and an orientation.">Frame</a> will freely translate (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7acc62d1576546f3245237e1b232d838b6">AxisPlaneConstraint::FREE</a>), will only be able to translate along an axis direction (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a1ad785f7d0b0b3a5a52cdd4385785a6b">AxisPlaneConstraint::AXIS</a>), will be forced to stay into a plane (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a67572d1492c84d8d417b61e864f13f24">AxisPlaneConstraint::PLANE</a>) or will not able to translate at all (<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1d1cfd8ffb84e947f82999c682b666a7a4b4068e636cd02a6e87e8d3920383d67">AxisPlaneConstraint::FORBIDDEN</a>).</p>
<p>Use <a class="el" href="classqglviewer_1_1Frame.html#a24f5da9b3f4bf4e71dfad7a74a932e52">Frame::setPosition()</a> to define the position of the constrained <a class="el" href="classqglviewer_1_1Frame.html" title="The Frame class represents a coordinate system, defined by a position and an orientation.">Frame</a> before it gets constrained. </p>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 6 2010 01:42:48 for libQGLViewer by&#160;
<a href="http://www.doxygen.org/index.html">
doxygen</a> 1.7.2 </small></address>
</body>
</html>