PxCombineMode
Defined in include/PxMaterial.h
-
struct PxCombineMode
Enumeration that determines the way in which two material properties will be combined to yield a friction or restitution coefficient for a collision.
When two actors come in contact with each other, they each have materials with various coefficients, but we only need a single set of coefficients for the pair.
Physics doesn’t have any inherent combinations because the coefficients are determined empirically on a case by case basis. However, simulating this with a pairwise lookup table is often impractical.
For this reason the following combine behaviors are available:
eAVERAGE eMIN eMULTIPLY eMAX
The effective combine mode for the pair is maximum(material0.combineMode, material1.combineMode).
Notes that the restitution coefficient is overloaded if it is negative and represents a spring stiffness for compliant contacts. In the compliant contact case, the following rules apply: If a compliant (restitution < 0) material interacts with a rigid (restitution >= 0) material, the compliant behavior will be chosen independent of combine mode. In all other cases (i.e., also for compliant-compliant interactions) the combine mode is used. For a compliant-compliant interaction with eMULTIPLY combine mode, we multiply the values but keep the sign negative. The material damping follows the same logic, i.e., for the compliant vs non-compliant case, we take the damping value of the compliant material. Otherwise the combine mode is respected. In an interaction between a compliant-force and a compliant-acceleration body the latter will dominate and exclusively determine the collision behavior with its parameters.
See also
PxMaterial.setFrictionCombineMode() PxMaterial.getFrictionCombineMode() PxMaterial.setRestitutionCombineMode() PxMaterial.getFrictionCombineMode()
Public Types
-
enum Enum
Values:
-
enumerator eAVERAGE
Average: (a + b)/2.
-
enumerator eMIN
Minimum: minimum(a,b)
-
enumerator eMULTIPLY
Multiply: a*b.
-
enumerator eMAX
Maximum: maximum(a,b)
-
enumerator eN_VALUES
This is not a valid combine mode, it is a sentinel to denote the number of possible values. We assert that the variable’s value is smaller than this.
-
enumerator ePAD_32
This is not a valid combine mode, it is to assure that the size of the enum type is big enough.
-
enumerator eAVERAGE
-
enum Enum