6 Degree Of Freedom Constraint setup structure. Allows control over each of the 6 degrees of freedom.  
 More...
#include <SixDOFConstraint.h>
|  | 
| EConstraintSpace | mSpace = EConstraintSpace::WorldSpace | 
|  | This determines in which space the constraint is setup, all properties below should be in the specified space. 
 | 
|  | 
| RVec3 | mPosition1 = RVec3::sZero() | 
|  | Body 1 constraint reference frame (space determined by mSpace) 
 | 
|  | 
| Vec3 | mAxisX1 = Vec3::sAxisX() | 
|  | 
| Vec3 | mAxisY1 = Vec3::sAxisY() | 
|  | 
| RVec3 | mPosition2 = RVec3::sZero() | 
|  | Body 2 constraint reference frame (space determined by mSpace) 
 | 
|  | 
| Vec3 | mAxisX2 = Vec3::sAxisX() | 
|  | 
| Vec3 | mAxisY2 = Vec3::sAxisY() | 
|  | 
| float | mMaxFriction [EAxis::Num] = { 0, 0, 0, 0, 0, 0 } | 
|  | 
| ESwingType | mSwingType = ESwingType::Cone | 
|  | The type of swing constraint that we want to use. 
 | 
|  | 
| float | mLimitMin [EAxis::Num] = { -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX } | 
|  | 
| float | mLimitMax [EAxis::Num] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX } | 
|  | 
| SpringSettings | mLimitsSpringSettings [EAxis::NumTranslation] | 
|  | 
| MotorSettings | mMotorSettings [EAxis::Num] | 
|  | Motor settings for each axis. 
 | 
|  | 
| bool | mEnabled = true | 
|  | If this constraint is enabled initially. Use Constraint::SetEnabled to toggle after creation. 
 | 
|  | 
| uint32 | mConstraintPriority = 0 | 
|  | 
| uint | mNumVelocityStepsOverride = 0 | 
|  | Used only when the constraint is active. Override for the number of solver velocity iterations to run, 0 means use the default in PhysicsSettings::mNumVelocitySteps. The number of iterations to use is the max of all contacts and constraints in the island. 
 | 
|  | 
| uint | mNumPositionStepsOverride = 0 | 
|  | Used only when the constraint is active. Override for the number of solver position iterations to run, 0 means use the default in PhysicsSettings::mNumPositionSteps. The number of iterations to use is the max of all contacts and constraints in the island. 
 | 
|  | 
| float | mDrawConstraintSize = 1.0f | 
|  | Size of constraint when drawing it through the debug renderer. 
 | 
|  | 
| uint64 | mUserData = 0 | 
|  | User data value (can be used by application) 
 | 
|  | 
6 Degree Of Freedom Constraint setup structure. Allows control over each of the 6 degrees of freedom. 
◆ EAxis
Constraint is split up into translation/rotation around X, Y and Z axis. 
| Enumerator | 
|---|
| TranslationX |  | 
| TranslationY |  | 
| TranslationZ |  | 
| RotationX |  | 
| RotationY |  | 
| RotationZ |  | 
| Num |  | 
| NumTranslation |  | 
 
 
◆ Create()
◆ IsFixedAxis()
  
  | 
        
          | bool SixDOFConstraintSettings::IsFixedAxis | ( | EAxis | inAxis | ) | const |  | inline | 
 
 
◆ IsFreeAxis()
  
  | 
        
          | bool SixDOFConstraintSettings::IsFreeAxis | ( | EAxis | inAxis | ) | const |  | inline | 
 
 
◆ MakeFixedAxis()
  
  | 
        
          | void SixDOFConstraintSettings::MakeFixedAxis | ( | EAxis | inAxis | ) |  |  | inline | 
 
Make axis fixed (fixed at value 0) 
 
 
◆ MakeFreeAxis()
  
  | 
        
          | void SixDOFConstraintSettings::MakeFreeAxis | ( | EAxis | inAxis | ) |  |  | inline | 
 
Make axis free (unconstrained) 
 
 
◆ RestoreBinaryState()
  
  | 
        
          | void SixDOFConstraintSettings::RestoreBinaryState | ( | StreamIn & | inStream | ) |  |  | overrideprotectedvirtual | 
 
This function should not be called directly, it is used by sRestoreFromBinaryState. 
Reimplemented from ConstraintSettings.
 
 
◆ SaveBinaryState()
  
  | 
        
          | void SixDOFConstraintSettings::SaveBinaryState | ( | StreamOut & | inStream | ) | const |  | overridevirtual | 
 
Saves the contents of the constraint settings in binary form to inStream. 
Reimplemented from ConstraintSettings.
 
 
◆ SetLimitedAxis()
  
  | 
        
          | void SixDOFConstraintSettings::SetLimitedAxis | ( | EAxis | inAxis, |  
          |  |  | float | inMin, |  
          |  |  | float | inMax ) |  | inline | 
 
Set a valid range for the constraint (if inMax < inMin, the axis will become fixed) 
 
 
◆ mAxisX1
◆ mAxisX2
◆ mAxisY1
◆ mAxisY2
◆ mLimitMax
      
        
          | float SixDOFConstraintSettings::mLimitMax[EAxis::Num] = { FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX } | 
      
 
 
◆ mLimitMin
      
        
          | float SixDOFConstraintSettings::mLimitMin[EAxis::Num] = { -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX, -FLT_MAX } | 
      
 
Limits. For translation: Min and max linear limits in m (0 is frame of body 1 and 2 coincide). For rotation: Min and max angular limits in rad (0 is frame of body 1 and 2 coincide). See comments at Axis enum for limit ranges.
Remove degree of freedom by setting min = FLT_MAX and max = -FLT_MAX. The constraint will be driven to 0 for this axis.
Free movement over an axis is allowed when min = -FLT_MAX and max = FLT_MAX.
Rotation limit around X-Axis: When limited, should be \(\in [-\pi, \pi]\). Can be asymmetric around zero.
Rotation limit around Y-Z Axis: Forms a pyramid or cone shaped limit:
- For pyramid, should be \(\in [-\pi, \pi]\) and does not need to be symmetrical around zero.
- For cone should be \(\in [0, \pi]\) and needs to be symmetrical around zero (min limit is assumed to be -max limit). 
 
 
◆ mLimitsSpringSettings
When enabled, this makes the limits soft. When the constraint exceeds the limits, a spring force will pull it back. Only soft translation limits are supported, soft rotation limits are not currently supported. 
 
 
◆ mMaxFriction
      
        
          | float SixDOFConstraintSettings::mMaxFriction[EAxis::Num] = { 0, 0, 0, 0, 0, 0 } | 
      
 
Friction settings. For translation: Max friction force in N. 0 = no friction. For rotation: Max friction torque in Nm. 0 = no friction. 
 
 
◆ mMotorSettings
Motor settings for each axis. 
 
 
◆ mPosition1
Body 1 constraint reference frame (space determined by mSpace) 
 
 
◆ mPosition2
Body 2 constraint reference frame (space determined by mSpace) 
 
 
◆ mSpace
This determines in which space the constraint is setup, all properties below should be in the specified space. 
 
 
◆ mSwingType
The type of swing constraint that we want to use. 
 
 
The documentation for this class was generated from the following files: