Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
SwingTwistConstraintSettings Class Referencefinal

#include <SwingTwistConstraint.h>

Inheritance diagram for SwingTwistConstraintSettings:
TwoBodyConstraintSettings ConstraintSettings SerializableObject RefTarget< ConstraintSettings >

Public Member Functions

virtual void SaveBinaryState (StreamOut &inStream) const override
 Saves the contents of the constraint settings in binary form to inStream. More...
 
virtual TwoBodyConstraintCreate (Body &inBody1, Body &inBody2) const override
 Create an an instance of this constraint. More...
 
virtual TwoBodyConstraintCreate (Body &inBody1, Body &inBody2) const =0
 
virtual void SaveBinaryState (StreamOut &inStream) const
 Saves the contents of the constraint settings in binary form to inStream. More...
 
- Public Member Functions inherited from SerializableObject
virtual ~SerializableObject ()=default
 Constructor. More...
 
- Public Member Functions inherited from RefTarget< ConstraintSettings >
 RefTarget ()=default
 Constructor. More...
 
 RefTarget (const RefTarget &)
 
 ~RefTarget ()
 assert no one is referencing us More...
 
void SetEmbedded () const
 
RefTargetoperator= (const RefTarget &)
 Assignment operator. More...
 
uint32 GetRefCount () const
 Get current refcount of this object. More...
 
void AddRef () const
 Add or release a reference to this object. More...
 
void Release () const
 

Public Attributes

EConstraintSpace mSpace = EConstraintSpace::WorldSpace
 This determines in which space the constraint is setup, all properties below should be in the specified space. More...
 
Body 1 constraint reference frame (space determined by mSpace)
RVec3 mPosition1 = RVec3::sZero()
 
Vec3 mTwistAxis1 = Vec3::sAxisX()
 
Vec3 mPlaneAxis1 = Vec3::sAxisY()
 
Body 2 constraint reference frame (space determined by mSpace)
RVec3 mPosition2 = RVec3::sZero()
 
Vec3 mTwistAxis2 = Vec3::sAxisX()
 
Vec3 mPlaneAxis2 = Vec3::sAxisY()
 
Swing rotation limits
float mNormalHalfConeAngle = 0.0f
 See image. Angle in radians. More...
 
float mPlaneHalfConeAngle = 0.0f
 See image. Angle in radians. More...
 
Twist rotation limits
float mTwistMinAngle = 0.0f
 See image. Angle in radians. Rotation will be limited between [mLimitsMin, mLimitsMax] where mLimitsMin \(\in [-\pi, 0]\) and mLimitsMax \(\in [0, \pi]\). More...
 
float mTwistMaxAngle = 0.0f
 See image. Angle in radians. More...
 
Friction
float mMaxFrictionTorque = 0.0f
 Maximum amount of torque (N m) to apply as friction when the constraint is not powered by a motor. More...
 
- Public Attributes inherited from ConstraintSettings
bool mEnabled = true
 If this constraint is enabled initially. Use Constraint::SetEnabled to toggle after creation. More...
 
int mNumVelocityStepsOverride = 0
 Override for the number of solver velocity iterations to run, the total amount of iterations is the max of PhysicsSettings::mNumVelocitySteps and this for all constraints in the island. More...
 
int mNumPositionStepsOverride = 0
 Override for the number of position velocity iterations to run, the total amount of iterations is the max of PhysicsSettings::mNumPositionSteps and this for all 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...
 

In case the constraint is powered, this determines the motor settings around the swing and twist axis

MotorSettings mSwingMotorSettings
 
MotorSettings mTwistMotorSettings
 
virtual void RestoreBinaryState (StreamIn &inStream) override
 This function should not be called directly, it is used by sRestoreFromBinaryState. More...
 

Additional Inherited Members

- Public Types inherited from ConstraintSettings
using ConstraintResult = Result< Ref< ConstraintSettings > >
 
- Static Public Member Functions inherited from ConstraintSettings
static ConstraintResult sRestoreFromBinaryState (StreamIn &inStream)
 Creates a constraint of the correct type and restores its contents from the binary stream inStream. More...
 
- Static Public Member Functions inherited from RefTarget< ConstraintSettings >
static int sInternalGetRefCountOffset ()
 INTERNAL HELPER FUNCTION USED BY SERIALIZATION. More...
 
virtual void RestoreBinaryState (StreamIn &inStream)
 This function should not be called directly, it is used by sRestoreFromBinaryState. More...
 
- Protected Attributes inherited from RefTarget< ConstraintSettings >
atomic< uint32mRefCount
 Current reference count. More...
 
- Static Protected Attributes inherited from RefTarget< ConstraintSettings >
static constexpr uint32 cEmbedded
 A large value that gets added to the refcount to mark the object as embedded. More...
 

Detailed Description

Swing twist constraint settings, used to create a swing twist constraint All values in this structure are copied to the swing twist constraint and the settings object is no longer needed afterwards.

This image describes the limit settings:

Member Function Documentation

◆ Create()

TwoBodyConstraint * SwingTwistConstraintSettings::Create ( Body inBody1,
Body inBody2 
) const
overridevirtual

Create an an instance of this constraint.

Implements TwoBodyConstraintSettings.

◆ RestoreBinaryState()

void SwingTwistConstraintSettings::RestoreBinaryState ( StreamIn inStream)
overrideprotectedvirtual

This function should not be called directly, it is used by sRestoreFromBinaryState.

Reimplemented from ConstraintSettings.

◆ SaveBinaryState()

void SwingTwistConstraintSettings::SaveBinaryState ( StreamOut inStream) const
overridevirtual

Saves the contents of the constraint settings in binary form to inStream.

Reimplemented from ConstraintSettings.

Member Data Documentation

◆ mMaxFrictionTorque

float SwingTwistConstraintSettings::mMaxFrictionTorque = 0.0f

Maximum amount of torque (N m) to apply as friction when the constraint is not powered by a motor.

◆ mNormalHalfConeAngle

float SwingTwistConstraintSettings::mNormalHalfConeAngle = 0.0f

See image. Angle in radians.

◆ mPlaneAxis1

Vec3 SwingTwistConstraintSettings::mPlaneAxis1 = Vec3::sAxisY()

◆ mPlaneAxis2

Vec3 SwingTwistConstraintSettings::mPlaneAxis2 = Vec3::sAxisY()

◆ mPlaneHalfConeAngle

float SwingTwistConstraintSettings::mPlaneHalfConeAngle = 0.0f

See image. Angle in radians.

◆ mPosition1

RVec3 SwingTwistConstraintSettings::mPosition1 = RVec3::sZero()

◆ mPosition2

RVec3 SwingTwistConstraintSettings::mPosition2 = RVec3::sZero()

◆ mSpace

EConstraintSpace SwingTwistConstraintSettings::mSpace = EConstraintSpace::WorldSpace

This determines in which space the constraint is setup, all properties below should be in the specified space.

◆ mSwingMotorSettings

MotorSettings SwingTwistConstraintSettings::mSwingMotorSettings

◆ mTwistAxis1

Vec3 SwingTwistConstraintSettings::mTwistAxis1 = Vec3::sAxisX()

◆ mTwistAxis2

Vec3 SwingTwistConstraintSettings::mTwistAxis2 = Vec3::sAxisX()

◆ mTwistMaxAngle

float SwingTwistConstraintSettings::mTwistMaxAngle = 0.0f

See image. Angle in radians.

◆ mTwistMinAngle

float SwingTwistConstraintSettings::mTwistMinAngle = 0.0f

See image. Angle in radians. Rotation will be limited between [mLimitsMin, mLimitsMax] where mLimitsMin \(\in [-\pi, 0]\) and mLimitsMax \(\in [0, \pi]\).

◆ mTwistMotorSettings

MotorSettings SwingTwistConstraintSettings::mTwistMotorSettings

The documentation for this class was generated from the following files: