@brief Utility function @return 1 if the two bodies are connected together by a joint, otherwise return 0. @ingroup joints
@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
@brief Add force at centre of mass of body in absolute coordinates. @ingroup bodies
@brief Add force at specified point in body in global coordinates. @ingroup bodies
@brief Add force at specified point in body in local coordinates. @ingroup bodies
@brief Add force at centre of mass of body in coordinates relative to body. @ingroup bodies
@brief Add force at specified point in body in global coordinates. @ingroup bodies
@brief Add force at specified point in body in local coordinates. @ingroup bodies
@brief Add torque at centre of mass of body in coordinates relative to body. @ingroup bodies
@brief Add torque at centre of mass of body in absolute coordinates. @ingroup bodies
@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
@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
@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
@brief Create a body in given world. @remarks Default mass parameters are at position (0,0,0). @ingroup bodies
@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
@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.
@brief Manually enable a body. @param dBodyID identification of body. @ingroup bodies
@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.
@brief Get the body's angular damping threshold. @ingroup bodies damping
@brief Get the angular velocity of a body. @ingroup bodies
@brief Get auto disable angular average threshold. @ingroup bodies disable @return the threshold
@brief Get auto disable average size (samples count). @ingroup bodies disable @return the nr of steps/size.
@brief Get auto disable flag. @ingroup bodies disable @return 0 or 1
@brief Get auto disable linear average threshold. @ingroup bodies disable @return the threshold
@brief Get auto steps a body must be thought of as idle to disable @ingroup bodies disable @return the nr of steps
@brief Get auto disable time. @ingroup bodies disable @return nr of seconds
@brief Get the body's user-data pointer. @ingroup bodies @return a pointer to the user's data.
@brief Get the finite rotation axis. @param result will contain the axis. @ingroup bodies
@brief Get the way a body's orientation is updated each timestep. @ingroup bodies @return the mode 0 (infitesimal) or 1 (finite).
@brief Return the first geom associated with the body.
@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
@brief Get whether the body is influenced by the world's gravity or not. @ingroup bodies @return nonzero means gravity affects this body.
@brief Get the body's gyroscopic state.
@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().
@brief Get the body's linear damping scale. @ingroup bodies damping
@brief Get the body's linear damping threshold. @ingroup bodies damping
@brief Get the linear velocity of a body. @ingroup bodies
@brief Get the mass of a body. @ingroup bodies
@brief Get the body's maximum angular speed. @ingroup damping bodies @sa dWorldGetMaxAngularSpeed()
@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
@brief Get the number of joints that are attached to this body. @ingroup bodies @return nr of joints
@brief Get velocity vector in global coords of a globally specified point on a body. @ingroup bodies @param result will contain the 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.
@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
@brief Get the rotation of a body. @ingroup bodies @return pointer to 4 scalars that represent the quaternion.
@brief Get world position of a relative point on body. @ingroup bodies @param result will contain the result.
@brief Get velocity vector in global coords of a relative point on body. @ingroup bodies @param result will contain the result.
@brief Get the rotation of a body. @ingroup bodies @return pointer to a 4x3 rotation matrix.
@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
@brief Retrieves the world attached to te given body. @remarks
@brief Check wether a body is enabled. @ingroup bodies @return 1 if a body is currently enabled or 0 if it is disabled.
@brief Check wether a body is in kinematic state. @ingroup bodies @return 1 if a body is kinematic or 0 if it is dynamic.
@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()
@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
@brief Set the angular velocity of a body. @ingroup bodies
@brief Set auto disable angular average threshold. @ingroup bodies disable @return the threshold
@brief Set auto disable average buffer size (average steps). @ingroup bodies disable @param average_samples_count the nr of samples to review.
@brief Set auto disable defaults. @remarks Set the values for the body to those set as default for the world. @ingroup bodies disable
@brief Set auto disable flag. @ingroup bodies disable @param do_auto_disable 0 or 1
@brief Set auto disable linear average threshold. @ingroup bodies disable @return the threshold
@brief Set auto disable steps. @ingroup bodies disable @param steps the nr of steps.
@brief Set auto disable time. @ingroup bodies disable @param time nr of seconds.
@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()
@brief Resets the damping settings to the current world's settings. @ingroup bodies damping
@brief Set the body's user-data pointer. @ingroup bodies @param data arbitraty pointer
@brief Set rigid body to dynamic state (default). @param dBodyID identification of body. @ingroup bodies
@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.
@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.
@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
@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.
@brief Enable/disable the body's gyroscopic term.
@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
@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()
@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
@brief Set the linear velocity of a body. @ingroup bodies
@brief Set the mass of a body. @ingroup bodies
@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.
@brief Set the 'moved' callback of a body.
@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
@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.
@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.
@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
@brief Convert from world to local coordinates. @ingroup bodies @param result will contain the result.
@brief Convert from local to world coordinates. @ingroup bodies @param result will contain the result.
@ingroup joints
@ingroup joints
@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
@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
@brief Applies the torque about the hinge axis.
@brief Applies the torque about the rotoide axis of the PR joint
@brief Applies the torque about the rotoide axis of the PU joint
@brief Applies the given force in the slider's direction.
@brief Applies the given force in the slider's direction.
@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
@brief Attach the joint to some new bodies. @ingroup joints
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@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.
@brief Destroy a joint. @ingroup joints
@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.
@brief Manually enable a joint. @param dJointID identification of joint. @ingroup joints
@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
@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
@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
@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.
@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
@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
@brief get joint parameter @ingroup joints
@brief Get the joint anchor point, in world coordinates.
@brief Get the joint anchor point, in world coordinates.
@brief get joint parameter @ingroup joints
@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.
@brief Get the user-data pointer @ingroup joints
@brief Gets the datastructure that is to receive the feedback. @ingroup joints
@brief get joint parameter @ingroup joints
@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
@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
@brief Get angle @ingroup joints
@brief Get time derivative of angle @ingroup joints
@brief Get time derivative of angle @ingroup joints
@brief Get joint axis @ingroup joints
@brief Get joint axis @ingroup joints
@brief get joint parameter @ingroup joints
@brief Get the hinge anchor point, in world coordinates.
@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
@brief Get the hinge angle.
@brief Get the hinge angle time derivative. @ingroup joints
@brief get axis @ingroup joints
@brief get joint parameter @ingroup joints
@brief Get axis. @ingroup joints
@brief Get nr of axes. @ingroup joints
@brief get joint parameter @ingroup joints
@brief Return the number of bodies attached to the joint @ingroup joints
@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
@brief Get the PR angular position (i.e. the twist between the 2 bodies)
@brief Get the PR angular position's time derivative
@brief Get the prismatic axis @ingroup joints
@brief Get the Rotoide axis @ingroup joints
@brief get joint parameter @ingroup joints
@brief Get the PR linear position (i.e. the prismatic's extension)
@brief Get the PR linear position's time derivative
@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
@brief Get angle @ingroup joints
@brief * @brief Get time derivative of angle1
@brief Get angle @ingroup joints
@brief * @brief Get time derivative of angle2
@brief Get both angles at the same time. @ingroup joints
@brief Get the first axis of the universal component of the joint @ingroup joints
@brief Get the second axis of the Universal component of the joint @ingroup joints
@brief Get the prismatic axis @ingroup joints
@brief Get the prismatic axis @ingroup joints
@brief get joint parameter @ingroup joints
@brief Get the PU linear position (i.e. the prismatic's extension)
@brief Get the PR linear position's time derivative
@brief Get the joint anchor
@brief Get the joint anchor w.r.t. body 2
@brief Get the Piston angular position (i.e. the twist between the 2 bodies)
@brief Get the piston angular position's time derivative. @ingroup joints
@brief Get the prismatic axis (This is also the rotoide axis. @ingroup joints
@brief get joint parameter @ingroup joints
@brief Get the Piston linear position (i.e. the piston's extension)
@brief Get the piston linear position's time derivative. @ingroup joints
@brief Get the slider axis @ingroup joints
@brief get joint parameter @ingroup joints
@brief Get the slider linear position (i.e. the slider's extension)
@brief Get the slider linear position's time derivative. @ingroup joints
@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
@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
@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
@brief Get angle @ingroup joints
@brief Get time derivative of angle @ingroup joints
@brief Get angle @ingroup joints
@brief Get time derivative of angle @ingroup joints
@brief Get both angles at the same time. @ingroup joints
@brief Get axis @ingroup joints
@brief Get axis @ingroup joints
@brief get joint parameter @ingroup joints
@brief Create a joint group @ingroup joints @param max_size deprecated. Set to 0.
@brief Destroy a joint group. @ingroup joints
@brief Empty a joint group. @ingroup joints
@brief Check wether a joint is enabled. @ingroup joints @return 1 if a joint is currently enabled or 0 if it is disabled.
@brief Tell the AMotor what the current angle is along axis anum.
@brief set axis @ingroup joints
@brief set mode @ingroup joints
@brief set the nr of axes @param num 0..3 @ingroup joints
@brief set joint parameter @ingroup joints
@brief Set the joint anchor point. @ingroup joints
@brief Set the joint anchor point. @ingroup joints
@brief Param setting for Ball joints @ingroup joints
@brief Set the user-data pointer @ingroup joints
@brief Sets the datastructure that is to receive the feedback.
@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
@brief set anchor @ingroup joints
@brief set axis @ingroup joints
@brief set axis @ingroup joints
@brief set joint parameter @ingroup joints
@brief Set hinge anchor parameter. @ingroup joints
@brief Set hinge axis. @ingroup joints
@brief Set the Hinge axis as if the 2 bodies were already at angle appart. @ingroup joints
@brief set joint parameter @ingroup joints
@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
@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
@brief set joint parameter @ingroup joints
@brief set anchor @ingroup joints
@brief set the axis for the prismatic articulation @ingroup joints
@brief set the axis for the rotoide articulation @ingroup joints
@brief set joint parameter @ingroup joints
@brief set anchor @ingroup joints
@brief Set the PU anchor as if the 2 bodies were already at [dx, dy, dz] appart. @ingroup joints
@brief set the axis for the first axis or the universal articulation @ingroup joints
@brief set the axis for the second axis or the universal articulation @ingroup joints
@brief set the axis for the prismatic articulation @ingroup joints
@brief set the axis for the prismatic articulation @ingroup joints @note This function was added for convenience it is the same as dJointSetPUAxis3
@brief set joint parameter @ingroup joints
@brief set the joint anchor @ingroup joints
@brief Set the Piston anchor as if the 2 bodies were already at [dx,dy, dz] appart. @ingroup joints
* @brief set the joint axis @ingroup joints
@brief set joint parameter @ingroup joints
@ingroup joints
@ingroup joints
@ingroup joints
@brief set the joint axis @ingroup joints
@ingroup joints
@brief set joint parameter @ingroup joints
@brief set anchor @ingroup joints
@brief set axis @ingroup joints
@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
@brief set axis @ingroup joints
@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
@brief set joint parameter @ingroup joints
@brief Release internal working memory allocated for world
@brief Create a new, empty world and return its ID number. @return an identifier @ingroup world
@brief Destroy a world and everything in it.
@brief Get the world's angular damping scale. @ingroup damping
@brief Get the world's angular damping threshold. @ingroup damping
@brief Get auto disable angular average threshold for newly created bodies. @ingroup disable @return the threshold
@brief Get auto disable angular threshold for newly created bodies. @ingroup disable @return the threshold
@brief Get auto disable sample count for newly created bodies. @ingroup disable @return number of samples used
@brief Get auto disable flag for newly created bodies. @ingroup disable @return 0 or 1
@brief Get auto disable linear average threshold for newly created bodies. @ingroup disable @return the threshold
@brief Get auto disable linear threshold for newly created bodies. @ingroup disable @return the threshold
@brief Get auto disable steps for newly created bodies. @ingroup disable @return nr of steps
@brief Get auto disable time for newly created bodies. @ingroup disable @return nr of seconds
@brief Get the constraint force mixing value. @ingroup world @return CFM value
@brief Get the maximum correcting velocity that contacts are allowed to generated. @ingroup world
@brief Get the depth of the surface layer around all geometry objects. @ingroup world @returns the depth
@brief Get the error reduction parameter. @ingroup world @return ERP value
@brief Get the gravity vector for a given world. @ingroup world
@brief Get the world's linear damping scale. @ingroup damping
@brief Get the world's linear damping threshold. @ingroup damping
@brief Get the default maximum angular speed. @ingroup damping @sa dBodyGetMaxAngularSpeed()
@brief Get the number of iterations that the QuickStep method performs per step. @ingroup world @return nr of iterations
@brief Get the SOR over-relaxation parameter @ingroup world @returns the over-relaxation setting
@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.
@brief Quick-step the world.
@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
@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
@brief Set auto disable angular average threshold for newly created bodies. @param linear_average_threshold default is 0.01 @ingroup disable
@brief Set auto disable angular threshold for newly created bodies. @param linear_threshold default is 0.01 @ingroup disable
@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.
@brief Set auto disable flag for newly created bodies. @ingroup disable @param do_auto_disable default is false.
@brief Set auto disable linear average threshold for newly created bodies. @param linear_average_threshold default is 0.01 @ingroup disable
@brief Set auto disable linear threshold for newly created bodies. @param linear_threshold default is 0.01 @ingroup disable
@brief Set auto disable steps for newly created bodies. @ingroup disable @param steps default is 10
@brief Set auto disable time for newly created bodies. @ingroup disable @param time default is 0 seconds
@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.
@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.
@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.
@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
@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.
@brief Set the world's global gravity vector.
@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
@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
@brief Set the default maximum angular speed for new bodies. @ingroup damping @sa dBodySetMaxAngularSpeed()
@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.
@brief Set the SOR over-relaxation parameter @ingroup world @param over_relaxation value to use by SOR
@brief Set memory manager for world to be used with simulation stepping functions
@brief Set memory reservation policy for world to be used with simulation stepping functions
@brief Step the world.
@brief Set the world to use shared working memory along with another world.
@struct dWorldStepMemoryFunctionsInfo @brief World stepping memory manager descriptor structure
@struct dWorldStepReserveInfo @brief Memory reservation policy descriptor structure for world stepping functions.
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. * *