This uses an iterative method that takes time on the order of m*N
and memory on the order of m, where m is the total number of constraint
rows N is the number of iterations.
For large systems this is a lot faster than dWorldStep(),
but it is less accurate.
QuickStep is great for stacks of objects especially when the
auto-disable feature is used as well.
However, it has poor accuracy for near-singular systems.
Near-singular systems can occur when using high-friction contacts, motors,
or certain articulated structures. For example, a robot with multiple legs
sitting on the ground may be near-singular.
There are ways to help overcome QuickStep's inaccuracy problems:
\li Increase CFM.
\li Reduce the number of contacts in your system (e.g. use the minimum
number of contacts for the feet of a robot or creature).
\li Don't use excessive friction in the contacts.
\li Use contact slip if appropriate
\li Avoid kinematic loops (however, kinematic loops are inevitable in
legged creatures).
\li Don't use excessive motor strength.
\liUse force-based motors instead of velocity-based motors.
Increasing the number of QuickStep iterations may help a little bit, but
it is not going to help much if your system is really near singular.
Failure result status means that the memory allocation has failed for operation.
In such a case all the objects remain in unchanged state and simulation can be
retried as soon as more memory is available.
@param w The world to be stepped
@param stepsize The number of seconds that the simulation has to advance.
@returns 1 for success and 0 for failure
@brief Quick-step the world.
This uses an iterative method that takes time on the order of m*N and memory on the order of m, where m is the total number of constraint rows N is the number of iterations. For large systems this is a lot faster than dWorldStep(), but it is less accurate.
QuickStep is great for stacks of objects especially when the auto-disable feature is used as well. However, it has poor accuracy for near-singular systems. Near-singular systems can occur when using high-friction contacts, motors, or certain articulated structures. For example, a robot with multiple legs sitting on the ground may be near-singular.
There are ways to help overcome QuickStep's inaccuracy problems:
\li Increase CFM. \li Reduce the number of contacts in your system (e.g. use the minimum number of contacts for the feet of a robot or creature). \li Don't use excessive friction in the contacts. \li Use contact slip if appropriate \li Avoid kinematic loops (however, kinematic loops are inevitable in legged creatures). \li Don't use excessive motor strength. \liUse force-based motors instead of velocity-based motors.
Increasing the number of QuickStep iterations may help a little bit, but it is not going to help much if your system is really near singular.
Failure result status means that the memory allocation has failed for operation. In such a case all the objects remain in unchanged state and simulation can be retried as soon as more memory is available.
@param w The world to be stepped @param stepsize The number of seconds that the simulation has to advance. @returns 1 for success and 0 for failure
@ingroup world