| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- /*************************************************************************
- * *
- * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. *
- * All rights reserved. Email: [email protected] Web: www.q12.org *
- * *
- * This library is free software; you can redistribute it and/or *
- * modify it under the terms of EITHER: *
- * (1) The GNU Lesser General Public License as published by the Free *
- * Software Foundation; either version 2.1 of the License, or (at *
- * your option) any later version. The text of the GNU Lesser *
- * General Public License is included with this library in the *
- * file LICENSE.TXT. *
- * (2) The BSD-style license that is included with this library in *
- * the file LICENSE-BSD.TXT. *
- * *
- * This library is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files *
- * LICENSE.TXT and LICENSE-BSD.TXT for more details. *
- * *
- *************************************************************************/
- #ifndef _ODE_OBJECTS_H_
- #define _ODE_OBJECTS_H_
- #include <ode/common.h>
- #include <ode/mass.h>
- #include <ode/contact.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* world */
- dWorldID dWorldCreate();
- void dWorldDestroy (dWorldID);
- void dWorldSetGravity (dWorldID, dReal x, dReal y, dReal z);
- void dWorldGetGravity (dWorldID, dVector3 gravity);
- void dWorldSetERP (dWorldID, dReal erp);
- dReal dWorldGetERP (dWorldID);
- void dWorldSetCFM (dWorldID, dReal cfm);
- dReal dWorldGetCFM (dWorldID);
- void dWorldStep (dWorldID, dReal stepsize);
- void dWorldImpulseToForce (dWorldID, dReal stepsize,
- dReal ix, dReal iy, dReal iz, dVector3 force);
- /* StepFast1 functions */
- void dWorldStepFast1(dWorldID, dReal stepsize, int maxiterations);
- void dWorldSetAutoEnableDepthSF1(dWorldID, int autoEnableDepth);
- int dWorldGetAutoEnableDepthSF1(dWorldID);
- void dBodySetAutoDisableThresholdSF1(dBodyID, dReal autoDisableThreshold);
- /* These functions are not yet implemented by ODE. */
- /*
- dReal dBodyGetAutoDisableThresholdSF1(dBodyID);
- void dBodySetAutoDisableStepsSF1(dBodyID, int AutoDisableSteps);
- int dBodyGetAutoDisableStepsSF1(dBodyID);
- void dBodySetAutoDisableSF1(dBodyID, int doAutoDisable);
- int dBodyGetAutoDisableSF1(dBodyID);
- */
- /* bodies */
- dBodyID dBodyCreate (dWorldID);
- void dBodyDestroy (dBodyID);
- void dBodySetData (dBodyID, void *data);
- void *dBodyGetData (dBodyID);
- void dBodySetPosition (dBodyID, dReal x, dReal y, dReal z);
- void dBodySetRotation (dBodyID, const dMatrix3 R);
- void dBodySetQuaternion (dBodyID, const dQuaternion q);
- void dBodySetLinearVel (dBodyID, dReal x, dReal y, dReal z);
- void dBodySetAngularVel (dBodyID, dReal x, dReal y, dReal z);
- const dReal * dBodyGetPosition (dBodyID);
- const dReal * dBodyGetRotation (dBodyID); /* ptr to 4x3 rot matrix */
- const dReal * dBodyGetQuaternion (dBodyID);
- const dReal * dBodyGetLinearVel (dBodyID);
- const dReal * dBodyGetAngularVel (dBodyID);
- void dBodySetMass (dBodyID, const dMass *mass);
- void dBodyGetMass (dBodyID, dMass *mass);
- void dBodyAddForce (dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddTorque (dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddRelForce (dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddRelTorque (dBodyID, dReal fx, dReal fy, dReal fz);
- void dBodyAddForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz,
- dReal px, dReal py, dReal pz);
- void dBodyAddForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
- dReal px, dReal py, dReal pz);
- void dBodyAddRelForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz,
- dReal px, dReal py, dReal pz);
- void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
- dReal px, dReal py, dReal pz);
- const dReal * dBodyGetForce (dBodyID);
- const dReal * dBodyGetTorque (dBodyID);
- void dBodySetForce (dBodyID b, dReal x, dReal y, dReal z);
- void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z);
- void dBodyGetRelPointPos (dBodyID, dReal px, dReal py, dReal pz,
- dVector3 result);
- void dBodyGetRelPointVel (dBodyID, dReal px, dReal py, dReal pz,
- dVector3 result);
- void dBodyGetPointVel (dBodyID, dReal px, dReal py, dReal pz,
- dVector3 result);
- void dBodyGetPosRelPoint (dBodyID, dReal px, dReal py, dReal pz,
- dVector3 result);
- void dBodyVectorToWorld (dBodyID, dReal px, dReal py, dReal pz,
- dVector3 result);
- void dBodyVectorFromWorld (dBodyID, dReal px, dReal py, dReal pz,
- dVector3 result);
- void dBodySetFiniteRotationMode (dBodyID, int mode);
- void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z);
- int dBodyGetFiniteRotationMode (dBodyID);
- void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result);
- int dBodyGetNumJoints (dBodyID b);
- dJointID dBodyGetJoint (dBodyID, int index);
- void dBodyEnable (dBodyID);
- void dBodyDisable (dBodyID);
- int dBodyIsEnabled (dBodyID);
- void dBodySetGravityMode (dBodyID b, int mode);
- int dBodyGetGravityMode (dBodyID b);
- /* joints */
- dJointID dJointCreateBall (dWorldID, dJointGroupID);
- dJointID dJointCreateHinge (dWorldID, dJointGroupID);
- dJointID dJointCreateSlider (dWorldID, dJointGroupID);
- dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *);
- dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
- dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
- dJointID dJointCreateFixed (dWorldID, dJointGroupID);
- dJointID dJointCreateNull (dWorldID, dJointGroupID);
- dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
- void dJointDestroy (dJointID);
- dJointGroupID dJointGroupCreate (int max_size);
- void dJointGroupDestroy (dJointGroupID);
- void dJointGroupEmpty (dJointGroupID);
- void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
- void dJointSetData (dJointID, void *data);
- void *dJointGetData (dJointID);
- int dJointGetType (dJointID);
- dBodyID dJointGetBody (dJointID, int index);
- void dJointSetFeedback (dJointID, dJointFeedback *);
- dJointFeedback *dJointGetFeedback (dJointID);
- /******************** breakable joint contribution ***********************/
- void dJointSetBreakable (dJointID, int b);
- void dJointSetBreakCallback (dJointID, dJointBreakCallback *callbackFunc);
- void dJointSetBreakMode (dJointID, int mode);
- int dJointGetBreakMode (dJointID);
- void dJointSetBreakForce (dJointID, int body, dReal x, dReal y, dReal z);
- void dJointSetBreakTorque (dJointID, int body, dReal x, dReal y, dReal z);
- int dJointIsBreakable (dJointID);
- void dJointGetBreakForce (dJointID, int body, dReal *force);
- void dJointGetBreakTorque (dJointID, int body, dReal *torque);
- /*************************************************************************/
- void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z);
- void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z);
- void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z);
- void dJointSetHingeParam (dJointID, int parameter, dReal value);
- void dJointAddHingeTorque(dJointID joint, dReal torque);
- void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z);
- void dJointSetSliderParam (dJointID, int parameter, dReal value);
- void dJointAddSliderForce(dJointID joint, dReal force);
- void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z);
- void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z);
- void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z);
- void dJointSetHinge2Param (dJointID, int parameter, dReal value);
- void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2);
- void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z);
- void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z);
- void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z);
- void dJointSetUniversalParam (dJointID, int parameter, dReal value);
- void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2);
- void dJointSetFixed (dJointID);
- void dJointSetAMotorNumAxes (dJointID, int num);
- void dJointSetAMotorAxis (dJointID, int anum, int rel,
- dReal x, dReal y, dReal z);
- void dJointSetAMotorAngle (dJointID, int anum, dReal angle);
- void dJointSetAMotorParam (dJointID, int parameter, dReal value);
- void dJointSetAMotorMode (dJointID, int mode);
- void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3);
- void dJointGetBallAnchor (dJointID, dVector3 result);
- void dJointGetBallAnchor2 (dJointID, dVector3 result);
- void dJointGetHingeAnchor (dJointID, dVector3 result);
- void dJointGetHingeAnchor2 (dJointID, dVector3 result);
- void dJointGetHingeAxis (dJointID, dVector3 result);
- dReal dJointGetHingeParam (dJointID, int parameter);
- dReal dJointGetHingeAngle (dJointID);
- dReal dJointGetHingeAngleRate (dJointID);
- dReal dJointGetSliderPosition (dJointID);
- dReal dJointGetSliderPositionRate (dJointID);
- void dJointGetSliderAxis (dJointID, dVector3 result);
- dReal dJointGetSliderParam (dJointID, int parameter);
- void dJointGetHinge2Anchor (dJointID, dVector3 result);
- void dJointGetHinge2Anchor2 (dJointID, dVector3 result);
- void dJointGetHinge2Axis1 (dJointID, dVector3 result);
- void dJointGetHinge2Axis2 (dJointID, dVector3 result);
- dReal dJointGetHinge2Param (dJointID, int parameter);
- dReal dJointGetHinge2Angle1 (dJointID);
- dReal dJointGetHinge2Angle1Rate (dJointID);
- dReal dJointGetHinge2Angle2Rate (dJointID);
- void dJointGetUniversalAnchor (dJointID, dVector3 result);
- void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
- void dJointGetUniversalAxis1 (dJointID, dVector3 result);
- void dJointGetUniversalAxis2 (dJointID, dVector3 result);
- dReal dJointGetUniversalParam (dJointID, int parameter);
- dReal dJointGetUniversalAngle1 (dJointID);
- dReal dJointGetUniversalAngle2 (dJointID);
- dReal dJointGetUniversalAngle1Rate (dJointID);
- dReal dJointGetUniversalAngle2Rate (dJointID);
- int dJointGetAMotorNumAxes (dJointID);
- void dJointGetAMotorAxis (dJointID, int anum, dVector3 result);
- int dJointGetAMotorAxisRel (dJointID, int anum);
- dReal dJointGetAMotorAngle (dJointID, int anum);
- dReal dJointGetAMotorAngleRate (dJointID, int anum);
- dReal dJointGetAMotorParam (dJointID, int parameter);
- int dJointGetAMotorMode (dJointID);
- int dAreConnected (dBodyID, dBodyID);
- int dAreConnectedExcluding (dBodyID, dBodyID, int joint_type);
- #ifdef __cplusplus
- }
- #endif
- #endif
|