This struct gets filled by the simulator and contains various properties of a contact joint (surface, constraint). All of the values are optional, which means that they are only filled if the physics engine supports them. Some originally unfilled values may still be processed by the physics engine if they are set - this just means there is no default value for them. More...

`#include <ContactProperties.hh>`

## Public Attributes | |

std::optional< typename PolicyT::Scalar > | constraintForceMixing |

Constraint force mixing. This should be a non-negative number. If greater than 0, this number is added to the diagonal of the system matrix making the contact softer and the solution more stable. More... | |

std::optional< typename FromPolicy< PolicyT >::template Use< Vector > > | contactSurfaceMotionVelocity |

Desired velocity of the colliding bodies in the contact point. Setting this to non-zero asks the physics engine to add such forces that can achieve that the colliding bodies have the specified velocity. The X component specifies velocity along 1st friction direction. The Y component specifies velocity along 2nd friction direction. The Z component specifies velocity along the contact normal. More... | |

std::optional< typename PolicyT::Scalar > | errorReductionParameter |

Joint error reduction parameter. This is the fraction of the joint error that will be attempted to be corrected in each simulation step. Allowed values are 0 to 1. Default is usually somewhere between. More... | |

std::optional< typename FromPolicy< PolicyT >::template Use< Vector > > | firstFrictionalDirection |

The first frictional direction. It should be perpendicular to the contact normal. The second frictional direction can be computed as a vector perpendicular both to the normal and to the first direction. More... | |

std::optional< typename PolicyT::Scalar > | frictionCoeff |

Coefficient of friction along the 1st friction direction. More... | |

std::optional< typename PolicyT::Scalar > | maxErrorAllowance |

Maximum joint error for which no error reduction is performed. More... | |

std::optional< typename PolicyT::Scalar > | maxErrorReductionVelocity |

Maximum velocity that can be used to reduce joint error. More... | |

std::optional< typename PolicyT::Scalar > | restitutionCoeff |

Defines the bounciness of the contact. 0 is not bouncy. Values between 0 and 1 are allowed. More... | |

std::optional< typename PolicyT::Scalar > | rollingFrictionCoeff |

Coefficient of rolling friction along the 1st friction direction. More... | |

std::optional< typename PolicyT::Scalar > | secondaryFrictionCoeff |

Coefficient of friction along the 2nd friction direction. More... | |

std::optional< typename PolicyT::Scalar > | secondaryRollingFrictionCoeff |

Coefficient of rolling friction along the 2nd friction direction. More... | |

std::optional< typename PolicyT::Scalar > | secondarySlipCompliance |

Force-dependent slip coefficient along the 2nd friction direction. More... | |

std::optional< typename PolicyT::Scalar > | slipCompliance |

Force-dependent slip coefficient along the 1st friction direction. More... | |

std::optional< typename PolicyT::Scalar > | torsionalFrictionCoeff |

Coefficient of torsional friction. More... | |

## Detailed Description

### template<typename PolicyT>

struct ignition::physics::SetContactPropertiesCallbackFeature::ContactSurfaceParams< PolicyT >

This struct gets filled by the simulator and contains various properties of a contact joint (surface, constraint). All of the values are optional, which means that they are only filled if the physics engine supports them. Some originally unfilled values may still be processed by the physics engine if they are set - this just means there is no default value for them.

## Member Data Documentation

## ◆ constraintForceMixing

std::optional<typename PolicyT::Scalar> constraintForceMixing |

Constraint force mixing. This should be a non-negative number. If greater than 0, this number is added to the diagonal of the system matrix making the contact softer and the solution more stable.

## ◆ contactSurfaceMotionVelocity

std::optional<typename FromPolicy<PolicyT>::template Use<Vector> > contactSurfaceMotionVelocity |

Desired velocity of the colliding bodies in the contact point. Setting this to non-zero asks the physics engine to add such forces that can achieve that the colliding bodies have the specified velocity. The X component specifies velocity along 1st friction direction. The Y component specifies velocity along 2nd friction direction. The Z component specifies velocity along the contact normal.

## ◆ errorReductionParameter

std::optional<typename PolicyT::Scalar> errorReductionParameter |

Joint error reduction parameter. This is the fraction of the joint error that will be attempted to be corrected in each simulation step. Allowed values are 0 to 1. Default is usually somewhere between.

## ◆ firstFrictionalDirection

std::optional<typename FromPolicy<PolicyT>::template Use<Vector> > firstFrictionalDirection |

The first frictional direction. It should be perpendicular to the contact normal. The second frictional direction can be computed as a vector perpendicular both to the normal and to the first direction.

## ◆ frictionCoeff

std::optional<typename PolicyT::Scalar> frictionCoeff |

Coefficient of friction along the 1st friction direction.

## ◆ maxErrorAllowance

std::optional<typename PolicyT::Scalar> maxErrorAllowance |

Maximum joint error for which no error reduction is performed.

## ◆ maxErrorReductionVelocity

std::optional<typename PolicyT::Scalar> maxErrorReductionVelocity |

Maximum velocity that can be used to reduce joint error.

## ◆ restitutionCoeff

std::optional<typename PolicyT::Scalar> restitutionCoeff |

Defines the bounciness of the contact. 0 is not bouncy. Values between 0 and 1 are allowed.

## ◆ rollingFrictionCoeff

std::optional<typename PolicyT::Scalar> rollingFrictionCoeff |

Coefficient of rolling friction along the 1st friction direction.

## ◆ secondaryFrictionCoeff

std::optional<typename PolicyT::Scalar> secondaryFrictionCoeff |

Coefficient of friction along the 2nd friction direction.

## ◆ secondaryRollingFrictionCoeff

std::optional<typename PolicyT::Scalar> secondaryRollingFrictionCoeff |

Coefficient of rolling friction along the 2nd friction direction.

## ◆ secondarySlipCompliance

std::optional<typename PolicyT::Scalar> secondarySlipCompliance |

Force-dependent slip coefficient along the 2nd friction direction.

## ◆ slipCompliance

std::optional<typename PolicyT::Scalar> slipCompliance |

Force-dependent slip coefficient along the 1st friction direction.

## ◆ torsionalFrictionCoeff

std::optional<typename PolicyT::Scalar> torsionalFrictionCoeff |

Coefficient of torsional friction.

The documentation for this struct was generated from the following file: