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
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