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.  More...
  | 
|   | 
| RVec3  | mPosition1 = RVec3::sZero() | 
|   | Body 1 constraint reference frame (space determined by mSpace)  More...
  | 
|   | 
| Vec3  | mAxisX1 = Vec3::sAxisX() | 
|   | 
| Vec3  | mAxisY1 = Vec3::sAxisY() | 
|   | 
| RVec3  | mPosition2 = RVec3::sZero() | 
|   | Body 2 constraint reference frame (space determined by mSpace)  More...
  | 
|   | 
| 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.  More...
  | 
|   | 
| 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.  More...
  | 
|   | 
| bool  | mEnabled = true | 
|   | If this constraint is enabled initially. Use Constraint::SetEnabled to toggle after creation.  More...
  | 
|   | 
| 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.  More...
  | 
|   | 
| 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.  More...
  | 
|   | 
| float  | mDrawConstraintSize = 1.0f | 
|   | Size of constraint when drawing it through the debug renderer.  More...
  | 
|   | 
| uint64  | mUserData = 0 | 
|   | User data value (can be used by application)  More...
  | 
|   | 
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
      
        
          | EConstraintSpace SixDOFConstraintSettings::mSpace = EConstraintSpace::WorldSpace | 
        
      
 
This determines in which space the constraint is setup, all properties below should be in the specified space. 
 
 
◆ mSwingType
      
        
          | ESwingType SixDOFConstraintSettings::mSwingType = ESwingType::Cone | 
        
      
 
The type of swing constraint that we want to use. 
 
 
The documentation for this class was generated from the following files: