Blender V5.0
btGeneric6DofSpring2Constraint.h File Reference

Go to the source code of this file.

Classes

class  btRotationalLimitMotor2
class  btTranslationalLimitMotor2
struct  btGeneric6DofSpring2ConstraintData
struct  btGeneric6DofSpring2ConstraintDoubleData2

Macros

#define btGeneric6DofSpring2ConstraintData2   btGeneric6DofSpring2ConstraintData
#define btGeneric6DofSpring2ConstraintDataName   "btGeneric6DofSpring2ConstraintData"
#define BT_6DOF_FLAGS_AXIS_SHIFT2   4

Enumerations

enum  RotateOrder {
  RO_XYZ = 0 , RO_XZY , RO_YXZ , RO_YZX ,
  RO_ZXY , RO_ZYX
}
enum  bt6DofFlags2 {
  BT_6DOF_FLAGS_CFM_STOP2 = 1 , BT_6DOF_FLAGS_ERP_STOP2 = 2 , BT_6DOF_FLAGS_CFM_MOTO2 = 4 , BT_6DOF_FLAGS_ERP_MOTO2 = 8 ,
  BT_6DOF_FLAGS_USE_INFINITE_ERROR = (1<<16)
}

Functions

btGeneric6DofSpring2Constraintoperator= (const btGeneric6DofSpring2Constraint &)
int setAngularLimits (btConstraintInfo2 *info, int row_offset, const btTransform &transA, const btTransform &transB, const btVector3 &linVelA, const btVector3 &linVelB, const btVector3 &angVelA, const btVector3 &angVelB)
int setLinearLimits (btConstraintInfo2 *info, int row, const btTransform &transA, const btTransform &transB, const btVector3 &linVelA, const btVector3 &linVelB, const btVector3 &angVelA, const btVector3 &angVelB)
void calculateLinearInfo ()
void calculateAngleInfo ()
void testAngularLimitMotor (int axis_index)
void calculateJacobi (btRotationalLimitMotor2 *limot, const btTransform &transA, const btTransform &transB, btConstraintInfo2 *info, int srow, btVector3 &ax1, int rotational, int rotAllowed)
int get_limit_motor_info2 (btRotationalLimitMotor2 *limot, const btTransform &transA, const btTransform &transB, const btVector3 &linVelA, const btVector3 &linVelB, const btVector3 &angVelA, const btVector3 &angVelB, btConstraintInfo2 *info, int row, btVector3 &ax1, int rotational, int rotAllowed=false)
 BT_DECLARE_ALIGNED_ALLOCATOR ()
 btGeneric6DofSpring2Constraint (btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, RotateOrder rotOrder=RO_XYZ)
 btGeneric6DofSpring2Constraint (btRigidBody &rbB, const btTransform &frameInB, RotateOrder rotOrder=RO_XYZ)
virtual void buildJacobian ()
 obsolete methods
virtual void getInfo1 (btConstraintInfo1 *info)
virtual void getInfo2 (btConstraintInfo2 *info)
virtual int calculateSerializeBufferSize () const
virtual const char * serialize (void *dataBuffer, btSerializer *serializer) const
btRotationalLimitMotor2getRotationalLimitMotor (int index)
btTranslationalLimitMotor2getTranslationalLimitMotor ()
void calculateTransforms (const btTransform &transA, const btTransform &transB)
void calculateTransforms ()
const btTransformgetCalculatedTransformA () const
const btTransformgetCalculatedTransformB () const
const btTransformgetFrameOffsetA () const
const btTransformgetFrameOffsetB () const
btVector3 getAxis (int axis_index) const
 Get the rotation axis in global coordinates.
btScalar getAngle (int axis_index) const
 Get the relative Euler angle.
btScalar getRelativePivotPosition (int axis_index) const
 Get the relative position of the constraint pivot.
void setFrames (const btTransform &frameA, const btTransform &frameB)
void setLinearLowerLimit (const btVector3 &linearLower)
void getLinearLowerLimit (btVector3 &linearLower)
void setLinearUpperLimit (const btVector3 &linearUpper)
void getLinearUpperLimit (btVector3 &linearUpper)
void setAngularLowerLimit (const btVector3 &angularLower)
void setAngularLowerLimitReversed (const btVector3 &angularLower)
void getAngularLowerLimit (btVector3 &angularLower)
void getAngularLowerLimitReversed (btVector3 &angularLower)
void setAngularUpperLimit (const btVector3 &angularUpper)
void setAngularUpperLimitReversed (const btVector3 &angularUpper)
void getAngularUpperLimit (btVector3 &angularUpper)
void getAngularUpperLimitReversed (btVector3 &angularUpper)
void setLimit (int axis, btScalar lo, btScalar hi)
void setLimitReversed (int axis, btScalar lo, btScalar hi)
bool isLimited (int limitIndex)
void setRotationOrder (RotateOrder order)
RotateOrder getRotationOrder ()
void setAxis (const btVector3 &axis1, const btVector3 &axis2)
void setBounce (int index, btScalar bounce)
void enableMotor (int index, bool onOff)
void setServo (int index, bool onOff)
void setTargetVelocity (int index, btScalar velocity)
void setServoTarget (int index, btScalar target)
void setMaxMotorForce (int index, btScalar force)
void enableSpring (int index, bool onOff)
void setStiffness (int index, btScalar stiffness, bool limitIfNeeded=true)
void setDamping (int index, btScalar damping, bool limitIfNeeded=true)
void setEquilibriumPoint ()
void setEquilibriumPoint (int index)
void setEquilibriumPoint (int index, btScalar val)
virtual void setParam (int num, btScalar value, int axis=-1)
virtual btScalar getParam (int num, int axis=-1) const
static btScalar btGetMatrixElem (const btMatrix3x3 &mat, int index)
static bool matrixToEulerXYZ (const btMatrix3x3 &mat, btVector3 &xyz)
 MatrixToEulerXYZ from http://www.geometrictools.com/LibFoundation/Mathematics/Wm4Matrix3.inl.html.
static bool matrixToEulerXZY (const btMatrix3x3 &mat, btVector3 &xyz)
static bool matrixToEulerYXZ (const btMatrix3x3 &mat, btVector3 &xyz)
static bool matrixToEulerYZX (const btMatrix3x3 &mat, btVector3 &xyz)
static bool matrixToEulerZXY (const btMatrix3x3 &mat, btVector3 &xyz)
static bool matrixToEulerZYX (const btMatrix3x3 &mat, btVector3 &xyz)

Variables

btGeneric6DofSpring2Constraint __pad0__
btTransform m_frameInB
btJacobianEntry m_jacLinear [3]
btJacobianEntry m_jacAng [3]
btTranslationalLimitMotor2 m_linearLimits
btRotationalLimitMotor2 m_angularLimits [3]
RotateOrder m_rotateOrder
btTransform m_calculatedTransformA
btTransform m_calculatedTransformB
btVector3 m_calculatedAxisAngleDiff
btVector3 m_calculatedAxis [3]
btVector3 m_calculatedLinearDiff
btScalar m_factA
btScalar m_factB
bool m_hasStaticBody
int m_flags

Macro Definition Documentation

◆ BT_6DOF_FLAGS_AXIS_SHIFT2

#define BT_6DOF_FLAGS_AXIS_SHIFT2   4

Definition at line 270 of file btGeneric6DofSpring2Constraint.h.

◆ btGeneric6DofSpring2ConstraintData2

#define btGeneric6DofSpring2ConstraintData2   btGeneric6DofSpring2ConstraintData

Definition at line 53 of file btGeneric6DofSpring2Constraint.h.

◆ btGeneric6DofSpring2ConstraintDataName

#define btGeneric6DofSpring2ConstraintDataName   "btGeneric6DofSpring2ConstraintData"

Definition at line 54 of file btGeneric6DofSpring2Constraint.h.

Enumeration Type Documentation

◆ bt6DofFlags2

Enumerator
BT_6DOF_FLAGS_CFM_STOP2 
BT_6DOF_FLAGS_ERP_STOP2 
BT_6DOF_FLAGS_CFM_MOTO2 
BT_6DOF_FLAGS_ERP_MOTO2 
BT_6DOF_FLAGS_USE_INFINITE_ERROR 

Definition at line 262 of file btGeneric6DofSpring2Constraint.h.

◆ RotateOrder

Enumerator
RO_XYZ 
RO_XZY 
RO_YXZ 
RO_YZX 
RO_ZXY 
RO_ZYX 

Definition at line 57 of file btGeneric6DofSpring2Constraint.h.

Function Documentation

◆ BT_DECLARE_ALIGNED_ALLOCATOR()

BT_DECLARE_ALIGNED_ALLOCATOR ( )

References btTransform, frameInA, frameInB, rbB, and RO_XYZ.

◆ btGeneric6DofSpring2Constraint() [1/2]

btGeneric6DofSpring2Constraint::btGeneric6DofSpring2Constraint ( btRigidBody & rbA,
btRigidBody & rbB,
const btTransform & frameInA,
const btTransform & frameInB,
RotateOrder rotOrder = RO_XYZ )

◆ btGeneric6DofSpring2Constraint() [2/2]

btGeneric6DofSpring2Constraint::btGeneric6DofSpring2Constraint ( btRigidBody & rbB,
const btTransform & frameInB,
RotateOrder rotOrder = RO_XYZ )

not providing rigidbody A means implicitly using worldspace for body A

Definition at line 52 of file btGeneric6DofSpring2Constraint.cpp.

References btTransform, btTypedConstraint(), calculateTransforms(), D6_SPRING_2_CONSTRAINT_TYPE, frameInB, getFixedBody(), m_flags, m_frameInA, m_frameInB, m_rotateOrder, and rbB.

◆ btGetMatrixElem()

btScalar btGetMatrixElem ( const btMatrix3x3 & mat,
int index )
static

◆ buildJacobian()

virtual void buildJacobian ( )
virtual

obsolete methods

performs Jacobian calculation, and also calculates angle differences and axis

we need it for both methods

Definition at line 322 of file btGeneric6DofSpring2Constraint.h.

◆ calculateAngleInfo()

void calculateAngleInfo ( )
protected

◆ calculateJacobi()

void btGeneric6DofSpring2Constraint::calculateJacobi ( btRotationalLimitMotor2 * limot,
const btTransform & transA,
const btTransform & transB,
btConstraintInfo2 * info,
int srow,
btVector3 & ax1,
int rotational,
int rotAllowed )
protected

◆ calculateLinearInfo()

void calculateLinearInfo ( )
protected

◆ calculateSerializeBufferSize()

virtual int calculateSerializeBufferSize ( ) const
virtual

◆ calculateTransforms() [1/2]

void calculateTransforms ( )

◆ calculateTransforms() [2/2]

void calculateTransforms ( const btTransform & transA,
const btTransform & transB )

References btTransform.

◆ enableMotor()

void btGeneric6DofSpring2Constraint::enableMotor ( int index,
bool onOff )

Definition at line 1050 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

◆ enableSpring()

void btGeneric6DofSpringConstraint::enableSpring ( int index,
bool onOff )

Definition at line 1130 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

Referenced by btHinge2Constraint().

◆ get_limit_motor_info2()

int btGeneric6DofSpring2Constraint::get_limit_motor_info2 ( btRotationalLimitMotor2 * limot,
const btTransform & transA,
const btTransform & transB,
const btVector3 & linVelA,
const btVector3 & linVelB,
const btVector3 & angVelA,
const btVector3 & angVelB,
btConstraintInfo2 * info,
int row,
btVector3 & ax1,
int rotational,
int rotAllowed = false )
protected

◆ getAngle()

btScalar getAngle ( int axis_index) const

Get the relative Euler angle.

Precondition
btGeneric6DofConstraint::calculateTransforms() must be called previously.

Definition at line 350 of file btGeneric6DofSpring2Constraint.h.

References m_calculatedAxisAngleDiff.

Referenced by getAngle1(), and getAngle2().

◆ getAngularLowerLimit()

void getAngularLowerLimit ( btVector3 & angularLower)

Definition at line 374 of file btGeneric6DofSpring2Constraint.h.

References btVector3, i, and m_angularLimits.

◆ getAngularLowerLimitReversed()

void getAngularLowerLimitReversed ( btVector3 & angularLower)

Definition at line 380 of file btGeneric6DofSpring2Constraint.h.

References btVector3, i, and m_angularLimits.

◆ getAngularUpperLimit()

void getAngularUpperLimit ( btVector3 & angularUpper)

Definition at line 398 of file btGeneric6DofSpring2Constraint.h.

References btVector3, i, and m_angularLimits.

◆ getAngularUpperLimitReversed()

void getAngularUpperLimitReversed ( btVector3 & angularUpper)

Definition at line 404 of file btGeneric6DofSpring2Constraint.h.

References btVector3, i, and m_angularLimits.

◆ getAxis()

btVector3 getAxis ( int axis_index) const

Get the rotation axis in global coordinates.

Precondition
btGeneric6DofConstraint.buildJacobian must be called previously.

Definition at line 347 of file btGeneric6DofSpring2Constraint.h.

References btVector3, and m_calculatedAxis.

◆ getCalculatedTransformA()

const btTransform & getCalculatedTransformA ( ) const

Definition at line 336 of file btGeneric6DofSpring2Constraint.h.

References btTransform, and m_calculatedTransformA.

◆ getCalculatedTransformB()

const btTransform & getCalculatedTransformB ( ) const

Definition at line 338 of file btGeneric6DofSpring2Constraint.h.

References btTransform, and m_calculatedTransformB.

◆ getFrameOffsetA()

const btTransform & getFrameOffsetA ( ) const

Definition at line 340 of file btGeneric6DofSpring2Constraint.h.

References btTransform, and m_frameInA.

◆ getFrameOffsetB()

const btTransform & getFrameOffsetB ( ) const

Definition at line 341 of file btGeneric6DofSpring2Constraint.h.

References btTransform, and m_frameInB.

◆ getInfo1()

virtual void getInfo1 ( btConstraintInfo1 * info)
virtual

◆ getInfo2()

virtual void getInfo2 ( btConstraintInfo2 * info)
virtual

◆ getLinearLowerLimit()

void getLinearLowerLimit ( btVector3 & linearLower)

Definition at line 358 of file btGeneric6DofSpring2Constraint.h.

References btVector3, and m_linearLimits.

◆ getLinearUpperLimit()

void getLinearUpperLimit ( btVector3 & linearUpper)

Definition at line 360 of file btGeneric6DofSpring2Constraint.h.

References btVector3, and m_linearLimits.

◆ getParam()

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

References btMatrix3x3, btVector3, and num.

◆ getRelativePivotPosition()

btScalar getRelativePivotPosition ( int axis_index) const

Get the relative position of the constraint pivot.

Precondition
btGeneric6DofConstraint::calculateTransforms() must be called previously.

Definition at line 353 of file btGeneric6DofSpring2Constraint.h.

References m_calculatedLinearDiff.

◆ getRotationalLimitMotor()

btRotationalLimitMotor2 * getRotationalLimitMotor ( int index)

Definition at line 328 of file btGeneric6DofSpring2Constraint.h.

References m_angularLimits.

◆ getRotationOrder()

RotateOrder getRotationOrder ( )

Definition at line 454 of file btGeneric6DofSpring2Constraint.h.

References m_rotateOrder.

◆ getTranslationalLimitMotor()

btTranslationalLimitMotor2 * getTranslationalLimitMotor ( )

Definition at line 329 of file btGeneric6DofSpring2Constraint.h.

References m_linearLimits.

◆ isLimited()

bool isLimited ( int limitIndex)

Definition at line 444 of file btGeneric6DofSpring2Constraint.h.

References m_angularLimits, and m_linearLimits.

◆ matrixToEulerXYZ()

bool matrixToEulerXYZ ( const btMatrix3x3 & mat,
btVector3 & xyz )
static

◆ matrixToEulerXZY()

bool btGeneric6DofSpring2Constraint::matrixToEulerXZY ( const btMatrix3x3 & mat,
btVector3 & xyz )
static

◆ matrixToEulerYXZ()

bool btGeneric6DofSpring2Constraint::matrixToEulerYXZ ( const btMatrix3x3 & mat,
btVector3 & xyz )
static

◆ matrixToEulerYZX()

bool btGeneric6DofSpring2Constraint::matrixToEulerYZX ( const btMatrix3x3 & mat,
btVector3 & xyz )
static

◆ matrixToEulerZXY()

bool btGeneric6DofSpring2Constraint::matrixToEulerZXY ( const btMatrix3x3 & mat,
btVector3 & xyz )
static

◆ matrixToEulerZYX()

bool btGeneric6DofSpring2Constraint::matrixToEulerZYX ( const btMatrix3x3 & mat,
btVector3 & xyz )
static

◆ operator=()

◆ serialize()

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

◆ setAngularLimits()

int setAngularLimits ( btConstraintInfo2 * info,
int row_offset,
const btTransform & transA,
const btTransform & transB,
const btVector3 & linVelA,
const btVector3 & linVelB,
const btVector3 & angVelA,
const btVector3 & angVelB )
protected

References btTransform, and btVector3.

◆ setAngularLowerLimit()

void setAngularLowerLimit ( const btVector3 & angularLower)

Definition at line 362 of file btGeneric6DofSpring2Constraint.h.

References btNormalizeAngle(), btVector3, i, and m_angularLimits.

◆ setAngularLowerLimitReversed()

void setAngularLowerLimitReversed ( const btVector3 & angularLower)

Definition at line 368 of file btGeneric6DofSpring2Constraint.h.

References btNormalizeAngle(), btVector3, i, and m_angularLimits.

◆ setAngularUpperLimit()

void setAngularUpperLimit ( const btVector3 & angularUpper)

Definition at line 386 of file btGeneric6DofSpring2Constraint.h.

References btNormalizeAngle(), btVector3, i, and m_angularLimits.

◆ setAngularUpperLimitReversed()

void setAngularUpperLimitReversed ( const btVector3 & angularUpper)

Definition at line 392 of file btGeneric6DofSpring2Constraint.h.

References btNormalizeAngle(), btVector3, i, and m_angularLimits.

◆ setAxis()

void setAxis ( const btVector3 & axis1,
const btVector3 & axis2 )

References btVector3.

◆ setBounce()

void btGeneric6DofSpring2Constraint::setBounce ( int index,
btScalar bounce )

Definition at line 1041 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

◆ setDamping()

void setDamping ( int index,
btScalar damping,
bool limitIfNeeded = true )

◆ setEquilibriumPoint() [1/3]

void btGeneric6DofSpringConstraint::setEquilibriumPoint ( )

◆ setEquilibriumPoint() [2/3]

void btGeneric6DofSpringConstraint::setEquilibriumPoint ( int index)

◆ setEquilibriumPoint() [3/3]

void btGeneric6DofSpringConstraint::setEquilibriumPoint ( int index,
btScalar val )

Definition at line 1189 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

◆ setFrames()

void setFrames ( const btTransform & frameA,
const btTransform & frameB )

Definition at line 264 of file btSliderConstraint.h.

◆ setLimit()

void setLimit ( int axis,
btScalar lo,
btScalar hi )

◆ setLimitReversed()

void setLimitReversed ( int axis,
btScalar lo,
btScalar hi )

◆ setLinearLimits()

int setLinearLimits ( btConstraintInfo2 * info,
int row,
const btTransform & transA,
const btTransform & transB,
const btVector3 & linVelA,
const btVector3 & linVelB,
const btVector3 & angVelA,
const btVector3 & angVelB )
protected

References btTransform, and btVector3.

◆ setLinearLowerLimit()

void setLinearLowerLimit ( const btVector3 & linearLower)

Definition at line 357 of file btGeneric6DofSpring2Constraint.h.

References btVector3, and m_linearLimits.

◆ setLinearUpperLimit()

void setLinearUpperLimit ( const btVector3 & linearUpper)

Definition at line 359 of file btGeneric6DofSpring2Constraint.h.

References btVector3, and m_linearLimits.

◆ setMaxMotorForce()

void btGeneric6DofSpring2Constraint::setMaxMotorForce ( int index,
btScalar force )

Definition at line 1121 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

◆ setParam()

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

References num.

◆ setRotationOrder()

void setRotationOrder ( RotateOrder order)

Definition at line 453 of file btGeneric6DofSpring2Constraint.h.

References m_rotateOrder.

◆ setServo()

void btGeneric6DofSpring2Constraint::setServo ( int index,
bool onOff )

Definition at line 1059 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

◆ setServoTarget()

void btGeneric6DofSpring2Constraint::setServoTarget ( int index,
btScalar target )

◆ setStiffness()

void btGeneric6DofSpring2Constraint::setStiffness ( int index,
btScalar stiffness,
bool limitIfNeeded = true )

Definition at line 1139 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

Referenced by btHinge2Constraint().

◆ setTargetVelocity()

void btGeneric6DofSpring2Constraint::setTargetVelocity ( int index,
btScalar velocity )

Definition at line 1068 of file btGeneric6DofSpring2Constraint.cpp.

References btAssert, m_angularLimits, and m_linearLimits.

◆ testAngularLimitMotor()

void testAngularLimitMotor ( int axis_index)
protected

References btTransform, and btVector3.

Variable Documentation

◆ __pad0__

◆ m_angularLimits

btRotationalLimitMotor2 m_angularLimits[3]

Definition at line 283 of file btGeneric6DofSpring2Constraint.h.

◆ m_calculatedAxis

btVector3 m_calculatedAxis[3]
protected

Definition at line 291 of file btGeneric6DofSpring2Constraint.h.

◆ m_calculatedAxisAngleDiff

btVector3 m_calculatedAxisAngleDiff
protected

Definition at line 290 of file btGeneric6DofSpring2Constraint.h.

◆ m_calculatedLinearDiff

btVector3 m_calculatedLinearDiff
protected

Definition at line 292 of file btGeneric6DofSpring2Constraint.h.

◆ m_calculatedTransformA

btTransform m_calculatedTransformA
protected

Definition at line 288 of file btGeneric6DofSpring2Constraint.h.

◆ m_calculatedTransformB

btTransform m_calculatedTransformB
protected

Definition at line 289 of file btGeneric6DofSpring2Constraint.h.

◆ m_factA

btScalar m_factA
protected

Definition at line 293 of file btGeneric6DofSpring2Constraint.h.

◆ m_factB

btScalar m_factB
protected

Definition at line 294 of file btGeneric6DofSpring2Constraint.h.

◆ m_flags

int m_flags
protected

Definition at line 296 of file btGeneric6DofSpring2Constraint.h.

◆ m_frameInB

btTransform m_frameInB

Definition at line 277 of file btGeneric6DofSpring2Constraint.h.

◆ m_hasStaticBody

bool m_hasStaticBody
protected

Definition at line 295 of file btGeneric6DofSpring2Constraint.h.

◆ m_jacAng

btJacobianEntry m_jacAng[3]

Definition at line 280 of file btGeneric6DofSpring2Constraint.h.

◆ m_jacLinear

btJacobianEntry m_jacLinear[3]

Definition at line 279 of file btGeneric6DofSpring2Constraint.h.

◆ m_linearLimits

Definition at line 282 of file btGeneric6DofSpring2Constraint.h.

◆ m_rotateOrder