Open Dynamics Engine

objects.h

00001 
00002 
00003 /*************************************************************************
00004  *                                                                       *
00005  * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith.       *
00006  * All rights reserved.  Email: russ@q12.org   Web: www.q12.org          *
00007  *                                                                       *
00008  * This library is free software; you can redistribute it and/or         *
00009  * modify it under the terms of EITHER:                                  *
00010  *   (1) The GNU Lesser General Public License as published by the Free  *
00011  *       Software Foundation; either version 2.1 of the License, or (at  *
00012  *       your option) any later version. The text of the GNU Lesser      *
00013  *       General Public License is included with this library in the     *
00014  *       file LICENSE.TXT.                                               *
00015  *   (2) The BSD-style license that is included with this library in     *
00016  *       the file LICENSE-BSD.TXT.                                       *
00017  *                                                                       *
00018  * This library is distributed in the hope that it will be useful,       *
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files    *
00021  * LICENSE.TXT and LICENSE-BSD.TXT for more details.                     *
00022  *                                                                       *
00023  *************************************************************************/
00024 
00025 #ifndef _ODE_OBJECTS_H_
00026 #define _ODE_OBJECTS_H_
00027 
00028 #include <ode/common.h>
00029 #include <ode/mass.h>
00030 #include <ode/contact.h>
00031 
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035 
00054 ODE_API dWorldID dWorldCreate(void);
00055 
00056 
00066 ODE_API void dWorldDestroy (dWorldID world);
00067 
00068 
00077 ODE_API void dWorldSetGravity (dWorldID, dReal x, dReal y, dReal z);
00078 
00079 
00084 ODE_API void dWorldGetGravity (dWorldID, dVector3 gravity);
00085 
00086 
00094 ODE_API void dWorldSetERP (dWorldID, dReal erp);
00095 
00101 ODE_API dReal dWorldGetERP (dWorldID);
00102 
00103 
00111 ODE_API void dWorldSetCFM (dWorldID, dReal cfm);
00112 
00118 ODE_API dReal dWorldGetCFM (dWorldID);
00119 
00120 
00157 ODE_API int dWorldUseSharedWorkingMemory(dWorldID w, dWorldID from_world/*=NULL*/);
00158 
00180 ODE_API void dWorldCleanupWorkingMemory(dWorldID w);
00181 
00182 #define dWORLDSTEP_RESERVEFACTOR_DEFAULT    1.2f
00183 #define dWORLDSTEP_RESERVESIZE_DEFAULT      65536U
00184 
00201 typedef struct
00202 {
00203   unsigned struct_size;
00204   float reserve_factor; // Use float as precision does not matter here
00205   unsigned reserve_minimum;
00206 
00207 } dWorldStepReserveInfo;
00208 
00234 ODE_API int dWorldSetStepMemoryReservationPolicy(dWorldID w, const dWorldStepReserveInfo *policyinfo/*=NULL*/);
00235 
00256 typedef struct 
00257 {
00258   unsigned struct_size;
00259   void *(*alloc_block)(size_t block_size);
00260   void *(*shrink_block)(void *block_pointer, size_t block_current_size, size_t block_smaller_size);
00261   void (*free_block)(void *block_pointer, size_t block_current_size);
00262 
00263 } dWorldStepMemoryFunctionsInfo;
00264 
00289 ODE_API int dWorldSetStepMemoryManager(dWorldID w, const dWorldStepMemoryFunctionsInfo *memfuncs);
00290 
00309 ODE_API int dWorldStep (dWorldID w, dReal stepsize);
00310 
00352 ODE_API int dWorldQuickStep (dWorldID w, dReal stepsize);
00353 
00354 
00369 ODE_API void dWorldImpulseToForce
00370 (
00371  dWorldID, dReal stepsize,
00372  dReal ix, dReal iy, dReal iz, dVector3 force
00373  );
00374 
00375 
00385 ODE_API void dWorldSetQuickStepNumIterations (dWorldID, int num);
00386 
00387 
00394 ODE_API int dWorldGetQuickStepNumIterations (dWorldID);
00395 
00401 ODE_API void dWorldSetQuickStepW (dWorldID, dReal over_relaxation);
00402 
00408 ODE_API dReal dWorldGetQuickStepW (dWorldID);
00409 
00410 /* World contact parameter functions */
00411 
00420 ODE_API void dWorldSetContactMaxCorrectingVel (dWorldID, dReal vel);
00421 
00427 ODE_API dReal dWorldGetContactMaxCorrectingVel (dWorldID);
00428 
00440 ODE_API void dWorldSetContactSurfaceLayer (dWorldID, dReal depth);
00441 
00447 ODE_API dReal dWorldGetContactSurfaceLayer (dWorldID);
00448 
00449 
00487 ODE_API dReal dWorldGetAutoDisableLinearThreshold (dWorldID);
00488 
00494 ODE_API void  dWorldSetAutoDisableLinearThreshold (dWorldID, dReal linear_threshold);
00495 
00501 ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID);
00502 
00508 ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_threshold);
00509 
00515 ODE_API dReal dWorldGetAutoDisableLinearAverageThreshold (dWorldID);
00516 
00522 ODE_API void  dWorldSetAutoDisableLinearAverageThreshold (dWorldID, dReal linear_average_threshold);
00523 
00529 ODE_API dReal dWorldGetAutoDisableAngularAverageThreshold (dWorldID);
00530 
00536 ODE_API void dWorldSetAutoDisableAngularAverageThreshold (dWorldID, dReal angular_average_threshold);
00537 
00543 ODE_API int dWorldGetAutoDisableAverageSamplesCount (dWorldID);
00544 
00551 ODE_API void dWorldSetAutoDisableAverageSamplesCount (dWorldID, unsigned int average_samples_count );
00552 
00558 ODE_API int dWorldGetAutoDisableSteps (dWorldID);
00559 
00565 ODE_API void dWorldSetAutoDisableSteps (dWorldID, int steps);
00566 
00572 ODE_API dReal dWorldGetAutoDisableTime (dWorldID);
00573 
00579 ODE_API void dWorldSetAutoDisableTime (dWorldID, dReal time);
00580 
00586 ODE_API int dWorldGetAutoDisableFlag (dWorldID);
00587 
00593 ODE_API void dWorldSetAutoDisableFlag (dWorldID, int do_auto_disable);
00594 
00595 
00635 ODE_API dReal dWorldGetLinearDampingThreshold (dWorldID w);
00636 
00643 ODE_API void dWorldSetLinearDampingThreshold(dWorldID w, dReal threshold);
00644 
00649 ODE_API dReal dWorldGetAngularDampingThreshold (dWorldID w);
00650 
00657 ODE_API void dWorldSetAngularDampingThreshold(dWorldID w, dReal threshold);
00658 
00663 ODE_API dReal dWorldGetLinearDamping (dWorldID w);
00664 
00671 ODE_API void dWorldSetLinearDamping (dWorldID w, dReal scale);
00672 
00677 ODE_API dReal dWorldGetAngularDamping (dWorldID w);
00678 
00685 ODE_API void dWorldSetAngularDamping(dWorldID w, dReal scale);
00686 
00693 ODE_API void dWorldSetDamping(dWorldID w,
00694                                 dReal linear_scale,
00695                                 dReal angular_scale);
00696 
00702 ODE_API dReal dWorldGetMaxAngularSpeed (dWorldID w);
00703 
00704 
00710 ODE_API void dWorldSetMaxAngularSpeed (dWorldID w, dReal max_speed);
00711 
00712 
00713 
00753 ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID);
00754 
00760 ODE_API void  dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_average_threshold);
00761 
00767 ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID);
00768 
00774 ODE_API void  dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_average_threshold);
00775 
00781 ODE_API int dBodyGetAutoDisableAverageSamplesCount (dBodyID);
00782 
00788 ODE_API void dBodySetAutoDisableAverageSamplesCount (dBodyID, unsigned int average_samples_count);
00789 
00790 
00796 ODE_API int dBodyGetAutoDisableSteps (dBodyID);
00797 
00803 ODE_API void dBodySetAutoDisableSteps (dBodyID, int steps);
00804 
00810 ODE_API dReal dBodyGetAutoDisableTime (dBodyID);
00811 
00817 ODE_API void  dBodySetAutoDisableTime (dBodyID, dReal time);
00818 
00824 ODE_API int dBodyGetAutoDisableFlag (dBodyID);
00825 
00831 ODE_API void dBodySetAutoDisableFlag (dBodyID, int do_auto_disable);
00832 
00839 ODE_API void  dBodySetAutoDisableDefaults (dBodyID);
00840 
00841 
00848 ODE_API dWorldID dBodyGetWorld (dBodyID);
00849 
00856 ODE_API dBodyID dBodyCreate (dWorldID);
00857 
00866 ODE_API void dBodyDestroy (dBodyID);
00867 
00873 ODE_API void  dBodySetData (dBodyID, void *data);
00874 
00880 ODE_API void *dBodyGetData (dBodyID);
00881 
00890 ODE_API void dBodySetPosition   (dBodyID, dReal x, dReal y, dReal z);
00891 
00900 ODE_API void dBodySetRotation   (dBodyID, const dMatrix3 R);
00901 
00910 ODE_API void dBodySetQuaternion (dBodyID, const dQuaternion q);
00911 
00916 ODE_API void dBodySetLinearVel  (dBodyID, dReal x, dReal y, dReal z);
00917 
00922 ODE_API void dBodySetAngularVel (dBodyID, dReal x, dReal y, dReal z);
00923 
00933 ODE_API const dReal * dBodyGetPosition (dBodyID);
00934 
00935 
00943 ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos);
00944 
00945 
00951 ODE_API const dReal * dBodyGetRotation (dBodyID);
00952 
00953 
00961 ODE_API void dBodyCopyRotation (dBodyID, dMatrix3 R);
00962 
00963 
00969 ODE_API const dReal * dBodyGetQuaternion (dBodyID);
00970 
00971 
00979 ODE_API void dBodyCopyQuaternion(dBodyID body, dQuaternion quat);
00980 
00981 
00986 ODE_API const dReal * dBodyGetLinearVel (dBodyID);
00987 
00992 ODE_API const dReal * dBodyGetAngularVel (dBodyID);
00993 
00998 ODE_API void dBodySetMass (dBodyID, const dMass *mass);
00999 
01004 ODE_API void dBodyGetMass (dBodyID, dMass *mass);
01005 
01010 ODE_API void dBodyAddForce            (dBodyID, dReal fx, dReal fy, dReal fz);
01011 
01016 ODE_API void dBodyAddTorque           (dBodyID, dReal fx, dReal fy, dReal fz);
01017 
01022 ODE_API void dBodyAddRelForce         (dBodyID, dReal fx, dReal fy, dReal fz);
01023 
01028 ODE_API void dBodyAddRelTorque        (dBodyID, dReal fx, dReal fy, dReal fz);
01029 
01034 ODE_API void dBodyAddForceAtPos       (dBodyID, dReal fx, dReal fy, dReal fz,
01035                          dReal px, dReal py, dReal pz);
01040 ODE_API void dBodyAddForceAtRelPos    (dBodyID, dReal fx, dReal fy, dReal fz,
01041                          dReal px, dReal py, dReal pz);
01046 ODE_API void dBodyAddRelForceAtPos    (dBodyID, dReal fx, dReal fy, dReal fz,
01047                          dReal px, dReal py, dReal pz);
01052 ODE_API void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
01053                          dReal px, dReal py, dReal pz);
01054 
01064 ODE_API const dReal * dBodyGetForce (dBodyID);
01065 
01075 ODE_API const dReal * dBodyGetTorque (dBodyID);
01076 
01085 ODE_API void dBodySetForce  (dBodyID b, dReal x, dReal y, dReal z);
01086 
01095 ODE_API void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z);
01096 
01102 ODE_API void dBodyGetRelPointPos
01103 (
01104   dBodyID, dReal px, dReal py, dReal pz,
01105   dVector3 result
01106 );
01107 
01113 ODE_API void dBodyGetRelPointVel
01114 (
01115   dBodyID, dReal px, dReal py, dReal pz,
01116   dVector3 result
01117 );
01118 
01125 ODE_API void dBodyGetPointVel
01126 (
01127   dBodyID, dReal px, dReal py, dReal pz,
01128   dVector3 result
01129 );
01130 
01139 ODE_API void dBodyGetPosRelPoint
01140 (
01141   dBodyID, dReal px, dReal py, dReal pz,
01142   dVector3 result
01143 );
01144 
01150 ODE_API void dBodyVectorToWorld
01151 (
01152   dBodyID, dReal px, dReal py, dReal pz,
01153   dVector3 result
01154 );
01155 
01161 ODE_API void dBodyVectorFromWorld
01162 (
01163   dBodyID, dReal px, dReal py, dReal pz,
01164   dVector3 result
01165 );
01166 
01184 ODE_API void dBodySetFiniteRotationMode (dBodyID, int mode);
01185 
01202 ODE_API void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z);
01203 
01209 ODE_API int dBodyGetFiniteRotationMode (dBodyID);
01210 
01216 ODE_API void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result);
01217 
01223 ODE_API int dBodyGetNumJoints (dBodyID b);
01224 
01231 ODE_API dJointID dBodyGetJoint (dBodyID, int index);
01232 
01233 
01234 
01235 
01241 ODE_API void dBodySetDynamic (dBodyID);
01242 
01255 ODE_API void dBodySetKinematic (dBodyID);
01256 
01262 ODE_API int dBodyIsKinematic (dBodyID);
01263 
01269 ODE_API void dBodyEnable (dBodyID);
01270 
01278 ODE_API void dBodyDisable (dBodyID);
01279 
01285 ODE_API int dBodyIsEnabled (dBodyID);
01286 
01294 ODE_API void dBodySetGravityMode (dBodyID b, int mode);
01295 
01301 ODE_API int dBodyGetGravityMode (dBodyID b);
01302 
01316 ODE_API void dBodySetMovedCallback(dBodyID b, void (*callback)(dBodyID));
01317 
01318 
01328 ODE_API dGeomID dBodyGetFirstGeom (dBodyID b);
01329 
01330 
01338 ODE_API dGeomID dBodyGetNextGeom (dGeomID g);
01339 
01340 
01345 ODE_API void dBodySetDampingDefaults(dBodyID b);
01346 
01351 ODE_API dReal dBodyGetLinearDamping (dBodyID b);
01352 
01361 ODE_API void dBodySetLinearDamping(dBodyID b, dReal scale);
01362 
01369 ODE_API dReal dBodyGetAngularDamping (dBodyID b);
01370 
01379 ODE_API void dBodySetAngularDamping(dBodyID b, dReal scale);
01380 
01388 ODE_API void dBodySetDamping(dBodyID b, dReal linear_scale, dReal angular_scale);
01389 
01394 ODE_API dReal dBodyGetLinearDampingThreshold (dBodyID b);
01395 
01402 ODE_API void dBodySetLinearDampingThreshold(dBodyID b, dReal threshold);
01403 
01408 ODE_API dReal dBodyGetAngularDampingThreshold (dBodyID b);
01409 
01416 ODE_API void dBodySetAngularDampingThreshold(dBodyID b, dReal threshold);
01417 
01423 ODE_API dReal dBodyGetMaxAngularSpeed (dBodyID b);
01424 
01433 ODE_API void dBodySetMaxAngularSpeed(dBodyID b, dReal max_speed);
01434 
01435 
01436 
01444 ODE_API int dBodyGetGyroscopicMode(dBodyID b);
01445 
01446 
01458 ODE_API void dBodySetGyroscopicMode(dBodyID b, int enabled);
01459 
01460 
01461 
01462 
01538 ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID);
01539 
01546 ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID);
01547 
01554 ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID);
01555 
01562 ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *);
01563 
01570 ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
01571 
01578 ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
01579 
01586 ODE_API dJointID dJointCreatePR (dWorldID, dJointGroupID);
01587 
01594   ODE_API dJointID dJointCreatePU (dWorldID, dJointGroupID);
01595 
01603   ODE_API dJointID dJointCreatePiston (dWorldID, dJointGroupID);
01604 
01611 ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID);
01612 
01613 ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID);
01614 
01621 ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
01622 
01629 ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID);
01630 
01637 ODE_API dJointID dJointCreatePlane2D (dWorldID, dJointGroupID);
01638 
01647 ODE_API void dJointDestroy (dJointID);
01648 
01649 
01655 ODE_API dJointGroupID dJointGroupCreate (int max_size);
01656 
01663 ODE_API void dJointGroupDestroy (dJointGroupID);
01664 
01672 ODE_API void dJointGroupEmpty (dJointGroupID);
01673 
01678 ODE_API int dJointGetNumBodies(dJointID);
01679 
01693 ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
01694 
01700 ODE_API void dJointEnable (dJointID);
01701 
01709 ODE_API void dJointDisable (dJointID);
01710 
01716 ODE_API int dJointIsEnabled (dJointID);
01717 
01722 ODE_API void dJointSetData (dJointID, void *data);
01723 
01728 ODE_API void *dJointGetData (dJointID);
01729 
01749 ODE_API dJointType dJointGetType (dJointID);
01750 
01761 ODE_API dBodyID dJointGetBody (dJointID, int index);
01762 
01770 ODE_API void dJointSetFeedback (dJointID, dJointFeedback *);
01771 
01776 ODE_API dJointFeedback *dJointGetFeedback (dJointID);
01777 
01785 ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z);
01786 
01791 ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z);
01792 
01797 ODE_API void dJointSetBallParam (dJointID, int parameter, dReal value);
01798 
01803 ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z);
01804 
01805 ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01806 
01811 ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z);
01812 
01841 ODE_API void dJointSetHingeAxisOffset (dJointID j, dReal x, dReal y, dReal z, dReal angle);
01842 
01847 ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value);
01848 
01857 ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque);
01858 
01863 ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z);
01864 
01868 ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01869 
01874 ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value);
01875 
01884 ODE_API void dJointAddSliderForce(dJointID joint, dReal force);
01885 
01890 ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z);
01891 
01896 ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z);
01897 
01902 ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z);
01903 
01908 ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value);
01909 
01916 ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2);
01917 
01922 ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z);
01923 
01928 ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z);
01929 
01966 ODE_API void dJointSetUniversalAxis1Offset (dJointID, dReal x, dReal y, dReal z,
01967                                             dReal offset1, dReal offset2);
01968 
01973 ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z);
01974 
02013 ODE_API void dJointSetUniversalAxis2Offset (dJointID, dReal x, dReal y, dReal z,
02014                                             dReal offset1, dReal offset2);
02015 
02020 ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value);
02021 
02028 ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2);
02029 
02030 
02035 ODE_API void dJointSetPRAnchor (dJointID, dReal x, dReal y, dReal z);
02036 
02041 ODE_API void dJointSetPRAxis1 (dJointID, dReal x, dReal y, dReal z);
02042 
02047 ODE_API void dJointSetPRAxis2 (dJointID, dReal x, dReal y, dReal z);
02048 
02055 ODE_API void dJointSetPRParam (dJointID, int parameter, dReal value);
02056 
02065 ODE_API void dJointAddPRTorque (dJointID j, dReal torque);
02066 
02067 
02072   ODE_API void dJointSetPUAnchor (dJointID, dReal x, dReal y, dReal z);
02073 
02078   ODE_API_DEPRECATED ODE_API void dJointSetPUAnchorDelta (dJointID, dReal x, dReal y, dReal z,
02079                                                           dReal dx, dReal dy, dReal dz);
02080 
02110   ODE_API void dJointSetPUAnchorOffset (dJointID, dReal x, dReal y, dReal z,
02111                                        dReal dx, dReal dy, dReal dz);
02112 
02117   ODE_API void dJointSetPUAxis1 (dJointID, dReal x, dReal y, dReal z);
02118 
02123   ODE_API void dJointSetPUAxis2 (dJointID, dReal x, dReal y, dReal z);
02124 
02129   ODE_API void dJointSetPUAxis3 (dJointID, dReal x, dReal y, dReal z);
02130 
02137   ODE_API void dJointSetPUAxisP (dJointID id, dReal x, dReal y, dReal z);
02138 
02139 
02140 
02150   ODE_API void dJointSetPUParam (dJointID, int parameter, dReal value);
02151 
02160   ODE_API void dJointAddPUTorque (dJointID j, dReal torque);
02161 
02162 
02163 
02164 
02169   ODE_API void dJointSetPistonAnchor (dJointID, dReal x, dReal y, dReal z);
02170 
02200   ODE_API void dJointSetPistonAnchorOffset(dJointID j, dReal x, dReal y, dReal z,
02201                                            dReal dx, dReal dy, dReal dz);
02202 
02207   ODE_API void dJointSetPistonAxis (dJointID, dReal x, dReal y, dReal z);
02208 
02222   ODE_API_DEPRECATED ODE_API void dJointSetPistonAxisDelta (dJointID j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
02223 
02228   ODE_API void dJointSetPistonParam (dJointID, int parameter, dReal value);
02229 
02238   ODE_API void dJointAddPistonForce (dJointID joint, dReal force);
02239 
02240 
02247 ODE_API void dJointSetFixed (dJointID);
02248 
02249 /*
02250  * @brief Sets joint parameter
02251  *
02252  * @ingroup joints
02253  */
02254 ODE_API void dJointSetFixedParam (dJointID, int parameter, dReal value);
02255 
02261 ODE_API void dJointSetAMotorNumAxes (dJointID, int num);
02262 
02267 ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel,
02268            dReal x, dReal y, dReal z);
02269 
02279 ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle);
02280 
02285 ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value);
02286 
02291 ODE_API void dJointSetAMotorMode (dJointID, int mode);
02292 
02301 ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3);
02302 
02308 ODE_API void dJointSetLMotorNumAxes (dJointID, int num);
02309 
02321 ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z);
02322 
02327 ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value);
02328 
02332 ODE_API void dJointSetPlane2DXParam (dJointID, int parameter, dReal value);
02333 
02338 ODE_API void dJointSetPlane2DYParam (dJointID, int parameter, dReal value);
02339 
02343 ODE_API void dJointSetPlane2DAngleParam (dJointID, int parameter, dReal value);
02344 
02351 ODE_API void dJointGetBallAnchor (dJointID, dVector3 result);
02352 
02363 ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result);
02364 
02369 ODE_API dReal dJointGetBallParam (dJointID, int parameter);
02370 
02378 ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result);
02379 
02388 ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result);
02389 
02394 ODE_API void dJointGetHingeAxis (dJointID, dVector3 result);
02395 
02400 ODE_API dReal dJointGetHingeParam (dJointID, int parameter);
02401 
02414 ODE_API dReal dJointGetHingeAngle (dJointID);
02415 
02420 ODE_API dReal dJointGetHingeAngleRate (dJointID);
02421 
02433 ODE_API dReal dJointGetSliderPosition (dJointID);
02434 
02439 ODE_API dReal dJointGetSliderPositionRate (dJointID);
02440 
02445 ODE_API void dJointGetSliderAxis (dJointID, dVector3 result);
02446 
02451 ODE_API dReal dJointGetSliderParam (dJointID, int parameter);
02452 
02459 ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result);
02460 
02469 ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result);
02470 
02475 ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result);
02476 
02481 ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result);
02482 
02487 ODE_API dReal dJointGetHinge2Param (dJointID, int parameter);
02488 
02493 ODE_API dReal dJointGetHinge2Angle1 (dJointID);
02494 
02499 ODE_API dReal dJointGetHinge2Angle1Rate (dJointID);
02500 
02505 ODE_API dReal dJointGetHinge2Angle2Rate (dJointID);
02506 
02513 ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result);
02514 
02528 ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
02529 
02534 ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result);
02535 
02540 ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result);
02541 
02542 
02547 ODE_API dReal dJointGetUniversalParam (dJointID, int parameter);
02548 
02560 ODE_API void dJointGetUniversalAngles (dJointID, dReal *angle1, dReal *angle2);
02561 
02566 ODE_API dReal dJointGetUniversalAngle1 (dJointID);
02567 
02572 ODE_API dReal dJointGetUniversalAngle2 (dJointID);
02573 
02578 ODE_API dReal dJointGetUniversalAngle1Rate (dJointID);
02579 
02584 ODE_API dReal dJointGetUniversalAngle2Rate (dJointID);
02585 
02586 
02587 
02594 ODE_API void dJointGetPRAnchor (dJointID, dVector3 result);
02595 
02607 ODE_API dReal dJointGetPRPosition (dJointID);
02608 
02614 ODE_API dReal dJointGetPRPositionRate (dJointID);
02615 
02616 
02624 ODE_API dReal dJointGetPRAngle (dJointID);
02625 
02631 ODE_API dReal dJointGetPRAngleRate (dJointID);
02632 
02633 
02638 ODE_API void dJointGetPRAxis1 (dJointID, dVector3 result);
02639 
02644 ODE_API void dJointGetPRAxis2 (dJointID, dVector3 result);
02645 
02650 ODE_API dReal dJointGetPRParam (dJointID, int parameter);
02651 
02652     
02653     
02660   ODE_API void dJointGetPUAnchor (dJointID, dVector3 result);
02661 
02673   ODE_API dReal dJointGetPUPosition (dJointID);
02674 
02680   ODE_API dReal dJointGetPUPositionRate (dJointID);
02681 
02686   ODE_API void dJointGetPUAxis1 (dJointID, dVector3 result);
02687 
02692   ODE_API void dJointGetPUAxis2 (dJointID, dVector3 result);
02693 
02698   ODE_API void dJointGetPUAxis3 (dJointID, dVector3 result);
02699 
02707   ODE_API void dJointGetPUAxisP (dJointID id, dVector3 result);
02708 
02709 
02710 
02711 
02723   ODE_API void dJointGetPUAngles (dJointID, dReal *angle1, dReal *angle2);
02724 
02729   ODE_API dReal dJointGetPUAngle1 (dJointID);
02730 
02736   ODE_API dReal dJointGetPUAngle1Rate (dJointID);
02737 
02738 
02743   ODE_API dReal dJointGetPUAngle2 (dJointID);
02744 
02750   ODE_API dReal dJointGetPUAngle2Rate (dJointID);
02751 
02756   ODE_API dReal dJointGetPUParam (dJointID, int parameter);
02757 
02758 
02759 
02760 
02761 
02769   ODE_API dReal dJointGetPistonPosition (dJointID);
02770 
02775   ODE_API dReal dJointGetPistonPositionRate (dJointID);
02776 
02784   ODE_API dReal dJointGetPistonAngle (dJointID);
02785 
02790   ODE_API dReal dJointGetPistonAngleRate (dJointID);
02791 
02792 
02802   ODE_API void dJointGetPistonAnchor (dJointID, dVector3 result);
02803 
02817   ODE_API void dJointGetPistonAnchor2 (dJointID, dVector3 result);
02818 
02823   ODE_API void dJointGetPistonAxis (dJointID, dVector3 result);
02824 
02829   ODE_API dReal dJointGetPistonParam (dJointID, int parameter);
02830 
02831 
02840 ODE_API int dJointGetAMotorNumAxes (dJointID);
02841 
02851 ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result);
02852 
02869 ODE_API int dJointGetAMotorAxisRel (dJointID, int anum);
02870 
02879 ODE_API dReal dJointGetAMotorAngle (dJointID, int anum);
02880 
02889 ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum);
02890 
02895 ODE_API dReal dJointGetAMotorParam (dJointID, int parameter);
02896 
02910 ODE_API int dJointGetAMotorMode (dJointID);
02911 
02916 ODE_API int dJointGetLMotorNumAxes (dJointID);
02917 
02922 ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result);
02923 
02928 ODE_API dReal dJointGetLMotorParam (dJointID, int parameter);
02929 
02934 ODE_API dReal dJointGetFixedParam (dJointID, int parameter);
02935 
02936 
02940 ODE_API dJointID dConnectingJoint (dBodyID, dBodyID);
02941 
02945 ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*);
02946 
02953 ODE_API int dAreConnected (dBodyID, dBodyID);
02954 
02968 ODE_API int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint_type);
02969 
02970 
02971 #ifdef __cplusplus
02972 }
02973 #endif
02974 
02975 #endif