Ignition Physics

API Reference

5.1.0
SetContactPropertiesCallbackFeature::ContactSurfaceParams< PolicyT > Struct Template Reference

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: