Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/ode/ode-0.9/docs/group__joints.html @ 216

Last change on this file since 216 was 216, checked in by mathiask, 17 years ago

[Physik] add ode-0.9

File size: 118.7 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>Open Dynamics Engine: Joints</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.3 -->
8<div class="tabs">
9  <ul>
10    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11    <li><a href="modules.html"><span>Modules</span></a></li>
12    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
13    <li><a href="files.html"><span>Files</span></a></li>
14  </ul>
15</div>
16<h1>Joints</h1><table border="0" cellpadding="0" cellspacing="0">
17<tr><td></td></tr>
18<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
19<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g2d23509f8d6c6066b361af4cf14166f7">dJointCreateBall</a> (dWorldID, dJointGroupID)</td></tr>
20
21<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the ball type.  <a href="#g2d23509f8d6c6066b361af4cf14166f7"></a><br></td></tr>
22<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g2f18d431d48c905abc9d72ce011c00bd">dJointCreateHinge</a> (dWorldID, dJointGroupID)</td></tr>
23
24<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the hinge type.  <a href="#g2f18d431d48c905abc9d72ce011c00bd"></a><br></td></tr>
25<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#geccc4c67b2d409016685a6a9163be539">dJointCreateSlider</a> (dWorldID, dJointGroupID)</td></tr>
26
27<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the slider type.  <a href="#geccc4c67b2d409016685a6a9163be539"></a><br></td></tr>
28<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gfa5e1543239ba44ecbdc178ebc7c3cc4">dJointCreateContact</a> (dWorldID, dJointGroupID, const dContact *)</td></tr>
29
30<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the contact type.  <a href="#gfa5e1543239ba44ecbdc178ebc7c3cc4"></a><br></td></tr>
31<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g6a6e32d35bdda9352d1be8d4df973f8f">dJointCreateHinge2</a> (dWorldID, dJointGroupID)</td></tr>
32
33<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the hinge2 type.  <a href="#g6a6e32d35bdda9352d1be8d4df973f8f"></a><br></td></tr>
34<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g1cb2e7668242313b5d24acb5d43e5c62">dJointCreateUniversal</a> (dWorldID, dJointGroupID)</td></tr>
35
36<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the universal type.  <a href="#g1cb2e7668242313b5d24acb5d43e5c62"></a><br></td></tr>
37<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gdc867f10ba9931d191244fa879e43cb2">dJointCreatePR</a> (dWorldID, dJointGroupID)</td></tr>
38
39<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the PR (Prismatic and Rotoide) type.  <a href="#gdc867f10ba9931d191244fa879e43cb2"></a><br></td></tr>
40<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ge568995d03077e1acb13882a627dcf32">dJointCreateFixed</a> (dWorldID, dJointGroupID)</td></tr>
41
42<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the fixed type.  <a href="#ge568995d03077e1acb13882a627dcf32"></a><br></td></tr>
43<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gf23195ce77e12031393e591abd0e28e6">dJointCreateAMotor</a> (dWorldID, dJointGroupID)</td></tr>
44
45<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the A-motor type.  <a href="#gf23195ce77e12031393e591abd0e28e6"></a><br></td></tr>
46<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g21c8c99615269c5d9d3c57c674f6fd56">dJointCreateLMotor</a> (dWorldID, dJointGroupID)</td></tr>
47
48<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the L-motor type.  <a href="#g21c8c99615269c5d9d3c57c674f6fd56"></a><br></td></tr>
49<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g7e68f39530acad9c0e7a38c8a3799b38">dJointCreatePlane2D</a> (dWorldID, dJointGroupID)</td></tr>
50
51<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new joint of the plane-2d type.  <a href="#g7e68f39530acad9c0e7a38c8a3799b38"></a><br></td></tr>
52<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g2187ccbcf51c951f680eb6c9a210801a">dJointDestroy</a> (dJointID)</td></tr>
53
54<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy a joint.  <a href="#g2187ccbcf51c951f680eb6c9a210801a"></a><br></td></tr>
55<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dJointGroupID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gaaec687b184a1214133a41503e7c628f">dJointGroupCreate</a> (int max_size)</td></tr>
56
57<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a joint group.  <a href="#gaaec687b184a1214133a41503e7c628f"></a><br></td></tr>
58<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g49e664ee9a8bd7bfe5e6932bf936bb8f">dJointGroupDestroy</a> (dJointGroupID)</td></tr>
59
60<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy a joint group.  <a href="#g49e664ee9a8bd7bfe5e6932bf936bb8f"></a><br></td></tr>
61<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g6e055bac8a0a3261bda3b6d07499c4ea">dJointGroupEmpty</a> (dJointGroupID)</td></tr>
62
63<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Empty a joint group.  <a href="#g6e055bac8a0a3261bda3b6d07499c4ea"></a><br></td></tr>
64<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g8f1c9b1302c799a1b87bc29b76d0dcec">dJointAttach</a> (dJointID, dBodyID body1, dBodyID body2)</td></tr>
65
66<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attach the joint to some new bodies.  <a href="#g8f1c9b1302c799a1b87bc29b76d0dcec"></a><br></td></tr>
67<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5ca72d8bd498ef1ba920b0b473e79d02"></a><!-- doxytag: member="joints::dJointSetData" ref="g5ca72d8bd498ef1ba920b0b473e79d02" args="(dJointID, void *data)" -->
68ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g5ca72d8bd498ef1ba920b0b473e79d02">dJointSetData</a> (dJointID, void *data)</td></tr>
69
70<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the user-data pointer. <br></td></tr>
71<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g607702a11bae2d2613295f67088b0e82"></a><!-- doxytag: member="joints::dJointGetData" ref="g607702a11bae2d2613295f67088b0e82" args="(dJointID)" -->
72ODE_API void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g607702a11bae2d2613295f67088b0e82">dJointGetData</a> (dJointID)</td></tr>
73
74<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the user-data pointer. <br></td></tr>
75<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g6f12f69d9b1a457428a28c2f77148174">dJointGetType</a> (dJointID)</td></tr>
76
77<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the type of the joint.  <a href="#g6f12f69d9b1a457428a28c2f77148174"></a><br></td></tr>
78<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dBodyID&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gff13cbb464f1bfdc225fc9202c2c54c3">dJointGetBody</a> (dJointID, int index)</td></tr>
79
80<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the bodies that this joint connects.  <a href="#gff13cbb464f1bfdc225fc9202c2c54c3"></a><br></td></tr>
81<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g87ddb9beb95e9383a4280cb8a4186f01">dJointSetFeedback</a> (dJointID, dJointFeedback *)</td></tr>
82
83<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the datastructure that is to receive the feedback.  <a href="#g87ddb9beb95e9383a4280cb8a4186f01"></a><br></td></tr>
84<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gda1deef60d7afbb6b9375ddbf97e09a1"></a><!-- doxytag: member="joints::dJointGetFeedback" ref="gda1deef60d7afbb6b9375ddbf97e09a1" args="(dJointID)" -->
85ODE_API dJointFeedback *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gda1deef60d7afbb6b9375ddbf97e09a1">dJointGetFeedback</a> (dJointID)</td></tr>
86
87<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the datastructure that is to receive the feedback. <br></td></tr>
88<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g058c33a3da1ff935a1125034f779dc4a">dJointSetBallAnchor</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
89
90<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the joint anchor point.  <a href="#g058c33a3da1ff935a1125034f779dc4a"></a><br></td></tr>
91<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g51eb42782182a714be26bbd68f7a6d9a"></a><!-- doxytag: member="joints::dJointSetBallAnchor2" ref="g51eb42782182a714be26bbd68f7a6d9a" args="(dJointID, dReal x, dReal y, dReal z)" -->
92ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g51eb42782182a714be26bbd68f7a6d9a">dJointSetBallAnchor2</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
93
94<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the joint anchor point. <br></td></tr>
95<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge58f5e11c0829aa8615622a74dd11d85"></a><!-- doxytag: member="joints::dJointSetBallParam" ref="ge58f5e11c0829aa8615622a74dd11d85" args="(dJointID, int parameter, dReal value)" -->
96ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ge58f5e11c0829aa8615622a74dd11d85">dJointSetBallParam</a> (dJointID, int parameter, dReal value)</td></tr>
97
98<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Param setting for Ball joints. <br></td></tr>
99<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc5727a125de0abbe2abd61af7a55da26"></a><!-- doxytag: member="joints::dJointSetHingeAnchor" ref="gc5727a125de0abbe2abd61af7a55da26" args="(dJointID, dReal x, dReal y, dReal z)" -->
100ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gc5727a125de0abbe2abd61af7a55da26">dJointSetHingeAnchor</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
101
102<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set hinge anchor parameter. <br></td></tr>
103<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga434229f033472ec7aa031a01c6cabed"></a><!-- doxytag: member="joints::dJointSetHingeAxis" ref="ga434229f033472ec7aa031a01c6cabed" args="(dJointID, dReal x, dReal y, dReal z)" -->
104ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga434229f033472ec7aa031a01c6cabed">dJointSetHingeAxis</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
105
106<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set hinge axis. <br></td></tr>
107<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6f9d34a01181e65639eb1f67da7a3e4c"></a><!-- doxytag: member="joints::dJointSetHingeParam" ref="g6f9d34a01181e65639eb1f67da7a3e4c" args="(dJointID, int parameter, dReal value)" -->
108ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g6f9d34a01181e65639eb1f67da7a3e4c">dJointSetHingeParam</a> (dJointID, int parameter, dReal value)</td></tr>
109
110<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter <br></td></tr>
111<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga1725abe170f80b0731321ed38785019">dJointAddHingeTorque</a> (dJointID joint, dReal torque)</td></tr>
112
113<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies the torque about the hinge axis.  <a href="#ga1725abe170f80b0731321ed38785019"></a><br></td></tr>
114<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb2f662b1190507551f49ffa29d276b61"></a><!-- doxytag: member="joints::dJointSetSliderAxis" ref="gb2f662b1190507551f49ffa29d276b61" args="(dJointID, dReal x, dReal y, dReal z)" -->
115ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gb2f662b1190507551f49ffa29d276b61">dJointSetSliderAxis</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
116
117<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the joint axis <br></td></tr>
118<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2a055496df2812ad69d30e2653317f6a"></a><!-- doxytag: member="joints::dJointSetSliderAxisDelta" ref="g2a055496df2812ad69d30e2653317f6a" args="(dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az)" -->
119ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><b>dJointSetSliderAxisDelta</b> (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az)</td></tr>
120
121<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g648964f4ca4122309e71a9cc6c24c985"></a><!-- doxytag: member="joints::dJointSetSliderParam" ref="g648964f4ca4122309e71a9cc6c24c985" args="(dJointID, int parameter, dReal value)" -->
122ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g648964f4ca4122309e71a9cc6c24c985">dJointSetSliderParam</a> (dJointID, int parameter, dReal value)</td></tr>
123
124<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter <br></td></tr>
125<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g8b0e018cc3df6ea5ddb42320913455e7">dJointAddSliderForce</a> (dJointID joint, dReal force)</td></tr>
126
127<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies the given force in the slider's direction.  <a href="#g8b0e018cc3df6ea5ddb42320913455e7"></a><br></td></tr>
128<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf839c13fa85aff0287a87986ff447d29"></a><!-- doxytag: member="joints::dJointSetHinge2Anchor" ref="gf839c13fa85aff0287a87986ff447d29" args="(dJointID, dReal x, dReal y, dReal z)" -->
129ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gf839c13fa85aff0287a87986ff447d29">dJointSetHinge2Anchor</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
130
131<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set anchor <br></td></tr>
132<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcdf78fbb0f5b0a09b4d3ac2059b07002"></a><!-- doxytag: member="joints::dJointSetHinge2Axis1" ref="gcdf78fbb0f5b0a09b4d3ac2059b07002" args="(dJointID, dReal x, dReal y, dReal z)" -->
133ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gcdf78fbb0f5b0a09b4d3ac2059b07002">dJointSetHinge2Axis1</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
134
135<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set axis <br></td></tr>
136<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdfef9f6365c87dacb95b4850a9e9f0ee"></a><!-- doxytag: member="joints::dJointSetHinge2Axis2" ref="gdfef9f6365c87dacb95b4850a9e9f0ee" args="(dJointID, dReal x, dReal y, dReal z)" -->
137ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gdfef9f6365c87dacb95b4850a9e9f0ee">dJointSetHinge2Axis2</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
138
139<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set axis <br></td></tr>
140<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9a2d8d03776ccb22869667337457a7a9"></a><!-- doxytag: member="joints::dJointSetHinge2Param" ref="g9a2d8d03776ccb22869667337457a7a9" args="(dJointID, int parameter, dReal value)" -->
141ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g9a2d8d03776ccb22869667337457a7a9">dJointSetHinge2Param</a> (dJointID, int parameter, dReal value)</td></tr>
142
143<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter <br></td></tr>
144<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga5ba1541d092f28c93b1bdc3bfb1b69f">dJointAddHinge2Torques</a> (dJointID joint, dReal torque1, dReal torque2)</td></tr>
145
146<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies torque1 about the hinge2's axis 1, torque2 about the hinge2's axis 2.  <a href="#ga5ba1541d092f28c93b1bdc3bfb1b69f"></a><br></td></tr>
147<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gaf4657aed67f3cd7cce775215995c05d"></a><!-- doxytag: member="joints::dJointSetUniversalAnchor" ref="gaf4657aed67f3cd7cce775215995c05d" args="(dJointID, dReal x, dReal y, dReal z)" -->
148ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gaf4657aed67f3cd7cce775215995c05d">dJointSetUniversalAnchor</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
149
150<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set anchor <br></td></tr>
151<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge0a831da9447ff65d76a0808502038e8"></a><!-- doxytag: member="joints::dJointSetUniversalAxis1" ref="ge0a831da9447ff65d76a0808502038e8" args="(dJointID, dReal x, dReal y, dReal z)" -->
152ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ge0a831da9447ff65d76a0808502038e8">dJointSetUniversalAxis1</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
153
154<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set axis <br></td></tr>
155<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf3668eed7dc5aaf8fee19d7f87347343"></a><!-- doxytag: member="joints::dJointSetUniversalAxis2" ref="gf3668eed7dc5aaf8fee19d7f87347343" args="(dJointID, dReal x, dReal y, dReal z)" -->
156ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gf3668eed7dc5aaf8fee19d7f87347343">dJointSetUniversalAxis2</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
157
158<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set axis <br></td></tr>
159<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3c58284c43e997a028b06dc250064e32"></a><!-- doxytag: member="joints::dJointSetUniversalParam" ref="g3c58284c43e997a028b06dc250064e32" args="(dJointID, int parameter, dReal value)" -->
160ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g3c58284c43e997a028b06dc250064e32">dJointSetUniversalParam</a> (dJointID, int parameter, dReal value)</td></tr>
161
162<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter <br></td></tr>
163<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g36607569e2ee26f39d3d42cba2397898">dJointAddUniversalTorques</a> (dJointID joint, dReal torque1, dReal torque2)</td></tr>
164
165<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies torque1 about the universal's axis 1, torque2 about the universal's axis 2.  <a href="#g36607569e2ee26f39d3d42cba2397898"></a><br></td></tr>
166<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge46251e2cea2d31521b1fb9b151f640f"></a><!-- doxytag: member="joints::dJointSetPRAnchor" ref="ge46251e2cea2d31521b1fb9b151f640f" args="(dJointID, dReal x, dReal y, dReal z)" -->
167ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ge46251e2cea2d31521b1fb9b151f640f">dJointSetPRAnchor</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
168
169<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set anchor <br></td></tr>
170<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2ae3ab1fa58ec22bd443476f786fa81"></a><!-- doxytag: member="joints::dJointSetPRAxis1" ref="ga2ae3ab1fa58ec22bd443476f786fa81" args="(dJointID, dReal x, dReal y, dReal z)" -->
171ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga2ae3ab1fa58ec22bd443476f786fa81">dJointSetPRAxis1</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
172
173<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the axis for the prismatic articulation <br></td></tr>
174<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc8c61c6dd7b28a58a4c0eaf2e91ecbd5"></a><!-- doxytag: member="joints::dJointSetPRAxis2" ref="gc8c61c6dd7b28a58a4c0eaf2e91ecbd5" args="(dJointID, dReal x, dReal y, dReal z)" -->
175ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gc8c61c6dd7b28a58a4c0eaf2e91ecbd5">dJointSetPRAxis2</a> (dJointID, dReal x, dReal y, dReal z)</td></tr>
176
177<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the axis for the rotoide articulation <br></td></tr>
178<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gc08a28659605f17307d563f45db0824b">dJointSetPRParam</a> (dJointID, int parameter, dReal value)</td></tr>
179
180<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter  <a href="#gc08a28659605f17307d563f45db0824b"></a><br></td></tr>
181<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ge675b0e0e332ddcd907ac9d1461b1961">dJointAddPRTorque</a> (dJointID j, dReal torque)</td></tr>
182
183<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies the torque about the rotoide axis of the PR joint.  <a href="#ge675b0e0e332ddcd907ac9d1461b1961"></a><br></td></tr>
184<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8051a8232b4232f7b0d0fd57a3932072"></a><!-- doxytag: member="joints::dJointSetFixed" ref="g8051a8232b4232f7b0d0fd57a3932072" args="(dJointID)" -->
185ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g8051a8232b4232f7b0d0fd57a3932072">dJointSetFixed</a> (dJointID)</td></tr>
186
187<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Call this on the fixed joint after it has been attached to remember the current desired relative offset and desired relative rotation between the bodies. <br></td></tr>
188<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g1406f976045a1b7edffbb46bf626d04f">dJointSetAMotorNumAxes</a> (dJointID, int num)</td></tr>
189
190<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set the nr of axes  <a href="#g1406f976045a1b7edffbb46bf626d04f"></a><br></td></tr>
191<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbef7d92227b62e04b60eb9df02359603"></a><!-- doxytag: member="joints::dJointSetAMotorAxis" ref="gbef7d92227b62e04b60eb9df02359603" args="(dJointID, int anum, int rel, dReal x, dReal y, dReal z)" -->
192ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gbef7d92227b62e04b60eb9df02359603">dJointSetAMotorAxis</a> (dJointID, int anum, int rel, dReal x, dReal y, dReal z)</td></tr>
193
194<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set axis <br></td></tr>
195<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g17b2089e6512e22d71340befb40100d2">dJointSetAMotorAngle</a> (dJointID, int anum, dReal angle)</td></tr>
196
197<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tell the AMotor what the current angle is along axis anum.  <a href="#g17b2089e6512e22d71340befb40100d2"></a><br></td></tr>
198<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gac3f00196ee0cdb772e00dc259ef639a"></a><!-- doxytag: member="joints::dJointSetAMotorParam" ref="gac3f00196ee0cdb772e00dc259ef639a" args="(dJointID, int parameter, dReal value)" -->
199ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gac3f00196ee0cdb772e00dc259ef639a">dJointSetAMotorParam</a> (dJointID, int parameter, dReal value)</td></tr>
200
201<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter <br></td></tr>
202<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb0a3a8527810717c62a2c68dc4dfa822"></a><!-- doxytag: member="joints::dJointSetAMotorMode" ref="gb0a3a8527810717c62a2c68dc4dfa822" args="(dJointID, int mode)" -->
203ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gb0a3a8527810717c62a2c68dc4dfa822">dJointSetAMotorMode</a> (dJointID, int mode)</td></tr>
204
205<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set mode <br></td></tr>
206<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g69d13d54516716020d2adb841699b77b">dJointAddAMotorTorques</a> (dJointID, dReal torque1, dReal torque2, dReal torque3)</td></tr>
207
208<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Applies torque0 about the AMotor's axis 0, torque1 about the AMotor's axis 1, and torque2 about the AMotor's axis 2.  <a href="#g69d13d54516716020d2adb841699b77b"></a><br></td></tr>
209<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gcbfb4014567d69010aba3024d9b7bccd">dJointSetLMotorNumAxes</a> (dJointID, int num)</td></tr>
210
211<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the number of axes that will be controlled by the LMotor.  <a href="#gcbfb4014567d69010aba3024d9b7bccd"></a><br></td></tr>
212<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g080b7739f5b2b37a798742cee0ef38a4">dJointSetLMotorAxis</a> (dJointID, int anum, int rel, dReal x, dReal y, dReal z)</td></tr>
213
214<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the AMotor axes.  <a href="#g080b7739f5b2b37a798742cee0ef38a4"></a><br></td></tr>
215<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g791bfa6e65d0c3dce99ca0bcd3beb8d6"></a><!-- doxytag: member="joints::dJointSetLMotorParam" ref="g791bfa6e65d0c3dce99ca0bcd3beb8d6" args="(dJointID, int parameter, dReal value)" -->
216ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g791bfa6e65d0c3dce99ca0bcd3beb8d6">dJointSetLMotorParam</a> (dJointID, int parameter, dReal value)</td></tr>
217
218<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set joint parameter <br></td></tr>
219<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1ec6e9ac6f92994cea1c9f9a2b50d69a"></a><!-- doxytag: member="joints::dJointSetPlane2DXParam" ref="g1ec6e9ac6f92994cea1c9f9a2b50d69a" args="(dJointID, int parameter, dReal value)" -->
220ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><b>dJointSetPlane2DXParam</b> (dJointID, int parameter, dReal value)</td></tr>
221
222<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf47dece2a7b73762937bd7671d23c945"></a><!-- doxytag: member="joints::dJointSetPlane2DYParam" ref="gf47dece2a7b73762937bd7671d23c945" args="(dJointID, int parameter, dReal value)" -->
223ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><b>dJointSetPlane2DYParam</b> (dJointID, int parameter, dReal value)</td></tr>
224
225<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2425ac42f0fe42e8b4a0d76b057070d1"></a><!-- doxytag: member="joints::dJointSetPlane2DAngleParam" ref="g2425ac42f0fe42e8b4a0d76b057070d1" args="(dJointID, int parameter, dReal value)" -->
226ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><b>dJointSetPlane2DAngleParam</b> (dJointID, int parameter, dReal value)</td></tr>
227
228<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g20a27c479a75443552942059542f26ad"></a><!-- doxytag: member="joints::dJointGetBallParam" ref="g20a27c479a75443552942059542f26ad" args="(dJointID, int parameter)" -->
229ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g20a27c479a75443552942059542f26ad">dJointGetBallParam</a> (dJointID, int parameter)</td></tr>
230
231<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
232<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g1d1c4f9b10c550f6fec550f9cc80c7ab">dJointGetHingeAnchor</a> (dJointID, dVector3 result)</td></tr>
233
234<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the hinge anchor point, in world coordinates.  <a href="#g1d1c4f9b10c550f6fec550f9cc80c7ab"></a><br></td></tr>
235<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gfdc1d9c7bd8824ec3e79cc5aa67ddfa1">dJointGetHingeAnchor2</a> (dJointID, dVector3 result)</td></tr>
236
237<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the joint anchor point, in world coordinates.  <a href="#gfdc1d9c7bd8824ec3e79cc5aa67ddfa1"></a><br></td></tr>
238<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g17b812897bc5faab33584cc5e3e4d3a4"></a><!-- doxytag: member="joints::dJointGetHingeAxis" ref="g17b812897bc5faab33584cc5e3e4d3a4" args="(dJointID, dVector3 result)" -->
239ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g17b812897bc5faab33584cc5e3e4d3a4">dJointGetHingeAxis</a> (dJointID, dVector3 result)</td></tr>
240
241<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get axis <br></td></tr>
242<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g43416613e72d1b16a32331a0ba3c7d70"></a><!-- doxytag: member="joints::dJointGetHingeParam" ref="g43416613e72d1b16a32331a0ba3c7d70" args="(dJointID, int parameter)" -->
243ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g43416613e72d1b16a32331a0ba3c7d70">dJointGetHingeParam</a> (dJointID, int parameter)</td></tr>
244
245<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
246<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g7ca6bdfe2b919b6bc2a27ba6f0e069f0">dJointGetHingeAngle</a> (dJointID)</td></tr>
247
248<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the hinge angle.  <a href="#g7ca6bdfe2b919b6bc2a27ba6f0e069f0"></a><br></td></tr>
249<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0d92377b748eb468dc38252df12afc76"></a><!-- doxytag: member="joints::dJointGetHingeAngleRate" ref="g0d92377b748eb468dc38252df12afc76" args="(dJointID)" -->
250ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g0d92377b748eb468dc38252df12afc76">dJointGetHingeAngleRate</a> (dJointID)</td></tr>
251
252<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the hinge angle time derivative. <br></td></tr>
253<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g7f35449914cbc4a86b845dcd85a617c0">dJointGetSliderPosition</a> (dJointID)</td></tr>
254
255<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the slider linear position (i.e. the slider's extension).  <a href="#g7f35449914cbc4a86b845dcd85a617c0"></a><br></td></tr>
256<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g93378c9c2d0cd50c79cfb78ca881f8ec"></a><!-- doxytag: member="joints::dJointGetSliderPositionRate" ref="g93378c9c2d0cd50c79cfb78ca881f8ec" args="(dJointID)" -->
257ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g93378c9c2d0cd50c79cfb78ca881f8ec">dJointGetSliderPositionRate</a> (dJointID)</td></tr>
258
259<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the slider linear position's time derivative. <br></td></tr>
260<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g17e31e7a877446213c39d1431269788e"></a><!-- doxytag: member="joints::dJointGetSliderAxis" ref="g17e31e7a877446213c39d1431269788e" args="(dJointID, dVector3 result)" -->
261ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g17e31e7a877446213c39d1431269788e">dJointGetSliderAxis</a> (dJointID, dVector3 result)</td></tr>
262
263<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the slider axis. <br></td></tr>
264<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc76d8bb4bf8587af70ef5932025048fe"></a><!-- doxytag: member="joints::dJointGetSliderParam" ref="gc76d8bb4bf8587af70ef5932025048fe" args="(dJointID, int parameter)" -->
265ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gc76d8bb4bf8587af70ef5932025048fe">dJointGetSliderParam</a> (dJointID, int parameter)</td></tr>
266
267<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
268<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g879999d011f82c73acf94029132cc198">dJointGetHinge2Anchor</a> (dJointID, dVector3 result)</td></tr>
269
270<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the joint anchor point, in world coordinates.  <a href="#g879999d011f82c73acf94029132cc198"></a><br></td></tr>
271<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga67cde755a0c9b699859ead5b5c81d26"></a><!-- doxytag: member="joints::dJointGetHinge2Anchor2" ref="ga67cde755a0c9b699859ead5b5c81d26" args="(dJointID, dVector3 result)" -->
272ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga67cde755a0c9b699859ead5b5c81d26">dJointGetHinge2Anchor2</a> (dJointID, dVector3 result)</td></tr>
273
274<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the joint anchor point, in world coordinates. This returns the point on body 2. If the joint is perfectly satisfied, this will return the same value as dJointGetHinge2Anchor. If not, this value will be slightly different. This can be used, for example, to see how far the joint has come apart. <br></td></tr>
275<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5d3e60c78ed85e8086dd60b13c3054f5"></a><!-- doxytag: member="joints::dJointGetHinge2Axis1" ref="g5d3e60c78ed85e8086dd60b13c3054f5" args="(dJointID, dVector3 result)" -->
276ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g5d3e60c78ed85e8086dd60b13c3054f5">dJointGetHinge2Axis1</a> (dJointID, dVector3 result)</td></tr>
277
278<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get joint axis. <br></td></tr>
279<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9459009e9370ea1a1e4de10f60053c87"></a><!-- doxytag: member="joints::dJointGetHinge2Axis2" ref="g9459009e9370ea1a1e4de10f60053c87" args="(dJointID, dVector3 result)" -->
280ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g9459009e9370ea1a1e4de10f60053c87">dJointGetHinge2Axis2</a> (dJointID, dVector3 result)</td></tr>
281
282<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get joint axis. <br></td></tr>
283<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9fe8b60ba59aa9451e5758491e34045a"></a><!-- doxytag: member="joints::dJointGetHinge2Param" ref="g9fe8b60ba59aa9451e5758491e34045a" args="(dJointID, int parameter)" -->
284ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g9fe8b60ba59aa9451e5758491e34045a">dJointGetHinge2Param</a> (dJointID, int parameter)</td></tr>
285
286<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
287<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g430ed7cafe907e88929b28fdb17533c0"></a><!-- doxytag: member="joints::dJointGetHinge2Angle1" ref="g430ed7cafe907e88929b28fdb17533c0" args="(dJointID)" -->
288ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g430ed7cafe907e88929b28fdb17533c0">dJointGetHinge2Angle1</a> (dJointID)</td></tr>
289
290<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get angle. <br></td></tr>
291<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g61881501e905ec1072aba05464fe44fb"></a><!-- doxytag: member="joints::dJointGetHinge2Angle1Rate" ref="g61881501e905ec1072aba05464fe44fb" args="(dJointID)" -->
292ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g61881501e905ec1072aba05464fe44fb">dJointGetHinge2Angle1Rate</a> (dJointID)</td></tr>
293
294<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get time derivative of angle. <br></td></tr>
295<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g028c47d8ff409f6856492d9eb0367c8a"></a><!-- doxytag: member="joints::dJointGetHinge2Angle2Rate" ref="g028c47d8ff409f6856492d9eb0367c8a" args="(dJointID)" -->
296ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g028c47d8ff409f6856492d9eb0367c8a">dJointGetHinge2Angle2Rate</a> (dJointID)</td></tr>
297
298<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get time derivative of angle. <br></td></tr>
299<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga768432c561cb76ba2490913f42d1aaf">dJointGetUniversalAnchor</a> (dJointID, dVector3 result)</td></tr>
300
301<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the joint anchor point, in world coordinates.  <a href="#ga768432c561cb76ba2490913f42d1aaf"></a><br></td></tr>
302<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g00d5018903a90d75c324c4f870b0e7ea">dJointGetUniversalAnchor2</a> (dJointID, dVector3 result)</td></tr>
303
304<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the joint anchor point, in world coordinates.  <a href="#g00d5018903a90d75c324c4f870b0e7ea"></a><br></td></tr>
305<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="geaa8e546d93c304755a86ad3fa6d2abe"></a><!-- doxytag: member="joints::dJointGetUniversalAxis1" ref="geaa8e546d93c304755a86ad3fa6d2abe" args="(dJointID, dVector3 result)" -->
306ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#geaa8e546d93c304755a86ad3fa6d2abe">dJointGetUniversalAxis1</a> (dJointID, dVector3 result)</td></tr>
307
308<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get axis. <br></td></tr>
309<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g13c01cbc9c5e918740bac0540f6473b3"></a><!-- doxytag: member="joints::dJointGetUniversalAxis2" ref="g13c01cbc9c5e918740bac0540f6473b3" args="(dJointID, dVector3 result)" -->
310ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g13c01cbc9c5e918740bac0540f6473b3">dJointGetUniversalAxis2</a> (dJointID, dVector3 result)</td></tr>
311
312<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get axis. <br></td></tr>
313<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf96e70e676058b7eb385f5810fec641a"></a><!-- doxytag: member="joints::dJointGetUniversalParam" ref="gf96e70e676058b7eb385f5810fec641a" args="(dJointID, int parameter)" -->
314ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gf96e70e676058b7eb385f5810fec641a">dJointGetUniversalParam</a> (dJointID, int parameter)</td></tr>
315
316<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
317<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g3c0fafbd1ccd8e450c01012ce600f6ab">dJointGetUniversalAngles</a> (dJointID, dReal *angle1, dReal *angle2)</td></tr>
318
319<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get both angles at the same time.  <a href="#g3c0fafbd1ccd8e450c01012ce600f6ab"></a><br></td></tr>
320<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3a08e2fed2e88eb0c964a33fb8c0c61f"></a><!-- doxytag: member="joints::dJointGetUniversalAngle1" ref="g3a08e2fed2e88eb0c964a33fb8c0c61f" args="(dJointID)" -->
321ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g3a08e2fed2e88eb0c964a33fb8c0c61f">dJointGetUniversalAngle1</a> (dJointID)</td></tr>
322
323<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get angle. <br></td></tr>
324<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4026a7331d7956eef31e72e20e0c703b"></a><!-- doxytag: member="joints::dJointGetUniversalAngle2" ref="g4026a7331d7956eef31e72e20e0c703b" args="(dJointID)" -->
325ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g4026a7331d7956eef31e72e20e0c703b">dJointGetUniversalAngle2</a> (dJointID)</td></tr>
326
327<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get angle. <br></td></tr>
328<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1f8ff99b6c33d3da2004a8846112427c"></a><!-- doxytag: member="joints::dJointGetUniversalAngle1Rate" ref="g1f8ff99b6c33d3da2004a8846112427c" args="(dJointID)" -->
329ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g1f8ff99b6c33d3da2004a8846112427c">dJointGetUniversalAngle1Rate</a> (dJointID)</td></tr>
330
331<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get time derivative of angle. <br></td></tr>
332<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g94fb28ecb65cb0711b555558c22396cf"></a><!-- doxytag: member="joints::dJointGetUniversalAngle2Rate" ref="g94fb28ecb65cb0711b555558c22396cf" args="(dJointID)" -->
333ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g94fb28ecb65cb0711b555558c22396cf">dJointGetUniversalAngle2Rate</a> (dJointID)</td></tr>
334
335<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get time derivative of angle. <br></td></tr>
336<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g88b176c70948c3f96e5c9173904b04fe">dJointGetPRAnchor</a> (dJointID, dVector3 result)</td></tr>
337
338<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the joint anchor point, in world coordinates.  <a href="#g88b176c70948c3f96e5c9173904b04fe"></a><br></td></tr>
339<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gd8b95871e93525f44badcdaf8e521da7">dJointGetPRPosition</a> (dJointID)</td></tr>
340
341<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the PR linear position (i.e. the prismatic's extension).  <a href="#gd8b95871e93525f44badcdaf8e521da7"></a><br></td></tr>
342<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc3a434069c8bf31ae5140e2bff3bbb26"></a><!-- doxytag: member="joints::dJointGetPRPositionRate" ref="gc3a434069c8bf31ae5140e2bff3bbb26" args="(dJointID)" -->
343ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gc3a434069c8bf31ae5140e2bff3bbb26">dJointGetPRPositionRate</a> (dJointID)</td></tr>
344
345<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the PR linear position's time derivative. <br></td></tr>
346<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g826424aac5023739bb13426df672ab32"></a><!-- doxytag: member="joints::dJointGetPRAxis1" ref="g826424aac5023739bb13426df672ab32" args="(dJointID, dVector3 result)" -->
347ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g826424aac5023739bb13426df672ab32">dJointGetPRAxis1</a> (dJointID, dVector3 result)</td></tr>
348
349<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the prismatic axis. <br></td></tr>
350<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5f175ed66c5df1119a251fad8a51059d"></a><!-- doxytag: member="joints::dJointGetPRAxis2" ref="g5f175ed66c5df1119a251fad8a51059d" args="(dJointID, dVector3 result)" -->
351ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g5f175ed66c5df1119a251fad8a51059d">dJointGetPRAxis2</a> (dJointID, dVector3 result)</td></tr>
352
353<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the Rotoide axis. <br></td></tr>
354<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g968b868bd1598b24a3101a04320206c6"></a><!-- doxytag: member="joints::dJointGetPRParam" ref="g968b868bd1598b24a3101a04320206c6" args="(dJointID, int parameter)" -->
355ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g968b868bd1598b24a3101a04320206c6">dJointGetPRParam</a> (dJointID, int parameter)</td></tr>
356
357<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
358<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g35f0392af69ece0d0c3ef7ed88b532bf">dJointGetAMotorNumAxes</a> (dJointID)</td></tr>
359
360<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of angular axes that will be controlled by the AMotor.  <a href="#g35f0392af69ece0d0c3ef7ed88b532bf"></a><br></td></tr>
361<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gef1af77cc19d81b24ad00025f3c9d5ec">dJointGetAMotorAxis</a> (dJointID, int anum, dVector3 result)</td></tr>
362
363<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the AMotor axes.  <a href="#gef1af77cc19d81b24ad00025f3c9d5ec"></a><br></td></tr>
364<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g1887538374f044e22f9742650d14ae69">dJointGetAMotorAxisRel</a> (dJointID, int anum)</td></tr>
365
366<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get axis.  <a href="#g1887538374f044e22f9742650d14ae69"></a><br></td></tr>
367<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g3634444b00ac33a5f34a7af4fffda8b2">dJointGetAMotorAngle</a> (dJointID, int anum)</td></tr>
368
369<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current angle for axis.  <a href="#g3634444b00ac33a5f34a7af4fffda8b2"></a><br></td></tr>
370<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ga65abc36177390330037299b689b70c7">dJointGetAMotorAngleRate</a> (dJointID, int anum)</td></tr>
371
372<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current angle rate for axis anum.  <a href="#ga65abc36177390330037299b689b70c7"></a><br></td></tr>
373<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfc4cd1046089baa4309d30ae7832d289"></a><!-- doxytag: member="joints::dJointGetAMotorParam" ref="gfc4cd1046089baa4309d30ae7832d289" args="(dJointID, int parameter)" -->
374ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gfc4cd1046089baa4309d30ae7832d289">dJointGetAMotorParam</a> (dJointID, int parameter)</td></tr>
375
376<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
377<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gf2430c2062414bc28660bdc06a0d72d5">dJointGetAMotorMode</a> (dJointID)</td></tr>
378
379<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the angular motor mode.  <a href="#gf2430c2062414bc28660bdc06a0d72d5"></a><br></td></tr>
380<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6d7557b5e94e0ee37561cadc5bf85cb7"></a><!-- doxytag: member="joints::dJointGetLMotorNumAxes" ref="g6d7557b5e94e0ee37561cadc5bf85cb7" args="(dJointID)" -->
381ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g6d7557b5e94e0ee37561cadc5bf85cb7">dJointGetLMotorNumAxes</a> (dJointID)</td></tr>
382
383<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get nr of axes. <br></td></tr>
384<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4ef7e0ca633583e82d90679c8eb6d5c3"></a><!-- doxytag: member="joints::dJointGetLMotorAxis" ref="g4ef7e0ca633583e82d90679c8eb6d5c3" args="(dJointID, int anum, dVector3 result)" -->
385ODE_API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g4ef7e0ca633583e82d90679c8eb6d5c3">dJointGetLMotorAxis</a> (dJointID, int anum, dVector3 result)</td></tr>
386
387<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get axis. <br></td></tr>
388<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcbc48fd61857e3843923166abf81a7a0"></a><!-- doxytag: member="joints::dJointGetLMotorParam" ref="gcbc48fd61857e3843923166abf81a7a0" args="(dJointID, int parameter)" -->
389ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gcbc48fd61857e3843923166abf81a7a0">dJointGetLMotorParam</a> (dJointID, int parameter)</td></tr>
390
391<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
392<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge433a5eac5f8600d8e6325666c2e12c2"></a><!-- doxytag: member="joints::dJointGetFixedParam" ref="ge433a5eac5f8600d8e6325666c2e12c2" args="(dJointID, int parameter)" -->
393ODE_API dReal&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#ge433a5eac5f8600d8e6325666c2e12c2">dJointGetFixedParam</a> (dJointID, int parameter)</td></tr>
394
395<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get joint parameter <br></td></tr>
396<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4f5e75d2e10f4392d5046ef1ab119da2"></a><!-- doxytag: member="joints::dConnectingJoint" ref="g4f5e75d2e10f4392d5046ef1ab119da2" args="(dBodyID, dBodyID)" -->
397ODE_API dJointID&nbsp;</td><td class="memItemRight" valign="bottom"><b>dConnectingJoint</b> (dBodyID, dBodyID)</td></tr>
398
399<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gabe5f454e7679bb24d0037f1502861a5"></a><!-- doxytag: member="joints::dConnectingJointList" ref="gabe5f454e7679bb24d0037f1502861a5" args="(dBodyID, dBodyID, dJointID *)" -->
400ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><b>dConnectingJointList</b> (dBodyID, dBodyID, dJointID *)</td></tr>
401
402<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#g68eb2f4daea03713db4d8b4daca663ae">dAreConnected</a> (dBodyID, dBodyID)</td></tr>
403
404<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility function.  <a href="#g68eb2f4daea03713db4d8b4daca663ae"></a><br></td></tr>
405<tr><td class="memItemLeft" nowrap align="right" valign="top">ODE_API int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joints.html#gc1eafde1fde036633136be6fd254ca5d">dAreConnectedExcluding</a> (dBodyID body1, dBodyID body2, int joint_type)</td></tr>
406
407<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Utility function.  <a href="#gc1eafde1fde036633136be6fd254ca5d"></a><br></td></tr>
408</table>
409<hr><a name="_details"></a><h2>Detailed Description</h2>
410In real life a joint is something like a hinge, that is used to connect two objects. In ODE a joint is very similar: It is a relationship that is enforced between two bodies so that they can only have certain positions and orientations relative to each other. This relationship is called a constraint -- the words joint and constraint are often used interchangeably.<p>
411A joint has a set of parameters that can be set. These include:<p>
412<ul>
413<li>dParamLoStop Low stop angle or position. Setting this to -dInfinity (the default value) turns off the low stop. For rotational joints, this stop must be greater than -pi to be effective. </li>
414<li>dParamHiStop High stop angle or position. Setting this to dInfinity (the default value) turns off the high stop. For rotational joints, this stop must be less than pi to be effective. If the high stop is less than the low stop then both stops will be ineffective. </li>
415<li>dParamVel Desired motor velocity (this will be an angular or linear velocity). </li>
416<li>dParamFMax The maximum force or torque that the motor will use to achieve the desired velocity. This must always be greater than or equal to zero. Setting this to zero (the default value) turns off the motor. </li>
417<li>dParamFudgeFactor The current joint stop/motor implementation has a small problem: when the joint is at one stop and the motor is set to move it away from the stop, too much force may be applied for one time step, causing a ``jumping'' motion. This fudge factor is used to scale this excess force. It should have a value between zero and one (the default value). If the jumping motion is too visible in a joint, the value can be reduced. Making this value too small can prevent the motor from being able to move the joint away from a stop. </li>
418<li>dParamBounce The bouncyness of the stops. This is a restitution parameter in the range 0..1. 0 means the stops are not bouncy at all, 1 means maximum bouncyness. </li>
419<li>dParamCFM The constraint force mixing (CFM) value used when not at a stop. </li>
420<li>dParamStopERP The error reduction parameter (ERP) used by the stops. </li>
421<li>dParamStopCFM The constraint force mixing (CFM) value used by the stops. Together with the ERP value this can be used to get spongy or soft stops. Note that this is intended for unpowered joints, it does not really work as expected when a powered joint reaches its limit. </li>
422<li>dParamSuspensionERP Suspension error reduction parameter (ERP). Currently this is only implemented on the hinge-2 joint. </li>
423<li>dParamSuspensionCFM Suspension constraint force mixing (CFM) value. Currently this is only implemented on the hinge-2 joint.</li>
424</ul>
425If a particular parameter is not implemented by a given joint, setting it will have no effect. These parameter names can be optionally followed by a digit (2 or 3) to indicate the second or third set of parameters, e.g. for the second axis in a hinge-2 joint, or the third axis in an AMotor joint. <hr><h2>Function Documentation</h2>
426<a class="anchor" name="g68eb2f4daea03713db4d8b4daca663ae"></a><!-- doxytag: member="objects.h::dAreConnected" ref="g68eb2f4daea03713db4d8b4daca663ae" args="(dBodyID, dBodyID)" -->
427<div class="memitem">
428<div class="memproto">
429      <table class="memname">
430        <tr>
431          <td class="memname">ODE_API int dAreConnected           </td>
432          <td>(</td>
433          <td class="paramtype">dBodyID&nbsp;</td>
434          <td class="paramname">, </td>
435        </tr>
436        <tr>
437          <td class="paramkey"></td>
438          <td></td>
439          <td class="paramtype">dBodyID&nbsp;</td>
440          <td class="paramname"></td><td>&nbsp;</td>
441        </tr>
442        <tr>
443          <td></td>
444          <td>)</td>
445          <td></td><td></td><td width="100%"></td>
446        </tr>
447      </table>
448</div>
449<div class="memdoc">
450
451<p>
452Utility function.
453<p>
454<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the two bodies are connected together by a joint, otherwise return 0. </dd></dl>
455
456</div>
457</div><p>
458<a class="anchor" name="gc1eafde1fde036633136be6fd254ca5d"></a><!-- doxytag: member="objects.h::dAreConnectedExcluding" ref="gc1eafde1fde036633136be6fd254ca5d" args="(dBodyID body1, dBodyID body2, int joint_type)" -->
459<div class="memitem">
460<div class="memproto">
461      <table class="memname">
462        <tr>
463          <td class="memname">ODE_API int dAreConnectedExcluding           </td>
464          <td>(</td>
465          <td class="paramtype">dBodyID&nbsp;</td>
466          <td class="paramname"> <em>body1</em>, </td>
467        </tr>
468        <tr>
469          <td class="paramkey"></td>
470          <td></td>
471          <td class="paramtype">dBodyID&nbsp;</td>
472          <td class="paramname"> <em>body2</em>, </td>
473        </tr>
474        <tr>
475          <td class="paramkey"></td>
476          <td></td>
477          <td class="paramtype">int&nbsp;</td>
478          <td class="paramname"> <em>joint_type</em></td><td>&nbsp;</td>
479        </tr>
480        <tr>
481          <td></td>
482          <td>)</td>
483          <td></td><td></td><td width="100%"></td>
484        </tr>
485      </table>
486</div>
487<div class="memdoc">
488
489<p>
490Utility function.
491<p>
492<dl class="return" compact><dt><b>Returns:</b></dt><dd>1 if the two bodies are connected together by a joint that does not have type <ul>
493<li>{joint_type}, otherwise return 0. </li>
494</ul>
495</dd></dl>
496<dl compact><dt><b>Parameters:</b></dt><dd>
497  <table border="0" cellspacing="2" cellpadding="0">
498    <tr><td valign="top"></td><td valign="top"><em>body1</em>&nbsp;</td><td>A body to check. </td></tr>
499    <tr><td valign="top"></td><td valign="top"><em>body2</em>&nbsp;</td><td>A body to check. </td></tr>
500    <tr><td valign="top"></td><td valign="top"><em>joint_type</em>&nbsp;</td><td>is a dJointTypeXXX constant. This is useful for deciding whether to add contact joints between two bodies: if they are already connected by non-contact joints then it may not be appropriate to add contacts, however it is okay to add more contact between- bodies that already have contacts. </td></tr>
501  </table>
502</dl>
503
504</div>
505</div><p>
506<a class="anchor" name="g69d13d54516716020d2adb841699b77b"></a><!-- doxytag: member="objects.h::dJointAddAMotorTorques" ref="g69d13d54516716020d2adb841699b77b" args="(dJointID, dReal torque1, dReal torque2, dReal torque3)" -->
507<div class="memitem">
508<div class="memproto">
509      <table class="memname">
510        <tr>
511          <td class="memname">ODE_API void dJointAddAMotorTorques           </td>
512          <td>(</td>
513          <td class="paramtype">dJointID&nbsp;</td>
514          <td class="paramname">, </td>
515        </tr>
516        <tr>
517          <td class="paramkey"></td>
518          <td></td>
519          <td class="paramtype">dReal&nbsp;</td>
520          <td class="paramname"> <em>torque1</em>, </td>
521        </tr>
522        <tr>
523          <td class="paramkey"></td>
524          <td></td>
525          <td class="paramtype">dReal&nbsp;</td>
526          <td class="paramname"> <em>torque2</em>, </td>
527        </tr>
528        <tr>
529          <td class="paramkey"></td>
530          <td></td>
531          <td class="paramtype">dReal&nbsp;</td>
532          <td class="paramname"> <em>torque3</em></td><td>&nbsp;</td>
533        </tr>
534        <tr>
535          <td></td>
536          <td>)</td>
537          <td></td><td></td><td width="100%"></td>
538        </tr>
539      </table>
540</div>
541<div class="memdoc">
542
543<p>
544Applies torque0 about the AMotor's axis 0, torque1 about the AMotor's axis 1, and torque2 about the AMotor's axis 2.
545<p>
546<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If the motor has fewer than three axes, the higher torques are ignored. This function is just a wrapper for <a class="el" href="group__bodies.html#g8378560dd168ee8d7a4b74e3de510ebc" title="Add torque at centre of mass of body in absolute coordinates.">dBodyAddTorque()</a>. </dd></dl>
547
548</div>
549</div><p>
550<a class="anchor" name="ga5ba1541d092f28c93b1bdc3bfb1b69f"></a><!-- doxytag: member="objects.h::dJointAddHinge2Torques" ref="ga5ba1541d092f28c93b1bdc3bfb1b69f" args="(dJointID joint, dReal torque1, dReal torque2)" -->
551<div class="memitem">
552<div class="memproto">
553      <table class="memname">
554        <tr>
555          <td class="memname">ODE_API void dJointAddHinge2Torques           </td>
556          <td>(</td>
557          <td class="paramtype">dJointID&nbsp;</td>
558          <td class="paramname"> <em>joint</em>, </td>
559        </tr>
560        <tr>
561          <td class="paramkey"></td>
562          <td></td>
563          <td class="paramtype">dReal&nbsp;</td>
564          <td class="paramname"> <em>torque1</em>, </td>
565        </tr>
566        <tr>
567          <td class="paramkey"></td>
568          <td></td>
569          <td class="paramtype">dReal&nbsp;</td>
570          <td class="paramname"> <em>torque2</em></td><td>&nbsp;</td>
571        </tr>
572        <tr>
573          <td></td>
574          <td>)</td>
575          <td></td><td></td><td width="100%"></td>
576        </tr>
577      </table>
578</div>
579<div class="memdoc">
580
581<p>
582Applies torque1 about the hinge2's axis 1, torque2 about the hinge2's axis 2.
583<p>
584<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>This function is just a wrapper for <a class="el" href="group__bodies.html#g8378560dd168ee8d7a4b74e3de510ebc" title="Add torque at centre of mass of body in absolute coordinates.">dBodyAddTorque()</a>. </dd></dl>
585
586</div>
587</div><p>
588<a class="anchor" name="ga1725abe170f80b0731321ed38785019"></a><!-- doxytag: member="objects.h::dJointAddHingeTorque" ref="ga1725abe170f80b0731321ed38785019" args="(dJointID joint, dReal torque)" -->
589<div class="memitem">
590<div class="memproto">
591      <table class="memname">
592        <tr>
593          <td class="memname">ODE_API void dJointAddHingeTorque           </td>
594          <td>(</td>
595          <td class="paramtype">dJointID&nbsp;</td>
596          <td class="paramname"> <em>joint</em>, </td>
597        </tr>
598        <tr>
599          <td class="paramkey"></td>
600          <td></td>
601          <td class="paramtype">dReal&nbsp;</td>
602          <td class="paramname"> <em>torque</em></td><td>&nbsp;</td>
603        </tr>
604        <tr>
605          <td></td>
606          <td>)</td>
607          <td></td><td></td><td width="100%"></td>
608        </tr>
609      </table>
610</div>
611<div class="memdoc">
612
613<p>
614Applies the torque about the hinge axis.
615<p>
616That is, it applies a torque with specified magnitude in the direction of the hinge axis, to body 1, and with the same magnitude but in opposite direction to body 2. This function is just a wrapper for <a class="el" href="group__bodies.html#g8378560dd168ee8d7a4b74e3de510ebc" title="Add torque at centre of mass of body in absolute coordinates.">dBodyAddTorque()</a>}
617</div>
618</div><p>
619<a class="anchor" name="ge675b0e0e332ddcd907ac9d1461b1961"></a><!-- doxytag: member="objects.h::dJointAddPRTorque" ref="ge675b0e0e332ddcd907ac9d1461b1961" args="(dJointID j, dReal torque)" -->
620<div class="memitem">
621<div class="memproto">
622      <table class="memname">
623        <tr>
624          <td class="memname">ODE_API void dJointAddPRTorque           </td>
625          <td>(</td>
626          <td class="paramtype">dJointID&nbsp;</td>
627          <td class="paramname"> <em>j</em>, </td>
628        </tr>
629        <tr>
630          <td class="paramkey"></td>
631          <td></td>
632          <td class="paramtype">dReal&nbsp;</td>
633          <td class="paramname"> <em>torque</em></td><td>&nbsp;</td>
634        </tr>
635        <tr>
636          <td></td>
637          <td>)</td>
638          <td></td><td></td><td width="100%"></td>
639        </tr>
640      </table>
641</div>
642<div class="memdoc">
643
644<p>
645Applies the torque about the rotoide axis of the PR joint.
646<p>
647That is, it applies a torque with specified magnitude in the direction of the rotoide axis, to body 1, and with the same magnitude but in opposite direction to body 2. This function is just a wrapper for <a class="el" href="group__bodies.html#g8378560dd168ee8d7a4b74e3de510ebc" title="Add torque at centre of mass of body in absolute coordinates.">dBodyAddTorque()</a>}
648</div>
649</div><p>
650<a class="anchor" name="g8b0e018cc3df6ea5ddb42320913455e7"></a><!-- doxytag: member="objects.h::dJointAddSliderForce" ref="g8b0e018cc3df6ea5ddb42320913455e7" args="(dJointID joint, dReal force)" -->
651<div class="memitem">
652<div class="memproto">
653      <table class="memname">
654        <tr>
655          <td class="memname">ODE_API void dJointAddSliderForce           </td>
656          <td>(</td>
657          <td class="paramtype">dJointID&nbsp;</td>
658          <td class="paramname"> <em>joint</em>, </td>
659        </tr>
660        <tr>
661          <td class="paramkey"></td>
662          <td></td>
663          <td class="paramtype">dReal&nbsp;</td>
664          <td class="paramname"> <em>force</em></td><td>&nbsp;</td>
665        </tr>
666        <tr>
667          <td></td>
668          <td>)</td>
669          <td></td><td></td><td width="100%"></td>
670        </tr>
671      </table>
672</div>
673<div class="memdoc">
674
675<p>
676Applies the given force in the slider's direction.
677<p>
678That is, it applies a force with specified magnitude, in the direction of slider's axis, to body1, and with the same magnitude but opposite direction to body2. This function is just a wrapper for <a class="el" href="group__bodies.html#g1e1352dc350ad42bff5818f2200ba792" title="Add force at centre of mass of body in absolute coordinates.">dBodyAddForce()</a>.
679</div>
680</div><p>
681<a class="anchor" name="g36607569e2ee26f39d3d42cba2397898"></a><!-- doxytag: member="objects.h::dJointAddUniversalTorques" ref="g36607569e2ee26f39d3d42cba2397898" args="(dJointID joint, dReal torque1, dReal torque2)" -->
682<div class="memitem">
683<div class="memproto">
684      <table class="memname">
685        <tr>
686          <td class="memname">ODE_API void dJointAddUniversalTorques           </td>
687          <td>(</td>
688          <td class="paramtype">dJointID&nbsp;</td>
689          <td class="paramname"> <em>joint</em>, </td>
690        </tr>
691        <tr>
692          <td class="paramkey"></td>
693          <td></td>
694          <td class="paramtype">dReal&nbsp;</td>
695          <td class="paramname"> <em>torque1</em>, </td>
696        </tr>
697        <tr>
698          <td class="paramkey"></td>
699          <td></td>
700          <td class="paramtype">dReal&nbsp;</td>
701          <td class="paramname"> <em>torque2</em></td><td>&nbsp;</td>
702        </tr>
703        <tr>
704          <td></td>
705          <td>)</td>
706          <td></td><td></td><td width="100%"></td>
707        </tr>
708      </table>
709</div>
710<div class="memdoc">
711
712<p>
713Applies torque1 about the universal's axis 1, torque2 about the universal's axis 2.
714<p>
715<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>This function is just a wrapper for <a class="el" href="group__bodies.html#g8378560dd168ee8d7a4b74e3de510ebc" title="Add torque at centre of mass of body in absolute coordinates.">dBodyAddTorque()</a>. </dd></dl>
716
717</div>
718</div><p>
719<a class="anchor" name="g8f1c9b1302c799a1b87bc29b76d0dcec"></a><!-- doxytag: member="objects.h::dJointAttach" ref="g8f1c9b1302c799a1b87bc29b76d0dcec" args="(dJointID, dBodyID body1, dBodyID body2)" -->
720<div class="memitem">
721<div class="memproto">
722      <table class="memname">
723        <tr>
724          <td class="memname">ODE_API void dJointAttach           </td>
725          <td>(</td>
726          <td class="paramtype">dJointID&nbsp;</td>
727          <td class="paramname">, </td>
728        </tr>
729        <tr>
730          <td class="paramkey"></td>
731          <td></td>
732          <td class="paramtype">dBodyID&nbsp;</td>
733          <td class="paramname"> <em>body1</em>, </td>
734        </tr>
735        <tr>
736          <td class="paramkey"></td>
737          <td></td>
738          <td class="paramtype">dBodyID&nbsp;</td>
739          <td class="paramname"> <em>body2</em></td><td>&nbsp;</td>
740        </tr>
741        <tr>
742          <td></td>
743          <td>)</td>
744          <td></td><td></td><td width="100%"></td>
745        </tr>
746      </table>
747</div>
748<div class="memdoc">
749
750<p>
751Attach the joint to some new bodies.
752<p>
753If the joint is already attached, it will be detached from the old bodies first. To attach this joint to only one body, set body1 or body2 to zero - a zero body refers to the static environment. Setting both bodies to zero puts the joint into "limbo", i.e. it will have no effect on the simulation. <dl class="remark" compact><dt><b>Remarks:</b></dt><dd>Some joints, like hinge-2 need to be attached to two bodies to work. </dd></dl>
754
755</div>
756</div><p>
757<a class="anchor" name="gf23195ce77e12031393e591abd0e28e6"></a><!-- doxytag: member="objects.h::dJointCreateAMotor" ref="gf23195ce77e12031393e591abd0e28e6" args="(dWorldID, dJointGroupID)" -->
758<div class="memitem">
759<div class="memproto">
760      <table class="memname">
761        <tr>
762          <td class="memname">ODE_API dJointID dJointCreateAMotor           </td>
763          <td>(</td>
764          <td class="paramtype">dWorldID&nbsp;</td>
765          <td class="paramname">, </td>
766        </tr>
767        <tr>
768          <td class="paramkey"></td>
769          <td></td>
770          <td class="paramtype">dJointGroupID&nbsp;</td>
771          <td class="paramname"></td><td>&nbsp;</td>
772        </tr>
773        <tr>
774          <td></td>
775          <td>)</td>
776          <td></td><td></td><td width="100%"></td>
777        </tr>
778      </table>
779</div>
780<div class="memdoc">
781
782<p>
783Create a new joint of the A-motor type.
784<p>
785<dl compact><dt><b>Parameters:</b></dt><dd>
786  <table border="0" cellspacing="2" cellpadding="0">
787    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
788  </table>
789</dl>
790
791</div>
792</div><p>
793<a class="anchor" name="g2d23509f8d6c6066b361af4cf14166f7"></a><!-- doxytag: member="objects.h::dJointCreateBall" ref="g2d23509f8d6c6066b361af4cf14166f7" args="(dWorldID, dJointGroupID)" -->
794<div class="memitem">
795<div class="memproto">
796      <table class="memname">
797        <tr>
798          <td class="memname">ODE_API dJointID dJointCreateBall           </td>
799          <td>(</td>
800          <td class="paramtype">dWorldID&nbsp;</td>
801          <td class="paramname">, </td>
802        </tr>
803        <tr>
804          <td class="paramkey"></td>
805          <td></td>
806          <td class="paramtype">dJointGroupID&nbsp;</td>
807          <td class="paramname"></td><td>&nbsp;</td>
808        </tr>
809        <tr>
810          <td></td>
811          <td>)</td>
812          <td></td><td></td><td width="100%"></td>
813        </tr>
814      </table>
815</div>
816<div class="memdoc">
817
818<p>
819Create a new joint of the ball type.
820<p>
821<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The joint is initially in "limbo" (i.e. it has no effect on the simulation) because it does not connect to any bodies. </dd></dl>
822<dl compact><dt><b>Parameters:</b></dt><dd>
823  <table border="0" cellspacing="2" cellpadding="0">
824    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
825  </table>
826</dl>
827
828</div>
829</div><p>
830<a class="anchor" name="gfa5e1543239ba44ecbdc178ebc7c3cc4"></a><!-- doxytag: member="objects.h::dJointCreateContact" ref="gfa5e1543239ba44ecbdc178ebc7c3cc4" args="(dWorldID, dJointGroupID, const dContact *)" -->
831<div class="memitem">
832<div class="memproto">
833      <table class="memname">
834        <tr>
835          <td class="memname">ODE_API dJointID dJointCreateContact           </td>
836          <td>(</td>
837          <td class="paramtype">dWorldID&nbsp;</td>
838          <td class="paramname">, </td>
839        </tr>
840        <tr>
841          <td class="paramkey"></td>
842          <td></td>
843          <td class="paramtype">dJointGroupID&nbsp;</td>
844          <td class="paramname">, </td>
845        </tr>
846        <tr>
847          <td class="paramkey"></td>
848          <td></td>
849          <td class="paramtype">const dContact *&nbsp;</td>
850          <td class="paramname"></td><td>&nbsp;</td>
851        </tr>
852        <tr>
853          <td></td>
854          <td>)</td>
855          <td></td><td></td><td width="100%"></td>
856        </tr>
857      </table>
858</div>
859<div class="memdoc">
860
861<p>
862Create a new joint of the contact type.
863<p>
864<dl compact><dt><b>Parameters:</b></dt><dd>
865  <table border="0" cellspacing="2" cellpadding="0">
866    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
867  </table>
868</dl>
869
870</div>
871</div><p>
872<a class="anchor" name="ge568995d03077e1acb13882a627dcf32"></a><!-- doxytag: member="objects.h::dJointCreateFixed" ref="ge568995d03077e1acb13882a627dcf32" args="(dWorldID, dJointGroupID)" -->
873<div class="memitem">
874<div class="memproto">
875      <table class="memname">
876        <tr>
877          <td class="memname">ODE_API dJointID dJointCreateFixed           </td>
878          <td>(</td>
879          <td class="paramtype">dWorldID&nbsp;</td>
880          <td class="paramname">, </td>
881        </tr>
882        <tr>
883          <td class="paramkey"></td>
884          <td></td>
885          <td class="paramtype">dJointGroupID&nbsp;</td>
886          <td class="paramname"></td><td>&nbsp;</td>
887        </tr>
888        <tr>
889          <td></td>
890          <td>)</td>
891          <td></td><td></td><td width="100%"></td>
892        </tr>
893      </table>
894</div>
895<div class="memdoc">
896
897<p>
898Create a new joint of the fixed type.
899<p>
900<dl compact><dt><b>Parameters:</b></dt><dd>
901  <table border="0" cellspacing="2" cellpadding="0">
902    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
903  </table>
904</dl>
905
906</div>
907</div><p>
908<a class="anchor" name="g2f18d431d48c905abc9d72ce011c00bd"></a><!-- doxytag: member="objects.h::dJointCreateHinge" ref="g2f18d431d48c905abc9d72ce011c00bd" args="(dWorldID, dJointGroupID)" -->
909<div class="memitem">
910<div class="memproto">
911      <table class="memname">
912        <tr>
913          <td class="memname">ODE_API dJointID dJointCreateHinge           </td>
914          <td>(</td>
915          <td class="paramtype">dWorldID&nbsp;</td>
916          <td class="paramname">, </td>
917        </tr>
918        <tr>
919          <td class="paramkey"></td>
920          <td></td>
921          <td class="paramtype">dJointGroupID&nbsp;</td>
922          <td class="paramname"></td><td>&nbsp;</td>
923        </tr>
924        <tr>
925          <td></td>
926          <td>)</td>
927          <td></td><td></td><td width="100%"></td>
928        </tr>
929      </table>
930</div>
931<div class="memdoc">
932
933<p>
934Create a new joint of the hinge type.
935<p>
936<dl compact><dt><b>Parameters:</b></dt><dd>
937  <table border="0" cellspacing="2" cellpadding="0">
938    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
939  </table>
940</dl>
941
942</div>
943</div><p>
944<a class="anchor" name="g6a6e32d35bdda9352d1be8d4df973f8f"></a><!-- doxytag: member="objects.h::dJointCreateHinge2" ref="g6a6e32d35bdda9352d1be8d4df973f8f" args="(dWorldID, dJointGroupID)" -->
945<div class="memitem">
946<div class="memproto">
947      <table class="memname">
948        <tr>
949          <td class="memname">ODE_API dJointID dJointCreateHinge2           </td>
950          <td>(</td>
951          <td class="paramtype">dWorldID&nbsp;</td>
952          <td class="paramname">, </td>
953        </tr>
954        <tr>
955          <td class="paramkey"></td>
956          <td></td>
957          <td class="paramtype">dJointGroupID&nbsp;</td>
958          <td class="paramname"></td><td>&nbsp;</td>
959        </tr>
960        <tr>
961          <td></td>
962          <td>)</td>
963          <td></td><td></td><td width="100%"></td>
964        </tr>
965      </table>
966</div>
967<div class="memdoc">
968
969<p>
970Create a new joint of the hinge2 type.
971<p>
972<dl compact><dt><b>Parameters:</b></dt><dd>
973  <table border="0" cellspacing="2" cellpadding="0">
974    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
975  </table>
976</dl>
977
978</div>
979</div><p>
980<a class="anchor" name="g21c8c99615269c5d9d3c57c674f6fd56"></a><!-- doxytag: member="objects.h::dJointCreateLMotor" ref="g21c8c99615269c5d9d3c57c674f6fd56" args="(dWorldID, dJointGroupID)" -->
981<div class="memitem">
982<div class="memproto">
983      <table class="memname">
984        <tr>
985          <td class="memname">ODE_API dJointID dJointCreateLMotor           </td>
986          <td>(</td>
987          <td class="paramtype">dWorldID&nbsp;</td>
988          <td class="paramname">, </td>
989        </tr>
990        <tr>
991          <td class="paramkey"></td>
992          <td></td>
993          <td class="paramtype">dJointGroupID&nbsp;</td>
994          <td class="paramname"></td><td>&nbsp;</td>
995        </tr>
996        <tr>
997          <td></td>
998          <td>)</td>
999          <td></td><td></td><td width="100%"></td>
1000        </tr>
1001      </table>
1002</div>
1003<div class="memdoc">
1004
1005<p>
1006Create a new joint of the L-motor type.
1007<p>
1008<dl compact><dt><b>Parameters:</b></dt><dd>
1009  <table border="0" cellspacing="2" cellpadding="0">
1010    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
1011  </table>
1012</dl>
1013
1014</div>
1015</div><p>
1016<a class="anchor" name="g7e68f39530acad9c0e7a38c8a3799b38"></a><!-- doxytag: member="objects.h::dJointCreatePlane2D" ref="g7e68f39530acad9c0e7a38c8a3799b38" args="(dWorldID, dJointGroupID)" -->
1017<div class="memitem">
1018<div class="memproto">
1019      <table class="memname">
1020        <tr>
1021          <td class="memname">ODE_API dJointID dJointCreatePlane2D           </td>
1022          <td>(</td>
1023          <td class="paramtype">dWorldID&nbsp;</td>
1024          <td class="paramname">, </td>
1025        </tr>
1026        <tr>
1027          <td class="paramkey"></td>
1028          <td></td>
1029          <td class="paramtype">dJointGroupID&nbsp;</td>
1030          <td class="paramname"></td><td>&nbsp;</td>
1031        </tr>
1032        <tr>
1033          <td></td>
1034          <td>)</td>
1035          <td></td><td></td><td width="100%"></td>
1036        </tr>
1037      </table>
1038</div>
1039<div class="memdoc">
1040
1041<p>
1042Create a new joint of the plane-2d type.
1043<p>
1044<dl compact><dt><b>Parameters:</b></dt><dd>
1045  <table border="0" cellspacing="2" cellpadding="0">
1046    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
1047  </table>
1048</dl>
1049
1050</div>
1051</div><p>
1052<a class="anchor" name="gdc867f10ba9931d191244fa879e43cb2"></a><!-- doxytag: member="objects.h::dJointCreatePR" ref="gdc867f10ba9931d191244fa879e43cb2" args="(dWorldID, dJointGroupID)" -->
1053<div class="memitem">
1054<div class="memproto">
1055      <table class="memname">
1056        <tr>
1057          <td class="memname">ODE_API dJointID dJointCreatePR           </td>
1058          <td>(</td>
1059          <td class="paramtype">dWorldID&nbsp;</td>
1060          <td class="paramname">, </td>
1061        </tr>
1062        <tr>
1063          <td class="paramkey"></td>
1064          <td></td>
1065          <td class="paramtype">dJointGroupID&nbsp;</td>
1066          <td class="paramname"></td><td>&nbsp;</td>
1067        </tr>
1068        <tr>
1069          <td></td>
1070          <td>)</td>
1071          <td></td><td></td><td width="100%"></td>
1072        </tr>
1073      </table>
1074</div>
1075<div class="memdoc">
1076
1077<p>
1078Create a new joint of the PR (Prismatic and Rotoide) type.
1079<p>
1080<dl compact><dt><b>Parameters:</b></dt><dd>
1081  <table border="0" cellspacing="2" cellpadding="0">
1082    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
1083  </table>
1084</dl>
1085
1086</div>
1087</div><p>
1088<a class="anchor" name="geccc4c67b2d409016685a6a9163be539"></a><!-- doxytag: member="objects.h::dJointCreateSlider" ref="geccc4c67b2d409016685a6a9163be539" args="(dWorldID, dJointGroupID)" -->
1089<div class="memitem">
1090<div class="memproto">
1091      <table class="memname">
1092        <tr>
1093          <td class="memname">ODE_API dJointID dJointCreateSlider           </td>
1094          <td>(</td>
1095          <td class="paramtype">dWorldID&nbsp;</td>
1096          <td class="paramname">, </td>
1097        </tr>
1098        <tr>
1099          <td class="paramkey"></td>
1100          <td></td>
1101          <td class="paramtype">dJointGroupID&nbsp;</td>
1102          <td class="paramname"></td><td>&nbsp;</td>
1103        </tr>
1104        <tr>
1105          <td></td>
1106          <td>)</td>
1107          <td></td><td></td><td width="100%"></td>
1108        </tr>
1109      </table>
1110</div>
1111<div class="memdoc">
1112
1113<p>
1114Create a new joint of the slider type.
1115<p>
1116<dl compact><dt><b>Parameters:</b></dt><dd>
1117  <table border="0" cellspacing="2" cellpadding="0">
1118    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
1119  </table>
1120</dl>
1121
1122</div>
1123</div><p>
1124<a class="anchor" name="g1cb2e7668242313b5d24acb5d43e5c62"></a><!-- doxytag: member="objects.h::dJointCreateUniversal" ref="g1cb2e7668242313b5d24acb5d43e5c62" args="(dWorldID, dJointGroupID)" -->
1125<div class="memitem">
1126<div class="memproto">
1127      <table class="memname">
1128        <tr>
1129          <td class="memname">ODE_API dJointID dJointCreateUniversal           </td>
1130          <td>(</td>
1131          <td class="paramtype">dWorldID&nbsp;</td>
1132          <td class="paramname">, </td>
1133        </tr>
1134        <tr>
1135          <td class="paramkey"></td>
1136          <td></td>
1137          <td class="paramtype">dJointGroupID&nbsp;</td>
1138          <td class="paramname"></td><td>&nbsp;</td>
1139        </tr>
1140        <tr>
1141          <td></td>
1142          <td>)</td>
1143          <td></td><td></td><td width="100%"></td>
1144        </tr>
1145      </table>
1146</div>
1147<div class="memdoc">
1148
1149<p>
1150Create a new joint of the universal type.
1151<p>
1152<dl compact><dt><b>Parameters:</b></dt><dd>
1153  <table border="0" cellspacing="2" cellpadding="0">
1154    <tr><td valign="top"></td><td valign="top"><em>dJointGroupID</em>&nbsp;</td><td>set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group. </td></tr>
1155  </table>
1156</dl>
1157
1158</div>
1159</div><p>
1160<a class="anchor" name="g2187ccbcf51c951f680eb6c9a210801a"></a><!-- doxytag: member="objects.h::dJointDestroy" ref="g2187ccbcf51c951f680eb6c9a210801a" args="(dJointID)" -->
1161<div class="memitem">
1162<div class="memproto">
1163      <table class="memname">
1164        <tr>
1165          <td class="memname">ODE_API void dJointDestroy           </td>
1166          <td>(</td>
1167          <td class="paramtype">dJointID&nbsp;</td>
1168          <td class="paramname">          </td>
1169          <td>&nbsp;)&nbsp;</td>
1170          <td width="100%"></td>
1171        </tr>
1172      </table>
1173</div>
1174<div class="memdoc">
1175
1176<p>
1177Destroy a joint.
1178<p>
1179disconnects it from its attached bodies and removing it from the world. However, if the joint is a member of a group then this function has no effect - to destroy that joint the group must be emptied or destroyed.
1180</div>
1181</div><p>
1182<a class="anchor" name="g3634444b00ac33a5f34a7af4fffda8b2"></a><!-- doxytag: member="objects.h::dJointGetAMotorAngle" ref="g3634444b00ac33a5f34a7af4fffda8b2" args="(dJointID, int anum)" -->
1183<div class="memitem">
1184<div class="memproto">
1185      <table class="memname">
1186        <tr>
1187          <td class="memname">ODE_API dReal dJointGetAMotorAngle           </td>
1188          <td>(</td>
1189          <td class="paramtype">dJointID&nbsp;</td>
1190          <td class="paramname">, </td>
1191        </tr>
1192        <tr>
1193          <td class="paramkey"></td>
1194          <td></td>
1195          <td class="paramtype">int&nbsp;</td>
1196          <td class="paramname"> <em>anum</em></td><td>&nbsp;</td>
1197        </tr>
1198        <tr>
1199          <td></td>
1200          <td>)</td>
1201          <td></td><td></td><td width="100%"></td>
1202        </tr>
1203      </table>
1204</div>
1205<div class="memdoc">
1206
1207<p>
1208Get the current angle for axis.
1209<p>
1210<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>In dAMotorUser mode this is simply the value that was set with <a class="el" href="group__joints.html#g17b2089e6512e22d71340befb40100d2" title="Tell the AMotor what the current angle is along axis anum.">dJointSetAMotorAngle()</a>. In dAMotorEuler mode this is the corresponding euler angle. </dd></dl>
1211
1212</div>
1213</div><p>
1214<a class="anchor" name="ga65abc36177390330037299b689b70c7"></a><!-- doxytag: member="objects.h::dJointGetAMotorAngleRate" ref="ga65abc36177390330037299b689b70c7" args="(dJointID, int anum)" -->
1215<div class="memitem">
1216<div class="memproto">
1217      <table class="memname">
1218        <tr>
1219          <td class="memname">ODE_API dReal dJointGetAMotorAngleRate           </td>
1220          <td>(</td>
1221          <td class="paramtype">dJointID&nbsp;</td>
1222          <td class="paramname">, </td>
1223        </tr>
1224        <tr>
1225          <td class="paramkey"></td>
1226          <td></td>
1227          <td class="paramtype">int&nbsp;</td>
1228          <td class="paramname"> <em>anum</em></td><td>&nbsp;</td>
1229        </tr>
1230        <tr>
1231          <td></td>
1232          <td>)</td>
1233          <td></td><td></td><td width="100%"></td>
1234        </tr>
1235      </table>
1236</div>
1237<div class="memdoc">
1238
1239<p>
1240Get the current angle rate for axis anum.
1241<p>
1242<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>In dAMotorUser mode this is always zero, as not enough information is available. In dAMotorEuler mode this is the corresponding euler angle rate. </dd></dl>
1243
1244</div>
1245</div><p>
1246<a class="anchor" name="gef1af77cc19d81b24ad00025f3c9d5ec"></a><!-- doxytag: member="objects.h::dJointGetAMotorAxis" ref="gef1af77cc19d81b24ad00025f3c9d5ec" args="(dJointID, int anum, dVector3 result)" -->
1247<div class="memitem">
1248<div class="memproto">
1249      <table class="memname">
1250        <tr>
1251          <td class="memname">ODE_API void dJointGetAMotorAxis           </td>
1252          <td>(</td>
1253          <td class="paramtype">dJointID&nbsp;</td>
1254          <td class="paramname">, </td>
1255        </tr>
1256        <tr>
1257          <td class="paramkey"></td>
1258          <td></td>
1259          <td class="paramtype">int&nbsp;</td>
1260          <td class="paramname"> <em>anum</em>, </td>
1261        </tr>
1262        <tr>
1263          <td class="paramkey"></td>
1264          <td></td>
1265          <td class="paramtype">dVector3&nbsp;</td>
1266          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1267        </tr>
1268        <tr>
1269          <td></td>
1270          <td>)</td>
1271          <td></td><td></td><td width="100%"></td>
1272        </tr>
1273      </table>
1274</div>
1275<div class="memdoc">
1276
1277<p>
1278Get the AMotor axes.
1279<p>
1280<dl compact><dt><b>Parameters:</b></dt><dd>
1281  <table border="0" cellspacing="2" cellpadding="0">
1282    <tr><td valign="top"></td><td valign="top"><em>anum</em>&nbsp;</td><td>selects the axis to change (0,1 or 2). </td></tr>
1283    <tr><td valign="top"></td><td valign="top"><em>rel</em>&nbsp;</td><td>Each axis can have one of three ``relative orientation'' modes. <ul>
1284<li>0: The axis is anchored to the global frame. </li>
1285<li>1: The axis is anchored to the first body. </li>
1286<li>2: The axis is anchored to the second body. </li>
1287</ul>
1288</td></tr>
1289  </table>
1290</dl>
1291
1292</div>
1293</div><p>
1294<a class="anchor" name="g1887538374f044e22f9742650d14ae69"></a><!-- doxytag: member="objects.h::dJointGetAMotorAxisRel" ref="g1887538374f044e22f9742650d14ae69" args="(dJointID, int anum)" -->
1295<div class="memitem">
1296<div class="memproto">
1297      <table class="memname">
1298        <tr>
1299          <td class="memname">ODE_API int dJointGetAMotorAxisRel           </td>
1300          <td>(</td>
1301          <td class="paramtype">dJointID&nbsp;</td>
1302          <td class="paramname">, </td>
1303        </tr>
1304        <tr>
1305          <td class="paramkey"></td>
1306          <td></td>
1307          <td class="paramtype">int&nbsp;</td>
1308          <td class="paramname"> <em>anum</em></td><td>&nbsp;</td>
1309        </tr>
1310        <tr>
1311          <td></td>
1312          <td>)</td>
1313          <td></td><td></td><td width="100%"></td>
1314        </tr>
1315      </table>
1316</div>
1317<div class="memdoc">
1318
1319<p>
1320Get axis.
1321<p>
1322<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The axis vector is always specified in global coordinates regardless of the setting of rel. There are two GetAMotorAxis functions, one to return the axis and one to return the relative mode.</dd></dl>
1323For dAMotorEuler mode: <ul>
1324<li>Only axes 0 and 2 need to be set. Axis 1 will be determined automatically at each time step. </li>
1325<li>Axes 0 and 2 must be perpendicular to each other. </li>
1326<li>Axis 0 must be anchored to the first body, axis 2 must be anchored to the second body. </li>
1327</ul>
1328
1329</div>
1330</div><p>
1331<a class="anchor" name="gf2430c2062414bc28660bdc06a0d72d5"></a><!-- doxytag: member="objects.h::dJointGetAMotorMode" ref="gf2430c2062414bc28660bdc06a0d72d5" args="(dJointID)" -->
1332<div class="memitem">
1333<div class="memproto">
1334      <table class="memname">
1335        <tr>
1336          <td class="memname">ODE_API int dJointGetAMotorMode           </td>
1337          <td>(</td>
1338          <td class="paramtype">dJointID&nbsp;</td>
1339          <td class="paramname">          </td>
1340          <td>&nbsp;)&nbsp;</td>
1341          <td width="100%"></td>
1342        </tr>
1343      </table>
1344</div>
1345<div class="memdoc">
1346
1347<p>
1348Get the angular motor mode.
1349<p>
1350<dl compact><dt><b>Parameters:</b></dt><dd>
1351  <table border="0" cellspacing="2" cellpadding="0">
1352    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>must be one of the following constants: <ul>
1353<li>dAMotorUser The AMotor axes and joint angle settings are entirely controlled by the user. This is the default mode. </li>
1354<li>dAMotorEuler Euler angles are automatically computed. The axis a1 is also automatically computed. The AMotor axes must be set correctly when in this mode, as described below. When this mode is initially set the current relative orientations of the bodies will correspond to all euler angles at zero. </li>
1355</ul>
1356</td></tr>
1357  </table>
1358</dl>
1359
1360</div>
1361</div><p>
1362<a class="anchor" name="g35f0392af69ece0d0c3ef7ed88b532bf"></a><!-- doxytag: member="objects.h::dJointGetAMotorNumAxes" ref="g35f0392af69ece0d0c3ef7ed88b532bf" args="(dJointID)" -->
1363<div class="memitem">
1364<div class="memproto">
1365      <table class="memname">
1366        <tr>
1367          <td class="memname">ODE_API int dJointGetAMotorNumAxes           </td>
1368          <td>(</td>
1369          <td class="paramtype">dJointID&nbsp;</td>
1370          <td class="paramname">          </td>
1371          <td>&nbsp;)&nbsp;</td>
1372          <td width="100%"></td>
1373        </tr>
1374      </table>
1375</div>
1376<div class="memdoc">
1377
1378<p>
1379Get the number of angular axes that will be controlled by the AMotor.
1380<p>
1381<dl compact><dt><b>Parameters:</b></dt><dd>
1382  <table border="0" cellspacing="2" cellpadding="0">
1383    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>can range from 0 (which effectively deactivates the joint) to 3. This is automatically set to 3 in dAMotorEuler mode. </td></tr>
1384  </table>
1385</dl>
1386
1387</div>
1388</div><p>
1389<a class="anchor" name="gff13cbb464f1bfdc225fc9202c2c54c3"></a><!-- doxytag: member="objects.h::dJointGetBody" ref="gff13cbb464f1bfdc225fc9202c2c54c3" args="(dJointID, int index)" -->
1390<div class="memitem">
1391<div class="memproto">
1392      <table class="memname">
1393        <tr>
1394          <td class="memname">ODE_API dBodyID dJointGetBody           </td>
1395          <td>(</td>
1396          <td class="paramtype">dJointID&nbsp;</td>
1397          <td class="paramname">, </td>
1398        </tr>
1399        <tr>
1400          <td class="paramkey"></td>
1401          <td></td>
1402          <td class="paramtype">int&nbsp;</td>
1403          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
1404        </tr>
1405        <tr>
1406          <td></td>
1407          <td>)</td>
1408          <td></td><td></td><td width="100%"></td>
1409        </tr>
1410      </table>
1411</div>
1412<div class="memdoc">
1413
1414<p>
1415Return the bodies that this joint connects.
1416<p>
1417<dl compact><dt><b>Parameters:</b></dt><dd>
1418  <table border="0" cellspacing="2" cellpadding="0">
1419    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>return the first (0) or second (1) body. </td></tr>
1420  </table>
1421</dl>
1422<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>If one of these returned body IDs is zero, the joint connects the other body to the static environment. If both body IDs are zero, the joint is in ``limbo'' and has no effect on the simulation. </dd></dl>
1423
1424</div>
1425</div><p>
1426<a class="anchor" name="g879999d011f82c73acf94029132cc198"></a><!-- doxytag: member="objects.h::dJointGetHinge2Anchor" ref="g879999d011f82c73acf94029132cc198" args="(dJointID, dVector3 result)" -->
1427<div class="memitem">
1428<div class="memproto">
1429      <table class="memname">
1430        <tr>
1431          <td class="memname">ODE_API void dJointGetHinge2Anchor           </td>
1432          <td>(</td>
1433          <td class="paramtype">dJointID&nbsp;</td>
1434          <td class="paramname">, </td>
1435        </tr>
1436        <tr>
1437          <td class="paramkey"></td>
1438          <td></td>
1439          <td class="paramtype">dVector3&nbsp;</td>
1440          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1441        </tr>
1442        <tr>
1443          <td></td>
1444          <td>)</td>
1445          <td></td><td></td><td width="100%"></td>
1446        </tr>
1447      </table>
1448</div>
1449<div class="memdoc">
1450
1451<p>
1452Get the joint anchor point, in world coordinates.
1453<p>
1454<dl class="return" compact><dt><b>Returns:</b></dt><dd>the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. </dd></dl>
1455
1456</div>
1457</div><p>
1458<a class="anchor" name="g1d1c4f9b10c550f6fec550f9cc80c7ab"></a><!-- doxytag: member="objects.h::dJointGetHingeAnchor" ref="g1d1c4f9b10c550f6fec550f9cc80c7ab" args="(dJointID, dVector3 result)" -->
1459<div class="memitem">
1460<div class="memproto">
1461      <table class="memname">
1462        <tr>
1463          <td class="memname">ODE_API void dJointGetHingeAnchor           </td>
1464          <td>(</td>
1465          <td class="paramtype">dJointID&nbsp;</td>
1466          <td class="paramname">, </td>
1467        </tr>
1468        <tr>
1469          <td class="paramkey"></td>
1470          <td></td>
1471          <td class="paramtype">dVector3&nbsp;</td>
1472          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1473        </tr>
1474        <tr>
1475          <td></td>
1476          <td>)</td>
1477          <td></td><td></td><td width="100%"></td>
1478        </tr>
1479      </table>
1480</div>
1481<div class="memdoc">
1482
1483<p>
1484Get the hinge anchor point, in world coordinates.
1485<p>
1486This returns the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2.
1487</div>
1488</div><p>
1489<a class="anchor" name="gfdc1d9c7bd8824ec3e79cc5aa67ddfa1"></a><!-- doxytag: member="objects.h::dJointGetHingeAnchor2" ref="gfdc1d9c7bd8824ec3e79cc5aa67ddfa1" args="(dJointID, dVector3 result)" -->
1490<div class="memitem">
1491<div class="memproto">
1492      <table class="memname">
1493        <tr>
1494          <td class="memname">ODE_API void dJointGetHingeAnchor2           </td>
1495          <td>(</td>
1496          <td class="paramtype">dJointID&nbsp;</td>
1497          <td class="paramname">, </td>
1498        </tr>
1499        <tr>
1500          <td class="paramkey"></td>
1501          <td></td>
1502          <td class="paramtype">dVector3&nbsp;</td>
1503          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1504        </tr>
1505        <tr>
1506          <td></td>
1507          <td>)</td>
1508          <td></td><td></td><td width="100%"></td>
1509        </tr>
1510      </table>
1511</div>
1512<div class="memdoc">
1513
1514<p>
1515Get the joint anchor point, in world coordinates.
1516<p>
1517<dl class="return" compact><dt><b>Returns:</b></dt><dd>The point on body 2. If the joint is perfectly satisfied, this will return the same value as <a class="el" href="group__joints.html#g1d1c4f9b10c550f6fec550f9cc80c7ab" title="Get the hinge anchor point, in world coordinates.">dJointGetHingeAnchor()</a>. If not, this value will be slightly different. This can be used, for example, to see how far the joint has come apart. </dd></dl>
1518
1519</div>
1520</div><p>
1521<a class="anchor" name="g7ca6bdfe2b919b6bc2a27ba6f0e069f0"></a><!-- doxytag: member="objects.h::dJointGetHingeAngle" ref="g7ca6bdfe2b919b6bc2a27ba6f0e069f0" args="(dJointID)" -->
1522<div class="memitem">
1523<div class="memproto">
1524      <table class="memname">
1525        <tr>
1526          <td class="memname">ODE_API dReal dJointGetHingeAngle           </td>
1527          <td>(</td>
1528          <td class="paramtype">dJointID&nbsp;</td>
1529          <td class="paramname">          </td>
1530          <td>&nbsp;)&nbsp;</td>
1531          <td width="100%"></td>
1532        </tr>
1533      </table>
1534</div>
1535<div class="memdoc">
1536
1537<p>
1538Get the hinge angle.
1539<p>
1540The angle is measured between the two bodies, or between the body and the static environment. The angle will be between -pi..pi. When the hinge anchor or axis is set, the current position of the attached bodies is examined and that position will be the zero angle.
1541</div>
1542</div><p>
1543<a class="anchor" name="g88b176c70948c3f96e5c9173904b04fe"></a><!-- doxytag: member="objects.h::dJointGetPRAnchor" ref="g88b176c70948c3f96e5c9173904b04fe" args="(dJointID, dVector3 result)" -->
1544<div class="memitem">
1545<div class="memproto">
1546      <table class="memname">
1547        <tr>
1548          <td class="memname">ODE_API void dJointGetPRAnchor           </td>
1549          <td>(</td>
1550          <td class="paramtype">dJointID&nbsp;</td>
1551          <td class="paramname">, </td>
1552        </tr>
1553        <tr>
1554          <td class="paramkey"></td>
1555          <td></td>
1556          <td class="paramtype">dVector3&nbsp;</td>
1557          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1558        </tr>
1559        <tr>
1560          <td></td>
1561          <td>)</td>
1562          <td></td><td></td><td width="100%"></td>
1563        </tr>
1564      </table>
1565</div>
1566<div class="memdoc">
1567
1568<p>
1569Get the joint anchor point, in world coordinates.
1570<p>
1571<dl class="return" compact><dt><b>Returns:</b></dt><dd>the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. </dd></dl>
1572
1573</div>
1574</div><p>
1575<a class="anchor" name="gd8b95871e93525f44badcdaf8e521da7"></a><!-- doxytag: member="objects.h::dJointGetPRPosition" ref="gd8b95871e93525f44badcdaf8e521da7" args="(dJointID)" -->
1576<div class="memitem">
1577<div class="memproto">
1578      <table class="memname">
1579        <tr>
1580          <td class="memname">ODE_API dReal dJointGetPRPosition           </td>
1581          <td>(</td>
1582          <td class="paramtype">dJointID&nbsp;</td>
1583          <td class="paramname">          </td>
1584          <td>&nbsp;)&nbsp;</td>
1585          <td width="100%"></td>
1586        </tr>
1587      </table>
1588</div>
1589<div class="memdoc">
1590
1591<p>
1592Get the PR linear position (i.e. the prismatic's extension).
1593<p>
1594When the axis is set, the current position of the attached bodies is examined and that position will be the zero position.<p>
1595The position is the "oriented" length between the position = (Prismatic axis) dot_product [(body1 + offset) - (body2 + anchor2)]
1596</div>
1597</div><p>
1598<a class="anchor" name="g7f35449914cbc4a86b845dcd85a617c0"></a><!-- doxytag: member="objects.h::dJointGetSliderPosition" ref="g7f35449914cbc4a86b845dcd85a617c0" args="(dJointID)" -->
1599<div class="memitem">
1600<div class="memproto">
1601      <table class="memname">
1602        <tr>
1603          <td class="memname">ODE_API dReal dJointGetSliderPosition           </td>
1604          <td>(</td>
1605          <td class="paramtype">dJointID&nbsp;</td>
1606          <td class="paramname">          </td>
1607          <td>&nbsp;)&nbsp;</td>
1608          <td width="100%"></td>
1609        </tr>
1610      </table>
1611</div>
1612<div class="memdoc">
1613
1614<p>
1615Get the slider linear position (i.e. the slider's extension).
1616<p>
1617When the axis is set, the current position of the attached bodies is examined and that position will be the zero position.
1618</div>
1619</div><p>
1620<a class="anchor" name="g6f12f69d9b1a457428a28c2f77148174"></a><!-- doxytag: member="objects.h::dJointGetType" ref="g6f12f69d9b1a457428a28c2f77148174" args="(dJointID)" -->
1621<div class="memitem">
1622<div class="memproto">
1623      <table class="memname">
1624        <tr>
1625          <td class="memname">ODE_API int dJointGetType           </td>
1626          <td>(</td>
1627          <td class="paramtype">dJointID&nbsp;</td>
1628          <td class="paramname">          </td>
1629          <td>&nbsp;)&nbsp;</td>
1630          <td width="100%"></td>
1631        </tr>
1632      </table>
1633</div>
1634<div class="memdoc">
1635
1636<p>
1637Get the type of the joint.
1638<p>
1639<dl class="return" compact><dt><b>Returns:</b></dt><dd>the type, being one of these: <ul>
1640<li>JointTypeBall </li>
1641<li>JointTypeHinge </li>
1642<li>JointTypeSlider </li>
1643<li>JointTypeContact </li>
1644<li>JointTypeUniversal </li>
1645<li>JointTypeHinge2 </li>
1646<li>JointTypeFixed </li>
1647<li>JointTypeAMotor </li>
1648<li>JointTypeLMotor </li>
1649</ul>
1650</dd></dl>
1651
1652</div>
1653</div><p>
1654<a class="anchor" name="ga768432c561cb76ba2490913f42d1aaf"></a><!-- doxytag: member="objects.h::dJointGetUniversalAnchor" ref="ga768432c561cb76ba2490913f42d1aaf" args="(dJointID, dVector3 result)" -->
1655<div class="memitem">
1656<div class="memproto">
1657      <table class="memname">
1658        <tr>
1659          <td class="memname">ODE_API void dJointGetUniversalAnchor           </td>
1660          <td>(</td>
1661          <td class="paramtype">dJointID&nbsp;</td>
1662          <td class="paramname">, </td>
1663        </tr>
1664        <tr>
1665          <td class="paramkey"></td>
1666          <td></td>
1667          <td class="paramtype">dVector3&nbsp;</td>
1668          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1669        </tr>
1670        <tr>
1671          <td></td>
1672          <td>)</td>
1673          <td></td><td></td><td width="100%"></td>
1674        </tr>
1675      </table>
1676</div>
1677<div class="memdoc">
1678
1679<p>
1680Get the joint anchor point, in world coordinates.
1681<p>
1682<dl class="return" compact><dt><b>Returns:</b></dt><dd>the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. </dd></dl>
1683
1684</div>
1685</div><p>
1686<a class="anchor" name="g00d5018903a90d75c324c4f870b0e7ea"></a><!-- doxytag: member="objects.h::dJointGetUniversalAnchor2" ref="g00d5018903a90d75c324c4f870b0e7ea" args="(dJointID, dVector3 result)" -->
1687<div class="memitem">
1688<div class="memproto">
1689      <table class="memname">
1690        <tr>
1691          <td class="memname">ODE_API void dJointGetUniversalAnchor2           </td>
1692          <td>(</td>
1693          <td class="paramtype">dJointID&nbsp;</td>
1694          <td class="paramname">, </td>
1695        </tr>
1696        <tr>
1697          <td class="paramkey"></td>
1698          <td></td>
1699          <td class="paramtype">dVector3&nbsp;</td>
1700          <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
1701        </tr>
1702        <tr>
1703          <td></td>
1704          <td>)</td>
1705          <td></td><td></td><td width="100%"></td>
1706        </tr>
1707      </table>
1708</div>
1709<div class="memdoc">
1710
1711<p>
1712Get the joint anchor point, in world coordinates.
1713<p>
1714<dl class="return" compact><dt><b>Returns:</b></dt><dd>This returns the point on body 2. </dd></dl>
1715<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>You can think of the ball and socket part of a universal joint as trying to keep the result of dJointGetBallAnchor() and dJointGetBallAnchor2() the same. If the joint is perfectly satisfied, this function will return the same value as <a class="el" href="group__joints.html#ga768432c561cb76ba2490913f42d1aaf" title="Get the joint anchor point, in world coordinates.">dJointGetUniversalAnchor()</a> to within roundoff errors. <a class="el" href="group__joints.html#g00d5018903a90d75c324c4f870b0e7ea" title="Get the joint anchor point, in world coordinates.">dJointGetUniversalAnchor2()</a> can be used, along with <a class="el" href="group__joints.html#ga768432c561cb76ba2490913f42d1aaf" title="Get the joint anchor point, in world coordinates.">dJointGetUniversalAnchor()</a>, to see how far the joint has come apart. </dd></dl>
1716
1717</div>
1718</div><p>
1719<a class="anchor" name="g3c0fafbd1ccd8e450c01012ce600f6ab"></a><!-- doxytag: member="objects.h::dJointGetUniversalAngles" ref="g3c0fafbd1ccd8e450c01012ce600f6ab" args="(dJointID, dReal *angle1, dReal *angle2)" -->
1720<div class="memitem">
1721<div class="memproto">
1722      <table class="memname">
1723        <tr>
1724          <td class="memname">ODE_API void dJointGetUniversalAngles           </td>
1725          <td>(</td>
1726          <td class="paramtype">dJointID&nbsp;</td>
1727          <td class="paramname">, </td>
1728        </tr>
1729        <tr>
1730          <td class="paramkey"></td>
1731          <td></td>
1732          <td class="paramtype">dReal *&nbsp;</td>
1733          <td class="paramname"> <em>angle1</em>, </td>
1734        </tr>
1735        <tr>
1736          <td class="paramkey"></td>
1737          <td></td>
1738          <td class="paramtype">dReal *&nbsp;</td>
1739          <td class="paramname"> <em>angle2</em></td><td>&nbsp;</td>
1740        </tr>
1741        <tr>
1742          <td></td>
1743          <td>)</td>
1744          <td></td><td></td><td width="100%"></td>
1745        </tr>
1746      </table>
1747</div>
1748<div class="memdoc">
1749
1750<p>
1751Get both angles at the same time.
1752<p>
1753<dl compact><dt><b>Parameters:</b></dt><dd>
1754  <table border="0" cellspacing="2" cellpadding="0">
1755    <tr><td valign="top"></td><td valign="top"><em>joint</em>&nbsp;</td><td>The universal joint for which we want to calculate the angles </td></tr>
1756    <tr><td valign="top"></td><td valign="top"><em>angle1</em>&nbsp;</td><td>The angle between the body1 and the axis 1 </td></tr>
1757    <tr><td valign="top"></td><td valign="top"><em>angle2</em>&nbsp;</td><td>The angle between the body2 and the axis 2</td></tr>
1758  </table>
1759</dl>
1760<dl class="note" compact><dt><b>Note:</b></dt><dd>This function combine getUniversalAngle1 and getUniversalAngle2 together and try to avoid redundant calculation </dd></dl>
1761
1762</div>
1763</div><p>
1764<a class="anchor" name="gaaec687b184a1214133a41503e7c628f"></a><!-- doxytag: member="objects.h::dJointGroupCreate" ref="gaaec687b184a1214133a41503e7c628f" args="(int max_size)" -->
1765<div class="memitem">
1766<div class="memproto">
1767      <table class="memname">
1768        <tr>
1769          <td class="memname">ODE_API dJointGroupID dJointGroupCreate           </td>
1770          <td>(</td>
1771          <td class="paramtype">int&nbsp;</td>
1772          <td class="paramname"> <em>max_size</em>          </td>
1773          <td>&nbsp;)&nbsp;</td>
1774          <td width="100%"></td>
1775        </tr>
1776      </table>
1777</div>
1778<div class="memdoc">
1779
1780<p>
1781Create a joint group.
1782<p>
1783<dl compact><dt><b>Parameters:</b></dt><dd>
1784  <table border="0" cellspacing="2" cellpadding="0">
1785    <tr><td valign="top"></td><td valign="top"><em>max_size</em>&nbsp;</td><td>deprecated. Set to 0. </td></tr>
1786  </table>
1787</dl>
1788
1789</div>
1790</div><p>
1791<a class="anchor" name="g49e664ee9a8bd7bfe5e6932bf936bb8f"></a><!-- doxytag: member="objects.h::dJointGroupDestroy" ref="g49e664ee9a8bd7bfe5e6932bf936bb8f" args="(dJointGroupID)" -->
1792<div class="memitem">
1793<div class="memproto">
1794      <table class="memname">
1795        <tr>
1796          <td class="memname">ODE_API void dJointGroupDestroy           </td>
1797          <td>(</td>
1798          <td class="paramtype">dJointGroupID&nbsp;</td>
1799          <td class="paramname">          </td>
1800          <td>&nbsp;)&nbsp;</td>
1801          <td width="100%"></td>
1802        </tr>
1803      </table>
1804</div>
1805<div class="memdoc">
1806
1807<p>
1808Destroy a joint group.
1809<p>
1810All joints in the joint group will be destroyed.
1811</div>
1812</div><p>
1813<a class="anchor" name="g6e055bac8a0a3261bda3b6d07499c4ea"></a><!-- doxytag: member="objects.h::dJointGroupEmpty" ref="g6e055bac8a0a3261bda3b6d07499c4ea" args="(dJointGroupID)" -->
1814<div class="memitem">
1815<div class="memproto">
1816      <table class="memname">
1817        <tr>
1818          <td class="memname">ODE_API void dJointGroupEmpty           </td>
1819          <td>(</td>
1820          <td class="paramtype">dJointGroupID&nbsp;</td>
1821          <td class="paramname">          </td>
1822          <td>&nbsp;)&nbsp;</td>
1823          <td width="100%"></td>
1824        </tr>
1825      </table>
1826</div>
1827<div class="memdoc">
1828
1829<p>
1830Empty a joint group.
1831<p>
1832All joints in the joint group will be destroyed, but the joint group itself will not be destroyed.
1833</div>
1834</div><p>
1835<a class="anchor" name="g17b2089e6512e22d71340befb40100d2"></a><!-- doxytag: member="objects.h::dJointSetAMotorAngle" ref="g17b2089e6512e22d71340befb40100d2" args="(dJointID, int anum, dReal angle)" -->
1836<div class="memitem">
1837<div class="memproto">
1838      <table class="memname">
1839        <tr>
1840          <td class="memname">ODE_API void dJointSetAMotorAngle           </td>
1841          <td>(</td>
1842          <td class="paramtype">dJointID&nbsp;</td>
1843          <td class="paramname">, </td>
1844        </tr>
1845        <tr>
1846          <td class="paramkey"></td>
1847          <td></td>
1848          <td class="paramtype">int&nbsp;</td>
1849          <td class="paramname"> <em>anum</em>, </td>
1850        </tr>
1851        <tr>
1852          <td class="paramkey"></td>
1853          <td></td>
1854          <td class="paramtype">dReal&nbsp;</td>
1855          <td class="paramname"> <em>angle</em></td><td>&nbsp;</td>
1856        </tr>
1857        <tr>
1858          <td></td>
1859          <td>)</td>
1860          <td></td><td></td><td width="100%"></td>
1861        </tr>
1862      </table>
1863</div>
1864<div class="memdoc">
1865
1866<p>
1867Tell the AMotor what the current angle is along axis anum.
1868<p>
1869This function should only be called in dAMotorUser mode, because in this mode the AMotor has no other way of knowing the joint angles. The angle information is needed if stops have been set along the axis, but it is not needed for axis motors.
1870</div>
1871</div><p>
1872<a class="anchor" name="g1406f976045a1b7edffbb46bf626d04f"></a><!-- doxytag: member="objects.h::dJointSetAMotorNumAxes" ref="g1406f976045a1b7edffbb46bf626d04f" args="(dJointID, int num)" -->
1873<div class="memitem">
1874<div class="memproto">
1875      <table class="memname">
1876        <tr>
1877          <td class="memname">ODE_API void dJointSetAMotorNumAxes           </td>
1878          <td>(</td>
1879          <td class="paramtype">dJointID&nbsp;</td>
1880          <td class="paramname">, </td>
1881        </tr>
1882        <tr>
1883          <td class="paramkey"></td>
1884          <td></td>
1885          <td class="paramtype">int&nbsp;</td>
1886          <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
1887        </tr>
1888        <tr>
1889          <td></td>
1890          <td>)</td>
1891          <td></td><td></td><td width="100%"></td>
1892        </tr>
1893      </table>
1894</div>
1895<div class="memdoc">
1896
1897<p>
1898set the nr of axes
1899<p>
1900<dl compact><dt><b>Parameters:</b></dt><dd>
1901  <table border="0" cellspacing="2" cellpadding="0">
1902    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>0..3 </td></tr>
1903  </table>
1904</dl>
1905
1906</div>
1907</div><p>
1908<a class="anchor" name="g058c33a3da1ff935a1125034f779dc4a"></a><!-- doxytag: member="objects.h::dJointSetBallAnchor" ref="g058c33a3da1ff935a1125034f779dc4a" args="(dJointID, dReal x, dReal y, dReal z)" -->
1909<div class="memitem">
1910<div class="memproto">
1911      <table class="memname">
1912        <tr>
1913          <td class="memname">ODE_API void dJointSetBallAnchor           </td>
1914          <td>(</td>
1915          <td class="paramtype">dJointID&nbsp;</td>
1916          <td class="paramname">, </td>
1917        </tr>
1918        <tr>
1919          <td class="paramkey"></td>
1920          <td></td>
1921          <td class="paramtype">dReal&nbsp;</td>
1922          <td class="paramname"> <em>x</em>, </td>
1923        </tr>
1924        <tr>
1925          <td class="paramkey"></td>
1926          <td></td>
1927          <td class="paramtype">dReal&nbsp;</td>
1928          <td class="paramname"> <em>y</em>, </td>
1929        </tr>
1930        <tr>
1931          <td class="paramkey"></td>
1932          <td></td>
1933          <td class="paramtype">dReal&nbsp;</td>
1934          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
1935        </tr>
1936        <tr>
1937          <td></td>
1938          <td>)</td>
1939          <td></td><td></td><td width="100%"></td>
1940        </tr>
1941      </table>
1942</div>
1943<div class="memdoc">
1944
1945<p>
1946Set the joint anchor point.
1947<p>
1948The joint will try to keep this point on each body together. The input is specified in world coordinates.
1949</div>
1950</div><p>
1951<a class="anchor" name="g87ddb9beb95e9383a4280cb8a4186f01"></a><!-- doxytag: member="objects.h::dJointSetFeedback" ref="g87ddb9beb95e9383a4280cb8a4186f01" args="(dJointID, dJointFeedback *)" -->
1952<div class="memitem">
1953<div class="memproto">
1954      <table class="memname">
1955        <tr>
1956          <td class="memname">ODE_API void dJointSetFeedback           </td>
1957          <td>(</td>
1958          <td class="paramtype">dJointID&nbsp;</td>
1959          <td class="paramname">, </td>
1960        </tr>
1961        <tr>
1962          <td class="paramkey"></td>
1963          <td></td>
1964          <td class="paramtype">dJointFeedback *&nbsp;</td>
1965          <td class="paramname"></td><td>&nbsp;</td>
1966        </tr>
1967        <tr>
1968          <td></td>
1969          <td>)</td>
1970          <td></td><td></td><td width="100%"></td>
1971        </tr>
1972      </table>
1973</div>
1974<div class="memdoc">
1975
1976<p>
1977Sets the datastructure that is to receive the feedback.
1978<p>
1979The feedback can be used by the user, so that it is known how much force an individual joint exerts.
1980</div>
1981</div><p>
1982<a class="anchor" name="g080b7739f5b2b37a798742cee0ef38a4"></a><!-- doxytag: member="objects.h::dJointSetLMotorAxis" ref="g080b7739f5b2b37a798742cee0ef38a4" args="(dJointID, int anum, int rel, dReal x, dReal y, dReal z)" -->
1983<div class="memitem">
1984<div class="memproto">
1985      <table class="memname">
1986        <tr>
1987          <td class="memname">ODE_API void dJointSetLMotorAxis           </td>
1988          <td>(</td>
1989          <td class="paramtype">dJointID&nbsp;</td>
1990          <td class="paramname">, </td>
1991        </tr>
1992        <tr>
1993          <td class="paramkey"></td>
1994          <td></td>
1995          <td class="paramtype">int&nbsp;</td>
1996          <td class="paramname"> <em>anum</em>, </td>
1997        </tr>
1998        <tr>
1999          <td class="paramkey"></td>
2000          <td></td>
2001          <td class="paramtype">int&nbsp;</td>
2002          <td class="paramname"> <em>rel</em>, </td>
2003        </tr>
2004        <tr>
2005          <td class="paramkey"></td>
2006          <td></td>
2007          <td class="paramtype">dReal&nbsp;</td>
2008          <td class="paramname"> <em>x</em>, </td>
2009        </tr>
2010        <tr>
2011          <td class="paramkey"></td>
2012          <td></td>
2013          <td class="paramtype">dReal&nbsp;</td>
2014          <td class="paramname"> <em>y</em>, </td>
2015        </tr>
2016        <tr>
2017          <td class="paramkey"></td>
2018          <td></td>
2019          <td class="paramtype">dReal&nbsp;</td>
2020          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
2021        </tr>
2022        <tr>
2023          <td></td>
2024          <td>)</td>
2025          <td></td><td></td><td width="100%"></td>
2026        </tr>
2027      </table>
2028</div>
2029<div class="memdoc">
2030
2031<p>
2032Set the AMotor axes.
2033<p>
2034<dl compact><dt><b>Parameters:</b></dt><dd>
2035  <table border="0" cellspacing="2" cellpadding="0">
2036    <tr><td valign="top"></td><td valign="top"><em>anum</em>&nbsp;</td><td>selects the axis to change (0,1 or 2). </td></tr>
2037    <tr><td valign="top"></td><td valign="top"><em>rel</em>&nbsp;</td><td>Each axis can have one of three ``relative orientation'' modes <ul>
2038<li>0: The axis is anchored to the global frame. </li>
2039<li>1: The axis is anchored to the first body. </li>
2040<li>2: The axis is anchored to the second body. </li>
2041</ul>
2042</td></tr>
2043  </table>
2044</dl>
2045<dl class="remark" compact><dt><b>Remarks:</b></dt><dd>The axis vector is always specified in global coordinates regardless of the setting of rel. </dd></dl>
2046
2047</div>
2048</div><p>
2049<a class="anchor" name="gcbfb4014567d69010aba3024d9b7bccd"></a><!-- doxytag: member="objects.h::dJointSetLMotorNumAxes" ref="gcbfb4014567d69010aba3024d9b7bccd" args="(dJointID, int num)" -->
2050<div class="memitem">
2051<div class="memproto">
2052      <table class="memname">
2053        <tr>
2054          <td class="memname">ODE_API void dJointSetLMotorNumAxes           </td>
2055          <td>(</td>
2056          <td class="paramtype">dJointID&nbsp;</td>
2057          <td class="paramname">, </td>
2058        </tr>
2059        <tr>
2060          <td class="paramkey"></td>
2061          <td></td>
2062          <td class="paramtype">int&nbsp;</td>
2063          <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
2064        </tr>
2065        <tr>
2066          <td></td>
2067          <td>)</td>
2068          <td></td><td></td><td width="100%"></td>
2069        </tr>
2070      </table>
2071</div>
2072<div class="memdoc">
2073
2074<p>
2075Set the number of axes that will be controlled by the LMotor.
2076<p>
2077<dl compact><dt><b>Parameters:</b></dt><dd>
2078  <table border="0" cellspacing="2" cellpadding="0">
2079    <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>can range from 0 (which effectively deactivates the joint) to 3. </td></tr>
2080  </table>
2081</dl>
2082
2083</div>
2084</div><p>
2085<a class="anchor" name="gc08a28659605f17307d563f45db0824b"></a><!-- doxytag: member="objects.h::dJointSetPRParam" ref="gc08a28659605f17307d563f45db0824b" args="(dJointID, int parameter, dReal value)" -->
2086<div class="memitem">
2087<div class="memproto">
2088      <table class="memname">
2089        <tr>
2090          <td class="memname">ODE_API void dJointSetPRParam           </td>
2091          <td>(</td>
2092          <td class="paramtype">dJointID&nbsp;</td>
2093          <td class="paramname">, </td>
2094        </tr>
2095        <tr>
2096          <td class="paramkey"></td>
2097          <td></td>
2098          <td class="paramtype">int&nbsp;</td>
2099          <td class="paramname"> <em>parameter</em>, </td>
2100        </tr>
2101        <tr>
2102          <td class="paramkey"></td>
2103          <td></td>
2104          <td class="paramtype">dReal&nbsp;</td>
2105          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
2106        </tr>
2107        <tr>
2108          <td></td>
2109          <td>)</td>
2110          <td></td><td></td><td width="100%"></td>
2111        </tr>
2112      </table>
2113</div>
2114<div class="memdoc">
2115
2116<p>
2117set joint parameter
2118<p>
2119<dl class="note" compact><dt><b>Note:</b></dt><dd>parameterX where X equal 2 refer to parameter for the rotoide articulation </dd></dl>
2120
2121</div>
2122</div><p>
2123<hr size="1"><address style="text-align: right;"><small>Generated on Fri Oct 12 08:36:51 2007 for Open Dynamics Engine by&nbsp;
2124<a href="http://www.doxygen.org/index.html">
2125<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
2126</body>
2127</html>
Note: See TracBrowser for help on using the repository browser.