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 
00302 ODE_API void dWorldSetAutoEnableDepthSF1(dWorldID, int autoEnableDepth);
00303 
00308 ODE_API int dWorldGetAutoEnableDepthSF1(dWorldID);
00309 
00315 ODE_API dReal dWorldGetAutoDisableLinearThreshold (dWorldID);
00316 
00322 ODE_API void  dWorldSetAutoDisableLinearThreshold (dWorldID, dReal linear_threshold);
00323 
00329 ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID);
00330 
00336 ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_threshold);
00337 
00343 ODE_API int dWorldGetAutoDisableSteps (dWorldID);
00344 
00350 ODE_API void dWorldSetAutoDisableSteps (dWorldID, int steps);
00351 
00357 ODE_API dReal dWorldGetAutoDisableTime (dWorldID);
00358 
00364 ODE_API void dWorldSetAutoDisableTime (dWorldID, dReal time);
00365 
00371 ODE_API int dWorldGetAutoDisableFlag (dWorldID);
00372 
00378 ODE_API void dWorldSetAutoDisableFlag (dWorldID, int do_auto_disable);
00379 
00380 
00381 
00421 ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID);
00422 
00428 ODE_API void  dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_threshold);
00429 
00435 ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID);
00436 
00442 ODE_API void  dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_threshold);
00443 
00449 ODE_API int dBodyGetAutoDisableSteps (dBodyID);
00450 
00456 ODE_API void dBodySetAutoDisableSteps (dBodyID, int steps);
00457 
00463 ODE_API dReal dBodyGetAutoDisableTime (dBodyID);
00464 
00470 ODE_API void  dBodySetAutoDisableTime (dBodyID, dReal time);
00471 
00477 ODE_API int dBodyGetAutoDisableFlag (dBodyID);
00478 
00484 ODE_API void dBodySetAutoDisableFlag (dBodyID, int do_auto_disable);
00485 
00492 ODE_API void  dBodySetAutoDisableDefaults (dBodyID);
00493 
00494 
00495 
00502 ODE_API dBodyID dBodyCreate (dWorldID);
00503 
00512 ODE_API void dBodyDestroy (dBodyID);
00513 
00519 ODE_API void  dBodySetData (dBodyID, void *data);
00520 
00526 ODE_API void *dBodyGetData (dBodyID);
00527 
00536 ODE_API void dBodySetPosition   (dBodyID, dReal x, dReal y, dReal z);
00537 
00546 ODE_API void dBodySetRotation   (dBodyID, const dMatrix3 R);
00547 
00556 ODE_API void dBodySetQuaternion (dBodyID, const dQuaternion q);
00557 
00562 ODE_API void dBodySetLinearVel  (dBodyID, dReal x, dReal y, dReal z);
00563 
00568 ODE_API void dBodySetAngularVel (dBodyID, dReal x, dReal y, dReal z);
00569 
00579 ODE_API const dReal * dBodyGetPosition   (dBodyID);
00580 
00581 
00589 ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos);
00590 
00591 
00597 ODE_API const dReal * dBodyGetRotation   (dBodyID);
00598 
00604 ODE_API const dReal * dBodyGetQuaternion (dBodyID);
00605 
00606 
00614 ODE_API void dBodyCopyQuaternion(dBodyID body, dQuaternion quat);
00615 
00616 
00621 ODE_API const dReal * dBodyGetLinearVel  (dBodyID);
00622 
00627 ODE_API const dReal * dBodyGetAngularVel (dBodyID);
00628 
00633 ODE_API void dBodySetMass (dBodyID, const dMass *mass);
00634 
00639 ODE_API void dBodyGetMass (dBodyID, dMass *mass);
00640 
00645 ODE_API void dBodyAddForce            (dBodyID, dReal fx, dReal fy, dReal fz);
00646 
00651 ODE_API void dBodyAddTorque           (dBodyID, dReal fx, dReal fy, dReal fz);
00652 
00657 ODE_API void dBodyAddRelForce         (dBodyID, dReal fx, dReal fy, dReal fz);
00658 
00663 ODE_API void dBodyAddRelTorque        (dBodyID, dReal fx, dReal fy, dReal fz);
00664 
00669 ODE_API void dBodyAddForceAtPos       (dBodyID, dReal fx, dReal fy, dReal fz,
00670                          dReal px, dReal py, dReal pz);
00675 ODE_API void dBodyAddForceAtRelPos    (dBodyID, dReal fx, dReal fy, dReal fz,
00676                          dReal px, dReal py, dReal pz);
00681 ODE_API void dBodyAddRelForceAtPos    (dBodyID, dReal fx, dReal fy, dReal fz,
00682                          dReal px, dReal py, dReal pz);
00687 ODE_API void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
00688                          dReal px, dReal py, dReal pz);
00689 
00699 ODE_API const dReal * dBodyGetForce   (dBodyID);
00700 
00710 ODE_API const dReal * dBodyGetTorque  (dBodyID);
00711 
00720 ODE_API void dBodySetForce  (dBodyID b, dReal x, dReal y, dReal z);
00721 
00730 ODE_API void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z);
00731 
00737 ODE_API void dBodyGetRelPointPos
00738 (
00739   dBodyID, dReal px, dReal py, dReal pz,
00740   dVector3 result
00741 );
00742 
00748 ODE_API void dBodyGetRelPointVel
00749 (
00750   dBodyID, dReal px, dReal py, dReal pz,
00751   dVector3 result
00752 );
00753 
00760 ODE_API void dBodyGetPointVel
00761 (
00762   dBodyID, dReal px, dReal py, dReal pz,
00763   dVector3 result
00764 );
00765 
00774 ODE_API void dBodyGetPosRelPoint
00775 (
00776   dBodyID, dReal px, dReal py, dReal pz,
00777   dVector3 result
00778 );
00779 
00785 ODE_API void dBodyVectorToWorld
00786 (
00787   dBodyID, dReal px, dReal py, dReal pz,
00788   dVector3 result
00789 );
00790 
00796 ODE_API void dBodyVectorFromWorld
00797 (
00798   dBodyID, dReal px, dReal py, dReal pz,
00799   dVector3 result
00800 );
00801 
00819 ODE_API void dBodySetFiniteRotationMode (dBodyID, int mode);
00820 
00837 ODE_API void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z);
00838 
00844 ODE_API int dBodyGetFiniteRotationMode (dBodyID);
00845 
00851 ODE_API void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result);
00852 
00858 ODE_API int dBodyGetNumJoints (dBodyID b);
00859 
00866 ODE_API dJointID dBodyGetJoint (dBodyID, int index);
00867 
00873 ODE_API void dBodyEnable (dBodyID);
00874 
00882 ODE_API void dBodyDisable (dBodyID);
00883 
00889 ODE_API int dBodyIsEnabled (dBodyID);
00890 
00898 ODE_API void dBodySetGravityMode (dBodyID b, int mode);
00899 
00905 ODE_API int dBodyGetGravityMode (dBodyID b);
00906 
00907 
00908 
00984 ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID);
00985 
00992 ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID);
00993 
01000 ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID);
01001 
01008 ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *);
01009 
01016 ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
01017 
01024 ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
01025 
01032 ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID);
01033 
01034 ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID);
01035 
01042 ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
01043 
01050 ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID);
01051 
01058 ODE_API dJointID dJointCreatePlane2D (dWorldID, dJointGroupID);
01059 
01068 ODE_API void dJointDestroy (dJointID);
01069 
01070 
01076 ODE_API dJointGroupID dJointGroupCreate (int max_size);
01077 
01084 ODE_API void dJointGroupDestroy (dJointGroupID);
01085 
01093 ODE_API void dJointGroupEmpty (dJointGroupID);
01094 
01108 ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
01109 
01114 ODE_API void dJointSetData (dJointID, void *data);
01115 
01120 ODE_API void *dJointGetData (dJointID);
01121 
01136 ODE_API int dJointGetType (dJointID);
01137 
01148 ODE_API dBodyID dJointGetBody (dJointID, int index);
01149 
01157 ODE_API void dJointSetFeedback (dJointID, dJointFeedback *);
01158 
01163 ODE_API dJointFeedback *dJointGetFeedback (dJointID);
01164 
01172 ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z);
01173 
01178 ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z);
01179 
01184 ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z);
01185 
01186 ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01187 
01192 ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z);
01193 
01198 ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value);
01199 
01208 ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque);
01209 
01214 ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z);
01215 
01219 ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01220 
01225 ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value);
01226 
01235 ODE_API void dJointAddSliderForce(dJointID joint, dReal force);
01236 
01241 ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z);
01242 
01247 ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z);
01248 
01253 ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z);
01254 
01259 ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value);
01260 
01267 ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2);
01268 
01273 ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z);
01274 
01279 ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z);
01280 
01285 ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z);
01286 
01291 ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value);
01292 
01299 ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2);
01300 
01307 ODE_API void dJointSetFixed (dJointID);
01308 
01314 ODE_API void dJointSetAMotorNumAxes (dJointID, int num);
01315 
01320 ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel,
01321            dReal x, dReal y, dReal z);
01322 
01332 ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle);
01333 
01338 ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value);
01339 
01344 ODE_API void dJointSetAMotorMode (dJointID, int mode);
01345 
01354 ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3);
01355 
01361 ODE_API void dJointSetLMotorNumAxes (dJointID, int num);
01362 
01374 ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z);
01375 
01380 ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value);
01381 
01385 ODE_API void dJointSetPlane2DXParam (dJointID, int parameter, dReal value);
01386 
01391 ODE_API void dJointSetPlane2DYParam (dJointID, int parameter, dReal value);
01392 
01396 ODE_API void dJointSetPlane2DAngleParam (dJointID, int parameter, dReal value);
01397 
01404 ODE_API void dJointGetBallAnchor (dJointID, dVector3 result);
01405 
01416 ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result);
01417 
01425 ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result);
01426 
01435 ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result);
01436 
01441 ODE_API void dJointGetHingeAxis (dJointID, dVector3 result);
01442 
01447 ODE_API dReal dJointGetHingeParam (dJointID, int parameter);
01448 
01459 ODE_API dReal dJointGetHingeAngle (dJointID);
01460 
01465 ODE_API dReal dJointGetHingeAngleRate (dJointID);
01466 
01474 ODE_API dReal dJointGetSliderPosition (dJointID);
01475 
01480 ODE_API dReal dJointGetSliderPositionRate (dJointID);
01481 
01486 ODE_API void dJointGetSliderAxis (dJointID, dVector3 result);
01487 
01492 ODE_API dReal dJointGetSliderParam (dJointID, int parameter);
01493 
01500 ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result);
01501 
01510 ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result);
01511 
01516 ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result);
01517 
01522 ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result);
01523 
01528 ODE_API dReal dJointGetHinge2Param (dJointID, int parameter);
01529 
01534 ODE_API dReal dJointGetHinge2Angle1 (dJointID);
01535 
01540 ODE_API dReal dJointGetHinge2Angle1Rate (dJointID);
01541 
01546 ODE_API dReal dJointGetHinge2Angle2Rate (dJointID);
01547 
01554 ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result);
01555 
01569 ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
01570 
01575 ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result);
01576 
01581 ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result);
01582 
01583 
01588 ODE_API dReal dJointGetUniversalParam (dJointID, int parameter);
01589 
01594 ODE_API dReal dJointGetUniversalAngle1 (dJointID);
01595 
01600 ODE_API dReal dJointGetUniversalAngle2 (dJointID);
01601 
01606 ODE_API dReal dJointGetUniversalAngle1Rate (dJointID);
01607 
01612 ODE_API dReal dJointGetUniversalAngle2Rate (dJointID);
01613 
01622 ODE_API int dJointGetAMotorNumAxes (dJointID);
01623 
01633 ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result);
01634 
01651 ODE_API int dJointGetAMotorAxisRel (dJointID, int anum);
01652 
01661 ODE_API dReal dJointGetAMotorAngle (dJointID, int anum);
01662 
01671 ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum);
01672 
01677 ODE_API dReal dJointGetAMotorParam (dJointID, int parameter);
01678 
01692 ODE_API int dJointGetAMotorMode (dJointID);
01693 
01698 ODE_API int dJointGetLMotorNumAxes (dJointID);
01699 
01704 ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result);
01705 
01710 ODE_API dReal dJointGetLMotorParam (dJointID, int parameter);
01711 
01712 
01716 ODE_API dJointID dConnectingJoint (dBodyID, dBodyID);
01717 
01721 ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*);
01722 
01729 ODE_API int dAreConnected (dBodyID, dBodyID);
01730 
01742 ODE_API int dAreConnectedExcluding (dBodyID, dBodyID, int joint_type);
01743 
01744 
01745 #ifdef __cplusplus
01746 }
01747 #endif
01748 
01749 #endif

Generated on Fri Sep 8 21:34:08 2006 for Open Dynamics Engine by  doxygen 1.4.6