Blender V5.0
btConeTwistConstraint.h File Reference

Go to the source code of this file.

Classes

struct  btConeTwistConstraintDoubleData
struct  btConeTwistConstraintData
 this structure is not used, except for loading pre-2.82 .bullet files More...

Macros

#define btConeTwistConstraintData2   btConeTwistConstraintData
#define btConeTwistConstraintDataName   "btConeTwistConstraintData"

Enumerations

enum  btConeTwistFlags { BT_CONETWIST_FLAGS_LIN_CFM = 1 , BT_CONETWIST_FLAGS_LIN_ERP = 2 , BT_CONETWIST_FLAGS_ANG_CFM = 4 }

Functions

void init ()
void computeConeLimitInfo (const btQuaternion &qCone, btScalar &swingAngle, btVector3 &vSwingAxis, btScalar &swingLimit)
void computeTwistLimitInfo (const btQuaternion &qTwist, btScalar &twistAngle, btVector3 &vTwistAxis)
void adjustSwingAxisToUseEllipseNormal (btVector3 &vSwingAxis) const
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btConeTwistConstraint (btRigidBody &rbA, btRigidBody &rbB, const btTransform &rbAFrame, const btTransform &rbBFrame)
 btConeTwistConstraint (btRigidBody &rbA, const btTransform &rbAFrame)
virtual void buildJacobian ()
 internal method used by the constraint solver, don't use them directly
virtual void getInfo1 (btConstraintInfo1 *info)
void getInfo1NonVirtual (btConstraintInfo1 *info)
virtual void getInfo2 (btConstraintInfo2 *info)
void getInfo2NonVirtual (btConstraintInfo2 *info, const btTransform &transA, const btTransform &transB, const btMatrix3x3 &invInertiaWorldA, const btMatrix3x3 &invInertiaWorldB)
virtual void solveConstraintObsolete (btSolverBody &bodyA, btSolverBody &bodyB, btScalar timeStep)
 internal method used by the constraint solver, don't use them directly
void updateRHS (btScalar timeStep)
const btRigidBodygetRigidBodyA () const
const btRigidBodygetRigidBodyB () const
void setAngularOnly (bool angularOnly)
bool getAngularOnly () const
void setLimit (int limitIndex, btScalar limitValue)
btScalar getLimit (int limitIndex) const
void setLimit (btScalar _swingSpan1, btScalar _swingSpan2, btScalar _twistSpan, btScalar _softness=1.f, btScalar _biasFactor=0.3f, btScalar _relaxationFactor=1.0f)
const btTransformgetAFrame () const
const btTransformgetBFrame () const
int getSolveTwistLimit ()
int getSolveSwingLimit ()
btScalar getTwistLimitSign ()
void calcAngleInfo ()
void calcAngleInfo2 (const btTransform &transA, const btTransform &transB, const btMatrix3x3 &invInertiaWorldA, const btMatrix3x3 &invInertiaWorldB)
btScalar getSwingSpan1 () const
btScalar getSwingSpan2 () const
btScalar getTwistSpan () const
btScalar getLimitSoftness () const
btScalar getBiasFactor () const
btScalar getRelaxationFactor () const
btScalar getTwistAngle () const
bool isPastSwingLimit ()
btScalar getDamping () const
void setDamping (btScalar damping)
void enableMotor (bool b)
bool isMotorEnabled () const
btScalar getMaxMotorImpulse () const
bool isMaxMotorImpulseNormalized () const
void setMaxMotorImpulse (btScalar maxMotorImpulse)
void setMaxMotorImpulseNormalized (btScalar maxMotorImpulse)
btScalar getFixThresh ()
void setFixThresh (btScalar fixThresh)
void setMotorTarget (const btQuaternion &q)
const btQuaterniongetMotorTarget () const
void setMotorTargetInConstraintSpace (const btQuaternion &q)
btVector3 GetPointForAngle (btScalar fAngleInRadians, btScalar fLength) const
virtual void setParam (int num, btScalar value, int axis=-1)
virtual void setFrames (const btTransform &frameA, const btTransform &frameB)
const btTransformgetFrameOffsetA () const
const btTransformgetFrameOffsetB () const
virtual btScalar getParam (int num, int axis=-1) const
 return the local value of parameter
int getFlags () const
virtual int calculateSerializeBufferSize () const
virtual const char * serialize (void *dataBuffer, btSerializer *serializer) const
 fills the dataBuffer and returns the struct name (and 0 on failure)

Variables

btConeTwistConstraint __pad0__
 btConeTwistConstraint can be used to simulate ragdoll joints (upper arm, leg etc)
btTransform m_rbAFrame
btTransform m_rbBFrame
btScalar m_limitSoftness
btScalar m_biasFactor
btScalar m_relaxationFactor
btScalar m_damping
btScalar m_swingSpan1
btScalar m_swingSpan2
btScalar m_twistSpan
btScalar m_fixThresh
btVector3 m_swingAxis
btVector3 m_twistAxis
btScalar m_kSwing
btScalar m_kTwist
btScalar m_twistLimitSign
btScalar m_swingCorrection
btScalar m_twistCorrection
btScalar m_twistAngle
btScalar m_accSwingLimitImpulse
btScalar m_accTwistLimitImpulse
bool m_angularOnly
bool m_solveTwistLimit
bool m_solveSwingLimit
bool m_useSolveConstraintObsolete
btScalar m_swingLimitRatio
btScalar m_twistLimitRatio
btVector3 m_twistAxisA
bool m_bMotorEnabled
bool m_bNormalizedMotorStrength
btQuaternion m_qTarget
btScalar m_maxMotorImpulse
btVector3 m_accMotorImpulse
int m_flags
btScalar m_linCFM
btScalar m_linERP
btScalar m_angCFM

Macro Definition Documentation

◆ btConeTwistConstraintData2

#define btConeTwistConstraintData2   btConeTwistConstraintData

Definition at line 43 of file btConeTwistConstraint.h.

◆ btConeTwistConstraintDataName

#define btConeTwistConstraintDataName   "btConeTwistConstraintData"

Definition at line 44 of file btConeTwistConstraint.h.

Enumeration Type Documentation

◆ btConeTwistFlags

Enumerator
BT_CONETWIST_FLAGS_LIN_CFM 
BT_CONETWIST_FLAGS_LIN_ERP 
BT_CONETWIST_FLAGS_ANG_CFM 

Definition at line 49 of file btConeTwistConstraint.h.

Function Documentation

◆ adjustSwingAxisToUseEllipseNormal()

void btConeTwistConstraint::adjustSwingAxisToUseEllipseNormal ( btVector3 & vSwingAxis) const
protected

Definition at line 929 of file btConeTwistConstraint.cpp.

References btVector3, fabs(), grad(), m_swingSpan1, m_swingSpan2, SIMD_EPSILON, y, and z().

Referenced by calcAngleInfo2().

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

BT_DECLARE_ALIGNED_ALLOCATOR ( )

References btTransform, and rbB.

◆ btConeTwistConstraint() [1/2]

btConeTwistConstraint::btConeTwistConstraint ( btRigidBody & rbA,
btRigidBody & rbB,
const btTransform & rbAFrame,
const btTransform & rbBFrame )

◆ btConeTwistConstraint() [2/2]

btConeTwistConstraint::btConeTwistConstraint ( btRigidBody & rbA,
const btTransform & rbAFrame )

◆ buildJacobian()

void btPoint2PointConstraint::buildJacobian ( )
virtual

internal method used by the constraint solver, don't use them directly

we need it for both methods

Definition at line 246 of file btConeTwistConstraint.cpp.

References btJacobianEntry, btPlaneSpace1(), btVector3, calcAngleInfo2(), i, m_accMotorImpulse, m_accSwingLimitImpulse, m_accTwistLimitImpulse, m_angularOnly, m_appliedImpulse, m_rbA, m_rbAFrame, m_rbB, m_rbBFrame, m_useSolveConstraintObsolete, and SIMD_EPSILON.

Referenced by setFrames().

◆ calcAngleInfo()

◆ calcAngleInfo2()

◆ calculateSerializeBufferSize()

virtual int calculateSerializeBufferSize ( ) const
virtual

◆ computeConeLimitInfo()

void btConeTwistConstraint::computeConeLimitInfo ( const btQuaternion & qCone,
btScalar & swingAngle,
btVector3 & vSwingAxis,
btScalar & swingLimit )
protected

◆ computeTwistLimitInfo()

void btConeTwistConstraint::computeTwistLimitInfo ( const btQuaternion & qTwist,
btScalar & twistAngle,
btVector3 & vTwistAxis )
protected

◆ enableMotor()

void enableMotor ( bool b)

Definition at line 298 of file btConeTwistConstraint.h.

References b, and m_bMotorEnabled.

Referenced by enableAngularMotor(), and enableMotor().

◆ getAFrame()

btTransform & getAFrame ( ) const

Definition at line 244 of file btConeTwistConstraint.h.

References btTransform, and m_rbAFrame.

◆ getAngularOnly()

bool getAngularOnly ( ) const

Definition at line 165 of file btConeTwistConstraint.h.

References m_angularOnly.

◆ getBFrame()

btTransform & getBFrame ( ) const

Definition at line 245 of file btConeTwistConstraint.h.

References btTransform, and m_rbBFrame.

◆ getBiasFactor()

btScalar getBiasFactor ( ) const
inline

Definition at line 281 of file btConeTwistConstraint.h.

References m_biasFactor.

◆ getDamping()

btScalar getDamping ( ) const

Definition at line 295 of file btConeTwistConstraint.h.

References m_damping.

◆ getFixThresh()

btScalar getFixThresh ( )

Definition at line 313 of file btConeTwistConstraint.h.

References m_fixThresh.

◆ getFlags()

int getFlags ( ) const

Definition at line 347 of file btConeTwistConstraint.h.

References m_flags.

◆ getFrameOffsetA()

btTransform & getFrameOffsetA ( ) const

Definition at line 334 of file btConeTwistConstraint.h.

References btTransform, and m_rbAFrame.

◆ getFrameOffsetB()

btTransform & getFrameOffsetB ( ) const

Definition at line 339 of file btConeTwistConstraint.h.

References btTransform, and m_rbBFrame.

◆ getInfo1()

void getInfo1 ( btConstraintInfo1 * info)
virtual

◆ getInfo1NonVirtual()

void btSliderConstraint::getInfo1NonVirtual ( btConstraintInfo1 * info)

◆ getInfo2()

virtual void getInfo2 ( btConstraintInfo2 * info)
virtual

◆ getInfo2NonVirtual()

◆ getLimit()

btScalar getLimit ( int limitIndex) const

Definition at line 195 of file btConeTwistConstraint.h.

References btAssert, m_swingSpan1, m_swingSpan2, and m_twistSpan.

◆ getLimitSoftness()

btScalar getLimitSoftness ( ) const
inline

Definition at line 277 of file btConeTwistConstraint.h.

References m_limitSoftness.

◆ getMaxMotorImpulse()

btScalar getMaxMotorImpulse ( ) const

Definition at line 300 of file btConeTwistConstraint.h.

References m_maxMotorImpulse.

◆ getMotorTarget()

const btQuaternion & getMotorTarget ( ) const

Definition at line 321 of file btConeTwistConstraint.h.

References m_qTarget.

◆ getParam()

virtual btScalar getParam ( int num,
int axis = -1 ) const
virtual

return the local value of parameter

References num.

◆ GetPointForAngle()

btVector3 btConeTwistConstraint::GetPointForAngle ( btScalar fAngleInRadians,
btScalar fLength ) const

◆ getRelaxationFactor()

btScalar getRelaxationFactor ( ) const
inline

Definition at line 285 of file btConeTwistConstraint.h.

References m_relaxationFactor.

◆ getRigidBodyA()

◆ getRigidBodyB()

◆ getSolveSwingLimit()

int getSolveSwingLimit ( )
inline

Definition at line 252 of file btConeTwistConstraint.h.

References m_solveSwingLimit.

◆ getSolveTwistLimit()

int getSolveTwistLimit ( )
inline

Definition at line 247 of file btConeTwistConstraint.h.

References m_solveTwistLimit.

◆ getSwingSpan1()

btScalar getSwingSpan1 ( ) const
inline

Definition at line 265 of file btConeTwistConstraint.h.

References m_swingSpan1.

◆ getSwingSpan2()

btScalar getSwingSpan2 ( ) const
inline

Definition at line 269 of file btConeTwistConstraint.h.

References m_swingSpan2.

◆ getTwistAngle()

btScalar getTwistAngle ( ) const
inline

Definition at line 289 of file btConeTwistConstraint.h.

References m_twistAngle.

◆ getTwistLimitSign()

btScalar getTwistLimitSign ( )
inline

Definition at line 257 of file btConeTwistConstraint.h.

References m_twistLimitSign.

◆ getTwistSpan()

btScalar getTwistSpan ( ) const
inline

Definition at line 273 of file btConeTwistConstraint.h.

References m_twistSpan.

◆ init()

◆ isMaxMotorImpulseNormalized()

bool isMaxMotorImpulseNormalized ( ) const

Definition at line 301 of file btConeTwistConstraint.h.

References m_bNormalizedMotorStrength.

◆ isMotorEnabled()

bool isMotorEnabled ( ) const

Definition at line 299 of file btConeTwistConstraint.h.

References m_bMotorEnabled.

◆ isPastSwingLimit()

bool isPastSwingLimit ( )

Definition at line 293 of file btConeTwistConstraint.h.

References m_solveSwingLimit.

◆ serialize()

virtual const char * serialize ( void * dataBuffer,
btSerializer * serializer ) const
virtual

fills the dataBuffer and returns the struct name (and 0 on failure)

◆ setAngularOnly()

void setAngularOnly ( bool angularOnly)

Definition at line 160 of file btConeTwistConstraint.h.

References m_angularOnly.

◆ setDamping()

void setDamping ( btScalar damping)

Definition at line 296 of file btConeTwistConstraint.h.

References m_damping.

Referenced by btHinge2Constraint().

◆ setFixThresh()

void setFixThresh ( btScalar fixThresh)

Definition at line 314 of file btConeTwistConstraint.h.

References m_fixThresh.

◆ setFrames()

void btHingeConstraint::setFrames ( const btTransform & frameA,
const btTransform & frameB )
virtual

Definition at line 1110 of file btConeTwistConstraint.cpp.

References btTransform, buildJacobian(), m_rbAFrame, and m_rbBFrame.

◆ setLimit() [1/2]

void setLimit ( btScalar _swingSpan1,
btScalar _swingSpan2,
btScalar _twistSpan,
btScalar _softness = 1.f,
btScalar _biasFactor = 0.3f,
btScalar _relaxationFactor = 1.0f )

◆ setLimit() [2/2]

void setLimit ( int limitIndex,
btScalar limitValue )

Definition at line 170 of file btConeTwistConstraint.h.

References m_swingSpan1, m_swingSpan2, and m_twistSpan.

◆ setMaxMotorImpulse()

void setMaxMotorImpulse ( btScalar maxMotorImpulse)

Definition at line 302 of file btConeTwistConstraint.h.

References m_bNormalizedMotorStrength, and m_maxMotorImpulse.

◆ setMaxMotorImpulseNormalized()

void setMaxMotorImpulseNormalized ( btScalar maxMotorImpulse)

Definition at line 307 of file btConeTwistConstraint.h.

References m_bNormalizedMotorStrength, and m_maxMotorImpulse.

◆ setMotorTarget()

void btConeTwistConstraint::setMotorTarget ( const btQuaternion & q)

Definition at line 961 of file btConeTwistConstraint.cpp.

References m_rbAFrame, m_rbBFrame, and setMotorTargetInConstraintSpace().

Referenced by setMotorTarget().

◆ setMotorTargetInConstraintSpace()

◆ setParam()

virtual void setParam ( int num,
btScalar value,
int axis = -1 )
virtual

override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). If no axis is provided, it uses the default axis for this constraint.

References btTransform, and num.

◆ solveConstraintObsolete()

◆ updateRHS()

void btPoint2PointConstraint::updateRHS ( btScalar timeStep)

Definition at line 509 of file btConeTwistConstraint.cpp.

Variable Documentation

◆ __pad0__

btConeTwistConstraint can be used to simulate ragdoll joints (upper arm, leg etc)

Definition at line 58 of file btConeTwistConstraint.h.

◆ m_accMotorImpulse

btVector3 m_accMotorImpulse

Definition at line 111 of file btConeTwistConstraint.h.

Referenced by buildJacobian(), and solveConstraintObsolete().

◆ m_accSwingLimitImpulse

btScalar m_accSwingLimitImpulse

Definition at line 92 of file btConeTwistConstraint.h.

Referenced by buildJacobian(), and solveConstraintObsolete().

◆ m_accTwistLimitImpulse

btScalar m_accTwistLimitImpulse

Definition at line 93 of file btConeTwistConstraint.h.

Referenced by buildJacobian(), and solveConstraintObsolete().

◆ m_angCFM

btScalar m_angCFM

Definition at line 117 of file btConeTwistConstraint.h.

Referenced by getInfo2NonVirtual().

◆ m_angularOnly

◆ m_biasFactor

◆ m_bMotorEnabled

bool m_bMotorEnabled

◆ m_bNormalizedMotorStrength

bool m_bNormalizedMotorStrength

◆ m_damping

btScalar m_damping

Definition at line 72 of file btConeTwistConstraint.h.

Referenced by getDamping(), setDamping(), and solveConstraintObsolete().

◆ m_fixThresh

btScalar m_fixThresh

◆ m_flags

◆ m_kSwing

btScalar m_kSwing

Definition at line 83 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo2(), and solveConstraintObsolete().

◆ m_kTwist

btScalar m_kTwist

Definition at line 84 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo2(), and solveConstraintObsolete().

◆ m_limitSoftness

◆ m_linCFM

btScalar m_linCFM

Definition at line 115 of file btConeTwistConstraint.h.

Referenced by getInfo2NonVirtual().

◆ m_linERP

btScalar m_linERP

Definition at line 116 of file btConeTwistConstraint.h.

Referenced by getInfo2NonVirtual().

◆ m_maxMotorImpulse

◆ m_qTarget

◆ m_rbAFrame

◆ m_rbBFrame

◆ m_relaxationFactor

◆ m_solveSwingLimit

◆ m_solveTwistLimit

bool m_solveTwistLimit

◆ m_swingAxis

◆ m_swingCorrection

btScalar m_swingCorrection

◆ m_swingLimitRatio

btScalar m_swingLimitRatio

Definition at line 102 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo2(), and solveConstraintObsolete().

◆ m_swingSpan1

◆ m_swingSpan2

◆ m_twistAngle

btScalar m_twistAngle

Definition at line 90 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo(), calcAngleInfo2(), and getTwistAngle().

◆ m_twistAxis

◆ m_twistAxisA

btVector3 m_twistAxisA

Definition at line 104 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo2(), and solveConstraintObsolete().

◆ m_twistCorrection

btScalar m_twistCorrection

◆ m_twistLimitRatio

btScalar m_twistLimitRatio

Definition at line 103 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo2(), and solveConstraintObsolete().

◆ m_twistLimitSign

btScalar m_twistLimitSign

Definition at line 86 of file btConeTwistConstraint.h.

Referenced by calcAngleInfo(), calcAngleInfo2(), and getTwistLimitSign().

◆ m_twistSpan

◆ m_useSolveConstraintObsolete