List of all members.
Detailed Description
template<typename mbd_types, typename collision_law_policy>
class OpenTissue::mbd::SequentialTruncatingCollisionResolver< mbd_types, collision_law_policy >
A Sequential Collision Resolver. This collision resovler can be used with any collision law by specifying the collision law as a template policy.
The algorithm iterates over all contacs in the specified group, in an increasing order determined by their relative contact velocity in the normal direction.
In some cases such a scheme may fail, entering a inifinite loop, or even computational death due to very slow convergence. To alleviate these problems the algorithm supports truncating impulses. This means that if certain criteria are fulfilled then the normal restitution is set to zero before computing an impulse.
If one is too aggressive in setting up the truncation criteria's then it can have the effect of low restitution values are seen as zero-restitution. In our experience the default settings tend to damp the restituion coefficient towards zero when in the range 0 -.5, above .5 does not seem to be visually noticable.
Also large stacks of objects, like 20 objects placed un top of each other seem to make truncation kick in regardless of initial velocities and the values of coefficient of restitution.
Member Typedef Documentation
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
Constructor & Destructor Documentation
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
Member Function Documentation
template<typename mbd_types, typename collision_law_policy>
template<typename iterator >
Initialize Heap
- Parameters:
-
| cbegin | The position of the first contact in a range. |
| cend | The position one past the last contact in a range. |
| S | The heap. |
template<typename mbd_types, typename collision_law_policy>
Get Minimum element from Heap.
- Parameters:
-
- Returns:
- A pointer to the contact point with smallest contact normal velocity.
template<typename mbd_types, typename collision_law_policy>
Resolve Collisions
- Parameters:
-
| group | The group on which to resolve collisions. |
template<typename mbd_types, typename collision_law_policy>
Set Truncation Fraction.
- Parameters:
-
| value | A positive value indicating the new truncation fraction. That is the fraction of the initial largest approach velocity, which yields the velocity threshold for when a collision should be truncated. That is when approach velocity of a collision is less than the threshold the collision is truncated. |
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
template<typename mbd_types, typename collision_law_policy>
Update Contact Point.
- Parameters:
-
| cp | A pointer to the contact that should be updated. That is its relative normal contact velocity is re-computed. |
template<typename mbd_types, typename collision_law_policy>
Update All Dependent Contacts. This method updates all contacts that shares a body with the specified contact. The contact graph data structure is used to quickly identify the contacts that needs to be updated.
- Parameters:
-
| cp | The contact point indicating the bodies that are shared. |
template<typename mbd_types, typename collision_law_policy>
Update Heap.
- Parameters:
-
| S | The heap that should be updated. |
Member Data Documentation
template<typename mbd_types, typename collision_law_policy>
The maximum number of times a contact can be resolved before the impulse is truncated (default value is 20).
template<typename mbd_types, typename collision_law_policy>
The fraction of largest initial approach velocity, which will result in a truncation impulse to be used (default value is 1000).
The documentation for this class was generated from the following file: