objects.h

00001 /*************************************************************************
00002  *                                                                       *
00003  * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith.       *
00004  * All rights reserved.  Email: russ@q12.org   Web: www.q12.org          *
00005  *                                                                       *
00006  * This library is free software; you can redistribute it and/or         *
00007  * modify it under the terms of EITHER:                                  *
00008  *   (1) The GNU Lesser General Public License as published by the Free  *
00009  *       Software Foundation; either version 2.1 of the License, or (at  *
00010  *       your option) any later version. The text of the GNU Lesser      *
00011  *       General Public License is included with this library in the     *
00012  *       file LICENSE.TXT.                                               *
00013  *   (2) The BSD-style license that is included with this library in     *
00014  *       the file LICENSE-BSD.TXT.                                       *
00015  *                                                                       *
00016  * This library is distributed in the hope that it will be useful,       *
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files    *
00019  * LICENSE.TXT and LICENSE-BSD.TXT for more details.                     *
00020  *                                                                       *
00021  *************************************************************************/
00022 
00023 #ifndef _ODE_OBJECTS_H_
00024 #define _ODE_OBJECTS_H_
00025 
00026 #include <ode/common.h>
00027 #include <ode/mass.h>
00028 #include <ode/contact.h>
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00052 ODE_API dWorldID dWorldCreate(void);
00053 
00054 
00064 ODE_API void dWorldDestroy (dWorldID world);
00065 
00066 
00075 ODE_API void dWorldSetGravity (dWorldID, dReal x, dReal y, dReal z);
00076 
00077 
00082 ODE_API void dWorldGetGravity (dWorldID, dVector3 gravity);
00083 
00084 
00092 ODE_API void dWorldSetERP (dWorldID, dReal erp);
00093 
00099 ODE_API dReal dWorldGetERP (dWorldID);
00100 
00101 
00109 ODE_API void dWorldSetCFM (dWorldID, dReal cfm);
00110 
00116 ODE_API dReal dWorldGetCFM (dWorldID);
00117 
00118 
00129 ODE_API void dWorldStep (dWorldID, dReal stepsize);
00130 
00131 
00146 ODE_API void dWorldImpulseToForce
00147 (
00148   dWorldID, dReal stepsize,
00149   dReal ix, dReal iy, dReal iz, dVector3 force
00150 );
00151 
00152 
00184 ODE_API void dWorldQuickStep (dWorldID w, dReal stepsize);
00185 
00186 
00196 ODE_API void dWorldSetQuickStepNumIterations (dWorldID, int num);
00197 
00198 
00205 ODE_API int dWorldGetQuickStepNumIterations (dWorldID);
00206 
00212 ODE_API void dWorldSetQuickStepW (dWorldID, dReal over_relaxation);
00213 
00219 ODE_API dReal dWorldGetQuickStepW (dWorldID);
00220 
00221 /* World contact parameter functions */
00222 
00231 ODE_API void dWorldSetContactMaxCorrectingVel (dWorldID, dReal vel);
00232 
00238 ODE_API dReal dWorldGetContactMaxCorrectingVel (dWorldID);
00239 
00251 ODE_API void dWorldSetContactSurfaceLayer (dWorldID, dReal depth);
00252 
00258 ODE_API dReal dWorldGetContactSurfaceLayer (dWorldID);
00259 
00260 /* StepFast1 functions */
00261 
00268 ODE_API void dWorldStepFast1(dWorldID, dReal stepsize, int maxiterations);
00269 
00270 
00306 ODE_API void dWorldSetAutoEnableDepthSF1(dWorldID, int autoEnableDepth);
00307 
00312 ODE_API int dWorldGetAutoEnableDepthSF1(dWorldID);
00313 
00319 ODE_API dReal dWorldGetAutoDisableLinearThreshold (dWorldID);
00320 
00326 ODE_API void  dWorldSetAutoDisableLinearThreshold (dWorldID, dReal linear_threshold);
00327 
00333 ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID);
00334 
00340 ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_threshold);
00341 
00347 ODE_API dReal dWorldGetAutoDisableLinearAverageThreshold (dWorldID);
00348 
00354 ODE_API void  dWorldSetAutoDisableLinearAverageThreshold (dWorldID, dReal linear_average_threshold);
00355 
00361 ODE_API dReal dWorldGetAutoDisableAngularAverageThreshold (dWorldID);
00362 
00368 ODE_API void dWorldSetAutoDisableAngularAverageThreshold (dWorldID, dReal angular_average_threshold);
00369 
00375 ODE_API int dWorldGetAutoDisableAverageSamplesCount (dWorldID);
00376 
00383 ODE_API void dWorldSetAutoDisableAverageSamplesCount (dWorldID, unsigned int average_samples_count );
00384 
00390 ODE_API int dWorldGetAutoDisableSteps (dWorldID);
00391 
00397 ODE_API void dWorldSetAutoDisableSteps (dWorldID, int steps);
00398 
00404 ODE_API dReal dWorldGetAutoDisableTime (dWorldID);
00405 
00411 ODE_API void dWorldSetAutoDisableTime (dWorldID, dReal time);
00412 
00418 ODE_API int dWorldGetAutoDisableFlag (dWorldID);
00419 
00425 ODE_API void dWorldSetAutoDisableFlag (dWorldID, int do_auto_disable);
00426 
00427 
00428 
00468 ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID);
00469 
00475 ODE_API void  dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_average_threshold);
00476 
00482 ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID);
00483 
00489 ODE_API void  dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_average_threshold);
00490 
00496 ODE_API int dBodyGetAutoDisableAverageSamplesCount (dBodyID);
00497 
00503 ODE_API void dBodySetAutoDisableAverageSamplesCount (dBodyID, unsigned int average_samples_count);
00504 
00505 
00511 ODE_API int dBodyGetAutoDisableSteps (dBodyID);
00512 
00518 ODE_API void dBodySetAutoDisableSteps (dBodyID, int steps);
00519 
00525 ODE_API dReal dBodyGetAutoDisableTime (dBodyID);
00526 
00532 ODE_API void  dBodySetAutoDisableTime (dBodyID, dReal time);
00533 
00539 ODE_API int dBodyGetAutoDisableFlag (dBodyID);
00540 
00546 ODE_API void dBodySetAutoDisableFlag (dBodyID, int do_auto_disable);
00547 
00554 ODE_API void  dBodySetAutoDisableDefaults (dBodyID);
00555 
00556 
00563 ODE_API dWorldID dBodyGetWorld (dBodyID);
00564 
00571 ODE_API dBodyID dBodyCreate (dWorldID);
00572 
00581 ODE_API void dBodyDestroy (dBodyID);
00582 
00588 ODE_API void  dBodySetData (dBodyID, void *data);
00589 
00595 ODE_API void *dBodyGetData (dBodyID);
00596 
00605 ODE_API void dBodySetPosition   (dBodyID, dReal x, dReal y, dReal z);
00606 
00615 ODE_API void dBodySetRotation   (dBodyID, const dMatrix3 R);
00616 
00625 ODE_API void dBodySetQuaternion (dBodyID, const dQuaternion q);
00626 
00631 ODE_API void dBodySetLinearVel  (dBodyID, dReal x, dReal y, dReal z);
00632 
00637 ODE_API void dBodySetAngularVel (dBodyID, dReal x, dReal y, dReal z);
00638 
00648 ODE_API const dReal * dBodyGetPosition   (dBodyID);
00649 
00650 
00658 ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos);
00659 
00660 
00666 ODE_API const dReal * dBodyGetRotation   (dBodyID);
00667 
00668 
00676 ODE_API void dBodyCopyRotation (dBodyID, dMatrix3 R);
00677 
00678 
00684 ODE_API const dReal * dBodyGetQuaternion (dBodyID);
00685 
00686 
00694 ODE_API void dBodyCopyQuaternion(dBodyID body, dQuaternion quat);
00695 
00696 
00701 ODE_API const dReal * dBodyGetLinearVel  (dBodyID);
00702 
00707 ODE_API const dReal * dBodyGetAngularVel (dBodyID);
00708 
00713 ODE_API void dBodySetMass (dBodyID, const dMass *mass);
00714 
00719 ODE_API void dBodyGetMass (dBodyID, dMass *mass);
00720 
00725 ODE_API void dBodyAddForce            (dBodyID, dReal fx, dReal fy, dReal fz);
00726 
00731 ODE_API void dBodyAddTorque           (dBodyID, dReal fx, dReal fy, dReal fz);
00732 
00737 ODE_API void dBodyAddRelForce         (dBodyID, dReal fx, dReal fy, dReal fz);
00738 
00743 ODE_API void dBodyAddRelTorque        (dBodyID, dReal fx, dReal fy, dReal fz);
00744 
00749 ODE_API void dBodyAddForceAtPos       (dBodyID, dReal fx, dReal fy, dReal fz,
00750                          dReal px, dReal py, dReal pz);
00755 ODE_API void dBodyAddForceAtRelPos    (dBodyID, dReal fx, dReal fy, dReal fz,
00756                          dReal px, dReal py, dReal pz);
00761 ODE_API void dBodyAddRelForceAtPos    (dBodyID, dReal fx, dReal fy, dReal fz,
00762                          dReal px, dReal py, dReal pz);
00767 ODE_API void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
00768                          dReal px, dReal py, dReal pz);
00769 
00779 ODE_API const dReal * dBodyGetForce   (dBodyID);
00780 
00790 ODE_API const dReal * dBodyGetTorque  (dBodyID);
00791 
00800 ODE_API void dBodySetForce  (dBodyID b, dReal x, dReal y, dReal z);
00801 
00810 ODE_API void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z);
00811 
00817 ODE_API void dBodyGetRelPointPos
00818 (
00819   dBodyID, dReal px, dReal py, dReal pz,
00820   dVector3 result
00821 );
00822 
00828 ODE_API void dBodyGetRelPointVel
00829 (
00830   dBodyID, dReal px, dReal py, dReal pz,
00831   dVector3 result
00832 );
00833 
00840 ODE_API void dBodyGetPointVel
00841 (
00842   dBodyID, dReal px, dReal py, dReal pz,
00843   dVector3 result
00844 );
00845 
00854 ODE_API void dBodyGetPosRelPoint
00855 (
00856   dBodyID, dReal px, dReal py, dReal pz,
00857   dVector3 result
00858 );
00859 
00865 ODE_API void dBodyVectorToWorld
00866 (
00867   dBodyID, dReal px, dReal py, dReal pz,
00868   dVector3 result
00869 );
00870 
00876 ODE_API void dBodyVectorFromWorld
00877 (
00878   dBodyID, dReal px, dReal py, dReal pz,
00879   dVector3 result
00880 );
00881 
00899 ODE_API void dBodySetFiniteRotationMode (dBodyID, int mode);
00900 
00917 ODE_API void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z);
00918 
00924 ODE_API int dBodyGetFiniteRotationMode (dBodyID);
00925 
00931 ODE_API void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result);
00932 
00938 ODE_API int dBodyGetNumJoints (dBodyID b);
00939 
00946 ODE_API dJointID dBodyGetJoint (dBodyID, int index);
00947 
00953 ODE_API void dBodyEnable (dBodyID);
00954 
00962 ODE_API void dBodyDisable (dBodyID);
00963 
00969 ODE_API int dBodyIsEnabled (dBodyID);
00970 
00978 ODE_API void dBodySetGravityMode (dBodyID b, int mode);
00979 
00985 ODE_API int dBodyGetGravityMode (dBodyID b);
00986 
00987 
00988 
01064 ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID);
01065 
01072 ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID);
01073 
01080 ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID);
01081 
01088 ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *);
01089 
01096 ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
01097 
01104 ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
01105 
01112 ODE_API dJointID dJointCreatePR (dWorldID, dJointGroupID);
01113 
01120 ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID);
01121 
01122 ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID);
01123 
01130 ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
01131 
01138 ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID);
01139 
01146 ODE_API dJointID dJointCreatePlane2D (dWorldID, dJointGroupID);
01147 
01156 ODE_API void dJointDestroy (dJointID);
01157 
01158 
01164 ODE_API dJointGroupID dJointGroupCreate (int max_size);
01165 
01172 ODE_API void dJointGroupDestroy (dJointGroupID);
01173 
01181 ODE_API void dJointGroupEmpty (dJointGroupID);
01182 
01196 ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
01197 
01202 ODE_API void dJointSetData (dJointID, void *data);
01203 
01208 ODE_API void *dJointGetData (dJointID);
01209 
01224 ODE_API int dJointGetType (dJointID);
01225 
01236 ODE_API dBodyID dJointGetBody (dJointID, int index);
01237 
01245 ODE_API void dJointSetFeedback (dJointID, dJointFeedback *);
01246 
01251 ODE_API dJointFeedback *dJointGetFeedback (dJointID);
01252 
01260 ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z);
01261 
01266 ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z);
01267 
01272 ODE_API void dJointSetBallParam (dJointID, int parameter, dReal value);
01273 
01278 ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z);
01279 
01280 ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01281 
01286 ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z);
01287 
01292 ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value);
01293 
01302 ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque);
01303 
01308 ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z);
01309 
01313 ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01314 
01319 ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value);
01320 
01329 ODE_API void dJointAddSliderForce(dJointID joint, dReal force);
01330 
01335 ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z);
01336 
01341 ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z);
01342 
01347 ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z);
01348 
01353 ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value);
01354 
01361 ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2);
01362 
01367 ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z);
01368 
01373 ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z);
01374 
01379 ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z);
01380 
01385 ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value);
01386 
01393 ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2);
01394 
01395 
01400 ODE_API void dJointSetPRAnchor (dJointID, dReal x, dReal y, dReal z);
01401 
01406 ODE_API void dJointSetPRAxis1 (dJointID, dReal x, dReal y, dReal z);
01407 
01412 ODE_API void dJointSetPRAxis2 (dJointID, dReal x, dReal y, dReal z);
01413 
01420 ODE_API void dJointSetPRParam (dJointID, int parameter, dReal value);
01421 
01430 ODE_API void dJointAddPRTorque (dJointID j, dReal torque);
01431 
01432 
01439 ODE_API void dJointSetFixed (dJointID);
01440 
01441 /*
01442  * @brief Sets joint parameter
01443  *
01444  * @ingroup joints
01445  */
01446 ODE_API void dJointSetFixedParam (dJointID, int parameter, dReal value);
01447 
01453 ODE_API void dJointSetAMotorNumAxes (dJointID, int num);
01454 
01459 ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel,
01460            dReal x, dReal y, dReal z);
01461 
01471 ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle);
01472 
01477 ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value);
01478 
01483 ODE_API void dJointSetAMotorMode (dJointID, int mode);
01484 
01493 ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3);
01494 
01500 ODE_API void dJointSetLMotorNumAxes (dJointID, int num);
01501 
01513 ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z);
01514 
01519 ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value);
01520 
01524 ODE_API void dJointSetPlane2DXParam (dJointID, int parameter, dReal value);
01525 
01530 ODE_API void dJointSetPlane2DYParam (dJointID, int parameter, dReal value);
01531 
01535 ODE_API void dJointSetPlane2DAngleParam (dJointID, int parameter, dReal value);
01536 
01543 ODE_API void dJointGetBallAnchor (dJointID, dVector3 result);
01544 
01555 ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result);
01556 
01561 ODE_API dReal dJointGetBallParam (dJointID, int parameter);
01562 
01570 ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result);
01571 
01580 ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result);
01581 
01586 ODE_API void dJointGetHingeAxis (dJointID, dVector3 result);
01587 
01592 ODE_API dReal dJointGetHingeParam (dJointID, int parameter);
01593 
01604 ODE_API dReal dJointGetHingeAngle (dJointID);
01605 
01610 ODE_API dReal dJointGetHingeAngleRate (dJointID);
01611 
01619 ODE_API dReal dJointGetSliderPosition (dJointID);
01620 
01625 ODE_API dReal dJointGetSliderPositionRate (dJointID);
01626 
01631 ODE_API void dJointGetSliderAxis (dJointID, dVector3 result);
01632 
01637 ODE_API dReal dJointGetSliderParam (dJointID, int parameter);
01638 
01645 ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result);
01646 
01655 ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result);
01656 
01661 ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result);
01662 
01667 ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result);
01668 
01673 ODE_API dReal dJointGetHinge2Param (dJointID, int parameter);
01674 
01679 ODE_API dReal dJointGetHinge2Angle1 (dJointID);
01680 
01685 ODE_API dReal dJointGetHinge2Angle1Rate (dJointID);
01686 
01691 ODE_API dReal dJointGetHinge2Angle2Rate (dJointID);
01692 
01699 ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result);
01700 
01714 ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
01715 
01720 ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result);
01721 
01726 ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result);
01727 
01728 
01733 ODE_API dReal dJointGetUniversalParam (dJointID, int parameter);
01734 
01746 ODE_API void dJointGetUniversalAngles (dJointID, dReal *angle1, dReal *angle2);
01747 
01752 ODE_API dReal dJointGetUniversalAngle1 (dJointID);
01753 
01758 ODE_API dReal dJointGetUniversalAngle2 (dJointID);
01759 
01764 ODE_API dReal dJointGetUniversalAngle1Rate (dJointID);
01765 
01770 ODE_API dReal dJointGetUniversalAngle2Rate (dJointID);
01771 
01772 
01773 
01780 ODE_API void dJointGetPRAnchor (dJointID, dVector3 result);
01781 
01793 ODE_API dReal dJointGetPRPosition (dJointID);
01794 
01800 ODE_API dReal dJointGetPRPositionRate (dJointID);
01801 
01802 
01807 ODE_API void dJointGetPRAxis1 (dJointID, dVector3 result);
01808 
01813 ODE_API void dJointGetPRAxis2 (dJointID, dVector3 result);
01814 
01819 ODE_API dReal dJointGetPRParam (dJointID, int parameter);
01820 
01821 
01822 
01831 ODE_API int dJointGetAMotorNumAxes (dJointID);
01832 
01842 ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result);
01843 
01860 ODE_API int dJointGetAMotorAxisRel (dJointID, int anum);
01861 
01870 ODE_API dReal dJointGetAMotorAngle (dJointID, int anum);
01871 
01880 ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum);
01881 
01886 ODE_API dReal dJointGetAMotorParam (dJointID, int parameter);
01887 
01901 ODE_API int dJointGetAMotorMode (dJointID);
01902 
01907 ODE_API int dJointGetLMotorNumAxes (dJointID);
01908 
01913 ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result);
01914 
01919 ODE_API dReal dJointGetLMotorParam (dJointID, int parameter);
01920 
01925 ODE_API dReal dJointGetFixedParam (dJointID, int parameter);
01926 
01927 
01931 ODE_API dJointID dConnectingJoint (dBodyID, dBodyID);
01932 
01936 ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*);
01937 
01944 ODE_API int dAreConnected (dBodyID, dBodyID);
01945 
01959 ODE_API int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint_type);
01960 
01961 
01962 #ifdef __cplusplus
01963 }
01964 #endif
01965 
01966 #endif

Generated on Fri Oct 12 08:36:51 2007 for Open Dynamics Engine by  doxygen 1.5.3