The fields of the Ode.dSurfaceParameters structure are listed below. For a complete list of Ode.dSurfaceParameters structure members, see the Ode.dSurfaceParameters Members topic.
![]() | Restitution parameter (0..1). 0 means the surfaces are not bouncy at all, 1 is maximum bouncyness. This is only set if the corresponding flag is set in mode. |
![]() | Restitution parameter (0..1). 0 means the surfaces are not bouncy at all, 1 is maximum bouncyness. This is only set if the corresponding flag is set in mode. |
![]() | Contact flags. This must always be set. This is a combination of one or more of the following flags: dContactMu2 If not set, use mu for both friction directions. If set, use mu for friction direction 1, use mu2 for friction direction 2. dContactFDir1 If set, take fdir1 as friction direction 1, otherwise automatically compute friction direction 1 to be perpendicular to the contact normal (in which case its resulting orientation is unpredictable). dContactBounce If set, the contact surface is bouncy, in other words the bodies will bounce off each other. The exact amount of bouncyness is controlled by the bounce parameter. dContactSoftERP If set, the error reduction parameter of the contact normal can be set with the soft_erp parameter. This is useful to make surfaces soft. dContactSoftCFM If set, the constraint force mixing parameter of the contact normal can be set with the soft_cfm parameter. This is useful to make surfaces soft. dContactMotion1 If set, the contact surface is assumed to be moving independently of the motion of the bodies. This is kind of like a conveyor belt running over the surface. When this flag is set, motion1 defines the surface velocity in friction direction 1. dContactMotion2 The same thing as above, but for friction direction 2. dContactSlip1 Force-dependent-slip (FDS) in friction direction 1. dContactSlip2 Force-dependent-slip (FDS) in friction direction 2. dContactApprox0 TODO: Document me dContactApprox1_1 Use the friction pyramid approximation for friction direction 1. If this is not specified then the constant-force-limit approximation is used (and mu is a force limit). dContactApprox1_2 Use the friction pyramid approximation for friction direction 2. If this is not specified then the constant-force-limit approximation is used (and mu is a force limit). dContactApprox1 Equivalent to both dContactApprox1_1 and dContactApprox1_2. |
![]() | Surface velocity in friction directions 1 (in m/s). Only set if the corresponding flags are set in mode. |
![]() | Surface velocity in friction directions 1 (in m/s). Only set if the corresponding flags are set in mode. |
![]() | Coulomb friction coefficient. This must be in the range 0 to dInfinity. 0 results in a frictionless contact, and dInfinity results in a contact that never slips. Note that frictionless contacts are less time consuming to compute than ones with friction, and infinite friction contacts can be cheaper than contacts with finite friction. This must always be set. |
![]() | Optional Coulomb friction coefficient for friction direction 2 (0..dInfinity). This is only set if the corresponding flag is set in mode. |
![]() | The coefficients of force-dependent-slip (FDS) for friction directions 1 and 2. These are only set if the corresponding flags are set in mode. FDS is an effect that causes the contacting surfaces to side past each other with a velocity that is proportional to the force that is being applied tangentially to that surface. Consider a contact point where the coefficient of friction mu is infinite. Normally, if a force f is applied to the two contacting surfaces, to try and get them to slide past each other, they will not move. However, if the FDS coefficient is set to a positive value k then the surfaces will slide past each other, building up to a steady velocity of k*f relative to each other. Note that this is quite different from normal frictional effects: the force does not cause a constant acceleration of the surfaces relative to each other - it causes a brief acceleration to achieve the steady velocity. This is useful for modeling some situations, in particular tires. For example consider a car at rest on a road. Pushing the car in its direction of travel will cause it to start moving (i.e. the tires will start rolling). Pushing the car in the perpendicular direction will have no effect, as the tires do not roll in that direction. However - if the car is moving at a velocity v, applying a force f in the perpendicular direction will cause the tires to slip on the road with a velocity proportional to f*v (Yes, this really happens). To model this in ODE set the tire-road contact parameters as follows: set friction direction 1 in the direction that the tire is rolling in, and set the FDS slip coefficient in friction direction 2 to k*v, where v is the tire rolling velocity and k is a tire parameter that you can choose based on experimentation. Note that FDS is quite separate from the sticking/slipping effects of Coulomb friction - both modes can be used together at a single contact point. |
![]() | |
![]() | Contact normal ``softness'' parameter. This is only set if the corresponding flag is set in mode. |
![]() | Contact normal ``softness'' parameter. This is only set if the corresponding flag is set in mode. |
Ode.dSurfaceParameters Class | Tao.Ode Namespace