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
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
01000 ODE_API void dBodySetMovedCallback(dBodyID b, void (*callback)(dBodyID));
01001
01002
01012 ODE_API dGeomID dBodyGetFirstGeom(dBodyID b);
01013
01014
01022 ODE_API dGeomID dBodyGetNextGeom(dGeomID g);
01023
01024
01025
01101 ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID);
01102
01109 ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID);
01110
01117 ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID);
01118
01125 ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *);
01126
01133 ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
01134
01141 ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
01142
01149 ODE_API dJointID dJointCreatePR (dWorldID, dJointGroupID);
01150
01158 ODE_API dJointID dJointCreatePiston (dWorldID, dJointGroupID);
01159
01166 ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID);
01167
01168 ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID);
01169
01176 ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
01177
01184 ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID);
01185
01192 ODE_API dJointID dJointCreatePlane2D (dWorldID, dJointGroupID);
01193
01202 ODE_API void dJointDestroy (dJointID);
01203
01204
01210 ODE_API dJointGroupID dJointGroupCreate (int max_size);
01211
01218 ODE_API void dJointGroupDestroy (dJointGroupID);
01219
01227 ODE_API void dJointGroupEmpty (dJointGroupID);
01228
01242 ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2);
01243
01248 ODE_API void dJointSetData (dJointID, void *data);
01249
01254 ODE_API void *dJointGetData (dJointID);
01255
01274 ODE_API int dJointGetType (dJointID);
01275
01286 ODE_API dBodyID dJointGetBody (dJointID, int index);
01287
01295 ODE_API void dJointSetFeedback (dJointID, dJointFeedback *);
01296
01301 ODE_API dJointFeedback *dJointGetFeedback (dJointID);
01302
01310 ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z);
01311
01316 ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z);
01317
01322 ODE_API void dJointSetBallParam (dJointID, int parameter, dReal value);
01323
01328 ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z);
01329
01330 ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01331
01336 ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z);
01337
01342 ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value);
01343
01352 ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque);
01353
01358 ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z);
01359
01363 ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01364
01369 ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value);
01370
01379 ODE_API void dJointAddSliderForce(dJointID joint, dReal force);
01380
01385 ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z);
01386
01391 ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z);
01392
01397 ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z);
01398
01403 ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value);
01404
01411 ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2);
01412
01417 ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z);
01418
01423 ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z);
01424
01429 ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z);
01430
01435 ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value);
01436
01443 ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2);
01444
01445
01450 ODE_API void dJointSetPRAnchor (dJointID, dReal x, dReal y, dReal z);
01451
01456 ODE_API void dJointSetPRAxis1 (dJointID, dReal x, dReal y, dReal z);
01457
01462 ODE_API void dJointSetPRAxis2 (dJointID, dReal x, dReal y, dReal z);
01463
01470 ODE_API void dJointSetPRParam (dJointID, int parameter, dReal value);
01471
01480 ODE_API void dJointAddPRTorque (dJointID j, dReal torque);
01481
01482
01487 ODE_API void dJointSetPistonAnchor (dJointID, dReal x, dReal y, dReal z);
01488
01493 ODE_API void dJointSetPistonAxis (dJointID, dReal x, dReal y, dReal z);
01494
01508 ODE_API void dJointSetPistonAxisDelta (dJointID j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az);
01509
01514 ODE_API void dJointSetPistonParam (dJointID, int parameter, dReal value);
01515
01524 ODE_API void dJointAddPistonForce (dJointID joint, dReal force);
01525
01526
01533 ODE_API void dJointSetFixed (dJointID);
01534
01535
01536
01537
01538
01539
01540 ODE_API void dJointSetFixedParam (dJointID, int parameter, dReal value);
01541
01547 ODE_API void dJointSetAMotorNumAxes (dJointID, int num);
01548
01553 ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel,
01554 dReal x, dReal y, dReal z);
01555
01565 ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle);
01566
01571 ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value);
01572
01577 ODE_API void dJointSetAMotorMode (dJointID, int mode);
01578
01587 ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3);
01588
01594 ODE_API void dJointSetLMotorNumAxes (dJointID, int num);
01595
01607 ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z);
01608
01613 ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value);
01614
01618 ODE_API void dJointSetPlane2DXParam (dJointID, int parameter, dReal value);
01619
01624 ODE_API void dJointSetPlane2DYParam (dJointID, int parameter, dReal value);
01625
01629 ODE_API void dJointSetPlane2DAngleParam (dJointID, int parameter, dReal value);
01630
01637 ODE_API void dJointGetBallAnchor (dJointID, dVector3 result);
01638
01649 ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result);
01650
01655 ODE_API dReal dJointGetBallParam (dJointID, int parameter);
01656
01664 ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result);
01665
01674 ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result);
01675
01680 ODE_API void dJointGetHingeAxis (dJointID, dVector3 result);
01681
01686 ODE_API dReal dJointGetHingeParam (dJointID, int parameter);
01687
01698 ODE_API dReal dJointGetHingeAngle (dJointID);
01699
01704 ODE_API dReal dJointGetHingeAngleRate (dJointID);
01705
01713 ODE_API dReal dJointGetSliderPosition (dJointID);
01714
01719 ODE_API dReal dJointGetSliderPositionRate (dJointID);
01720
01725 ODE_API void dJointGetSliderAxis (dJointID, dVector3 result);
01726
01731 ODE_API dReal dJointGetSliderParam (dJointID, int parameter);
01732
01739 ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result);
01740
01749 ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result);
01750
01755 ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result);
01756
01761 ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result);
01762
01767 ODE_API dReal dJointGetHinge2Param (dJointID, int parameter);
01768
01773 ODE_API dReal dJointGetHinge2Angle1 (dJointID);
01774
01779 ODE_API dReal dJointGetHinge2Angle1Rate (dJointID);
01780
01785 ODE_API dReal dJointGetHinge2Angle2Rate (dJointID);
01786
01793 ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result);
01794
01808 ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result);
01809
01814 ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result);
01815
01820 ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result);
01821
01822
01827 ODE_API dReal dJointGetUniversalParam (dJointID, int parameter);
01828
01840 ODE_API void dJointGetUniversalAngles (dJointID, dReal *angle1, dReal *angle2);
01841
01846 ODE_API dReal dJointGetUniversalAngle1 (dJointID);
01847
01852 ODE_API dReal dJointGetUniversalAngle2 (dJointID);
01853
01858 ODE_API dReal dJointGetUniversalAngle1Rate (dJointID);
01859
01864 ODE_API dReal dJointGetUniversalAngle2Rate (dJointID);
01865
01866
01867
01874 ODE_API void dJointGetPRAnchor (dJointID, dVector3 result);
01875
01887 ODE_API dReal dJointGetPRPosition (dJointID);
01888
01894 ODE_API dReal dJointGetPRPositionRate (dJointID);
01895
01896
01901 ODE_API void dJointGetPRAxis1 (dJointID, dVector3 result);
01902
01907 ODE_API void dJointGetPRAxis2 (dJointID, dVector3 result);
01908
01913 ODE_API dReal dJointGetPRParam (dJointID, int parameter);
01914
01915
01916
01917
01918
01919
01927 ODE_API dReal dJointGetPistonPosition (dJointID);
01928
01933 ODE_API dReal dJointGetPistonPositionRate (dJointID);
01934
01942 ODE_API dReal dJointGetPistonAngle (dJointID);
01943
01948 ODE_API dReal dJointGetPistonAngleRate (dJointID);
01949
01950
01960 ODE_API void dJointGetPistonAnchor (dJointID, dVector3 result);
01961
01975 ODE_API void dJointGetPistonAnchor2 (dJointID, dVector3 result);
01976
01981 ODE_API void dJointGetPistonAxis (dJointID, dVector3 result);
01982
01987 ODE_API dReal dJointGetPistonParam (dJointID, int parameter);
01988
01989
01998 ODE_API int dJointGetAMotorNumAxes (dJointID);
01999
02009 ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result);
02010
02027 ODE_API int dJointGetAMotorAxisRel (dJointID, int anum);
02028
02037 ODE_API dReal dJointGetAMotorAngle (dJointID, int anum);
02038
02047 ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum);
02048
02053 ODE_API dReal dJointGetAMotorParam (dJointID, int parameter);
02054
02068 ODE_API int dJointGetAMotorMode (dJointID);
02069
02074 ODE_API int dJointGetLMotorNumAxes (dJointID);
02075
02080 ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result);
02081
02086 ODE_API dReal dJointGetLMotorParam (dJointID, int parameter);
02087
02092 ODE_API dReal dJointGetFixedParam (dJointID, int parameter);
02093
02094
02098 ODE_API dJointID dConnectingJoint (dBodyID, dBodyID);
02099
02103 ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*);
02104
02111 ODE_API int dAreConnected (dBodyID, dBodyID);
02112
02126 ODE_API int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint_type);
02127
02128
02129 #ifdef __cplusplus
02130 }
02131 #endif
02132
02133 #endif