# ODE Declarations # # Copyright (C) 2006,2007,2008 PySoy Group # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program 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 # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program; if not, see http://www.gnu.org/licenses # # $Id$ cdef extern from "ode/ode.h" nogil : ctypedef enum : #common dEpsilon dInfinity #joint types dJointTypeNone dJointTypeBall dJointTypeHinge dJointTypeSlider dJointTypeContact dJointTypeUniversal dJointTypeHinge2 dJointTypeFixed dJointTypeNull dJointTypeAMotor dJointTypeLMotor dJointTypePlane2D dJointTypePR #joint params dParamLoStop dParamHiStop dParamVel dParamFMax dParamFudgeFactor dParamBounce dParamCFM dParamStopERP dParamStopCFM dParamSuspensionERP dParamSuspensionCFM #angular motor modes dAMotorUser dAMotorEuler #contact surface modes dContactApprox0 dContactApprox1 dContactApprox1_1 dContactApprox1_2 dContactBounce dContactFDir1 dContactMotion1 dContactMotion2 dContactMu2 dContactSlip1 dContactSlip2 dContactSoftCFM dContactSoftERP #collision.h dSphereClass dBoxClass dCapsuleClass dCylinderClass dPlaneClass dRayClass dConvexClass dGeomTransformClass dTriMeshClass dHeightfieldClass dFirstSpaceClass dSimpleSpaceClass dHashSpaceClass dQuadTreeSpaceClass dLastSpaceClass dFirstUserClass dLastUserClass dMaxUserClasses ctypedef float dReal ctypedef dReal dVector3[4] ctypedef dReal dVector4[4] ctypedef dReal dMatrix3[4*3] ctypedef dReal dMatrix4[4*4] ctypedef dReal dMatrix6[8*6] ctypedef dReal dQuaternion[4] cdef : struct dxWorld struct dxSpace struct dxBody struct dxGeom struct dxJoint struct dxJointGroup struct dxTriMeshData struct dxHeightfieldData ctypedef dxWorld* dWorldID ctypedef dxSpace* dSpaceID ctypedef dxBody* dBodyID ctypedef dxGeom* dGeomID ctypedef dxJoint* dJointID ctypedef dxJointGroup* dJointGroupID ctypedef dxTriMeshData* dTriMeshDataID ctypedef dxHeightfieldData* dHeightfieldDataID cdef struct dMass : dReal mass dVector4 c dMatrix3 I cdef struct dJointFeedback : dVector3 f1 dVector3 t1 dVector3 f2 dVector3 t2 cdef struct dContactGeom : dVector3 pos dVector3 normal dReal depth dGeomID g1, g2 int side1,side2 cdef struct dSurfaceParameters : int mode dReal mu, mu2 dReal bounce dReal bounce_vel dReal soft_erp dReal soft_cfm dReal motion1, motion2 dReal slip1, slip2 cdef struct dContact : dSurfaceParameters surface dContactGeom geom dVector3 fdir1 cdef struct dStopwatch : double time unsigned long cc[2] ctypedef void dGetAABBFn ( dGeomID, dReal ) ctypedef int dColliderFn ( dGeomId, dGeomId, int, dContactGeom*, int ) ctypedef dColliderFn* dGetColliderFnFn ( int ) ctypedef void dGeomDtorFn ( dGeomID ) ctypedef int dAABBTestFn ( dGeomID, dGeomID, dReal ) ctypedef void dMessageFunction ( int, char*, va_list ) ctypedef int dTriCallback ( dGeomID, dGeomID, int ) ctypedef void dTriArrayCallback( dGeomID, dGeomID, int*, int ) ctypedef int dTriRayCallback ( dGeomID, dGeomID, int, dReal, dReal ) ctypedef dReal dHeightfieldGetHeight( void*, int, int ) ctypedef void dNearCallback ( void*, dGeomID, dGeomID ) ctypedef void* dAllocFunction ( size_t ) ctypedef void* dReallocFunction ( void*, size_t, size_t ) ctypedef void dFreeFunction ( void*, size_t ) cdef struct dGeomClass: int bytes dGetColliderFnFn *collider dGetAABBFn *aabb dAABBTestFn *aabb_test dGeomDtorFn *dtor cdef : void dGeomTriMeshDataSet ( dTriMeshDataID, int, void* ) dTriMeshDataID dGeomTriMeshDataCreate( ) void dGeomTriMeshDataDestroy ( dTriMeshDataID ) void* dGeomTriMeshDataGet ( dTriMeshDataID, int ) void dGeomTriMeshSetLastTransform ( dGeomID, dMatrix4 ) dReal* dGeomTriMeshGetLastTransform ( dGeomID ) void dGeomTriMeshDataBuildSingle ( dTriMeshDataID, void*, int, int, void*, int, int ) void dGeomTriMeshDataBuildSingle1 ( dTriMeshDataID, void*, int, int, void*, int, int, void* ) void dGeomTriMeshDataBuildDouble ( dTriMeshDataID, void*, int, int, void*, int, int ) void dGeomTriMeshDataBuildDouble1 ( dTriMeshDataID, void*, int, int, void*, int, int, void* ) void dGeomTriMeshDataBuildSimple ( dTriMeshDataID, dReal*, int, int*, int ) void dGeomTriMeshDataBuildSimple1 ( dTriMeshDataID, dReal*, int, int*, int, int* ) void dGeomTriMeshDataPreprocess ( dTriMeshDataID ) void dGeomTriMeshDataGetBuffer ( dTriMeshDataID, unsigned char**, int* ) void dGeomTriMeshDataSetBuffer ( dTriMeshDataID, unsigned char* ) void dGeomTriMeshSetCallback ( dGeomID, dTriCallback* ) dTriCallback* dGeomTriMeshGetCallback ( dGeomID ) void dGeomTriMeshSetArrayCallback ( dGeomID, dTriArrayCallback* ) dTriArrayCallback* dGeomTriMeshGetArrayCallback( dGeomID ) void dGeomTriMeshSetRayCallback ( dGeomID, dTriRayCallback* ) dTriRayCallback* dGeomTriMeshGetRayCallback( dGeomID ) dGeomID dCreateTriMesh ( dSpaceID, dTriMeshDataID, dTriCallback*, dTriArrayCallback*, dTriRayCallback* ) void dGeomTriMeshSetData ( dGeomID, dTriMeshDataID ) dTriMeshDataID dGeomTriMeshGetData ( dGeomID ) void dGeomTriMeshEnableTC ( dGeomID, int, int ) int dGeomTriMeshIsTCEnabled ( dGeomID, int ) void dGeomTriMeshClearTCCache ( dGeomID ) dTriMeshDataID dGeomTriMeshGetTriMeshDataID( dGeomID ) void dGeomTriMeshGetTriangle ( dGeomID, int, dVector3*, dVector3*, dVector3* ) void dGeomTriMeshGetPoint ( dGeomID, int, dReal, dReal, dVector3 ) int dGeomTriMeshGetTriangleCount ( dGeomID ) void dGeomTriMeshDataUpdate ( dTriMeshDataID ) int dSafeNormalize3 ( dVector3 ) int dSafeNormalize4 ( dVector4 ) void dNormalize3 ( dVector3 ) void dNormalize4 ( dVector4 ) void dPlaneSpace ( dVector3, dVector3, dVector3 ) int dMassCheck ( dMass* ) void dMassSetZero ( dMass* ) void dMassSetParameters ( dMass*, dReal, dReal, dReal, dReal, dReal, dReal, dReal, dReal, dReal, dReal ) void dMassSetSphere ( dMass*, dReal, dReal ) void dMassSetSphereTotal ( dMass*, dReal, dReal ) void dMassSetCapsule ( dMass*, dReal, int, dReal, dReal ) void dMassSetCapsuleTotal ( dMass*, dReal, int, dReal, dReal ) void dMassSetCylinder ( dMass*, dReal, int, dReal, dReal ) void dMassSetCylinderTotal ( dMass*, dReal, int, dReal, dReal ) void dMassSetBox ( dMass*, dReal, dReal, dReal, dReal ) void dMassSetBoxTotal ( dMass*, dReal, dReal, dReal, dReal ) void dMassSetTrimesh ( dMass*, dReal, dGeomID ) void dMassSetTrimeshTotal ( dMass*, dReal, dGeomID ) void dMassAdjust ( dMass*, dReal ) void dMassTranslate ( dMass*, dReal, dReal, dReal ) void dMassRotate ( dMass*, dMatrix3 ) void dMassAdd ( dMass*, dMass* ) void dSetErrorHandler ( dMessageFunction* ) void dSetDebugHandler ( dMessageFunction* ) void dSetMessageHandler ( dMessageFunction* ) dMessageFunction* dGetErrorHandler ( ) dMessageFunction* dGetDebugHandler ( ) dMessageFunction* dGetMessageHandler ( ) void dError ( int, char*, ... ) void dDebug ( int, char*, ... ) void dMessage ( int, char*, ... ) void dStopwatchReset ( dStopwatch* ) void dStopwatchStart ( dStopwatch* ) void dStopwatchStop ( dStopwatch* ) double dStopwatchTime ( dStopwatch* ) void dTimerStart ( char* ) void dTimerNow ( char* ) void dTimerEnd ( ) void dTimerReport ( void*, int ) double dTimerTicksPerSecond ( ) double dTimerResolution ( ) void dGeomDestroy ( dGeomID ) void dGeomSetData ( dGeomID, void* ) void *dGeomGetData ( dGeomID ) void dGeomSetBody ( dGeomID, dBodyID ) dBodyID dGeomGetBody ( dGeomID ) void dGeomSetPosition ( dGeomID, dReal, dReal, dReal ) void dGeomSetRotation ( dGeomID, dMatrix3 ) void dGeomSetQuaternion ( dGeomID, dQuaternion ) dReal* dGeomGetPosition ( dGeomID ) void dGeomCopyPosition ( dGeomID, dVector3 ) dReal* dGeomGetRotation ( dGeomID ) void dGeomCopyRotation ( dGeomID, dMatrix3 ) void dGeomGetQuaternion ( dGeomID, dQuaternion ) void dGeomGetAABB ( dGeomID, dReal ) int dGeomIsSpace ( dGeomID ) dSpaceID dGeomGetSpace ( dGeomID ) int dGeomGetClass ( dGeomID ) void dGeomSetCategoryBits ( dGeomID, unsigned long ) void dGeomSetCollideBits ( dGeomID, unsigned long ) unsigned long dGeomGetCategoryBits ( dGeomID ) unsigned long dGeomGetCollideBits ( dGeomID ) void dGeomEnable ( dGeomID ) void dGeomDisable ( dGeomID ) int dGeomIsEnabled ( dGeomID ) void dGeomSetOffsetPosition ( dGeomID, dReal, dReal, dReal ) void dGeomSetOffsetRotation ( dGeomID, dMatrix3 ) void dGeomSetOffsetQuaternion ( dGeomID, dQuaternion ) void dGeomSetOffsetWorldPosition ( dGeomID, dReal, dReal, dReal ) void dGeomSetOffsetWorldRotation ( dGeomID, dMatrix3 ) void dGeomSetOffsetWorldQuaternion ( dGeomID, dQuaternion ) void dGeomClearOffset ( dGeomID ) int dGeomIsOffset ( dGeomID ) dReal* dGeomGetOffsetPosition ( dGeomID ) void dGeomCopyOffsetPosition ( dGeomID, dVector3 ) dReal* dGeomGetOffsetRotation ( dGeomID ) void dGeomCopyOffsetRotation ( dGeomID, dMatrix3 ) void dGeomGetOffsetQuaternion ( dGeomID, dQuaternion ) int dCollide ( dGeomID, dGeomID, int, dContactGeom*, int ) void dSpaceCollide ( dSpaceID, void*, dNearCallback* ) void dSpaceCollide2 ( dGeomID, dGeomID, void*, dNearCallback* ) dGeomID dCreateSphere ( dSpaceID, dReal ) void dGeomSphereSetRadius ( dGeomID, dReal ) dReal dGeomSphereGetRadius ( dGeomID ) dReal dGeomSpherePointDepth ( dGeomID, dReal, dReal, dReal ) dGeomID dCreateConvex ( dSpaceID, dReal*, unsigned int, dReal*, unsigned int, unsigned int ) void dGeomSetConvex ( dGeomID, dReal*, unsigned int, dReal*, unsigned int, unsigned int* ) dGeomID dCreateBox ( dSpaceID, dReal, dReal, dReal ) void dGeomBoxSetLengths ( dGeomID, dReal, dReal, dReal ) void dGeomBoxGetLengths ( dGeomID , dVector3 ) dReal dGeomBoxPointDepth ( dGeomID, dReal, dReal, dReal ) dGeomID dCreatePlane ( dSpaceID, dReal, dReal, dReal, dReal ) void dGeomPlaneSetParams ( dGeomID, dReal, dReal, dReal, dReal ) void dGeomPlaneGetParams ( dGeomID, dVector4 ) dReal dGeomPlanePointDepth ( dGeomID, dReal, dReal, dReal ) dGeomID dCreateCapsule ( dSpaceID, dReal, dReal ) void dGeomCapsuleSetParams ( dGeomID, dReal, dReal ) void dGeomCapsuleGetParams ( dGeomID, dReal*, dReal* ) dReal dGeomCapsulePointDepth ( dGeomID, dReal, dReal, dReal ) dGeomID dCreateCylinder ( dSpaceID, dReal, dReal ) void dGeomCylinderSetParams ( dGeomID, dReal, dReal ) void dGeomCylinderGetParams ( dGeomID, dReal*, dReal* ) dGeomID dCreateRay ( dSpaceID, dReal ) void dGeomRaySetLength ( dGeomID, dReal ) dReal dGeomRayGetLength ( dGeomID ) void dGeomRaySet ( dGeomID, dReal, dReal, dReal, dReal, dReal, dReal ) void dGeomRayGet ( dGeomID, dVector3, dVector3 ) void dGeomRaySetParams ( dGeomID, int, int ) void dGeomRayGetParams ( dGeomID, int*, int* ) void dGeomRaySetClosestHit ( dGeomID, int ) int dGeomRayGetClosestHit ( dGeomID ) dGeomID dCreateGeomTransform ( dSpaceID ) void dGeomTransformSetGeom ( dGeomID, dGeomID ) dGeomID dGeomTransformGetGeom ( dGeomID ) void dGeomTransformSetCleanup ( dGeomID , int ) int dGeomTransformGetCleanup ( dGeomID ) void dGeomTransformSetInfo ( dGeomID , int ) int dGeomTransformGetInfo ( dGeomID ) dGeomID dCreateHeightfield ( dSpaceID, dHeightfieldDataID, int ) dHeightfieldDataID dGeomHeightfieldDataCreate( ) void dGeomHeightfieldDataDestroy ( dHeightfieldDataID ) void dGeomHeightfieldDataBuildCallback( dHeightfieldDataID , void*, dHeightfieldGetHeight*, dReal, dReal, int, int, dReal, dReal, dReal, int ) void dGeomHeightfieldDataBuildByte ( dHeightfieldDataID, unsigned char*, int, dReal, dReal, int, int, dReal, dReal, dReal, int ) void dGeomHeightfieldDataBuildShort( dHeightfieldDataID, short*, int, dReal, dReal, int, int, dReal, dReal, dReal, int ) void dGeomHeightfieldDataBuildSingle( dHeightfieldDataID, float*, int, dReal, dReal, int, int, dReal, dReal, dReal, int ) void dGeomHeightfieldDataBuildDouble( dHeightfieldDataID, double*, int, dReal, dReal, int, int, dReal, dReal, dReal, int ) void dGeomHeightfieldDataSetBounds ( dHeightfieldDataID, dReal, dReal ) void dGeomHeightfieldSetHeightfieldData( dGeomID, dHeightfieldDataID ) dHeightfieldDataID dGeomHeightfieldGetHeightfieldData( dGeomID ) void dClosestLineSegmentPoints ( dVector3, dVector3, dVector3, dVector3, dVector3, dVector3 ) int dBoxTouchesBox ( dVector3, dMatrix3, dVector3, dVector3, dMatrix3, dVector3 ) int dBoxBox ( dVector3, dMatrix3, dVector3, dVector3, dMatrix3, dVector3, dVector3, dReal*, int*, int, dContactGeom*, int ) void dInfiniteAABB ( dGeomID, dReal ) void dInitODE ( ) void dCloseODE ( ) int dCreateGeomClass ( dGeomClass* ) void* dGeomGetClassData ( dGeomID ) dGeomID dCreateGeom ( int ) dSpaceID dSimpleSpaceCreate ( dSpaceID ) dSpaceID dHashSpaceCreate ( dSpaceID ) dSpaceID dQuadTreeSpaceCreate ( dSpaceID, dVector3, dVector3, int ) void dSpaceDestroy ( dSpaceID ) void dHashSpaceSetLevels ( dSpaceID, int, int ) void dHashSpaceGetLevels ( dSpaceID, int*, int* ) void dSpaceSetCleanup ( dSpaceID, int ) int dSpaceGetCleanup ( dSpaceID ) void dSpaceAdd ( dSpaceID, dGeomID ) void dSpaceRemove ( dSpaceID, dGeomID ) int dSpaceQuery ( dSpaceID, dGeomID ) void dSpaceClean ( dSpaceID ) int dSpaceGetNumGeoms ( dSpaceID ) dGeomID dSpaceGetGeom ( dSpaceID, int ) void dRSetIdentity ( dMatrix3 ) void dRFromAxisAndAngle ( dMatrix3, dReal, dReal, dReal, dReal ) void dRFromEulerAngles ( dMatrix3, dReal, dReal, dReal ) void dRFrom2Axes ( dMatrix3, dReal, dReal, dReal, dReal, dReal, dReal ) void dRFromZAxis ( dMatrix3, dReal, dReal, dReal ) void dQSetIdentity ( dQuaternion ) void dQFromAxisAndAngle ( dQuaternion, dReal, dReal, dReal, dReal ) void dQMultiply0 ( dQuaternion, dQuaternion, dQuaternion ) void dQMultiply1 ( dQuaternion, dQuaternion, dQuaternion ) void dQMultiply2 ( dQuaternion, dQuaternion, dQuaternion ) void dQMultiply3 ( dQuaternion, dQuaternion, dQuaternion ) void dRfromQ ( dMatrix3, dQuaternion ) void dQfromR ( dQuaternion, dMatrix3 ) void dDQfromW ( dReal, dVector3, dQuaternion ) dWorldID dWorldCreate ( ) void dWorldDestroy ( dWorldID ) void dWorldSetGravity ( dWorldID, dReal, dReal, dReal ) void dWorldGetGravity ( dWorldID, dVector3 ) void dWorldSetERP ( dWorldID, dReal ) dReal dWorldGetERP ( dWorldID ) void dWorldSetCFM ( dWorldID, dReal ) dReal dWorldGetCFM ( dWorldID ) void dWorldStep ( dWorldID, dReal ) void dWorldImpulseToForce ( dWorldID, dReal, dReal, dReal, dReal, dVector3 ) void dWorldQuickStep ( dWorldID, dReal ) void dWorldSetQuickStepNumIterations ( dWorldID, int ) int dWorldGetQuickStepNumIterations ( dWorldID ) void dWorldSetQuickStepW ( dWorldID, dReal ) dReal dWorldGetQuickStepW ( dWorldID ) void dWorldSetContactMaxCorrectingVel ( dWorldID, dReal ) dReal dWorldGetContactMaxCorrectingVel ( dWorldID ) void dWorldSetContactSurfaceLayer (dWorldID, dReal ) dReal dWorldGetContactSurfaceLayer ( dWorldID ) void dWorldStepFast1 ( dWorldID, dReal, int ) void dWorldSetAutoEnableDepthSF1 ( dWorldID, int ) int dWorldGetAutoEnableDepthSF1 ( dWorldID ) dReal dWorldGetAutoDisableLinearThreshold ( dWorldID ) void dWorldSetAutoDisableLinearThreshold ( dWorldID, dReal ) dReal dWorldGetAutoDisableAngularThreshold ( dWorldID ) void dWorldSetAutoDisableAngularThreshold ( dWorldID, dReal ) dReal dWorldGetAutoDisableLinearAverageThreshold ( dWorldID ) void dWorldSetAutoDisableLinearAverageThreshold ( dWorldID, dReal ) dReal dWorldGetAutoDisableAngularAverageThreshold ( dWorldID ) void dWorldSetAutoDisableAngularAverageThreshold ( dWorldID, dReal ) int dWorldGetAutoDisableAverageSamplesCount ( dWorldID ) void dWorldSetAutoDisableAverageSamplesCount ( dWorldID, unsigned int ) int dWorldGetAutoDisableSteps ( dWorldID ) void dWorldSetAutoDisableSteps ( dWorldID, int ) dReal dWorldGetAutoDisableTime ( dWorldID ) void dWorldSetAutoDisableTime ( dWorldID, dReal ) int dWorldGetAutoDisableFlag ( dWorldID ) void dWorldSetAutoDisableFlag ( dWorldID, int ) dReal dBodyGetAutoDisableLinearThreshold ( dBodyID ) void dBodySetAutoDisableLinearThreshold ( dBodyID, dReal ) dReal dBodyGetAutoDisableAngularThreshold ( dBodyID ) void dBodySetAutoDisableAngularThreshold ( dBodyID, dReal ) int dBodyGetAutoDisableAverageSamplesCount ( dBodyID ) void dBodySetAutoDisableAverageSamplesCount ( dBodyID, unsigned int ) int dBodyGetAutoDisableSteps ( dBodyID ) void dBodySetAutoDisableSteps ( dBodyID, int ) dReal dBodyGetAutoDisableTime ( dBodyID ) void dBodySetAutoDisableTime ( dBodyID, dReal ) int dBodyGetAutoDisableFlag ( dBodyID ) void dBodySetAutoDisableFlag ( dBodyID, int ) void dBodySetAutoDisableDefaults ( dBodyID ) dWorldID dBodyGetWorld ( dBodyID ) dBodyID dBodyCreate ( dWorldID ) void dBodyDestroy ( dBodyID ) void dBodySetData ( dBodyID, void* ) void* dBodyGetData ( dBodyID ) void dBodySetPosition ( dBodyID, dReal, dReal, dReal ) void dBodySetRotation ( dBodyID, dMatrix3 ) void dBodySetQuaternion ( dBodyID, dQuaternion ) void dBodySetLinearVel ( dBodyID, dReal, dReal, dReal ) void dBodySetAngularVel ( dBodyID, dReal, dReal, dReal ) dReal* dBodyGetPosition ( dBodyID ) void dBodyCopyPosition ( dBodyID, dVector3 ) dReal* dBodyGetRotation ( dBodyID ) void dBodyCopyRotation ( dBodyID, dMatrix3 ) dReal* dBodyGetQuaternion ( dBodyID ) void dBodyCopyQuaternion ( dBodyID, dQuaternion ) dReal* dBodyGetLinearVel ( dBodyID ) dReal* dBodyGetAngularVel ( dBodyID ) void dBodySetMass ( dBodyID, dMass* ) void dBodyGetMass ( dBodyID, dMass* ) void dBodyAddForce ( dBodyID, dReal, dReal, dReal ) void dBodyAddTorque ( dBodyID, dReal, dReal, dReal ) void dBodyAddRelForce ( dBodyID, dReal, dReal, dReal ) void dBodyAddRelTorque ( dBodyID, dReal, dReal, dReal ) void dBodyAddForceAtPos ( dBodyID, dReal, dReal, dReal ) void dBodyAddForceAtRelPos ( dBodyID, dReal, dReal, dReal, dReal, dReal, dReal ) void dBodyAddRelForceAtPos ( dBodyID, dReal, dReal, dReal ) void dBodyAddRelForceAtRelPos ( dBodyID, dReal, dReal, dReal ) dReal* dBodyGetForce ( dBodyID ) void dBodySetForce ( dBodyID, dReal, dReal, dReal ) void dBodySetTorque ( dBodyID, dReal, dReal, dReal ) void dBodyGetRelPointPos ( dBodyID, dReal, dReal, dReal, dVector3 ) void dBodyGetRelPointVel ( dBodyID, dReal, dReal, dReal, dVector3 ) void dBodyGetPointVel ( dBodyID, dReal, dReal, dReal, dVector3 ) void dBodyGetPosRelPoint ( dBodyID, dReal, dReal, dReal, dVector3 ) void dBodyVectorToWorld ( dBodyID, dReal, dReal, dReal, dVector3 ) void dBodyVectorFromWorld ( dBodyID, dReal, dReal, dReal, dVector3 ) void dBodySetFiniteRotationMode ( dBodyID, int ) void dBodySetFiniteRotationAxis ( dBodyID, dReal, dReal, dReal ) int dBodyGetFiniteRotationMode ( dBodyID ) void dBodyGetFiniteRotationAxis ( dBodyID, dVector3 ) int dBodyGetNumJoints ( dBodyID ) dJointID dBodyGetJoint ( dBodyID, int ) void dBodyEnable ( dBodyID ) void dBodyDisable ( dBodyID ) int dBodyIsEnabled ( dBodyID ) void dBodySetGravityMode ( dBodyID, int ) int dBodyGetGravityMode ( dBodyID ) dJointID dJointCreateBall ( dWorldID, dJointGroupID ) dJointID dJointCreateHinge ( dWorldID, dJointGroupID ) dJointID dJointCreateSlider ( dWorldID, dJointGroupID ) dJointID dJointCreateContact ( dWorldID, dJointGroupID, dContact* ) dJointID dJointCreateHinge2 ( dWorldID, dJointGroupID ) dJointID dJointCreateUniversal ( dWorldID, dJointGroupID ) dJointID dJointCreatePR ( dWorldID, dJointGroupID ) dJointID dJointCreateFixed ( dWorldID, dJointGroupID ) dJointID dJointCreateNull ( dWorldID, dJointGroupID ) dJointID dJointCreateAMotor ( dWorldID, dJointGroupID ) dJointID dJointCreateLMotor ( dWorldID, dJointGroupID ) dJointID dJointCreatePlane2D ( dWorldID, dJointGroupID ) void dJointDestroy ( dJointID ) dJointGroupID dJointGroupCreate ( int ) void dJointGroupDestroy ( dJointGroupID ) void dJointGroupEmpty ( dJointGroupID ) void dJointAttach ( dJointID, dBodyID, dBodyID ) void dJointSetData ( dJointID, void* ) void* dJointGetData ( dJointID ) int dJointGetType ( dJointID ) dBodyID dJointGetBody ( dJointID, int ) void dJointSetFeedback ( dJointID, dJointFeedback* ) dJointFeedback* dJointGetFeedback ( dJointID ) void dJointSetBallAnchor ( dJointID, dReal, dReal, dReal ) void dJointSetBallAnchor2 ( dJointID, dReal, dReal, dReal ) void dJointSetBallParam ( dJointID, int, dReal ) void dJointSetHingeAnchor ( dJointID, dReal, dReal, dReal ) void dJointSetHingeAnchorDelta ( dJointID, dReal, dReal, dReal, dReal, dReal, dReal ) void dJointSetHingeAxis ( dJointID, dReal, dReal, dReal ) void dJointSetHingeParam ( dJointID, int, dReal ) void dJointAddHingeTorque ( dJointID, dReal ) void dJointSetSliderAxis ( dJointID, dReal, dReal, dReal ) void dJointSetSliderAxisDelta ( dJointID, dReal, dReal, dReal, dReal, dReal, dReal ) void dJointSetSliderParam ( dJointID, int, dReal ) void dJointAddSliderForce ( dJointID, dReal ) void dJointSetHinge2Anchor ( dJointID, dReal, dReal, dReal ) void dJointSetHinge2Axis1 ( dJointID, dReal, dReal, dReal ) void dJointSetHinge2Axis2 ( dJointID, dReal, dReal, dReal ) void dJointSetHinge2Param ( dJointID, int, dReal ) void dJointAddHinge2Torques ( dJointID, dReal, dReal ) void dJointSetUniversalAnchor ( dJointID, dReal, dReal, dReal ) void dJointSetUniversalAxis1 ( dJointID, dReal, dReal, dReal ) void dJointSetUniversalAxis2 ( dJointID, dReal, dReal, dReal ) void dJointSetUniversalParam ( dJointID, int, dReal ) void dJointAddUniversalTorques ( dJointID, dReal, dReal ) void dJointSetPRAnchor ( dJointID, dReal, dReal, dReal ) void dJointSetPRAxis1 ( dJointID, dReal, dReal, dReal ) void dJointSetPRAxis2 ( dJointID, dReal, dReal, dReal ) void dJointSetPRParam ( dJointID, int, dReal ) void dJointAddPRTorque ( dJointID, dReal ) void dJointSetFixed ( dJointID ) void dJointSetFixedParam ( dJointID, int, dReal ) void dJointSetAMotorNumAxes ( dJointID, int ) void dJointSetAMotorAxis ( dJointID, int, int, dReal, dReal, dReal ) void dJointSetAMotorAngle ( dJointID, int, dReal ) void dJointSetAMotorParam ( dJointID, int, dReal ) void dJointSetAMotorMode ( dJointID, int ) void dJointAddAMotorTorques ( dJointID, dReal, dReal, dReal ) void dJointSetLMotorNumAxes ( dJointID, int ) void dJointSetLMotorAxis ( dJointID, int, int, dReal, dReal, dReal ) void dJointSetLMotorParam ( dJointID, int, dReal ) void dJointSetPlane2DXParam ( dJointID, int, dReal ) void dJointSetPlane2DYParam ( dJointID, int, dReal ) void dJointSetPlane2DAngleParam ( dJointID, int, dReal ) void dJointGetBallAnchor ( dJointID, dVector3 ) void dJointGetBallAnchor2 ( dJointID, dVector3 ) dReal dJointGetBallParam ( dJointID, int ) void dJointGetHingeAnchor ( dJointID, dVector3 ) void dJointGetHingeAnchor2 ( dJointID, dVector3 ) void dJointGetHingeAxis ( dJointID, dVector3 ) dReal dJointGetHingeParam ( dJointID, int ) dReal dJointGetHingeAngle ( dJointID ) dReal dJointGetHingeAngleRate ( dJointID ) dReal dJointGetSliderPosition ( dJointID ) dReal dJointGetSliderPositionRate ( dJointID ) void dJointGetSliderAxis ( dJointID, dVector3 ) dReal dJointGetSliderParam ( dJointID, int) void dJointGetHinge2Anchor ( dJointID, dVector3 ) void dJointGetHinge2Anchor2 ( dJointID, dVector3 ) void dJointGetHinge2Axis1 ( dJointID, dVector3 ) void dJointGetHinge2Axis2 ( dJointID, dVector3 ) dReal dJointGetHinge2Param ( dJointID, int ) dReal dJointGetHinge2Angle1 ( dJointID ) dReal dJointGetHinge2Angle1Rate ( dJointID ) dReal dJointGetHinge2Angle2Rate ( dJointID ) void dJointGetUniversalAnchor ( dJointID, dVector3 ) void dJointGetUniversalAnchor2 ( dJointID, dVector3 ) void dJointGetUniversalAxis1 ( dJointID, dVector3 ) void dJointGetUniversalAxis2 ( dJointID, dVector3 ) dReal dJointGetUniversalParam ( dJointID, int ) void dJointGetUniversalAngles ( dJointID, dReal*, dReal* ) dReal dJointGetUniversalAngle1 ( dJointID ) dReal dJointGetUniversalAngle2 ( dJointID ) dReal dJointGetUniversalAngle1Rate ( dJointID ) dReal dJointGetUniversalAngle2Rate ( dJointID ) void dJointGetPRAnchor ( dJointID, dVector3 ) dReal dJointGetPRPosition ( dJointID ) dReal dJointGetPRPositionRate ( dJointID ) void dJointGetPRAxis1 ( dJointID, dVector3 ) void dJointGetPRAxis2 ( dJointID, dVector3 ) dReal dJointGetPRParam ( dJointID, int ) int dJointGetAMotorNumAxes ( dJointID ) void dJointGetAMotorAxis ( dJointID, int, dVector3 ) int dJointGetAMotorAxisRel ( dJointID, int ) dReal dJointGetAMotorAngle ( dJointID, int ) dReal dJointGetAMotorAngleRate ( dJointID, int ) dReal dJointGetAMotorParam ( dJointID, int ) int dJointGetAMotorMode ( dJointID ) int dJointGetLMotorNumAxes ( dJointID ) void dJointGetLMotorAxis ( dJointID, int, dVector3 ) dReal dJointGetLMotorParam ( dJointID, int ) dReal dJointGetFixedParam ( dJointID, int ) dJointID dConnectingJoint ( dBodyID, dBodyID ) int dConnectingJointList ( dBodyID, dBodyID, dJointID* ) int dAreConnected ( dBodyID, dBodyID ) int dAreConnectedExcluding ( dBodyID, dBodyID, int ) void dSetAllocHandler ( dAllocFunction* ) void dSetReallocHandler ( dReallocFunction* ) void dSetFreeHandler ( dFreeFunction* ) dAllocFunction* dGetAllocHandler ( ) dReallocFunction* dGetReallocHandler ( ) dFreeFunction* dGetFreeHandler ( ) void* dAlloc ( size_t ) void* dRealloc ( void*, size_t, size_t ) void dFree ( void*, size_t ) void dWorldExportDIF ( dWorldID, void*, char* ) int dTestRand ( ) unsigned long dRand ( ) unsigned long dRandGetSeed ( ) void dRandSetSeed ( unsigned long ) int dRandInt ( int ) dReal dRandReal ( ) void dPrintMatrix ( dReal*, int, int, char*, void* ) void dMakeRandomVector ( dReal*, int, dReal ) void dMakeRandomMatrix ( dReal*, int, int, dReal ) void dClearUpperTriangle ( dReal*, int ) dReal dMaxDifference ( dReal*, dReal*, int, int ) dReal dMaxDifferenceLowerTriangle ( dReal*, dReal*, int ) void dSetZero ( dReal*, int ) void dSetValue ( dReal*, int, dReal ) dReal dDot ( dReal*, dReal*, int ) void dMultiply0 ( dReal*, dReal*, dReal*, int, int, int ) void dMultiply1 ( dReal*, dReal*, dReal*, int, int, int ) void dMultiply2 ( dReal*, dReal*, dReal*, int, int, int ) int dFactorCholesky ( dReal*, int ) void dSolveCholesky ( dReal*, dReal*, int ) int dInvertPDMatrix ( dReal*, dReal*, int ) int dIsPositiveDefinite ( dReal*, int ) void dFactorLDLT ( dReal*, dReal*, int, int ) void dSolveL1 ( dReal*, dReal*, int, int ) void dSolveL1T ( dReal*, dReal*, int, int ) void dVectorScale ( dReal*, dReal*, int ) void dSolveLDLT ( dReal*, dReal*, dReal*, int, int ) void dLDLTAddTL ( dReal*, dReal*, dReal*, int, int ) void dLDLTRemove ( dReal**, int*, dReal*, dReal*, int, int, int, int ) void dRemoveRowCol ( dReal*, int, int, int ) dReal dDISTANCE ( dVector3, dVector3 ) dReal dSqrt ( dReal ) dReal dRecipSqrt ( dReal ) dReal dSin ( dReal ) dReal dCos ( dReal ) dReal dFabs ( dReal ) dReal dAtan2 ( dReal, dReal ) dReal dFMod ( dReal, dReal )