Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 9347541fe87a5ea3f3b8dbc50f660e8e > files > 256

libQGLViewer-devel-1.3.6-1mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libQGLViewer: AxisPlaneConstraint class Reference</title>
<link href="qglviewer.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.3 -->
<div class="qindex"><a class="qindex" href="../index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="functions.html">All&nbsp;functions</a> | <a class="qindex" doxygen="_cgi:http://www-imagis.imag.fr/cgi-bin/DOXYGEN/search.cgi" href="http://www-imagis.imag.fr/cgi-bin/DOXYGEN/search.cgi">Search</a></div>
<h1>AxisPlaneConstraint Class Reference</h1>An abstract class for <a class="el" href="classqglviewer_1_1Frame.html">Frame</a> constraints that use an axis or a plane.  
<a href="#_details">More...</a>
<p>
Inherits <a class="el" href="classqglviewer_1_1Constraint.html">Constraint</a>.
<p>
Inherited by <a class="el" href="classqglviewer_1_1CameraConstraint.html">CameraConstraint</a>, <a class="el" href="classqglviewer_1_1LocalConstraint.html">LocalConstraint</a>, and <a class="el" href="classqglviewer_1_1WorldConstraint.html">WorldConstraint</a>.
<p>
<a href="classqglviewer_1_1AxisPlaneConstraint-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 Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> { <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4w0">FREE</a>, 
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4w1">PLANE</a>, 
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4w2">AXIS</a>, 
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4w3">FORBIDDEN</a>
 }</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="classqglviewer_1_1AxisPlaneConstraint.html#a0">AxisPlaneConstraint</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#a1">~AxisPlaneConstraint</a> ()</td></tr>

<tr><td colspan="2"><div class="groupHeader">Translation constraints</div></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_0">constrainTranslation</a> (<a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;, <a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *const)=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_1">setTranslationConstraint</a> (const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> t, const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;dir)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_2">setTranslationConstraint</a> (const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> t, const float x, const float y, const float z)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_3">setTranslationConstraintType</a> (const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> t)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_4">setTranslationConstraintDir</a> (const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;dir)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_5">translationConstraintType</a> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_6">getTranslationConstraintDir</a> (float &amp;x, float &amp;y, float &amp;z) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classqglviewer_1_1Vec.html">Vec</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_7">translationConstraintDir</a> () const</td></tr>

<tr><td colspan="2"><div class="groupHeader">Rotation constraints</div></td></tr>
<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_0">constrainRotation</a> (<a class="el" href="classqglviewer_1_1Quaternion.html">Quaternion</a> &amp;, <a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *const)=0</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint</a> (const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> t, const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;dir)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_2">setRotationConstraint</a> (const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> t, const float x, const float y, const float z)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_3">setRotationConstraintType</a> (const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> t)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_4">setRotationConstraintDir</a> (const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;dir)</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_5">rotationConstraintType</a> () const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_6">getRotationConstraintDir</a> (float &amp;x, float &amp;y, float &amp;z) const</td></tr>

<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classqglviewer_1_1Vec.html">Vec</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_7">rotationConstraintDir</a> () const</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
An abstract class for <a class="el" href="classqglviewer_1_1Frame.html">Frame</a> constraints that use an axis or a plane. 
<p>
This class defines and implements a translation and a rotation constraint direction and type. The type is defined by the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a> enum which could be extended in derived classes to define new constraint types. The three implementations of this class: <a class="el" href="classqglviewer_1_1LocalConstraint.html">LocalConstraint</a>, <a class="el" href="classqglviewer_1_1WorldConstraint.html">WorldConstraint</a> and <a class="el" href="classqglviewer_1_1CameraConstraint.html">CameraConstraint</a> each define the constraint axis/plane in a different coordinate system.<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>
To completely forbid the displacement of a <a class="el" href="classqglviewer_1_1Frame.html">Frame</a>, use a code like this: <div class="fragment"><pre>   <a class="code" href="classqglviewer_1_1AxisPlaneConstraint.html#a0">AxisPlaneConstraint</a>* apc = <span class="keyword">new</span> Any_Derived_Class();
   apc-&gt;setTranslationConstraintType(AxisPlaneConstraint::FORBIDDEN); <span class="comment">// forbids translation</span>
   <span class="comment">// apc-&gt;setRotationConstraintType(AxisPlaneConstraint::FORBIDDEN); // or forbids rotation</span>
   myFrame-&gt;setConstraint(apc);
</pre></div><p>
<dl compact><dt><b>Attention:</b></dt><dd>The Axis rotational constraint is implemented by projecting the rotation axis direction of the constrained axis. The constrain is hence satisfied, but unpleasant behavior may appear when a mouse <a class="el" href="classqglviewer_1_1ManipulatedFrame.html">ManipulatedFrame</a> is used to move the frame (try the above examples to see what I mean). 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_1_1Camera.html">Camera</a> associated to the viewer, so that we can compute the projected coordinates of the rotation center. This is the way the <a class="el" href="classqglviewer_1_1Camera.html">Camera</a> screen Z axis rotation is implemented (see the <a href="../mouse.html">mouse page</a> for details). However, we chose <em>not</em> to fix this problem, as it would imply an extra <a class="el" href="classqglviewer_1_1Camera.html">Camera</a> pointer in all the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html">AxisPlaneConstraint</a> derived classes (which the user should have to update depending on the used viewer in a multi-viewer application). </dd></dl>

<p>
<hr><h2>Member Enumeration Documentation</h2>
<a name="w4" doxytag="qglviewer::AxisPlaneConstraint::Type"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> enum <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The different types of translation and rotation constraints that are available. New derived classes can introduce their own enum for specific constraints.<p>
Use <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_1">setTranslationConstraint()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint()</a> to set constraints, <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_5">translationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_5">rotationConstraintType()</a> to get the current constraint type.<p>
<dl compact><dt><b>Note:</b></dt><dd>See the warning section of the Detailed Description section for limitations on the AXIS rotational constraint.</dd></dl>
<dl compact><dt><b>Attention:</b></dt><dd>The PLANE constraint has no effect on a rotational constraint. </dd></dl>
<dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em><a name="w4w0" doxytag="FREE"></a><em>FREE</em></em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a name="w4w1" doxytag="PLANE"></a><em>PLANE</em></em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a name="w4w2" doxytag="AXIS"></a><em>AXIS</em></em>&nbsp;</td><td>
</td></tr>
<tr><td valign=top><em><a name="w4w3" doxytag="FORBIDDEN"></a><em>FORBIDDEN</em></em>&nbsp;</td><td>
</td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a name="a0" doxytag="qglviewer::AxisPlaneConstraint::AxisPlaneConstraint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html">AxisPlaneConstraint</a> </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Translation and Rotation constraints are set to FREE.     </td>
  </tr>
</table>
<a name="a1" doxytag="qglviewer::AxisPlaneConstraint::~AxisPlaneConstraint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> virtual ~<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html">AxisPlaneConstraint</a> </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline, virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Virtual empty destructor.     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a name="z31_0" doxytag="qglviewer::AxisPlaneConstraint::constrainRotation"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> virtual void constrainRotation </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classqglviewer_1_1Quaternion.html">Quaternion</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>const</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [pure virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Default un-constrained rotation function. Desired rotation is expressed in local frame coordinate system. Try the <a href="../examples/constrainedFrame.html">constrainedFrame</a> and <a href="../examples/constrainedCamera.html">constrainedCamera</a> examples for an illustration. 
<p>
Reimplemented from <a class="el" href="classqglviewer_1_1Constraint.html#a2">Constraint</a>.
<p>
Implemented in <a class="el" href="classqglviewer_1_1LocalConstraint.html#a2">LocalConstraint</a>, <a class="el" href="classqglviewer_1_1WorldConstraint.html#a2">WorldConstraint</a>, and <a class="el" href="classqglviewer_1_1CameraConstraint.html#a3">CameraConstraint</a>.    </td>
  </tr>
</table>
<a name="z29_0" doxytag="qglviewer::AxisPlaneConstraint::constrainTranslation"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> virtual void constrainTranslation </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="classqglviewer_1_1Frame.html">Frame</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>const</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [pure virtual]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Default un-constrained translation function. Desired translation is expressed in local frame coordinate system. Try the <a href="../examples/constrainedFrame.html">constrainedFrame</a> and <a href="../examples/constrainedCamera.html">constrainedCamera</a> examples for an illustration. 
<p>
Reimplemented from <a class="el" href="classqglviewer_1_1Constraint.html#a1">Constraint</a>.
<p>
Implemented in <a class="el" href="classqglviewer_1_1LocalConstraint.html#a1">LocalConstraint</a>, <a class="el" href="classqglviewer_1_1WorldConstraint.html#a1">WorldConstraint</a>, and <a class="el" href="classqglviewer_1_1CameraConstraint.html#a2">CameraConstraint</a>.    </td>
  </tr>
</table>
<a name="z31_6" doxytag="qglviewer::AxisPlaneConstraint::getRotationConstraintDir"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void getRotationConstraintDir </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const</td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Same as <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_6">getRotationConstraintDir()</a> but result is returned as floats.     </td>
  </tr>
</table>
<a name="z29_6" doxytag="qglviewer::AxisPlaneConstraint::getTranslationConstraintDir"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void getTranslationConstraintDir </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>float &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"> const</td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Same as <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_6">getTranslationConstraintDir()</a> but result is returned as floats.     </td>
  </tr>
</table>
<a name="z31_7" doxytag="qglviewer::AxisPlaneConstraint::rotationConstraintDir"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> rotationConstraintDir </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the current direction of the rotation constraint. If <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_5">rotationConstraintType()</a> is FREE or FORBIDDEN, this value is undefined. <code>dir</code> is the plane normal or the axis direction, depending on the constraint. It is expressed in a different coordinate system depending on the derived class (<a class="el" href="classqglviewer_1_1WorldConstraint.html">WorldConstraint</a>, <a class="el" href="classqglviewer_1_1CameraConstraint.html">CameraConstraint</a>...). This value can be modified with <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint()</a>.     </td>
  </tr>
</table>
<a name="z31_5" doxytag="qglviewer::AxisPlaneConstraint::rotationConstraintType"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> rotationConstraintType </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the current rotation constraint. Result is of type <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a>. The rotation constraint is set with <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint()</a>.     </td>
  </tr>
</table>
<a name="z31_2" doxytag="qglviewer::AxisPlaneConstraint::setRotationConstraint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setRotationConstraint </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Same as <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint()</a>, but with float parameters.     </td>
  </tr>
</table>
<a name="z31_1" doxytag="qglviewer::AxisPlaneConstraint::setRotationConstraint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setRotationConstraint </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>dir</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set possible constraints on the frame rotation. By default, the frame has no rotation constraint.<p>
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a> defines all the possible constraints.<p>
Depending on the value of <code>c</code>, the frame frame will be FREE, will only be able to move around an AXIS, in a PLANE, or will not able to move at all (FORBIDDEN).<p>
The axis and plane normal directions are expressed in different coordinates system, depending on the derived class (<a class="el" href="classqglviewer_1_1WorldConstraint.html">WorldConstraint</a>, <a class="el" href="classqglviewer_1_1CameraConstraint.html">CameraConstraint</a>...). <code>dir</code> is useless if <code>c</code> is FREE or FORBIDDEN.<p>
Call <a class="el" href="classqglviewer_1_1Frame.html#z33_4">Frame::setOrientation()</a> or <a class="el" href="classqglviewer_1_1Frame.html#z37_3">Frame::setRotation()</a> before calling this method in order to define the relative constrained orientation of the frame.<p>
The current constraint is given by <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_5">rotationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_7">rotationConstraintDir()</a>. The axis direction is undefined when the constraint is of type FREE or FORBIDDEN.<p>
<dl compact><dt><b>Attention:</b></dt><dd>The PLANE rotational constraint cannot be used for rotational constraint. </dd></dl>
    </td>
  </tr>
</table>
<a name="z31_4" doxytag="qglviewer::AxisPlaneConstraint::setRotationConstraintDir"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setRotationConstraintDir </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>dir</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Similar to <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint()</a>, but only set the direction.     </td>
  </tr>
</table>
<a name="z31_3" doxytag="qglviewer::AxisPlaneConstraint::setRotationConstraintType"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setRotationConstraintType </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>t</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a> of the rotation constraint. See <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z31_1">setRotationConstraint()</a>. <dl compact><dt><b>Attention:</b></dt><dd>The PLANE <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a> cannot be used for rotational constraints. </dd></dl>
    </td>
  </tr>
</table>
<a name="z29_2" doxytag="qglviewer::AxisPlaneConstraint::setTranslationConstraint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setTranslationConstraint </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const float&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Same as <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_1">setTranslationConstraint()</a>, but with float parameters.     </td>
  </tr>
</table>
<a name="z29_1" doxytag="qglviewer::AxisPlaneConstraint::setTranslationConstraint"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setTranslationConstraint </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>dir</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set possible constraints on the frame translation. By default, the frame has no translation constraint.<p>
<a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a> defines all the possible constraints. Depending on the value of <code>c</code>, the frame frame will be FREE, or will not be allowed to move out of a PLANE, or only along an AXIS, or not able to move at all (FORBIDDEN).<p>
The plane is defined by its normal vector and the axis is defined by its direction, both expressed in a coordinate system that depends on the derived class (see <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_7">translationConstraintDir()</a>).<p>
<code>dir</code> is not used if <code>c</code> is FREE or FORBIDDEN.<p>
Call <a class="el" href="classqglviewer_1_1Frame.html#z33_1">Frame::setPosition()</a> or <a class="el" href="classqglviewer_1_1Frame.html#z37_0">Frame::setTranslation()</a> before calling any of this method in order to define the relative constrained position of the frame.<p>
The current constraint is given by <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_5">translationConstraintType()</a> and <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_7">translationConstraintDir()</a>.     </td>
  </tr>
</table>
<a name="z29_4" doxytag="qglviewer::AxisPlaneConstraint::setTranslationConstraintDir"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setTranslationConstraintDir </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> &amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>dir</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Similar to <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_1">setTranslationConstraint()</a>, but only set the direction.     </td>
  </tr>
</table>
<a name="z29_3" doxytag="qglviewer::AxisPlaneConstraint::setTranslationConstraintType"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void setTranslationConstraintType </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>t</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a> of the translation constraint. See <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_1">setTranslationConstraint()</a>.     </td>
  </tr>
</table>
<a name="z29_7" doxytag="qglviewer::AxisPlaneConstraint::translationConstraintDir"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classqglviewer_1_1Vec.html">Vec</a> translationConstraintDir </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the current direction of the translation constraint. If <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_5">translationConstraintType()</a> is FREE or FORBIDDEN, this value is undefined. <code>dir</code> is the plane normal or the axis direction, depending on the constraint type. It is expressed in different coordinate system, depending on the actual constraint class (camera for <a class="el" href="classqglviewer_1_1CameraConstraint.html">CameraConstraint</a>, local for <a class="el" href="classqglviewer_1_1LocalConstraint.html">LocalConstraint</a>, world for <a class="el" href="classqglviewer_1_1WorldConstraint.html">WorldConstraint</a>, etc.) This value can be modified with <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_4">setTranslationConstraintDir()</a>.     </td>
  </tr>
</table>
<a name="z29_5" doxytag="qglviewer::AxisPlaneConstraint::translationConstraintType"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type</a> translationConstraintType </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const<code> [inline]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the current translation constraint. Result is of type <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#w4">Type()</a>. The translation constraint is set with <a class="el" href="classqglviewer_1_1AxisPlaneConstraint.html#z29_1">setTranslationConstraint()</a>.     </td>
  </tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed Feb 11 17:22:06 2004 for libQGLViewer by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.3 </small></address>
</body>
</html>