Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 2093

crystalspace-doc-1.2.1-5mdv2010.0.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>Crystal Space 1.2.1: ivaria/ode.h Source File (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="classes.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>ivaria/ode.h</h1><a href="ode_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright (C) 2003 by Jorrit Tyberghein, Daniel Duhprey,</span>
<a name="l00003"></a>00003 <span class="comment">    Leandro Motta Barros</span>
<a name="l00004"></a>00004 <span class="comment"></span>
<a name="l00005"></a>00005 <span class="comment">    This library is free software; you can redistribute it and/or</span>
<a name="l00006"></a>00006 <span class="comment">    modify it under the terms of the GNU Library General Public</span>
<a name="l00007"></a>00007 <span class="comment">    License as published by the Free Software Foundation; either</span>
<a name="l00008"></a>00008 <span class="comment">    version 2 of the License, or (at your option) any later version.</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment">    This library is distributed in the hope that it will be useful,</span>
<a name="l00011"></a>00011 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00012"></a>00012 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00013"></a>00013 <span class="comment">    Library General Public License for more details.</span>
<a name="l00014"></a>00014 <span class="comment"></span>
<a name="l00015"></a>00015 <span class="comment">    You should have received a copy of the GNU Library General Public</span>
<a name="l00016"></a>00016 <span class="comment">    License along with this library; if not, write to the Free</span>
<a name="l00017"></a>00017 <span class="comment">    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00018"></a>00018 <span class="comment">*/</span>
<a name="l00019"></a>00019 
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef __CS_IVARIA_ODE_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IVARIA_ODE_H__</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="scf__interface_8h.html" title="Crystal Space Shared Class Facility (SCF) - interface creation support.">csutil/scf_interface.h</a>"</span>
<a name="l00028"></a>00028 
<a name="l00033"></a><a class="code" href="structiODEFrameUpdateCallback.html">00033</a> <span class="keyword">struct </span><a class="code" href="structiODEFrameUpdateCallback.html" title="This class can be passed in as a callback during the physics update it is only called...">iODEFrameUpdateCallback</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00034"></a>00034 {
<a name="l00035"></a>00035   SCF_INTERFACE(<a class="code" href="structiODEFrameUpdateCallback.html" title="This class can be passed in as a callback during the physics update it is only called...">iODEFrameUpdateCallback</a>, 2, 0, 0);
<a name="l00036"></a>00036 
<a name="l00038"></a>00038   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEFrameUpdateCallback.html#aa53a4f44ace880f8da010d08caf999e" title="Executes the per update callback.">Execute</a> (<span class="keywordtype">float</span> stepsize) = 0;
<a name="l00039"></a>00039 };
<a name="l00040"></a>00040 
<a name="l00045"></a><a class="code" href="structiODEDynamicState.html">00045</a> <span class="keyword">struct </span><a class="code" href="structiODEDynamicState.html" title="This class exposes parameters specific to odedynam as an implementation of iDynamics...">iODEDynamicState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00046"></a>00046 {
<a name="l00047"></a>00047   SCF_INTERFACE(<a class="code" href="structiODEDynamicState.html" title="This class exposes parameters specific to odedynam as an implementation of iDynamics...">iODEDynamicState</a>, 2, 0, 0);
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 
<a name="l00051"></a>00051   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicState.html#8fa2f18cffcf44ad930f60b21e0ee73f" title="Sets ODE&amp;#39;s Error Resolution Parameter (see ode docs for details).">SetGlobalERP</a> (<span class="keywordtype">float</span> erp) = 0;
<a name="l00052"></a>00052   <span class="keyword">virtual</span> <span class="keywordtype">float</span> GlobalERP () = 0;
<a name="l00053"></a>00053 
<a name="l00055"></a>00055   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicState.html#6772f5b405c746bbf7c7345bf2883231" title="Sets ODE&amp;#39;s Constraint Force Mixing (see ode docs for details).">SetGlobalCFM</a> (<span class="keywordtype">float</span> cfm) = 0;
<a name="l00056"></a>00056   <span class="keyword">virtual</span> <span class="keywordtype">float</span> GlobalCFM () = 0;
<a name="l00057"></a>00057 
<a name="l00059"></a>00059   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicState.html#7219d10c5e83e672015751cc961df6f3" title="Enables the experimental StepFast code in ode.">EnableStepFast</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00060"></a>00060   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> StepFastEnabled () = 0;
<a name="l00061"></a>00061   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetStepFastIterations (<span class="keywordtype">int</span> iter) = 0;
<a name="l00062"></a>00062   <span class="keyword">virtual</span> <span class="keywordtype">int</span> StepFastIterations () = 0;
<a name="l00063"></a>00063 
<a name="l00064"></a>00064   <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableQuickStep (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00065"></a>00065   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> QuickStepEnabled () = 0;
<a name="l00066"></a>00066   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetQuickStepIterations (<span class="keywordtype">int</span> iter) = 0;
<a name="l00067"></a>00067   <span class="keyword">virtual</span> <span class="keywordtype">int</span> QuickStepIterations () = 0;
<a name="l00068"></a>00068 
<a name="l00084"></a>00084   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicState.html#f11be49834acd3e6f443b02dd45b4a3b" title="The following code enables a constant framerate on processing this means if you set...">EnableFrameRate</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00085"></a>00085   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> FrameRateEnabled () = 0;
<a name="l00086"></a>00086 
<a name="l00087"></a>00087   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetFrameRate (<span class="keywordtype">float</span> hz) = 0;
<a name="l00088"></a>00088   <span class="keyword">virtual</span> <span class="keywordtype">float</span> FrameRate () = 0;
<a name="l00089"></a>00089 
<a name="l00090"></a>00090   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetFrameLimit (<span class="keywordtype">float</span> hz) = 0;
<a name="l00091"></a>00091   <span class="keyword">virtual</span> <span class="keywordtype">float</span> FrameLimit () = 0;
<a name="l00092"></a>00092 
<a name="l00093"></a>00093   <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddFrameUpdateCallback (<a class="code" href="structiODEFrameUpdateCallback.html" title="This class can be passed in as a callback during the physics update it is only called...">iODEFrameUpdateCallback</a> *cb) = 0;
<a name="l00094"></a>00094   <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveFrameUpdateCallback (<a class="code" href="structiODEFrameUpdateCallback.html" title="This class can be passed in as a callback during the physics update it is only called...">iODEFrameUpdateCallback</a> *cb) = 0;
<a name="l00095"></a>00095 
<a name="l00101"></a>00101   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicState.html#41169162a661f217d6be229756c3e35c" title="This makes updates happen on the csevPreProcess and invalidates calls to Step() This...">EnableEventProcessing</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00102"></a>00102   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> EventProcessingEnabled () = 0;
<a name="l00103"></a>00103 
<a name="l00115"></a>00115   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicState.html#890c8ec163ec9e052a49393354c080a0" title="The following enables special robustness checks for fast moving objects to determine...">EnableFastObjects</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00116"></a>00116   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> FastObjectsEnabled () = 0;
<a name="l00117"></a>00117 
<a name="l00118"></a>00118 };
<a name="l00119"></a>00119 
<a name="l00120"></a>00120 <span class="keyword">struct </span><a class="code" href="structiODEBallJoint.html" title="ODE ball and socket joint (contrainted translation and free rotation).">iODEBallJoint</a>;
<a name="l00121"></a>00121 <span class="keyword">struct </span><a class="code" href="structiODEHingeJoint.html" title="ODE hinge joint (contrainted translation and 1 free rotation axis).">iODEHingeJoint</a>;
<a name="l00122"></a>00122 <span class="keyword">struct </span><a class="code" href="structiODEHinge2Joint.html" title="ODE hinge 2 joint.">iODEHinge2Joint</a>;
<a name="l00123"></a>00123 <span class="keyword">struct </span><a class="code" href="structiODEAMotorJoint.html" title="ODE AMotor joint.">iODEAMotorJoint</a>;
<a name="l00124"></a>00124 <span class="keyword">struct </span><a class="code" href="structiODEUniversalJoint.html" title="A universal joint is like a ball and socket joint that constrains an extra degree...">iODEUniversalJoint</a>;
<a name="l00125"></a>00125 <span class="keyword">struct </span><a class="code" href="structiODESliderJoint.html">iODESliderJoint</a>;
<a name="l00126"></a>00126 
<a name="l00132"></a><a class="code" href="structiODEDynamicSystemState.html">00132</a> <span class="keyword">struct </span><a class="code" href="structiODEDynamicSystemState.html" title="This class exposes parameters specific to odedynam as an implementation of iDynamics...">iODEDynamicSystemState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00133"></a>00133 {
<a name="l00134"></a>00134   SCF_INTERFACE(<a class="code" href="structiODEDynamicSystemState.html" title="This class exposes parameters specific to odedynam as an implementation of iDynamics...">iODEDynamicSystemState</a>, 2, 1, 0);
<a name="l00135"></a>00135 
<a name="l00141"></a>00141   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#2d7bea727964889212dfd50d23879d03" title="Sets ODE&amp;#39;s Error Resolution Parameter (see ode docs for details) Setting this...">SetERP</a> (<span class="keywordtype">float</span> erp) = 0;
<a name="l00142"></a>00142   <span class="keyword">virtual</span> <span class="keywordtype">float</span> ERP () = 0;
<a name="l00143"></a>00143 
<a name="l00149"></a>00149   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#cfca828d67911b367189ba7982f11f1b" title="Sets ODE&amp;#39;s Constraint Force Mixing (see ode docs for details) Setting this in...">SetCFM</a> (<span class="keywordtype">float</span> cfm) = 0;
<a name="l00150"></a>00150   <span class="keyword">virtual</span> <span class="keywordtype">float</span> CFM () = 0;
<a name="l00151"></a>00151 
<a name="l00157"></a>00157   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#bd4bb53305a6bc9815590477658b6447" title="Enables the experimental StepFast code in ode Setting this in ODEDynamicState sets...">EnableStepFast</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00158"></a>00158   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> StepFastEnabled () = 0;
<a name="l00159"></a>00159   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetStepFastIterations (<span class="keywordtype">int</span> iter) = 0;
<a name="l00160"></a>00160   <span class="keyword">virtual</span> <span class="keywordtype">int</span> StepFastIterations () = 0;
<a name="l00161"></a>00161 
<a name="l00162"></a>00162   <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableQuickStep (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00163"></a>00163   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> QuickStepEnabled () = 0;
<a name="l00164"></a>00164   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetQuickStepIterations (<span class="keywordtype">int</span> iter) = 0;
<a name="l00165"></a>00165   <span class="keyword">virtual</span> <span class="keywordtype">int</span> QuickStepIterations () = 0;
<a name="l00166"></a>00166 
<a name="l00172"></a>00172   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#2babe5155536137ce2b682235e6a094a" title="Turn on/off AutoDisable functionality.">EnableAutoDisable</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00173"></a>00173   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AutoDisableEnabled () =0;
<a name="l00183"></a>00183   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#b55657155569dc349b07daf2a67db06f" title="Set the parameters for AutoDisable.">SetAutoDisableParams</a> (<span class="keywordtype">float</span> linear, <span class="keywordtype">float</span> angular, <span class="keywordtype">int</span> steps,
<a name="l00184"></a>00184     <span class="keywordtype">float</span> time)=0;
<a name="l00185"></a>00185 
<a name="l00202"></a>00202   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#8839745963884b4d934be1dc403984ba" title="NOTE: This should not be done here if its been done in iODEDynamicState The following...">EnableFrameRate</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00203"></a>00203   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> FrameRateEnabled () = 0;
<a name="l00204"></a>00204 
<a name="l00205"></a>00205   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetFrameRate (<span class="keywordtype">float</span> hz) = 0;
<a name="l00206"></a>00206   <span class="keyword">virtual</span> <span class="keywordtype">float</span> FrameRate () = 0;
<a name="l00207"></a>00207 
<a name="l00208"></a>00208   <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetFrameLimit (<span class="keywordtype">float</span> hz) = 0;
<a name="l00209"></a>00209   <span class="keyword">virtual</span> <span class="keywordtype">float</span> FrameLimit () = 0;
<a name="l00210"></a>00210 
<a name="l00211"></a>00211   <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddFrameUpdateCallback (<a class="code" href="structiODEFrameUpdateCallback.html" title="This class can be passed in as a callback during the physics update it is only called...">iODEFrameUpdateCallback</a> *cb) = 0;
<a name="l00212"></a>00212   <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveFrameUpdateCallback (<a class="code" href="structiODEFrameUpdateCallback.html" title="This class can be passed in as a callback during the physics update it is only called...">iODEFrameUpdateCallback</a> *cb) = 0;
<a name="l00213"></a>00213 
<a name="l00227"></a>00227   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#4d87b8891d0b2f6ec9b755274e146e44" title="The following enables special robustness checks for fast moving objects to determine...">EnableFastObjects</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00228"></a>00228   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> FastObjectsEnabled () = 0;
<a name="l00229"></a>00229 
<a name="l00231"></a>00231   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iODEBallJoint&gt;</a> <a class="code" href="structiODEDynamicSystemState.html#f38943df4d07f8c5a264d306d3e5886d" title="Create a ball joint and add it to he simulation.">CreateBallJoint</a> () = 0;
<a name="l00232"></a>00232 
<a name="l00234"></a>00234   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iODEHingeJoint&gt;</a> <a class="code" href="structiODEDynamicSystemState.html#e832cd841bcd75a5b90d93c114031727" title="Create a hinge joint and add it to he simulation.">CreateHingeJoint</a> () = 0;
<a name="l00235"></a>00235 
<a name="l00237"></a>00237   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iODEHinge2Joint&gt;</a> <a class="code" href="structiODEDynamicSystemState.html#16d10f88bcdf864e2180b20634601d7d" title="Create a hinge2 joint and add it to he simulation.">CreateHinge2Joint</a> () = 0;
<a name="l00238"></a>00238 
<a name="l00240"></a>00240   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iODEAMotorJoint&gt;</a> <a class="code" href="structiODEDynamicSystemState.html#ebb002065ce0eb6be4103dfd7d16ad32" title="Create a AMotor joint and add it to he simulation.">CreateAMotorJoint</a> () = 0;
<a name="l00241"></a>00241 
<a name="l00243"></a>00243   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iODEUniversalJoint&gt;</a> <a class="code" href="structiODEDynamicSystemState.html#55bea73735642cdac9ed4dc4232d8aeb" title="Create a Universal joint and add it to he simulation.">CreateUniversalJoint</a> () = 0;
<a name="l00244"></a>00244 
<a name="l00246"></a>00246   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iODESliderJoint&gt;</a> <a class="code" href="structiODEDynamicSystemState.html#c95adeeb91a3268ae81f59152f7a1f3c" title="Create a Slider joint and add it to he simulation.">CreateSliderJoint</a> () = 0;
<a name="l00247"></a>00247 
<a name="l00249"></a>00249   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#06540dee1f7aca36a098cc6c53dc8d79" title="Remove a ball joint from the simulation.">RemoveJoint</a> (<a class="code" href="structiODEBallJoint.html" title="ODE ball and socket joint (contrainted translation and free rotation).">iODEBallJoint</a>* joint) = 0;
<a name="l00250"></a>00250 
<a name="l00252"></a>00252   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#06540dee1f7aca36a098cc6c53dc8d79" title="Remove a ball joint from the simulation.">RemoveJoint</a> (<a class="code" href="structiODEHingeJoint.html" title="ODE hinge joint (contrainted translation and 1 free rotation axis).">iODEHingeJoint</a>* joint) = 0;
<a name="l00253"></a>00253 
<a name="l00255"></a>00255   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#06540dee1f7aca36a098cc6c53dc8d79" title="Remove a ball joint from the simulation.">RemoveJoint</a> (<a class="code" href="structiODEAMotorJoint.html" title="ODE AMotor joint.">iODEAMotorJoint</a>* joint) = 0;
<a name="l00256"></a>00256 
<a name="l00258"></a>00258   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#06540dee1f7aca36a098cc6c53dc8d79" title="Remove a ball joint from the simulation.">RemoveJoint</a> (<a class="code" href="structiODEUniversalJoint.html" title="A universal joint is like a ball and socket joint that constrains an extra degree...">iODEUniversalJoint</a>* joint) = 0;
<a name="l00259"></a>00259 
<a name="l00261"></a>00261   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#06540dee1f7aca36a098cc6c53dc8d79" title="Remove a ball joint from the simulation.">RemoveJoint</a> (<a class="code" href="structiODESliderJoint.html">iODESliderJoint</a>* joint) = 0;
<a name="l00262"></a>00262 
<a name="l00264"></a>00264   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#06540dee1f7aca36a098cc6c53dc8d79" title="Remove a ball joint from the simulation.">RemoveJoint</a> (<a class="code" href="structiODEHinge2Joint.html" title="ODE hinge 2 joint.">iODEHinge2Joint</a>* joint) = 0;
<a name="l00265"></a>00265 
<a name="l00273"></a>00273   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#6fae06337c5ae244e875750f27b69c66" title="Set the maximum correcting velocity that contacts are allowed to generate.">SetContactMaxCorrectingVel</a> (<span class="keywordtype">float</span> v) = 0;
<a name="l00274"></a>00274 
<a name="l00281"></a>00281   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEDynamicSystemState.html#99f849ef0ccccadd6f203e4973d16f41" title="Get the maximum correcting velocity that contacts are allowed to generate.">GetContactMaxCorrectingVel</a> () = 0;
<a name="l00282"></a>00282 
<a name="l00292"></a>00292   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#f19ead227d0483ed919c1d134c502d2f" title="Set the depth of the surface layer around all geometry objects.">SetContactSurfaceLayer</a> (<span class="keywordtype">float</span> depth) = 0;
<a name="l00293"></a>00293 
<a name="l00303"></a>00303   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEDynamicSystemState.html#e5670a727bb45592dd93ed2d20c4340c" title="Get the depth of the surface layer around all geometry objects.">GetContactSurfaceLayer</a> () = 0;
<a name="l00304"></a>00304 
<a name="l00309"></a>00309   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEDynamicSystemState.html#10f3533cfdb7c71750577c8e4d63443d" title="Set the code to use previous and broken inertia calculation.">EnableOldInertia</a> (<span class="keywordtype">bool</span> enable) = 0;
<a name="l00310"></a>00310   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsOldInertiaEnabled () <span class="keyword">const</span> = 0;
<a name="l00311"></a>00311 };
<a name="l00312"></a>00312 
<a name="l00316"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40">00316</a> <span class="keyword">enum</span> <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40">ODEJointType</a>
<a name="l00317"></a>00317 {
<a name="l00318"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab405f012bcab5414fa4432c55842f111f46">00318</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab405f012bcab5414fa4432c55842f111f46">CS_ODE_JOINT_TYPE_UNKNOWN</a> = -1,
<a name="l00319"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40e76c38f2c1bae5fe9a0eb3b9ee7af34f">00319</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40e76c38f2c1bae5fe9a0eb3b9ee7af34f">CS_ODE_JOINT_TYPE_BALL</a>,
<a name="l00320"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab4083e23d17d84abe54759fb63dd9b93c91">00320</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab4083e23d17d84abe54759fb63dd9b93c91">CS_ODE_JOINT_TYPE_HINGE</a>,
<a name="l00321"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab4091bff86a17c4afc49877a97707460d58">00321</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab4091bff86a17c4afc49877a97707460d58">CS_ODE_JOINT_TYPE_SLIDER</a>,
<a name="l00322"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40c7c0e519d2761c69ad59654663528013">00322</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40c7c0e519d2761c69ad59654663528013">CS_ODE_JOINT_TYPE_CONTACT</a>,
<a name="l00323"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab4030597e49947f0de2caf1dae16c6ce567">00323</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab4030597e49947f0de2caf1dae16c6ce567">CS_ODE_JOINT_TYPE_UNIVERSAL</a>,
<a name="l00324"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40223e6bff15e04c12336441ee7946227a">00324</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40223e6bff15e04c12336441ee7946227a">CS_ODE_JOINT_TYPE_HINGE2</a>,
<a name="l00325"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40704f8dec9e8e976cec65a12b1c9bdfc6">00325</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40704f8dec9e8e976cec65a12b1c9bdfc6">CS_ODE_JOINT_TYPE_FIXED</a>,
<a name="l00326"></a><a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab404f4f7d1ff55700bab83c360db3cbb643">00326</a>   <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab404f4f7d1ff55700bab83c360db3cbb643">CS_ODE_JOINT_TYPE_AMOTOR</a>
<a name="l00327"></a>00327 };
<a name="l00328"></a>00328 
<a name="l00332"></a><a class="code" href="structiODEJointState.html">00332</a> <span class="keyword">struct </span><a class="code" href="structiODEJointState.html" title="General joint state.">iODEJointState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00333"></a>00333 {
<a name="l00334"></a>00334   SCF_INTERFACE(<a class="code" href="structiODEJointState.html" title="General joint state.">iODEJointState</a>, 2, 0, 0);
<a name="l00335"></a>00335 
<a name="l00336"></a>00336   <span class="keyword">virtual</span> <a class="code" href="ode_8h.html#52d0c1686dbdd5a9c94c49e83dc8ab40">ODEJointType</a> GetType() = 0;
<a name="l00337"></a>00337 
<a name="l00342"></a>00342   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#4f076320a018daefee5390880c0be0d7" title="Set low stop angle or position.">SetLoStop</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00343"></a>00343 
<a name="l00349"></a>00349   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#fe38bdd13bbb5e5c18f90f420141a238" title="Set high stop angle or position.">SetHiStop</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00350"></a>00350 
<a name="l00352"></a>00352   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#057a23eb0df4660f8363043be3cc2e56" title="Set desired motor velocity (this will be an angular or linear velocity).">SetVel</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00353"></a>00353 
<a name="l00359"></a>00359   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#625e12b68b39857640d63485c2b26649" title="Set the maximum force or torque that the motor will use to achieve the desired velocity...">SetFMax</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00360"></a>00360 
<a name="l00371"></a>00371   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#1f8d85bf445c385642d3690f9bb32803" title="Set the fudge factor.">SetFudgeFactor</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00372"></a>00372 
<a name="l00378"></a>00378   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#933839e4e9121d38c87fcb26e148961f" title="Set the bouncyness of the stops.">SetBounce</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00379"></a>00379 
<a name="l00384"></a>00384   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#711748fbb50668c19aad45b8bd16f156" title="Set the constraint force mixing (CFM) value for joint used when not at a stop.">SetCFM</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00385"></a>00385 
<a name="l00387"></a>00387   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#cbd90f0e33686aa639599996ec5028e5" title="Set the error reduction parameter (ERP) used by the stops.">SetStopERP</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00388"></a>00388 
<a name="l00395"></a>00395   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#9d5078f5cd3d6554476f75090c8b8d1c" title="Set the constraint force mixing (CFM) value for joint used by the stops.">SetStopCFM</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00396"></a>00396 
<a name="l00398"></a>00398   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#c14f369db2c2dfe596916c0b58ab8797" title="Set suspension error reduction parameter (ERP).">SetSuspensionERP</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00399"></a>00399 
<a name="l00401"></a>00401   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEJointState.html#6a87c7a17e1499bd379780ae27fa19f0" title="Set suspension constraint force mixing (CFM) value.">SetSuspensionCFM</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;value) = 0;
<a name="l00402"></a>00402 
<a name="l00404"></a>00404   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#fe55b35235fa8157a2d47cdc5dea4611" title="Get low stop angle or position.">GetLoStop</a> () = 0;
<a name="l00405"></a>00405 
<a name="l00407"></a>00407   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#de894bfc35dba26c3a0acc3bc0f5ad9b" title="Get high stop angle or position.">GetHiStop</a> () = 0;
<a name="l00408"></a>00408 
<a name="l00410"></a>00410   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#331fdcc77865141cdac109c60e94f16a" title="Get desired motor velocity (this will be an angular or linear velocity).">GetVel</a> () = 0;
<a name="l00411"></a>00411 
<a name="l00416"></a>00416   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#8c4977e1c11a555a9ad4a8aa77414602" title="Get the maximum force or torque that the motor will use to achieve the desired velocity...">GetMaxForce</a> () = 0;
<a name="l00417"></a>00417 
<a name="l00419"></a>00419   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#171eb5a5020df56f462409dcf74207a4" title="Get the fudge factor.">GetFudgeFactor</a> () = 0;
<a name="l00420"></a>00420 
<a name="l00422"></a>00422   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#a66e3cb5ae7238eca93d290f166050ee" title="Get the bouncyness of the stops.">GetBounce</a> () = 0;
<a name="l00423"></a>00423 
<a name="l00428"></a>00428   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#8d463ea767d8d137af1dc2c9a63032ae" title="Get the constraint force mixing (CFM) value for joint used when not at a stop.">GetCFM</a> () = 0;
<a name="l00429"></a>00429 
<a name="l00431"></a>00431   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#d3e53b20baab7e167efe5892ee59580e" title="Get the error reduction parameter (ERP) used by the stops.">GetStopERP</a> () = 0;
<a name="l00432"></a>00432 
<a name="l00434"></a>00434   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#7ba67856d639ffcfd905e61e6f3305fb" title="Get the constraint force mixing (CFM) value for joint used by the stops.">GetStopCFM</a> () = 0;
<a name="l00435"></a>00435 
<a name="l00437"></a>00437   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#b1c698d8526644e03fbff9cded4dd79b" title="Get suspension error reduction parameter (ERP).">GetSuspensionERP</a> () = 0;
<a name="l00438"></a>00438 
<a name="l00440"></a>00440   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEJointState.html#50650280550756f5183e9a1c2f7f0b33" title="Get suspension constraint force mixing (CFM) value.">GetSuspensionCFM</a> () = 0;
<a name="l00441"></a>00441 
<a name="l00442"></a>00442 };
<a name="l00443"></a>00443 
<a name="l00447"></a><a class="code" href="structiODEGeneralJointState.html">00447</a> <span class="keyword">struct </span><a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00448"></a>00448 {
<a name="l00449"></a>00449   SCF_INTERFACE(<a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a>, 2, 0, 0);
<a name="l00450"></a>00450 
<a name="l00455"></a>00455   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#8d79c46322cd66b02757f8641c38e715" title="Set low stop angle or position.">SetLoStop</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00456"></a>00456 
<a name="l00462"></a>00462   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#36ea8de699af858a3f010c5b79da336b" title="Set high stop angle or position.">SetHiStop</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00463"></a>00463 
<a name="l00465"></a>00465   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#c92afe706f62ff3db70eab63279dced3" title="Set desired motor velocity (this will be an angular or linear velocity).">SetVel</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00466"></a>00466 
<a name="l00472"></a>00472   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#96dfef62c648505eb42919e1d362996a" title="Set the maximum force or torque that the motor will use to achieve the desired velocity...">SetFMax</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00473"></a>00473 
<a name="l00484"></a>00484   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#08f7eaa7acd2dd8613943e40c31e909b" title="Set the fudge factor.">SetFudgeFactor</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00485"></a>00485 
<a name="l00491"></a>00491   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#2d328ceacebd2accc38be00f0de948b5" title="Set the bouncyness of the stops.">SetBounce</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00492"></a>00492 
<a name="l00497"></a>00497   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#70d70f341ce16011db5496b7cf139c9d" title="Set the constraint force mixing (CFM) value for joint used when not at a stop.">SetCFM</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00498"></a>00498 
<a name="l00500"></a>00500   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#7de2e0fb394507c792b483d481ffa6a5" title="Set the error reduction parameter (ERP) used by the stops.">SetStopERP</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00501"></a>00501 
<a name="l00508"></a>00508   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#f3741cb6a9f51dd04d592038e5c5a72b" title="Set the constraint force mixing (CFM) value for joint used by the stops.">SetStopCFM</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00509"></a>00509 
<a name="l00511"></a>00511   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#81b20177e69aef1f3a0d4087579eae5b" title="Set suspension error reduction parameter (ERP).">SetSuspensionERP</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00512"></a>00512 
<a name="l00514"></a>00514   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#c97d83c5270fe309b7216b15eb797314" title="Set suspension constraint force mixing (CFM) value.">SetSuspensionCFM</a> (<span class="keywordtype">float</span> value, <span class="keywordtype">int</span> axis) = 0;
<a name="l00515"></a>00515 
<a name="l00517"></a>00517   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#ce045560d89f15409d2955059919e801" title="Get low stop angle or position.">GetLoStop</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00518"></a>00518 
<a name="l00520"></a>00520   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#c73bc1d5f997d8f786a8166b11902dbc" title="Get high stop angle or position.">GetHiStop</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00521"></a>00521 
<a name="l00523"></a>00523   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#1ebe144954f9b0d6777119f01cc7f861" title="Get desired motor velocity (this will be an angular or linear velocity).">GetVel</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00524"></a>00524 
<a name="l00529"></a>00529   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#e5c6db2ad00f7bcbd3a78958a2bc73a4" title="Get the maximum force or torque that the motor will use to achieve the desired velocity...">GetFMax</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00530"></a>00530 
<a name="l00532"></a>00532   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#a2150a1ab15db45fdc80134e05b3b22b" title="Get the fudge factor.">GetFudgeFactor</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00533"></a>00533 
<a name="l00535"></a>00535   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#1b1c00d9ab5f1a81667f086321582f68" title="Get the bouncyness of the stops.">GetBounce</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00536"></a>00536 
<a name="l00541"></a>00541   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#22dcab9126b85c195fb0f5aed164124a" title="Get the constraint force mixing (CFM) value for joint used when not at a stop.">GetCFM</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00542"></a>00542 
<a name="l00544"></a>00544   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#2859bcb58d1fd3d32f8730a5a8c7c2d5" title="Get the error reduction parameter (ERP) used by the stops.">GetStopERP</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00545"></a>00545 
<a name="l00547"></a>00547   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#7af03a6c66413b8acd00b19bb4f66b4e" title="Get the constraint force mixing (CFM) value for joint used by the stops.">GetStopCFM</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00548"></a>00548 
<a name="l00550"></a>00550   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#4e9e55d27bf91d14b22d017c8e06ccad" title="Get suspension error reduction parameter (ERP).">GetSuspensionERP</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00551"></a>00551 
<a name="l00553"></a>00553   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEGeneralJointState.html#7c5e73c4db552bb4dd5ebd8778b8c16b" title="Get suspension constraint force mixing (CFM) value.">GetSuspensionCFM</a> (<span class="keywordtype">int</span> axis) = 0;
<a name="l00554"></a>00554 
<a name="l00562"></a>00562   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEGeneralJointState.html#de3d4ce5ed2a5ec5c8f04875b945beb2" title="Attach the joint to some new bodies.">Attach</a> (<a class="code" href="structiRigidBody.html" title="This is the interface for a rigid body.">iRigidBody</a> *body1, <a class="code" href="structiRigidBody.html" title="This is the interface for a rigid body.">iRigidBody</a> *body2) = 0;
<a name="l00563"></a>00563 
<a name="l00565"></a>00565   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iRigidBody&gt;</a> <a class="code" href="structiODEGeneralJointState.html#e8ab340e900e3eb4e521a8f88a67476f" title="Get an attached body (valid values for body are 0 and 1).">GetAttachedBody</a> (<span class="keywordtype">int</span> body) = 0;
<a name="l00566"></a>00566 
<a name="l00568"></a>00568   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEGeneralJointState.html#1aa0dccbe0d7fc3c979c45e3bc23e3a0" title="Get force that joint applies to body 1.">GetFeedbackForce1</a> () = 0;
<a name="l00569"></a>00569 
<a name="l00571"></a>00571   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEGeneralJointState.html#a2a507f7887a246cc1a0bb193e58ce12" title="Get torque that joint applies to body 1.">GetFeedbackTorque1</a> () = 0;
<a name="l00572"></a>00572 
<a name="l00574"></a>00574   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEGeneralJointState.html#61b3ef123dea6770e1be71fd0e2b01bc" title="Get force that joint applies to body 2.">GetFeedbackForce2</a> () = 0;
<a name="l00575"></a>00575 
<a name="l00577"></a>00577   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEGeneralJointState.html#5d3135a4dd6121bc8e868343ce625f07" title="Get torque that joint applies to body 2.">GetFeedbackTorque2</a> () = 0;
<a name="l00578"></a>00578 
<a name="l00579"></a>00579 };
<a name="l00580"></a>00580 
<a name="l00581"></a><a class="code" href="structiODESliderJoint.html">00581</a> <span class="keyword">struct </span><a class="code" href="structiODESliderJoint.html">iODESliderJoint</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a>
<a name="l00582"></a>00582 {
<a name="l00583"></a>00583   SCF_INTERFACE(<a class="code" href="structiODESliderJoint.html">iODESliderJoint</a>, 2, 1, 0);
<a name="l00584"></a>00584 
<a name="l00586"></a>00586   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODESliderJoint.html#dd48a782d4f68acea34b0c3e03a9f107" title="Set the slider axis.">SetSliderAxis</a> (<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z) = 0;
<a name="l00587"></a>00587 
<a name="l00589"></a>00589   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODESliderJoint.html#c94f6848270b4690c8f11d945cf73c2b" title="Get the slider axis.">GetSliderAxis</a> () = 0;
<a name="l00590"></a>00590 
<a name="l00596"></a>00596   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODESliderJoint.html#43b1ba6a48c049db5cf46d700329e791" title="Get the slider linear position (i.e.">GetSliderPosition</a> () = 0;
<a name="l00597"></a>00597 
<a name="l00599"></a>00599   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODESliderJoint.html#c6dc0dbd6acc0f03feab339dc4dd8b11" title="Get the time derivative of slider position.">GetSliderPositionRate</a> () = 0;
<a name="l00600"></a>00600 };
<a name="l00601"></a>00601 
<a name="l00609"></a><a class="code" href="structiODEUniversalJoint.html">00609</a> <span class="keyword">struct </span><a class="code" href="structiODEUniversalJoint.html" title="A universal joint is like a ball and socket joint that constrains an extra degree...">iODEUniversalJoint</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a>
<a name="l00610"></a>00610 {
<a name="l00611"></a>00611   SCF_INTERFACE(<a class="code" href="structiODEUniversalJoint.html" title="A universal joint is like a ball and socket joint that constrains an extra degree...">iODEUniversalJoint</a>, 2, 1, 0);
<a name="l00612"></a>00612 
<a name="l00614"></a>00614   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEUniversalJoint.html#5a27a1da7e2ae6a8596e279bff616c35" title="Set universal anchor.">SetUniversalAnchor</a> (<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z) = 0;
<a name="l00615"></a>00615 
<a name="l00617"></a>00617   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEUniversalJoint.html#d98a28f1e2ccb9cd4f594d8fe1913090" title="Set axis on body 1 (should be perpendicular to axis 2).">SetUniversalAxis1</a> (<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z) = 0;
<a name="l00618"></a>00618 
<a name="l00620"></a>00620   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEUniversalJoint.html#b51bad40a679a753ee347436b47c4680" title="Set axis on body 2 (should be perpendicular to axis 1).">SetUniversalAxis2</a> (<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z) = 0;
<a name="l00621"></a>00621 
<a name="l00627"></a>00627   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEUniversalJoint.html#d4d03191150c2ff0d13069608ca7807a" title="Get the joint anchor point, in world coordinates.">GetUniversalAnchor1</a> () = 0;
<a name="l00628"></a>00628 
<a name="l00634"></a>00634   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEUniversalJoint.html#16ea61c66ace64f352b3147d2e3ba83f" title="Get the joint anchor point, in world coordinates.">GetUniversalAnchor2</a> () = 0;
<a name="l00635"></a>00635 
<a name="l00637"></a>00637   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEUniversalJoint.html#c45c2fd6e442360b3c8b012f3be39335" title="Get universal axis on body 1.">GetUniversalAxis1</a> () = 0;
<a name="l00638"></a>00638 
<a name="l00640"></a>00640   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEUniversalJoint.html#1cc94f896b7688b988c6da937c5bb5b3" title="Get universal axis on body 2.">GetUniversalAxis2</a> () = 0;
<a name="l00641"></a>00641 
<a name="l00642"></a>00642 };
<a name="l00643"></a>00643 
<a name="l00644"></a><a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9">00644</a> <span class="keyword">enum</span> <a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9">ODEAMotorMode</a>
<a name="l00645"></a>00645 {
<a name="l00646"></a><a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9d3916c974a4c5710e052bb3139e32f51">00646</a>   <a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9d3916c974a4c5710e052bb3139e32f51">CS_ODE_AMOTOR_MODE_UNKNOWN</a> = -1,
<a name="l00647"></a>00647 
<a name="l00648"></a><a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9629f7f74d91e75ec26b9372797ef9fb6">00648</a>   <a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9629f7f74d91e75ec26b9372797ef9fb6">CS_ODE_AMOTOR_MODE_USER</a> = 0,
<a name="l00649"></a><a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c92958047ebf5b9ec1b98cf07dbc185e2f">00649</a>   <a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c92958047ebf5b9ec1b98cf07dbc185e2f">CS_ODE_AMOTOR_MODE_EULER</a>,
<a name="l00650"></a>00650 
<a name="l00651"></a><a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c981cca3c411c595c53c0f93890abac14a">00651</a>   <a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c981cca3c411c595c53c0f93890abac14a">CS_ODE_AMOTOR_MODE_LAST</a>
<a name="l00652"></a>00652 };
<a name="l00653"></a>00653 
<a name="l00665"></a><a class="code" href="structiODEAMotorJoint.html">00665</a> <span class="keyword">struct </span><a class="code" href="structiODEAMotorJoint.html" title="ODE AMotor joint.">iODEAMotorJoint</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a>
<a name="l00666"></a>00666 {
<a name="l00667"></a>00667   SCF_INTERFACE(<a class="code" href="structiODEAMotorJoint.html" title="ODE AMotor joint.">iODEAMotorJoint</a>, 2, 1, 0);
<a name="l00668"></a>00668 
<a name="l00678"></a>00678   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEAMotorJoint.html#ce0e01cd252c350db14d2b8a6e9c078a" title="Set the angular motor mode.">SetAMotorMode</a> (<a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9">ODEAMotorMode</a> mode) = 0;
<a name="l00679"></a>00679 
<a name="l00683"></a>00683   <span class="keyword">virtual</span> <a class="code" href="ode_8h.html#c313c9937ffa4ec206cadd74207617c9">ODEAMotorMode</a> <a class="code" href="structiODEAMotorJoint.html#caf2eac0eaaa5b50fb4bc9b1bb928962" title="Get the angular motor mode.">GetAMotorMode</a> () = 0;
<a name="l00684"></a>00684 
<a name="l00691"></a>00691   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEAMotorJoint.html#bf237d9ce142049800a84c4b3907267e" title="Set the number of angular axes that will be controlled by the AMotor.">SetAMotorNumAxes</a> (<span class="keywordtype">int</span> axis_num) = 0;
<a name="l00692"></a>00692 
<a name="l00697"></a>00697   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiODEAMotorJoint.html#a5f2c1b31481d398f3bf4e339609fe1b" title="Get the number of angular axes that will be controlled by the AMotor.">GetAMotorNumAxes</a> () = 0;
<a name="l00698"></a>00698 
<a name="l00708"></a>00708   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEAMotorJoint.html#cdd62f968edef8aca8e1f68093846711" title="Set AMotor axis.">SetAMotorAxis</a> (<span class="keywordtype">int</span> axis_num, <span class="keywordtype">int</span> rel_orient, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y,
<a name="l00709"></a>00709         <span class="keywordtype">float</span> z) = 0;
<a name="l00710"></a>00710 
<a name="l00719"></a>00719   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEAMotorJoint.html#cdd62f968edef8aca8e1f68093846711" title="Set AMotor axis.">SetAMotorAxis</a> (<span class="keywordtype">int</span> axis_num, <span class="keywordtype">int</span> rel_orient,
<a name="l00720"></a>00720         <span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;axis) = 0;
<a name="l00721"></a>00721 
<a name="l00725"></a>00725   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEAMotorJoint.html#400994ef71ee36a99e111dfa13781295" title="Get AMotor axis.">GetAMotorAxis</a> (<span class="keywordtype">int</span> axis_num) = 0;
<a name="l00726"></a>00726 
<a name="l00733"></a>00733   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="structiODEAMotorJoint.html#64b0aca3dc37deb1abe8f19856dc5d6f" title="Get ``relative orientation&amp;#39;&amp;#39; mode: 0: The axis is anchored to the global...">GetAMotorAxisRelOrientation</a> (<span class="keywordtype">int</span> axis_num) = 0;
<a name="l00734"></a>00734 
<a name="l00742"></a>00742   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEAMotorJoint.html#2f956297d34056adc34b095682157f6a" title="Tell the AMotor what the current angle is along axis anum.">SetAMotorAngle</a> (<span class="keywordtype">int</span> axis_num, <span class="keywordtype">float</span> angle) = 0;
<a name="l00743"></a>00743 
<a name="l00749"></a>00749   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEAMotorJoint.html#552334f811c9aa35f112e2885656d03e" title="Return the current angle for axis anum.">GetAMotorAngle</a> (<span class="keywordtype">int</span> axis_num) = 0;
<a name="l00750"></a>00750 
<a name="l00756"></a>00756   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEAMotorJoint.html#25c5df56cea29d97f62e62bfc327463c" title="Return the current angle rate for axis anum.">GetAMotorAngleRate</a> (<span class="keywordtype">int</span> axis_num) = 0;
<a name="l00757"></a>00757 };
<a name="l00758"></a>00758 
<a name="l00763"></a><a class="code" href="structiODEHinge2Joint.html">00763</a> <span class="keyword">struct </span><a class="code" href="structiODEHinge2Joint.html" title="ODE hinge 2 joint.">iODEHinge2Joint</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a>
<a name="l00764"></a>00764 {
<a name="l00765"></a>00765   SCF_INTERFACE(<a class="code" href="structiODEHinge2Joint.html" title="ODE hinge 2 joint.">iODEHinge2Joint</a>, 2, 1, 0);
<a name="l00766"></a>00766 
<a name="l00771"></a>00771   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEHinge2Joint.html#8f9d0ed8d011ced2685c9a9fed398188" title="Set the joint anchor point.">SetHingeAnchor</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;pos) = 0;
<a name="l00772"></a>00772 
<a name="l00776"></a>00776   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEHinge2Joint.html#4a3c36cfbf3b782e6a9b8ac09440ebbd" title="Sets free hinge2 axis 1.">SetHingeAxis1</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;axis) = 0;
<a name="l00777"></a>00777 
<a name="l00781"></a>00781   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEHinge2Joint.html#e8d1c856d9188200b98fe1e7ad987703" title="Sets free hinge2 axis 2.">SetHingeAxis2</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;axis) = 0;
<a name="l00782"></a>00782 
<a name="l00783"></a>00783 
<a name="l00788"></a>00788   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHinge2Joint.html#569a8037019bc631e5a29b82248fa30d" title="Get the joint anchor point, in world coordinates.">GetHingeAnchor1</a> () = 0;
<a name="l00789"></a>00789 
<a name="l00794"></a>00794   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHinge2Joint.html#9c0710901ba4d8155512d17a5cf549da" title="Get the joint anchor point, in world coordinates.">GetHingeAnchor2</a> () = 0;
<a name="l00795"></a>00795 
<a name="l00799"></a>00799   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHinge2Joint.html#42ef23cfa7b49b52487ba98198cf2f3f" title="Get free hinge axis 1.">GetHingeAxis1</a> () = 0;
<a name="l00800"></a>00800 
<a name="l00804"></a>00804   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHinge2Joint.html#8c094e34d30291f625b55ddeaabb1606" title="Get free hinge axis 2.">GetHingeAxis2</a> () = 0;
<a name="l00805"></a>00805 
<a name="l00812"></a>00812   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEHinge2Joint.html#0e0f62f9837bca5b4e1c4a2f507f473e" title="Get the hinge angle.">GetHingeAngle</a> () = 0;
<a name="l00813"></a>00813 
<a name="l00817"></a>00817   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEHinge2Joint.html#160819a328fa9b87788e9e4e791d823c" title="Get the time derivative of angle value.">GetHingeAngleRate1</a> () = 0;
<a name="l00818"></a>00818 
<a name="l00822"></a>00822   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEHinge2Joint.html#a290b21b829e599c04df35c8b70fe772" title="Get the time derivative of angle value.">GetHingeAngleRate2</a> () = 0;
<a name="l00823"></a>00823 
<a name="l00827"></a>00827   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHinge2Joint.html#55cd43a07f545fb8bb9d628044d5830e" title="This value will show you how far the joint has come apart.">GetAnchorError</a> () = 0;
<a name="l00828"></a>00828 
<a name="l00829"></a>00829 };
<a name="l00830"></a>00830 
<a name="l00834"></a><a class="code" href="structiODEHingeJoint.html">00834</a> <span class="keyword">struct </span><a class="code" href="structiODEHingeJoint.html" title="ODE hinge joint (contrainted translation and 1 free rotation axis).">iODEHingeJoint</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiODEGeneralJointState.html" title="General joint state.">iODEGeneralJointState</a>
<a name="l00835"></a>00835 {
<a name="l00836"></a>00836   SCF_INTERFACE(<a class="code" href="structiODEHingeJoint.html" title="ODE hinge joint (contrainted translation and 1 free rotation axis).">iODEHingeJoint</a>, 2, 1, 0);
<a name="l00837"></a>00837 
<a name="l00842"></a>00842   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEHingeJoint.html#7c7fb1a0a23aecf8f00d3372d298d350" title="Set the joint anchor point.">SetHingeAnchor</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;pos) = 0;
<a name="l00843"></a>00843 
<a name="l00847"></a>00847   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEHingeJoint.html#48665880f28d309162dc88d04dff0522" title="Sets free hinge axis.">SetHingeAxis</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;axis) = 0;
<a name="l00848"></a>00848 
<a name="l00853"></a>00853   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHingeJoint.html#733a4ee7f906a19f0974bd77877bc6b3" title="Get the joint anchor point, in world coordinates.">GetHingeAnchor1</a> () = 0;
<a name="l00854"></a>00854 
<a name="l00859"></a>00859   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHingeJoint.html#61d972118ab0ae7272ff49461c72ac69" title="Get the joint anchor point, in world coordinates.">GetHingeAnchor2</a> () = 0;
<a name="l00860"></a>00860 
<a name="l00864"></a>00864   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHingeJoint.html#55233d414d759cd90c042a86ae8341f5" title="Get free hinge axis.">GetHingeAxis</a> () = 0;
<a name="l00865"></a>00865 
<a name="l00872"></a>00872   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEHingeJoint.html#291affa2a54c60440e2bb1414dd1cb6e" title="Get the hinge angle.">GetHingeAngle</a> () = 0;
<a name="l00873"></a>00873 
<a name="l00877"></a>00877   <span class="keyword">virtual</span> <span class="keywordtype">float</span> <a class="code" href="structiODEHingeJoint.html#a7ce128b4147117838f8f1944ae483ad" title="Get the time derivative of angle value.">GetHingeAngleRate</a> () = 0;
<a name="l00878"></a>00878 
<a name="l00882"></a>00882   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEHingeJoint.html#55efec670071c7bcf6d6069668e8b68a" title="This value will show you how far the joint has come apart.">GetAnchorError</a> () = 0;
<a name="l00883"></a>00883 
<a name="l00884"></a>00884 };
<a name="l00885"></a>00885 
<a name="l00889"></a><a class="code" href="structiODEBallJoint.html">00889</a> <span class="keyword">struct </span><a class="code" href="structiODEBallJoint.html" title="ODE ball and socket joint (contrainted translation and free rotation).">iODEBallJoint</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00890"></a>00890 {
<a name="l00891"></a>00891   SCF_INTERFACE(<a class="code" href="structiODEBallJoint.html" title="ODE ball and socket joint (contrainted translation and free rotation).">iODEBallJoint</a>, 2, 0, 0);
<a name="l00892"></a>00892 
<a name="l00897"></a>00897   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEBallJoint.html#a83351bd3c98897f80ef7d117fac61e7" title="Set the joint anchor point.">SetBallAnchor</a> (<span class="keyword">const</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> &amp;pos) = 0;
<a name="l00898"></a>00898 
<a name="l00903"></a>00903   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#888c136d2a5fe211b739b1cf83b712f3" title="Get the joint anchor point, in world coordinates.">GetBallAnchor1</a> () = 0;
<a name="l00904"></a>00904 
<a name="l00909"></a>00909   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#b9f762b425d2ff0e21f173ded2f9ae25" title="Get the joint anchor point, in world coordinates.">GetBallAnchor2</a> () = 0;
<a name="l00910"></a>00910 
<a name="l00914"></a>00914   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#6e140c6e6fd4a5fa16cc7e29dfa6f6ec" title="This value will show you how far the joint has come apart.">GetAnchorError</a> () = 0;
<a name="l00915"></a>00915 
<a name="l00923"></a>00923   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiODEBallJoint.html#e7a066b2eff8ca5ed608f92de25ee3bc" title="Attach the joint to some new bodies.">Attach</a> (<a class="code" href="structiRigidBody.html" title="This is the interface for a rigid body.">iRigidBody</a> *body1, <a class="code" href="structiRigidBody.html" title="This is the interface for a rigid body.">iRigidBody</a> *body2) = 0;
<a name="l00924"></a>00924 
<a name="l00926"></a>00926   <span class="keyword">virtual</span> <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iRigidBody&gt;</a> <a class="code" href="structiODEBallJoint.html#7cf7a83205ce68464fda6fb4c5c331d3" title="Get an attached body (valid values for body are 0 and 1).">GetAttachedBody</a> (<span class="keywordtype">int</span> body) = 0;
<a name="l00927"></a>00927 
<a name="l00929"></a>00929   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#55b6e23211225f880c106d9b94590831" title="Get force that joint applies to body 1.">GetFeedbackForce1</a> () = 0;
<a name="l00930"></a>00930 
<a name="l00932"></a>00932   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#2fade4690e36c6b0a2013676e71127b2" title="Get torque that joint applies to body 1.">GetFeedbackTorque1</a> () = 0;
<a name="l00933"></a>00933 
<a name="l00935"></a>00935   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#fa195fd4bf278a9e4684d0b1eb98d94b" title="Get force that joint applies to body 2.">GetFeedbackForce2</a> () = 0;
<a name="l00936"></a>00936 
<a name="l00938"></a>00938   <span class="keyword">virtual</span> <a class="code" href="classcsVector3.html" title="A 3D vector.">csVector3</a> <a class="code" href="structiODEBallJoint.html#69f711d1f0bdd48a86d78fd2dbc1aa13" title="Get torque that joint applies to body 2.">GetFeedbackTorque2</a> () = 0;
<a name="l00939"></a>00939 };
<a name="l00940"></a>00940 
<a name="l00941"></a>00941 <span class="preprocessor">#endif // __CS_IVARIA_ODE_H__</span>
</pre></div><hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>