deimos.ode.objects

D bindings for ODE * * C header port by Daniel "q66" Kolesa <quaker66@gmail.com> * * Open Dynamics Engine, Copyright (C) 2001-2003 Russell L. Smith. * All rights reserved. Email: russ@q12.org Web: www.q12.org * * This library is free software; you can redistribute it and/or * modify it under the terms of EITHER: * (1) The GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at * your option) any later version. The text of the GNU Lesser * General Public License is included with this library in the * file LICENSE.TXT. * (2) The BSD-style license that is included with this library in * the file LICENSE-BSD.TXT. * * This library 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 files * LICENSE.TXT and LICENSE-BSD.TXT for more details. * *

Members

Functions

dAreConnected
int dAreConnected(dBodyID , dBodyID )

@brief Utility function @return 1 if the two bodies are connected together by a joint, otherwise return 0. @ingroup joints

dAreConnectedExcluding
int dAreConnectedExcluding(dBodyID body1, dBodyID body2, int joint_type)

@brief Utility function @return 1 if the two bodies are connected together by a joint that does not have type @arg{joint_type}, otherwise return 0. @param body1 A body to check. @param body2 A body to check. @param joint_type is a dJointTypeXXX constant. This is useful for deciding whether to add contact joints between two bodies: if they are already connected by non-contact joints then it may not be appropriate to add contacts, however it is okay to add more contact between- bodies that already have contacts. @ingroup joints

dBodyAddForce
void dBodyAddForce(dBodyID , dReal fx, dReal fy, dReal fz)

@brief Add force at centre of mass of body in absolute coordinates. @ingroup bodies

dBodyAddForceAtPos
void dBodyAddForceAtPos(dBodyID , dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz)

@brief Add force at specified point in body in global coordinates. @ingroup bodies

dBodyAddForceAtRelPos
void dBodyAddForceAtRelPos(dBodyID , dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz)

@brief Add force at specified point in body in local coordinates. @ingroup bodies

dBodyAddRelForce
void dBodyAddRelForce(dBodyID , dReal fx, dReal fy, dReal fz)

@brief Add force at centre of mass of body in coordinates relative to body. @ingroup bodies

dBodyAddRelForceAtPos
void dBodyAddRelForceAtPos(dBodyID , dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz)

@brief Add force at specified point in body in global coordinates. @ingroup bodies

dBodyAddRelForceAtRelPos
void dBodyAddRelForceAtRelPos(dBodyID , dReal fx, dReal fy, dReal fz, dReal px, dReal py, dReal pz)

@brief Add force at specified point in body in local coordinates. @ingroup bodies

dBodyAddRelTorque
void dBodyAddRelTorque(dBodyID , dReal fx, dReal fy, dReal fz)

@brief Add torque at centre of mass of body in coordinates relative to body. @ingroup bodies

dBodyAddTorque
void dBodyAddTorque(dBodyID , dReal fx, dReal fy, dReal fz)

@brief Add torque at centre of mass of body in absolute coordinates. @ingroup bodies

dBodyCopyPosition
void dBodyCopyPosition(dBodyID dbody, dVector3 pos)

@brief Copy the position of a body into a vector. @ingroup bodies @param body the body to query @param pos a copy of the body position @sa dBodyGetPosition

dBodyCopyQuaternion
void dBodyCopyQuaternion(dBodyID dbody, dQuaternion quat)

@brief Copy the orientation of a body into a quaternion. @ingroup bodies @param body the body to query @param quat a copy of the orientation quaternion @sa dBodyGetQuaternion

dBodyCopyRotation
void dBodyCopyRotation(dBodyID , dMatrix3 R)

@brief Copy the rotation of a body. @ingroup bodies @param body the body to query @param R a copy of the rotation matrix @sa dBodyGetRotation

dBodyCreate
dBodyID dBodyCreate(dWorldID )

@brief Create a body in given world. @remarks Default mass parameters are at position (0,0,0). @ingroup bodies

dBodyDestroy
void dBodyDestroy(dBodyID )

@brief Destroy a body. @remarks All joints that are attached to this body will be put into limbo: i.e. unattached and not affecting the simulation, but they will NOT be deleted. @ingroup bodies

dBodyDisable
void dBodyDisable(dBodyID )

@brief Manually disable a body. @ingroup bodies @remarks A disabled body that is connected through a joint to an enabled body will be automatically re-enabled at the next simulation step.

dBodyEnable
void dBodyEnable(dBodyID )

@brief Manually enable a body. @param dBodyID identification of body. @ingroup bodies

dBodyGetAngularDamping
dReal dBodyGetAngularDamping(dBodyID b)

@brief Get the body's angular damping scale. @ingroup bodies damping @remarks If the body's angular damping scale was not set, this function returns the world's angular damping scale.

dBodyGetAngularDampingThreshold
dReal dBodyGetAngularDampingThreshold(dBodyID b)

@brief Get the body's angular damping threshold. @ingroup bodies damping

dBodyGetAngularVel
const(dReal)* dBodyGetAngularVel(dBodyID )

@brief Get the angular velocity of a body. @ingroup bodies

dBodyGetAutoDisableAngularThreshold
dReal dBodyGetAutoDisableAngularThreshold(dBodyID )

@brief Get auto disable angular average threshold. @ingroup bodies disable @return the threshold

dBodyGetAutoDisableAverageSamplesCount
int dBodyGetAutoDisableAverageSamplesCount(dBodyID )

@brief Get auto disable average size (samples count). @ingroup bodies disable @return the nr of steps/size.

dBodyGetAutoDisableFlag
int dBodyGetAutoDisableFlag(dBodyID )

@brief Get auto disable flag. @ingroup bodies disable @return 0 or 1

dBodyGetAutoDisableLinearThreshold
dReal dBodyGetAutoDisableLinearThreshold(dBodyID )

@brief Get auto disable linear average threshold. @ingroup bodies disable @return the threshold

dBodyGetAutoDisableSteps
int dBodyGetAutoDisableSteps(dBodyID )

@brief Get auto steps a body must be thought of as idle to disable @ingroup bodies disable @return the nr of steps

dBodyGetAutoDisableTime
dReal dBodyGetAutoDisableTime(dBodyID )

@brief Get auto disable time. @ingroup bodies disable @return nr of seconds

dBodyGetData
void* dBodyGetData(dBodyID )

@brief Get the body's user-data pointer. @ingroup bodies @return a pointer to the user's data.

dBodyGetFiniteRotationAxis
void dBodyGetFiniteRotationAxis(dBodyID , dVector3 result)

@brief Get the finite rotation axis. @param result will contain the axis. @ingroup bodies

dBodyGetFiniteRotationMode
int dBodyGetFiniteRotationMode(dBodyID )

@brief Get the way a body's orientation is updated each timestep. @ingroup bodies @return the mode 0 (infitesimal) or 1 (finite).

dBodyGetFirstGeom
dGeomID dBodyGetFirstGeom(dBodyID b)

@brief Return the first geom associated with the body.

dBodyGetForce
const(dReal)* dBodyGetForce(dBodyID )

@brief Return the current accumulated force vector. @return points to an array of 3 reals. @remarks The returned values are pointers to internal data structures, so the vectors are only valid until any changes are made to the rigid body system. @ingroup bodies

dBodyGetGravityMode
int dBodyGetGravityMode(dBodyID b)

@brief Get whether the body is influenced by the world's gravity or not. @ingroup bodies @return nonzero means gravity affects this body.

dBodyGetGyroscopicMode
int dBodyGetGyroscopicMode(dBodyID b)

@brief Get the body's gyroscopic state.

dBodyGetJoint
dJointID dBodyGetJoint(dBodyID , int index)

@brief Return a joint attached to this body, given by index. @ingroup bodies @param index valid range is 0 to n-1 where n is the value returned by dBodyGetNumJoints().

dBodyGetLinearDamping
dReal dBodyGetLinearDamping(dBodyID b)

@brief Get the body's linear damping scale. @ingroup bodies damping

dBodyGetLinearDampingThreshold
dReal dBodyGetLinearDampingThreshold(dBodyID b)

@brief Get the body's linear damping threshold. @ingroup bodies damping

dBodyGetLinearVel
const(dReal)* dBodyGetLinearVel(dBodyID )

@brief Get the linear velocity of a body. @ingroup bodies

dBodyGetMass
void dBodyGetMass(dBodyID , dMass* mass)

@brief Get the mass of a body. @ingroup bodies

dBodyGetMaxAngularSpeed
dReal dBodyGetMaxAngularSpeed(dBodyID b)

@brief Get the body's maximum angular speed. @ingroup damping bodies @sa dWorldGetMaxAngularSpeed()

dBodyGetNextGeom
dGeomID dBodyGetNextGeom(dGeomID g)

@brief returns the next geom associated with the same body. @param g a geom attached to some body. @return the next geom attached to the same body, or 0. @sa dBodyGetFirstGeom @ingroup bodies

dBodyGetNumJoints
int dBodyGetNumJoints(dBodyID b)

@brief Get the number of joints that are attached to this body. @ingroup bodies @return nr of joints

dBodyGetPointVel
void dBodyGetPointVel(dBodyID , dReal px, dReal py, dReal pz, dVector3 result)

@brief Get velocity vector in global coords of a globally specified point on a body. @ingroup bodies @param result will contain the result.

dBodyGetPosRelPoint
void dBodyGetPosRelPoint(dBodyID , dReal px, dReal py, dReal pz, dVector3 result)

@brief takes a point in global coordinates and returns the point's position in body-relative coordinates. @remarks This is the inverse of dBodyGetRelPointPos() @ingroup bodies @param result will contain the result.

dBodyGetPosition
const(dReal)* dBodyGetPosition(dBodyID )

@brief Get the position of a body. @ingroup bodies @remarks When getting, the returned values are pointers to internal data structures, so the vectors are valid until any changes are made to the rigid body system structure. @sa dBodyCopyPosition

dBodyGetQuaternion
const(dReal)* dBodyGetQuaternion(dBodyID )

@brief Get the rotation of a body. @ingroup bodies @return pointer to 4 scalars that represent the quaternion.

dBodyGetRelPointPos
void dBodyGetRelPointPos(dBodyID , dReal px, dReal py, dReal pz, dVector3 result)

@brief Get world position of a relative point on body. @ingroup bodies @param result will contain the result.

dBodyGetRelPointVel
void dBodyGetRelPointVel(dBodyID , dReal px, dReal py, dReal pz, dVector3 result)

@brief Get velocity vector in global coords of a relative point on body. @ingroup bodies @param result will contain the result.

dBodyGetRotation
const(dReal)* dBodyGetRotation(dBodyID )

@brief Get the rotation of a body. @ingroup bodies @return pointer to a 4x3 rotation matrix.

dBodyGetTorque
const(dReal)* dBodyGetTorque(dBodyID )

@brief Return the current accumulated torque vector. @return points to an array of 3 reals. @remarks The returned values are pointers to internal data structures, so the vectors are only valid until any changes are made to the rigid body system. @ingroup bodies

dBodyGetWorld
dWorldID dBodyGetWorld(dBodyID )

@brief Retrieves the world attached to te given body. @remarks

dBodyIsEnabled
int dBodyIsEnabled(dBodyID )

@brief Check wether a body is enabled. @ingroup bodies @return 1 if a body is currently enabled or 0 if it is disabled.

dBodyIsKinematic
int dBodyIsKinematic(dBodyID )

@brief Check wether a body is in kinematic state. @ingroup bodies @return 1 if a body is kinematic or 0 if it is dynamic.

dBodySetAngularDamping
void dBodySetAngularDamping(dBodyID b, dReal scale)

@brief Set the body's angular damping scale. @param scale The angular damping scale. Should be in the interval [0, 1]. @ingroup bodies damping @remarks From now on the body will not use the world's angular damping scale until dBodyResetAngularDamping() is called. @sa dBodyResetAngularDamping()

dBodySetAngularDampingThreshold
void dBodySetAngularDampingThreshold(dBodyID b, dReal threshold)

@brief Set the body's angular damping threshold. @param threshold The angular threshold to be used. Damping is only used if the angular speed is above this limit. @ingroup bodies damping

dBodySetAngularVel
void dBodySetAngularVel(dBodyID , dReal x, dReal y, dReal z)

@brief Set the angular velocity of a body. @ingroup bodies

dBodySetAutoDisableAngularThreshold
void dBodySetAutoDisableAngularThreshold(dBodyID , dReal angular_average_threshold)

@brief Set auto disable angular average threshold. @ingroup bodies disable @return the threshold

dBodySetAutoDisableAverageSamplesCount
void dBodySetAutoDisableAverageSamplesCount(dBodyID , uint average_samples_count)

@brief Set auto disable average buffer size (average steps). @ingroup bodies disable @param average_samples_count the nr of samples to review.

dBodySetAutoDisableDefaults
void dBodySetAutoDisableDefaults(dBodyID )

@brief Set auto disable defaults. @remarks Set the values for the body to those set as default for the world. @ingroup bodies disable

dBodySetAutoDisableFlag
void dBodySetAutoDisableFlag(dBodyID , int do_auto_disable)

@brief Set auto disable flag. @ingroup bodies disable @param do_auto_disable 0 or 1

dBodySetAutoDisableLinearThreshold
void dBodySetAutoDisableLinearThreshold(dBodyID , dReal linear_average_threshold)

@brief Set auto disable linear average threshold. @ingroup bodies disable @return the threshold

dBodySetAutoDisableSteps
void dBodySetAutoDisableSteps(dBodyID , int steps)

@brief Set auto disable steps. @ingroup bodies disable @param steps the nr of steps.

dBodySetAutoDisableTime
void dBodySetAutoDisableTime(dBodyID , dReal time)

@brief Set auto disable time. @ingroup bodies disable @param time nr of seconds.

dBodySetDamping
void dBodySetDamping(dBodyID b, dReal linear_scale, dReal angular_scale)

@brief Convenience function to set linear and angular scales at once. @param linear_scale The linear damping scale. Should be in the interval [0, 1]. @param angular_scale The angular damping scale. Should be in the interval [0, 1]. @ingroup bodies damping @sa dBodySetLinearDamping() dBodySetAngularDamping()

dBodySetDampingDefaults
void dBodySetDampingDefaults(dBodyID b)

@brief Resets the damping settings to the current world's settings. @ingroup bodies damping

dBodySetData
void dBodySetData(dBodyID , void* data)

@brief Set the body's user-data pointer. @ingroup bodies @param data arbitraty pointer

dBodySetDynamic
void dBodySetDynamic(dBodyID )

@brief Set rigid body to dynamic state (default). @param dBodyID identification of body. @ingroup bodies

dBodySetFiniteRotationAxis
void dBodySetFiniteRotationAxis(dBodyID , dReal x, dReal y, dReal z)

@brief sets the finite rotation axis for a body. @ingroup bodies @remarks This is axis only has meaning when the finite rotation mode is set If this axis is zero (0,0,0), full finite rotations are performed on the body. If this axis is nonzero, the body is rotated by performing a partial finite rotation along the axis direction followed by an infinitesimal rotation along an orthogonal direction. @remarks This can be useful to alleviate certain sources of error caused by quickly spinning bodies. For example, if a car wheel is rotating at high speed you can call this function with the wheel's hinge axis as the argument to try and improve its behavior.

dBodySetFiniteRotationMode
void dBodySetFiniteRotationMode(dBodyID , int mode)

@brief controls the way a body's orientation is updated at each timestep. @ingroup bodies @param mode can be 0 or 1: \li 0: An `infinitesimal'' orientation update is used. This is fast to compute, but it can occasionally cause inaccuracies for bodies that are rotating at high speed, especially when those bodies are joined to other bodies. This is the default for every new body that is created. \li 1: A `finite'' orientation update is used. This is more costly to compute, but will be more accurate for high speed rotations. @remarks Note however that high speed rotations can result in many types of error in a simulation, and the finite mode will only fix one of those sources of error.

dBodySetForce
void dBodySetForce(dBodyID b, dReal x, dReal y, dReal z)

@brief Set the body force accumulation vector. @remarks This is mostly useful to zero the force and torque for deactivated bodies before they are reactivated, in the case where the force-adding functions were called on them while they were deactivated. @ingroup bodies

dBodySetGravityMode
void dBodySetGravityMode(dBodyID b, int mode)

@brief Set whether the body is influenced by the world's gravity or not. @ingroup bodies @param mode when nonzero gravity affects this body. @remarks Newly created bodies are always influenced by the world's gravity.

dBodySetGyroscopicMode
void dBodySetGyroscopicMode(dBodyID b, int enabled)

@brief Enable/disable the body's gyroscopic term.

dBodySetKinematic
void dBodySetKinematic(dBodyID )

@brief Set rigid body to kinematic state. When in kinematic state the body isn't simulated as a dynamic body (it's "unstoppable", doesn't respond to forces), but can still affect dynamic bodies (e.g. in joints). Kinematic bodies can be controlled by position and velocity. @note A kinematic body has infinite mass. If you set its mass to something else, it loses the kinematic state and behaves as a normal dynamic body. @param dBodyID identification of body. @ingroup bodies

dBodySetLinearDamping
void dBodySetLinearDamping(dBodyID b, dReal scale)

@brief Set the body's linear damping scale. @param scale The linear damping scale. Should be in the interval [0, 1]. @ingroup bodies damping @remarks From now on the body will not use the world's linear damping scale until dBodySetDampingDefaults() is called. @sa dBodySetDampingDefaults()

dBodySetLinearDampingThreshold
void dBodySetLinearDampingThreshold(dBodyID b, dReal threshold)

@brief Set the body's linear damping threshold. @param threshold The linear threshold to be used. Damping is only applied if the linear speed is above this limit. @ingroup bodies damping

dBodySetLinearVel
void dBodySetLinearVel(dBodyID , dReal x, dReal y, dReal z)

@brief Set the linear velocity of a body. @ingroup bodies

dBodySetMass
void dBodySetMass(dBodyID , dMass* mass)

@brief Set the mass of a body. @ingroup bodies

dBodySetMaxAngularSpeed
void dBodySetMaxAngularSpeed(dBodyID b, dReal max_speed)

@brief Set the body's maximum angular speed. @ingroup damping bodies @sa dWorldSetMaxAngularSpeed() dBodyResetMaxAngularSpeed() The default value is dInfinity, but it's a good idea to limit it at less than 500 if the body has the gyroscopic term enabled.

dBodySetMovedCallback
void dBodySetMovedCallback(dBodyID b, void function(dBodyID) callback)

@brief Set the 'moved' callback of a body.

dBodySetPosition
void dBodySetPosition(dBodyID , dReal x, dReal y, dReal z)

@brief Set position of a body. @remarks After setting, the outcome of the simulation is undefined if the new configuration is inconsistent with the joints/constraints that are present. @ingroup bodies

dBodySetQuaternion
void dBodySetQuaternion(dBodyID , dQuaternion q)

@brief Set the orientation of a body. @ingroup bodies @remarks After setting, the outcome of the simulation is undefined if the new configuration is inconsistent with the joints/constraints that are present.

dBodySetRotation
void dBodySetRotation(dBodyID , dMatrix3 R)

@brief Set the orientation of a body. @ingroup bodies @remarks After setting, the outcome of the simulation is undefined if the new configuration is inconsistent with the joints/constraints that are present.

dBodySetTorque
void dBodySetTorque(dBodyID b, dReal x, dReal y, dReal z)

@brief Set the body torque accumulation vector. @remarks This is mostly useful to zero the force and torque for deactivated bodies before they are reactivated, in the case where the force-adding functions were called on them while they were deactivated. @ingroup bodies

dBodyVectorFromWorld
void dBodyVectorFromWorld(dBodyID , dReal px, dReal py, dReal pz, dVector3 result)

@brief Convert from world to local coordinates. @ingroup bodies @param result will contain the result.

dBodyVectorToWorld
void dBodyVectorToWorld(dBodyID , dReal px, dReal py, dReal pz, dVector3 result)

@brief Convert from local to world coordinates. @ingroup bodies @param result will contain the result.

dConnectingJoint
dJointID dConnectingJoint(dBodyID , dBodyID )

@ingroup joints

dConnectingJointList
int dConnectingJointList(dBodyID , dBodyID , dJointID* )

@ingroup joints

dJointAddAMotorTorques
void dJointAddAMotorTorques(dJointID , dReal torque1, dReal torque2, dReal torque3)

@brief Applies torque0 about the AMotor's axis 0, torque1 about the AMotor's axis 1, and torque2 about the AMotor's axis 2. @remarks If the motor has fewer than three axes, the higher torques are ignored. This function is just a wrapper for dBodyAddTorque(). @ingroup joints

dJointAddHinge2Torques
void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2)

@brief Applies torque1 about the hinge2's axis 1, torque2 about the hinge2's axis 2. @remarks This function is just a wrapper for dBodyAddTorque(). @ingroup joints

dJointAddHingeTorque
void dJointAddHingeTorque(dJointID joint, dReal torque)

@brief Applies the torque about the hinge axis.

dJointAddPRTorque
void dJointAddPRTorque(dJointID j, dReal torque)

@brief Applies the torque about the rotoide axis of the PR joint

dJointAddPUTorque
void dJointAddPUTorque(dJointID j, dReal torque)

@brief Applies the torque about the rotoide axis of the PU joint

dJointAddPistonForce
void dJointAddPistonForce(dJointID joint, dReal force)

@brief Applies the given force in the slider's direction.

dJointAddSliderForce
void dJointAddSliderForce(dJointID joint, dReal force)

@brief Applies the given force in the slider's direction.

dJointAddUniversalTorques
void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2)

@brief Applies torque1 about the universal's axis 1, torque2 about the universal's axis 2. @remarks This function is just a wrapper for dBodyAddTorque(). @ingroup joints

dJointAttach
void dJointAttach(dJointID , dBodyID body1, dBodyID body2)

@brief Attach the joint to some new bodies. @ingroup joints

dJointCreateAMotor
dJointID dJointCreateAMotor(dWorldID , dJointGroupID )

@brief Create a new joint of the A-motor type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateBall
dJointID dJointCreateBall(dWorldID , dJointGroupID )

@brief Create a new joint of the ball type. @ingroup joints @remarks The joint is initially in "limbo" (i.e. it has no effect on the simulation) because it does not connect to any bodies. @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateContact
dJointID dJointCreateContact(dWorldID , dJointGroupID , dContact* )

@brief Create a new joint of the contact type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateFixed
dJointID dJointCreateFixed(dWorldID , dJointGroupID )

@brief Create a new joint of the fixed type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateHinge
dJointID dJointCreateHinge(dWorldID , dJointGroupID )

@brief Create a new joint of the hinge type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateHinge2
dJointID dJointCreateHinge2(dWorldID , dJointGroupID )

@brief Create a new joint of the hinge2 type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateLMotor
dJointID dJointCreateLMotor(dWorldID , dJointGroupID )

@brief Create a new joint of the L-motor type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateNull
dJointID dJointCreateNull(dWorldID , dJointGroupID )
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
dJointCreatePR
dJointID dJointCreatePR(dWorldID , dJointGroupID )

@brief Create a new joint of the PR (Prismatic and Rotoide) type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreatePU
dJointID dJointCreatePU(dWorldID , dJointGroupID )

@brief Create a new joint of the PU (Prismatic and Universal) type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreatePiston
dJointID dJointCreatePiston(dWorldID , dJointGroupID )

@brief Create a new joint of the Piston type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreatePlane2D
dJointID dJointCreatePlane2D(dWorldID , dJointGroupID )

@brief Create a new joint of the plane-2d type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateSlider
dJointID dJointCreateSlider(dWorldID , dJointGroupID )

@brief Create a new joint of the slider type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointCreateUniversal
dJointID dJointCreateUniversal(dWorldID , dJointGroupID )

@brief Create a new joint of the universal type. @ingroup joints @param dJointGroupID set to 0 to allocate the joint normally. If it is nonzero the joint is allocated in the given joint group.

dJointDestroy
void dJointDestroy(dJointID )

@brief Destroy a joint. @ingroup joints

dJointDisable
void dJointDisable(dJointID )

@brief Manually disable a joint. @ingroup joints @remarks A disabled joint will not affect the simulation, but will maintain the anchors and axes so it can be enabled later.

dJointEnable
void dJointEnable(dJointID )

@brief Manually enable a joint. @param dJointID identification of joint. @ingroup joints

dJointGetAMotorAngle
dReal dJointGetAMotorAngle(dJointID , int anum)

@brief Get the current angle for axis. @remarks In dAMotorUser mode this is simply the value that was set with dJointSetAMotorAngle(). In dAMotorEuler mode this is the corresponding euler angle. @ingroup joints

dJointGetAMotorAngleRate
dReal dJointGetAMotorAngleRate(dJointID , int anum)

@brief Get the current angle rate for axis anum. @remarks In dAMotorUser mode this is always zero, as not enough information is available. In dAMotorEuler mode this is the corresponding euler angle rate. @ingroup joints

dJointGetAMotorAxis
void dJointGetAMotorAxis(dJointID , int anum, dVector3 result)

@brief Get the AMotor axes. @param anum selects the axis to change (0,1 or 2). @param rel Each axis can have one of three `relative orientation'' modes. \li 0: The axis is anchored to the global frame. \li 1: The axis is anchored to the first body. \li 2: The axis is anchored to the second body. @ingroup joints

dJointGetAMotorAxisRel
int dJointGetAMotorAxisRel(dJointID , int anum)

@brief Get axis @remarks The axis vector is always specified in global coordinates regardless of the setting of rel. There are two GetAMotorAxis functions, one to return the axis and one to return the relative mode.

dJointGetAMotorMode
int dJointGetAMotorMode(dJointID )

@brief Get the angular motor mode. @param mode must be one of the following constants: \li dAMotorUser The AMotor axes and joint angle settings are entirely controlled by the user. This is the default mode. \li dAMotorEuler Euler angles are automatically computed. The axis a1 is also automatically computed. The AMotor axes must be set correctly when in this mode, as described below. When this mode is initially set the current relative orientations of the bodies will correspond to all euler angles at zero. @ingroup joints

dJointGetAMotorNumAxes
int dJointGetAMotorNumAxes(dJointID )

@brief Get the number of angular axes that will be controlled by the AMotor. @param num can range from 0 (which effectively deactivates the joint) to 3. This is automatically set to 3 in dAMotorEuler mode. @ingroup joints

dJointGetAMotorParam
dReal dJointGetAMotorParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetBallAnchor
void dJointGetBallAnchor(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates.

dJointGetBallAnchor2
void dJointGetBallAnchor2(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates.

dJointGetBallParam
dReal dJointGetBallParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetBody
dBodyID dJointGetBody(dJointID , int index)

@brief Return the bodies that this joint connects. @ingroup joints @param index return the first (0) or second (1) body. @remarks If one of these returned body IDs is zero, the joint connects the other body to the static environment. If both body IDs are zero, the joint is in `limbo'' and has no effect on the simulation.

dJointGetData
void* dJointGetData(dJointID )

@brief Get the user-data pointer @ingroup joints

dJointGetFeedback
dJointFeedback* dJointGetFeedback(dJointID )

@brief Gets the datastructure that is to receive the feedback. @ingroup joints

dJointGetFixedParam
dReal dJointGetFixedParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetHinge2Anchor
void dJointGetHinge2Anchor(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. @return the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. @ingroup joints

dJointGetHinge2Anchor2
void dJointGetHinge2Anchor2(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. This returns the point on body 2. If the joint is perfectly satisfied, this will return the same value as dJointGetHinge2Anchor. If not, this value will be slightly different. This can be used, for example, to see how far the joint has come apart. @ingroup joints

dJointGetHinge2Angle1
dReal dJointGetHinge2Angle1(dJointID )

@brief Get angle @ingroup joints

dJointGetHinge2Angle1Rate
dReal dJointGetHinge2Angle1Rate(dJointID )

@brief Get time derivative of angle @ingroup joints

dJointGetHinge2Angle2Rate
dReal dJointGetHinge2Angle2Rate(dJointID )

@brief Get time derivative of angle @ingroup joints

dJointGetHinge2Axis1
void dJointGetHinge2Axis1(dJointID , dVector3 result)

@brief Get joint axis @ingroup joints

dJointGetHinge2Axis2
void dJointGetHinge2Axis2(dJointID , dVector3 result)

@brief Get joint axis @ingroup joints

dJointGetHinge2Param
dReal dJointGetHinge2Param(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetHingeAnchor
void dJointGetHingeAnchor(dJointID , dVector3 result)

@brief Get the hinge anchor point, in world coordinates.

dJointGetHingeAnchor2
void dJointGetHingeAnchor2(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. @return The point on body 2. If the joint is perfectly satisfied, this will return the same value as dJointGetHingeAnchor(). If not, this value will be slightly different. This can be used, for example, to see how far the joint has come apart. @ingroup joints

dJointGetHingeAngle
dReal dJointGetHingeAngle(dJointID )

@brief Get the hinge angle.

dJointGetHingeAngleRate
dReal dJointGetHingeAngleRate(dJointID )

@brief Get the hinge angle time derivative. @ingroup joints

dJointGetHingeAxis
void dJointGetHingeAxis(dJointID , dVector3 result)

@brief get axis @ingroup joints

dJointGetHingeParam
dReal dJointGetHingeParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetLMotorAxis
void dJointGetLMotorAxis(dJointID , int anum, dVector3 result)

@brief Get axis. @ingroup joints

dJointGetLMotorNumAxes
int dJointGetLMotorNumAxes(dJointID )

@brief Get nr of axes. @ingroup joints

dJointGetLMotorParam
dReal dJointGetLMotorParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetNumBodies
int dJointGetNumBodies(dJointID )

@brief Return the number of bodies attached to the joint @ingroup joints

dJointGetPRAnchor
void dJointGetPRAnchor(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. @return the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. @ingroup joints

dJointGetPRAngle
dReal dJointGetPRAngle(dJointID )

@brief Get the PR angular position (i.e. the twist between the 2 bodies)

dJointGetPRAngleRate
dReal dJointGetPRAngleRate(dJointID )

@brief Get the PR angular position's time derivative

dJointGetPRAxis1
void dJointGetPRAxis1(dJointID , dVector3 result)

@brief Get the prismatic axis @ingroup joints

dJointGetPRAxis2
void dJointGetPRAxis2(dJointID , dVector3 result)

@brief Get the Rotoide axis @ingroup joints

dJointGetPRParam
dReal dJointGetPRParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetPRPosition
dReal dJointGetPRPosition(dJointID )

@brief Get the PR linear position (i.e. the prismatic's extension)

dJointGetPRPositionRate
dReal dJointGetPRPositionRate(dJointID )

@brief Get the PR linear position's time derivative

dJointGetPUAnchor
void dJointGetPUAnchor(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. @return the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. @ingroup joints

dJointGetPUAngle1
dReal dJointGetPUAngle1(dJointID )

@brief Get angle @ingroup joints

dJointGetPUAngle1Rate
dReal dJointGetPUAngle1Rate(dJointID )

@brief * @brief Get time derivative of angle1

dJointGetPUAngle2
dReal dJointGetPUAngle2(dJointID )

@brief Get angle @ingroup joints

dJointGetPUAngle2Rate
dReal dJointGetPUAngle2Rate(dJointID )

@brief * @brief Get time derivative of angle2

dJointGetPUAngles
void dJointGetPUAngles(dJointID , dReal* angle1, dReal* angle2)

@brief Get both angles at the same time. @ingroup joints

dJointGetPUAxis1
void dJointGetPUAxis1(dJointID , dVector3 result)

@brief Get the first axis of the universal component of the joint @ingroup joints

dJointGetPUAxis2
void dJointGetPUAxis2(dJointID , dVector3 result)

@brief Get the second axis of the Universal component of the joint @ingroup joints

dJointGetPUAxis3
void dJointGetPUAxis3(dJointID , dVector3 result)

@brief Get the prismatic axis @ingroup joints

dJointGetPUAxisP
void dJointGetPUAxisP(dJointID id, dVector3 result)

@brief Get the prismatic axis @ingroup joints

dJointGetPUParam
dReal dJointGetPUParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetPUPosition
dReal dJointGetPUPosition(dJointID )

@brief Get the PU linear position (i.e. the prismatic's extension)

dJointGetPUPositionRate
dReal dJointGetPUPositionRate(dJointID )

@brief Get the PR linear position's time derivative

dJointGetPistonAnchor
void dJointGetPistonAnchor(dJointID , dVector3 result)

@brief Get the joint anchor

dJointGetPistonAnchor2
void dJointGetPistonAnchor2(dJointID , dVector3 result)

@brief Get the joint anchor w.r.t. body 2

dJointGetPistonAngle
dReal dJointGetPistonAngle(dJointID )

@brief Get the Piston angular position (i.e. the twist between the 2 bodies)

dJointGetPistonAngleRate
dReal dJointGetPistonAngleRate(dJointID )

@brief Get the piston angular position's time derivative. @ingroup joints

dJointGetPistonAxis
void dJointGetPistonAxis(dJointID , dVector3 result)

@brief Get the prismatic axis (This is also the rotoide axis. @ingroup joints

dJointGetPistonParam
dReal dJointGetPistonParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetPistonPosition
dReal dJointGetPistonPosition(dJointID )

@brief Get the Piston linear position (i.e. the piston's extension)

dJointGetPistonPositionRate
dReal dJointGetPistonPositionRate(dJointID )

@brief Get the piston linear position's time derivative. @ingroup joints

dJointGetSliderAxis
void dJointGetSliderAxis(dJointID , dVector3 result)

@brief Get the slider axis @ingroup joints

dJointGetSliderParam
dReal dJointGetSliderParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGetSliderPosition
dReal dJointGetSliderPosition(dJointID )

@brief Get the slider linear position (i.e. the slider's extension)

dJointGetSliderPositionRate
dReal dJointGetSliderPositionRate(dJointID )

@brief Get the slider linear position's time derivative. @ingroup joints

dJointGetType
dJointType dJointGetType(dJointID )

@brief Get the type of the joint @ingroup joints @return the type, being one of these: \li dJointTypeBall \li dJointTypeHinge \li dJointTypeSlider \li dJointTypeContact \li dJointTypeUniversal \li dJointTypeHinge2 \li dJointTypeFixed \li dJointTypeNull \li dJointTypeAMotor \li dJointTypeLMotor \li dJointTypePlane2D \li dJointTypePR \li dJointTypePU \li dJointTypePiston

dJointGetUniversalAnchor
void dJointGetUniversalAnchor(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. @return the point on body 1. If the joint is perfectly satisfied, this will be the same as the point on body 2. @ingroup joints

dJointGetUniversalAnchor2
void dJointGetUniversalAnchor2(dJointID , dVector3 result)

@brief Get the joint anchor point, in world coordinates. @return This returns the point on body 2. @remarks You can think of the ball and socket part of a universal joint as trying to keep the result of dJointGetBallAnchor() and dJointGetBallAnchor2() the same. If the joint is perfectly satisfied, this function will return the same value as dJointGetUniversalAnchor() to within roundoff errors. dJointGetUniversalAnchor2() can be used, along with dJointGetUniversalAnchor(), to see how far the joint has come apart. @ingroup joints

dJointGetUniversalAngle1
dReal dJointGetUniversalAngle1(dJointID )

@brief Get angle @ingroup joints

dJointGetUniversalAngle1Rate
dReal dJointGetUniversalAngle1Rate(dJointID )

@brief Get time derivative of angle @ingroup joints

dJointGetUniversalAngle2
dReal dJointGetUniversalAngle2(dJointID )

@brief Get angle @ingroup joints

dJointGetUniversalAngle2Rate
dReal dJointGetUniversalAngle2Rate(dJointID )

@brief Get time derivative of angle @ingroup joints

dJointGetUniversalAngles
void dJointGetUniversalAngles(dJointID , dReal* angle1, dReal* angle2)

@brief Get both angles at the same time. @ingroup joints

dJointGetUniversalAxis1
void dJointGetUniversalAxis1(dJointID , dVector3 result)

@brief Get axis @ingroup joints

dJointGetUniversalAxis2
void dJointGetUniversalAxis2(dJointID , dVector3 result)

@brief Get axis @ingroup joints

dJointGetUniversalParam
dReal dJointGetUniversalParam(dJointID , int parameter)

@brief get joint parameter @ingroup joints

dJointGroupCreate
dJointGroupID dJointGroupCreate(int max_size)

@brief Create a joint group @ingroup joints @param max_size deprecated. Set to 0.

dJointGroupDestroy
void dJointGroupDestroy(dJointGroupID )

@brief Destroy a joint group. @ingroup joints

dJointGroupEmpty
void dJointGroupEmpty(dJointGroupID )

@brief Empty a joint group. @ingroup joints

dJointIsEnabled
int dJointIsEnabled(dJointID )

@brief Check wether a joint is enabled. @ingroup joints @return 1 if a joint is currently enabled or 0 if it is disabled.

dJointSetAMotorAngle
void dJointSetAMotorAngle(dJointID , int anum, dReal angle)

@brief Tell the AMotor what the current angle is along axis anum.

dJointSetAMotorAxis
void dJointSetAMotorAxis(dJointID , int anum, int rel, dReal x, dReal y, dReal z)

@brief set axis @ingroup joints

dJointSetAMotorMode
void dJointSetAMotorMode(dJointID , int mode)

@brief set mode @ingroup joints

dJointSetAMotorNumAxes
void dJointSetAMotorNumAxes(dJointID , int num)

@brief set the nr of axes @param num 0..3 @ingroup joints

dJointSetAMotorParam
void dJointSetAMotorParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetBallAnchor
void dJointSetBallAnchor(dJointID , dReal x, dReal y, dReal z)

@brief Set the joint anchor point. @ingroup joints

dJointSetBallAnchor2
void dJointSetBallAnchor2(dJointID , dReal x, dReal y, dReal z)

@brief Set the joint anchor point. @ingroup joints

dJointSetBallParam
void dJointSetBallParam(dJointID , int parameter, dReal value)

@brief Param setting for Ball joints @ingroup joints

dJointSetData
void dJointSetData(dJointID , void* data)

@brief Set the user-data pointer @ingroup joints

dJointSetFeedback
void dJointSetFeedback(dJointID , dJointFeedback* )

@brief Sets the datastructure that is to receive the feedback.

dJointSetFixed
void dJointSetFixed(dJointID )

@brief Call this on the fixed joint after it has been attached to remember the current desired relative offset and desired relative rotation between the bodies. @ingroup joints

dJointSetFixedParam
void dJointSetFixedParam(dJointID , int parameter, dReal value)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
dJointSetHinge2Anchor
void dJointSetHinge2Anchor(dJointID , dReal x, dReal y, dReal z)

@brief set anchor @ingroup joints

dJointSetHinge2Axis1
void dJointSetHinge2Axis1(dJointID , dReal x, dReal y, dReal z)

@brief set axis @ingroup joints

dJointSetHinge2Axis2
void dJointSetHinge2Axis2(dJointID , dReal x, dReal y, dReal z)

@brief set axis @ingroup joints

dJointSetHinge2Param
void dJointSetHinge2Param(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetHingeAnchor
void dJointSetHingeAnchor(dJointID , dReal x, dReal y, dReal z)

@brief Set hinge anchor parameter. @ingroup joints

dJointSetHingeAnchorDelta
void dJointSetHingeAnchorDelta(dJointID , dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az)
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
dJointSetHingeAxis
void dJointSetHingeAxis(dJointID , dReal x, dReal y, dReal z)

@brief Set hinge axis. @ingroup joints

dJointSetHingeAxisOffset
void dJointSetHingeAxisOffset(dJointID j, dReal x, dReal y, dReal z, dReal angle)

@brief Set the Hinge axis as if the 2 bodies were already at angle appart. @ingroup joints

dJointSetHingeParam
void dJointSetHingeParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetLMotorAxis
void dJointSetLMotorAxis(dJointID , int anum, int rel, dReal x, dReal y, dReal z)

@brief Set the AMotor axes. @param anum selects the axis to change (0,1 or 2). @param rel Each axis can have one of three `relative orientation'' modes \li 0: The axis is anchored to the global frame. \li 1: The axis is anchored to the first body. \li 2: The axis is anchored to the second body. @remarks The axis vector is always specified in global coordinates regardless of the setting of rel. @ingroup joints

dJointSetLMotorNumAxes
void dJointSetLMotorNumAxes(dJointID , int num)

@brief Set the number of axes that will be controlled by the LMotor. @param num can range from 0 (which effectively deactivates the joint) to 3. @ingroup joints

dJointSetLMotorParam
void dJointSetLMotorParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetPRAnchor
void dJointSetPRAnchor(dJointID , dReal x, dReal y, dReal z)

@brief set anchor @ingroup joints

dJointSetPRAxis1
void dJointSetPRAxis1(dJointID , dReal x, dReal y, dReal z)

@brief set the axis for the prismatic articulation @ingroup joints

dJointSetPRAxis2
void dJointSetPRAxis2(dJointID , dReal x, dReal y, dReal z)

@brief set the axis for the rotoide articulation @ingroup joints

dJointSetPRParam
void dJointSetPRParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetPUAnchor
void dJointSetPUAnchor(dJointID , dReal x, dReal y, dReal z)

@brief set anchor @ingroup joints

dJointSetPUAnchorOffset
void dJointSetPUAnchorOffset(dJointID , dReal x, dReal y, dReal z, dReal dx, dReal dy, dReal dz)

@brief Set the PU anchor as if the 2 bodies were already at [dx, dy, dz] appart. @ingroup joints

dJointSetPUAxis1
void dJointSetPUAxis1(dJointID , dReal x, dReal y, dReal z)

@brief set the axis for the first axis or the universal articulation @ingroup joints

dJointSetPUAxis2
void dJointSetPUAxis2(dJointID , dReal x, dReal y, dReal z)

@brief set the axis for the second axis or the universal articulation @ingroup joints

dJointSetPUAxis3
void dJointSetPUAxis3(dJointID , dReal x, dReal y, dReal z)

@brief set the axis for the prismatic articulation @ingroup joints

dJointSetPUAxisP
void dJointSetPUAxisP(dJointID id, dReal x, dReal y, dReal z)

@brief set the axis for the prismatic articulation @ingroup joints @note This function was added for convenience it is the same as dJointSetPUAxis3

dJointSetPUParam
void dJointSetPUParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetPistonAnchor
void dJointSetPistonAnchor(dJointID , dReal x, dReal y, dReal z)

@brief set the joint anchor @ingroup joints

dJointSetPistonAnchorOffset
void dJointSetPistonAnchorOffset(dJointID j, dReal x, dReal y, dReal z, dReal dx, dReal dy, dReal dz)

@brief Set the Piston anchor as if the 2 bodies were already at [dx,dy, dz] appart. @ingroup joints

dJointSetPistonAxis
void dJointSetPistonAxis(dJointID , dReal x, dReal y, dReal z)

* @brief set the joint axis @ingroup joints

dJointSetPistonParam
void dJointSetPistonParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetPlane2DAngleParam
void dJointSetPlane2DAngleParam(dJointID , int parameter, dReal value)

@ingroup joints

dJointSetPlane2DXParam
void dJointSetPlane2DXParam(dJointID , int parameter, dReal value)

@ingroup joints

dJointSetPlane2DYParam
void dJointSetPlane2DYParam(dJointID , int parameter, dReal value)

@ingroup joints

dJointSetSliderAxis
void dJointSetSliderAxis(dJointID , dReal x, dReal y, dReal z)

@brief set the joint axis @ingroup joints

dJointSetSliderAxisDelta
void dJointSetSliderAxisDelta(dJointID , dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az)

@ingroup joints

dJointSetSliderParam
void dJointSetSliderParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dJointSetUniversalAnchor
void dJointSetUniversalAnchor(dJointID , dReal x, dReal y, dReal z)

@brief set anchor @ingroup joints

dJointSetUniversalAxis1
void dJointSetUniversalAxis1(dJointID , dReal x, dReal y, dReal z)

@brief set axis @ingroup joints

dJointSetUniversalAxis1Offset
void dJointSetUniversalAxis1Offset(dJointID , dReal x, dReal y, dReal z, dReal offset1, dReal offset2)

@brief Set the Universal axis1 as if the 2 bodies were already at offset1 and offset2 appart with respect to axis1 and axis2. @ingroup joints

dJointSetUniversalAxis2
void dJointSetUniversalAxis2(dJointID , dReal x, dReal y, dReal z)

@brief set axis @ingroup joints

dJointSetUniversalAxis2Offset
void dJointSetUniversalAxis2Offset(dJointID , dReal x, dReal y, dReal z, dReal offset1, dReal offset2)

@brief Set the Universal axis2 as if the 2 bodies were already at offset1 and offset2 appart with respect to axis1 and axis2. @ingroup joints

dJointSetUniversalParam
void dJointSetUniversalParam(dJointID , int parameter, dReal value)

@brief set joint parameter @ingroup joints

dWorldCleanupWorkingMemory
void dWorldCleanupWorkingMemory(dWorldID w)

@brief Release internal working memory allocated for world

dWorldCreate
dWorldID dWorldCreate()

@brief Create a new, empty world and return its ID number. @return an identifier @ingroup world

dWorldDestroy
void dWorldDestroy(dWorldID world)

@brief Destroy a world and everything in it.

dWorldGetAngularDamping
dReal dWorldGetAngularDamping(dWorldID w)

@brief Get the world's angular damping scale. @ingroup damping

dWorldGetAngularDampingThreshold
dReal dWorldGetAngularDampingThreshold(dWorldID w)

@brief Get the world's angular damping threshold. @ingroup damping

dWorldGetAutoDisableAngularAverageThreshold
dReal dWorldGetAutoDisableAngularAverageThreshold(dWorldID )

@brief Get auto disable angular average threshold for newly created bodies. @ingroup disable @return the threshold

dWorldGetAutoDisableAngularThreshold
dReal dWorldGetAutoDisableAngularThreshold(dWorldID )

@brief Get auto disable angular threshold for newly created bodies. @ingroup disable @return the threshold

dWorldGetAutoDisableAverageSamplesCount
int dWorldGetAutoDisableAverageSamplesCount(dWorldID )

@brief Get auto disable sample count for newly created bodies. @ingroup disable @return number of samples used

dWorldGetAutoDisableFlag
int dWorldGetAutoDisableFlag(dWorldID )

@brief Get auto disable flag for newly created bodies. @ingroup disable @return 0 or 1

dWorldGetAutoDisableLinearAverageThreshold
dReal dWorldGetAutoDisableLinearAverageThreshold(dWorldID )

@brief Get auto disable linear average threshold for newly created bodies. @ingroup disable @return the threshold

dWorldGetAutoDisableLinearThreshold
dReal dWorldGetAutoDisableLinearThreshold(dWorldID )

@brief Get auto disable linear threshold for newly created bodies. @ingroup disable @return the threshold

dWorldGetAutoDisableSteps
int dWorldGetAutoDisableSteps(dWorldID )

@brief Get auto disable steps for newly created bodies. @ingroup disable @return nr of steps

dWorldGetAutoDisableTime
dReal dWorldGetAutoDisableTime(dWorldID )

@brief Get auto disable time for newly created bodies. @ingroup disable @return nr of seconds

dWorldGetCFM
dReal dWorldGetCFM(dWorldID )

@brief Get the constraint force mixing value. @ingroup world @return CFM value

dWorldGetContactMaxCorrectingVel
dReal dWorldGetContactMaxCorrectingVel(dWorldID )

@brief Get the maximum correcting velocity that contacts are allowed to generated. @ingroup world

dWorldGetContactSurfaceLayer
dReal dWorldGetContactSurfaceLayer(dWorldID )

@brief Get the depth of the surface layer around all geometry objects. @ingroup world @returns the depth

dWorldGetERP
dReal dWorldGetERP(dWorldID )

@brief Get the error reduction parameter. @ingroup world @return ERP value

dWorldGetGravity
void dWorldGetGravity(dWorldID , dVector3 gravity)

@brief Get the gravity vector for a given world. @ingroup world

dWorldGetLinearDamping
dReal dWorldGetLinearDamping(dWorldID w)

@brief Get the world's linear damping scale. @ingroup damping

dWorldGetLinearDampingThreshold
dReal dWorldGetLinearDampingThreshold(dWorldID w)

@brief Get the world's linear damping threshold. @ingroup damping

dWorldGetMaxAngularSpeed
dReal dWorldGetMaxAngularSpeed(dWorldID w)

@brief Get the default maximum angular speed. @ingroup damping @sa dBodyGetMaxAngularSpeed()

dWorldGetQuickStepNumIterations
int dWorldGetQuickStepNumIterations(dWorldID )

@brief Get the number of iterations that the QuickStep method performs per step. @ingroup world @return nr of iterations

dWorldGetQuickStepW
dReal dWorldGetQuickStepW(dWorldID )

@brief Get the SOR over-relaxation parameter @ingroup world @returns the over-relaxation setting

dWorldImpulseToForce
void dWorldImpulseToForce(dWorldID , dReal stepsize, dReal ix, dReal iy, dReal iz, dVector3 force)

@brief Converts an impulse to a force. @ingroup world @remarks If you want to apply a linear or angular impulse to a rigid body, instead of a force or a torque, then you can use this function to convert the desired impulse into a force/torque vector before calling the BodyAdd... function. The current algorithm simply scales the impulse by 1/stepsize, where stepsize is the step size for the next step that will be taken. This function is given a dWorldID because, in the future, the force computation may depend on integrator parameters that are set as properties of the world.

dWorldQuickStep
int dWorldQuickStep(dWorldID w, dReal stepsize)

@brief Quick-step the world.

dWorldSetAngularDamping
void dWorldSetAngularDamping(dWorldID w, dReal scale)

@brief Set the world's angular damping scale. @param scale The angular damping scale that is to be applied to bodies. Default is 0 (no damping). Should be in the interval [0, 1]. @ingroup damping

dWorldSetAngularDampingThreshold
void dWorldSetAngularDampingThreshold(dWorldID w, dReal threshold)

@brief Set the world's angular damping threshold. @param threshold The damping won't be applied if the angular speed is below this threshold. Default is 0.01. @ingroup damping

dWorldSetAutoDisableAngularAverageThreshold
void dWorldSetAutoDisableAngularAverageThreshold(dWorldID , dReal angular_average_threshold)

@brief Set auto disable angular average threshold for newly created bodies. @param linear_average_threshold default is 0.01 @ingroup disable

dWorldSetAutoDisableAngularThreshold
void dWorldSetAutoDisableAngularThreshold(dWorldID , dReal angular_threshold)

@brief Set auto disable angular threshold for newly created bodies. @param linear_threshold default is 0.01 @ingroup disable

dWorldSetAutoDisableAverageSamplesCount
void dWorldSetAutoDisableAverageSamplesCount(dWorldID , uint average_samples_count)

@brief Set auto disable average sample count for newly created bodies. @ingroup disable @param average_samples_count Default is 1, meaning only instantaneous velocity is used. Set to zero to disable sampling and thus prevent any body from auto-disabling.

dWorldSetAutoDisableFlag
void dWorldSetAutoDisableFlag(dWorldID , int do_auto_disable)

@brief Set auto disable flag for newly created bodies. @ingroup disable @param do_auto_disable default is false.

dWorldSetAutoDisableLinearAverageThreshold
void dWorldSetAutoDisableLinearAverageThreshold(dWorldID , dReal linear_average_threshold)

@brief Set auto disable linear average threshold for newly created bodies. @param linear_average_threshold default is 0.01 @ingroup disable

dWorldSetAutoDisableLinearThreshold
void dWorldSetAutoDisableLinearThreshold(dWorldID , dReal linear_threshold)

@brief Set auto disable linear threshold for newly created bodies. @param linear_threshold default is 0.01 @ingroup disable

dWorldSetAutoDisableSteps
void dWorldSetAutoDisableSteps(dWorldID , int steps)

@brief Set auto disable steps for newly created bodies. @ingroup disable @param steps default is 10

dWorldSetAutoDisableTime
void dWorldSetAutoDisableTime(dWorldID , dReal time)

@brief Set auto disable time for newly created bodies. @ingroup disable @param time default is 0 seconds

dWorldSetCFM
void dWorldSetCFM(dWorldID , dReal cfm)

@brief Set the global CFM (constraint force mixing) value. @ingroup world @param cfm Typical values are in the range @m{10^{-9}} -- 1. The default is 10^-5 if single precision is being used, or 10^-10 if double precision is being used.

dWorldSetContactMaxCorrectingVel
void dWorldSetContactMaxCorrectingVel(dWorldID , dReal vel)

@brief Set the maximum correcting velocity that contacts are allowed to generate. @ingroup world @param vel The default value is infinity (i.e. no limit). @remarks Reducing this value can help prevent "popping" of deeply embedded objects.

dWorldSetContactSurfaceLayer
void dWorldSetContactSurfaceLayer(dWorldID , dReal depth)

@brief Set the depth of the surface layer around all geometry objects. @ingroup world @remarks Contacts are allowed to sink into the surface layer up to the given depth before coming to rest. @param depth The default value is zero. @remarks Increasing this to some small value (e.g. 0.001) can help prevent jittering problems due to contacts being repeatedly made and broken.

dWorldSetDamping
void dWorldSetDamping(dWorldID w, dReal linear_scale, dReal angular_scale)

@brief Convenience function to set body linear and angular scales. @param linear_scale The linear damping scale that is to be applied to bodies. @param angular_scale The angular damping scale that is to be applied to bodies. @ingroup damping

dWorldSetERP
void dWorldSetERP(dWorldID , dReal erp)

@brief Set the global ERP value, that controls how much error correction is performed in each time step. @ingroup world @param dWorldID the identifier of the world. @param erp Typical values are in the range 0.1--0.8. The default is 0.2.

dWorldSetGravity
void dWorldSetGravity(dWorldID , dReal x, dReal y, dReal z)

@brief Set the world's global gravity vector.

dWorldSetLinearDamping
void dWorldSetLinearDamping(dWorldID w, dReal scale)

@brief Set the world's linear damping scale. @param scale The linear damping scale that is to be applied to bodies. Default is 0 (no damping). Should be in the interval [0, 1]. @ingroup damping

dWorldSetLinearDampingThreshold
void dWorldSetLinearDampingThreshold(dWorldID w, dReal threshold)

@brief Set the world's linear damping threshold. @param threshold The damping won't be applied if the linear speed is below this threshold. Default is 0.01. @ingroup damping

dWorldSetMaxAngularSpeed
void dWorldSetMaxAngularSpeed(dWorldID w, dReal max_speed)

@brief Set the default maximum angular speed for new bodies. @ingroup damping @sa dBodySetMaxAngularSpeed()

dWorldSetQuickStepNumIterations
void dWorldSetQuickStepNumIterations(dWorldID , int num)

@brief Set the number of iterations that the QuickStep method performs per step. @ingroup world @remarks More iterations will give a more accurate solution, but will take longer to compute. @param num The default is 20 iterations.

dWorldSetQuickStepW
void dWorldSetQuickStepW(dWorldID , dReal over_relaxation)

@brief Set the SOR over-relaxation parameter @ingroup world @param over_relaxation value to use by SOR

dWorldSetStepMemoryManager
int dWorldSetStepMemoryManager(dWorldID w, dWorldStepMemoryFunctionsInfo* memfuncs)

@brief Set memory manager for world to be used with simulation stepping functions

dWorldSetStepMemoryReservationPolicy
int dWorldSetStepMemoryReservationPolicy(dWorldID w, dWorldStepReserveInfo* policyinfo)

@brief Set memory reservation policy for world to be used with simulation stepping functions

dWorldStep
int dWorldStep(dWorldID w, dReal stepsize)

@brief Step the world.

dWorldUseSharedWorkingMemory
int dWorldUseSharedWorkingMemory(dWorldID w, dWorldID from_world)

@brief Set the world to use shared working memory along with another world.

Manifest constants

dWORLDSTEP_RESERVEFACTOR_DEFAULT
enum dWORLDSTEP_RESERVEFACTOR_DEFAULT;
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.
dWORLDSTEP_RESERVESIZE_DEFAULT
enum dWORLDSTEP_RESERVESIZE_DEFAULT;
Undocumented in source but is binding to C. You might be able to learn more by searching the web for its name.

Structs

dWorldStepMemoryFunctionsInfo
struct dWorldStepMemoryFunctionsInfo

@struct dWorldStepMemoryFunctionsInfo @brief World stepping memory manager descriptor structure

dWorldStepReserveInfo
struct dWorldStepReserveInfo

@struct dWorldStepReserveInfo @brief Memory reservation policy descriptor structure for world stepping functions.

Meta