- Main Page
- Modules
- Data Structures
- Files

# 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