00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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
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
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
00578 ODE_API const dReal * dBodyGetPosition (dBodyID);
00579
00585 ODE_API const dReal * dBodyGetRotation (dBodyID);
00586
00592 ODE_API const dReal * dBodyGetQuaternion (dBodyID);
00593
00598 ODE_API const dReal * dBodyGetLinearVel (dBodyID);
00599
00604 ODE_API const dReal * dBodyGetAngularVel (dBodyID);
00605
00610 ODE_API void dBodySetMass (dBodyID, const dMass *mass);
00611
00616 ODE_API void dBodyGetMass (dBodyID, dMass *mass);
00617
00622 ODE_API void dBodyAddForce (dBodyID, dReal fx, dReal fy, dReal fz);
00623
00628 ODE_API void dBodyAddTorque (dBodyID, dReal fx, dReal fy, dReal fz);
00629
00634 ODE_API void dBodyAddRelForce (dBodyID, dReal fx, dReal fy, dReal fz);
00635
00640 ODE_API void dBodyAddRelTorque (dBodyID, dReal fx, dReal fy, dReal fz);
00641
00646 ODE_API void dBodyAddForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz,
00647 dReal px, dReal py, dReal pz);
00652 ODE_API void dBodyAddForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
00653 dReal px, dReal py, dReal pz);
00658 ODE_API void dBodyAddRelForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz,
00659 dReal px, dReal py, dReal pz);
00664 ODE_API void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz,
00665 dReal px, dReal py, dReal pz);
00666
00676 ODE_API const dReal * dBodyGetForce (dBodyID);
00677
00687 ODE_API const dReal * dBodyGetTorque (dBodyID);
00688
00697 ODE_API void dBodySetForce (dBodyID b, dReal x, dReal y, dReal z);
00698
00707 ODE_API void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z);
00708
00714 ODE_API void dBodyGetRelPointPos
00715 (
00716 dBodyID, dReal px, dReal py, dReal pz,
00717 dVector3 result
00718 );
00719
00725 ODE_API void dBodyGetRelPointVel
00726 (
00727 dBodyID, dReal px, dReal py, dReal pz,
00728 dVector3 result
00729 );
00730
00737 ODE_API void dBodyGetPointVel
00738 (
00739 dBodyID, dReal px, dReal py, dReal pz,
00740 dVector3 result
00741 );
00742
00751 ODE_API void dBodyGetPosRelPoint
00752 (
00753 dBodyID, dReal px, dReal py, dReal pz,
00754 dVector3 result
00755 );
00756
00762 ODE_API void dBodyVectorToWorld
00763 (
00764 dBodyID, dReal px, dReal py, dReal pz,
00765 dVector3 result
00766 );
00767
00773 ODE_API void dBodyVectorFromWorld
00774 (
00775 dBodyID, dReal px, dReal py, dReal pz,
00776 dVector3 result
00777 );
00778
00796 ODE_API void dBodySetFiniteRotationMode (dBodyID, int mode);
00797
00814 ODE_API void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z);
00815
00821 ODE_API int dBodyGetFiniteRotationMode (dBodyID);
00822
00828 ODE_API void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result);
00829
00835 ODE_API int dBodyGetNumJoints (dBodyID b);
00836
00843 ODE_API dJointID dBodyGetJoint (dBodyID, int index);
00844
00850 ODE_API void dBodyEnable (dBodyID);
00851
00859 ODE_API void dBodyDisable (dBodyID);
00860
00866 ODE_API int dBodyIsEnabled (dBodyID);
00867
00875 ODE_API void dBodySetGravityMode (dBodyID b, int mode);
00876
00882 ODE_API int dBodyGetGravityMode (dBodyID b);
00883
00884
00885
00961 ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID);
00962
00969 ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID);
00970
00977 ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID);
00978
00985 ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *);
00986
00993 ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
00994
01001 ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
01002
01009 ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID);
01010
01011 ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID);
01012
01019 ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
01020
01027 ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID);
01028
01029
01038 ODE_API void dJointDestroy (dJointID);
01039
01040
01046 ODE_API dJointGroupID dJointGroupCreate (int max_size);
01047
01054 ODE_API void dJointGroupDestroy (dJointGroupID);
01055
01063 ODE_API void dJointGroupEmpty (dJointGroupID);
01064
01078 ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
01079
01084 ODE_API void dJointSetData (dJointID, void *data);
01085
01090 ODE_API void *dJointGetData (dJointID);
01091
01106 ODE_API int dJointGetType (dJointID);
01107
01118 ODE_API dBodyID dJointGetBody (dJointID, int index);
01119
01127 ODE_API void dJointSetFeedback (dJointID, dJointFeedback *);
01128
01133 ODE_API dJointFeedback *dJointGetFeedback (dJointID);
01134
01142 ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z);
01143
01148 ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z);
01149
01154 ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z);
01155
01156 ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01157
01162 ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z);
01163
01168 ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value);
01169
01178 ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque);
01179
01184 ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z);
01185
01189 ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01190
01195 ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value);
01196
01205 ODE_API void dJointAddSliderForce(dJointID joint, dReal force);
01206
01211 ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z);
01212
01217 ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z);
01218
01223 ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z);
01224
01229 ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value);
01230
01237 ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2);
01238
01243 ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z);
01244
01249 ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z);
01250
01255 ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z);
01256
01261 ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value);
01262
01269 ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2);
01270
01277 ODE_API void dJointSetFixed (dJointID);
01278
01284 ODE_API void dJointSetAMotorNumAxes (dJointID, int num);
01285
01290 ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel,
01291 dReal x, dReal y, dReal z);
01292
01302 ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle);
01303
01308 ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value);
01309
01314 ODE_API void dJointSetAMotorMode (dJointID, int mode);
01315
01324 ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3);
01325
01331 ODE_API void dJointSetLMotorNumAxes (dJointID, int num);
01332
01344 ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z);
01345
01350 ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value);
01351
01358 ODE_API void dJointGetBallAnchor (dJointID, dVector3 result);
01359
01370 ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result);
01371
01379 ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result);
01380
01389 ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result);
01390
01395 ODE_API void dJointGetHingeAxis (dJointID, dVector3 result);
01396
01401 ODE_API dReal dJointGetHingeParam (dJointID, int parameter);
01402
01413 ODE_API dReal dJointGetHingeAngle (dJointID);
01414
01419 ODE_API dReal dJointGetHingeAngleRate (dJointID);
01420
01428 ODE_API dReal dJointGetSliderPosition (dJointID);
01429
01434 ODE_API dReal dJointGetSliderPositionRate (dJointID);
01435
01440 ODE_API void dJointGetSliderAxis (dJointID, dVector3 result);
01441
01446 ODE_API dReal dJointGetSliderParam (dJointID, int parameter);
01447
01454 ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result);
01455
01464 ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result);
01465
01470 ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result);
01471
01476 ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result);
01477
01482 ODE_API dReal dJointGetHinge2Param (dJointID, int parameter);
01483
01488 ODE_API dReal dJointGetHinge2Angle1 (dJointID);
01489
01494 ODE_API dReal dJointGetHinge2Angle1Rate (dJointID);
01495
01500 ODE_API dReal dJointGetHinge2Angle2Rate (dJointID);
01501
01508 ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result);
01509
01523 ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
01524
01529 ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result);
01530
01535 ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result);
01536
01537
01542 ODE_API dReal dJointGetUniversalParam (dJointID, int parameter);
01543
01548 ODE_API dReal dJointGetUniversalAngle1 (dJointID);
01549
01554 ODE_API dReal dJointGetUniversalAngle2 (dJointID);
01555
01560 ODE_API dReal dJointGetUniversalAngle1Rate (dJointID);
01561
01566 ODE_API dReal dJointGetUniversalAngle2Rate (dJointID);
01567
01576 ODE_API int dJointGetAMotorNumAxes (dJointID);
01577
01587 ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result);
01588
01605 ODE_API int dJointGetAMotorAxisRel (dJointID, int anum);
01606
01615 ODE_API dReal dJointGetAMotorAngle (dJointID, int anum);
01616
01625 ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum);
01626
01631 ODE_API dReal dJointGetAMotorParam (dJointID, int parameter);
01632
01646 ODE_API int dJointGetAMotorMode (dJointID);
01647
01652 ODE_API int dJointGetLMotorNumAxes (dJointID);
01653
01658 ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result);
01659
01664 ODE_API dReal dJointGetLMotorParam (dJointID, int parameter);
01665
01669 ODE_API dJointID dConnectingJoint (dBodyID, dBodyID);
01670
01674 ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*);
01675
01682 ODE_API int dAreConnected (dBodyID, dBodyID);
01683
01695 ODE_API int dAreConnectedExcluding (dBodyID, dBodyID, int joint_type);
01696
01697
01698 #ifdef __cplusplus
01699 }
01700 #endif
01701
01702 #endif