Bullet Collision Detection & Physics Library: btHingeConstraint Class Reference

Bullet Collision Detection & Physics Library

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Private Attributes | List of all members
btHingeConstraint Class Reference

hinge constraint between two rigidbodies each with a pivotpoint that descibes the axis location in local space axis defines the orientation of the hinge axis More...

`#include <btHingeConstraint.h>`

Inheritance diagram for btHingeConstraint:
[legend]
Collaboration diagram for btHingeConstraint:
[legend]

## Public Member Functions
| BT_DECLARE_ALIGNED_ALLOCATOR ()
| btHingeConstraint (btRigidBody &rbA, btRigidBody &rbB, const btVector3 &pivotInA, const btVector3 &pivotInB, const btVector3 &axisInA, const btVector3 &axisInB, bool useReferenceFrameA=false)
| btHingeConstraint (btRigidBody &rbA, const btVector3 &pivotInA, const btVector3 &axisInA, bool useReferenceFrameA=false)
| btHingeConstraint (btRigidBody &rbA, btRigidBody &rbB, const btTransform &rbAFrame, const btTransform &rbBFrame, bool useReferenceFrameA=false)
| btHingeConstraint (btRigidBody &rbA, const btTransform &rbAFrame, bool useReferenceFrameA=false)
virtual void | buildJacobian ()
| internal method used by the constraint solver, don't use them directly More...
virtual void | getInfo1 (btConstraintInfo1 *info)
| internal method used by the constraint solver, don't use them directly More...
void | getInfo1NonVirtual (btConstraintInfo1 *info)
virtual void | getInfo2 (btConstraintInfo2 *info)
| internal method used by the constraint solver, don't use them directly More...
void | getInfo2NonVirtual (btConstraintInfo2 *info, const btTransform &transA, const btTransform &transB, const btVector3 &angVelA, const btVector3 &angVelB)
void | getInfo2Internal (btConstraintInfo2 *info, const btTransform &transA, const btTransform &transB, const btVector3 &angVelA, const btVector3 &angVelB)
void | getInfo2InternalUsingFrameOffset (btConstraintInfo2 *info, const btTransform &transA, const btTransform &transB, const btVector3 &angVelA, const btVector3 &angVelB)
void | updateRHS (btScalar timeStep)
const btRigidBody & | getRigidBodyA () const
const btRigidBody & | getRigidBodyB () const
btRigidBody & | getRigidBodyA ()
btRigidBody & | getRigidBodyB ()
btTransform & | getFrameOffsetA ()
btTransform & | getFrameOffsetB ()
void | setFrames (const btTransform &frameA, const btTransform &frameB)
void | setAngularOnly (bool angularOnly)
void | enableAngularMotor (bool enableMotor, btScalar targetVelocity, btScalar maxMotorImpulse)
void | enableMotor (bool enableMotor)
void | setMaxMotorImpulse (btScalar maxMotorImpulse)
void | setMotorTarget (const btQuaternion &qAinB, btScalar dt)
void | setMotorTarget (btScalar targetAngle, btScalar dt)
void | setLimit (btScalar low, btScalar high, btScalar _softness=0.9f, btScalar _biasFactor=0.3f, btScalar _relaxationFactor=1.0f)
void | setAxis (btVector3 &axisInA)
bool | hasLimit () const
btScalar | getLowerLimit () const
btScalar | getUpperLimit () const
btScalar | getHingeAngle ()
| The getHingeAngle gives the hinge angle in range [-PI,PI]. More...
btScalar | getHingeAngle (const btTransform &transA, const btTransform &transB)
void | testLimit (const btTransform &transA, const btTransform &transB)
const btTransform & | getAFrame () const
const btTransform & | getBFrame () const
btTransform & | getAFrame ()
btTransform & | getBFrame ()
int | getSolveLimit ()
btScalar | getLimitSign ()
bool | getAngularOnly ()
bool | getEnableAngularMotor ()
btScalar | getMotorTargetVelosity ()
btScalar | getMaxMotorImpulse ()
bool | getUseFrameOffset ()
void | setUseFrameOffset (bool frameOffsetOnOff)
virtual void | setParam (int num, btScalar value, int axis=-1)
| override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). More...
virtual btScalar | getParam (int num, int axis=-1) const
| return the local value of parameter More...
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) More...
Public Member Functions inherited from btTypedConstraint
| BT_DECLARE_ALIGNED_ALLOCATOR ()
virtual | ~btTypedConstraint ()
| btTypedConstraint (btTypedConstraintType type, btRigidBody &rbA)
| btTypedConstraint (btTypedConstraintType type, btRigidBody &rbA, btRigidBody &rbB)
int | getOverrideNumSolverIterations () const
void | setOverrideNumSolverIterations (int overideNumIterations)
| override the number of constraint solver iterations used to solve this constraint -1 will use the default number of iterations, as specified in SolverInfo.m_numIterations More...
virtual void | setupSolverConstraint (btConstraintArray &ca, int solverBodyA, int solverBodyB, btScalar timeStep)
| internal method used by the constraint solver, don't use them directly More...
void | internalSetAppliedImpulse (btScalar appliedImpulse)
| internal method used by the constraint solver, don't use them directly More...
btScalar | internalGetAppliedImpulse ()
| internal method used by the constraint solver, don't use them directly More...
btScalar | getBreakingImpulseThreshold () const
void | setBreakingImpulseThreshold (btScalar threshold)
bool | isEnabled () const
void | setEnabled (bool enabled)
virtual void | solveConstraintObsolete (btSolverBody &, btSolverBody &, btScalar)
| internal method used by the constraint solver, don't use them directly More...
const btRigidBody & | getRigidBodyA () const
const btRigidBody & | getRigidBodyB () const
btRigidBody & | getRigidBodyA ()
btRigidBody & | getRigidBodyB ()
int | getUserConstraintType () const
void | setUserConstraintType (int userConstraintType)
void | setUserConstraintId (int uid)
int | getUserConstraintId () const
void | setUserConstraintPtr (void *ptr)
void * | getUserConstraintPtr ()
void | setJointFeedback (btJointFeedback *jointFeedback)
const btJointFeedback * | getJointFeedback () const
btJointFeedback * | getJointFeedback ()
int | getUid () const
bool | needsFeedback () const
void | enableFeedback (bool needsFeedback)
| enableFeedback will allow to read the applied linear and angular impulse use getAppliedImpulse, getAppliedLinearImpulse and getAppliedAngularImpulse to read feedback information More...
btScalar | getAppliedImpulse () const
| getAppliedImpulse is an estimated total applied impulse. More...
btTypedConstraintType | getConstraintType () const
void | setDbgDrawSize (btScalar dbgDrawSize)
btScalar | getDbgDrawSize ()
Public Member Functions inherited from btTypedObject
| btTypedObject (int objectType)
int | getObjectType () const

## Private Attributes
btJacobianEntry | m_jac [3]
btJacobianEntry | m_jacAng [3]
btTransform | m_rbAFrame
btTransform | m_rbBFrame
btScalar | m_motorTargetVelocity
btScalar | m_maxMotorImpulse
btAngularLimit | m_limit
btScalar | m_kHinge
btScalar | m_accLimitImpulse
btScalar | m_hingeAngle
btScalar | m_referenceSign
bool | m_angularOnly
bool | m_enableAngularMotor
bool | m_useSolveConstraintObsolete
bool | m_useOffsetForConstraintFrame
bool | m_useReferenceFrameA
btScalar | m_accMotorImpulse
int | m_flags
btScalar | m_normalCFM
btScalar | m_normalERP
btScalar | m_stopCFM
btScalar | m_stopERP

## Additional Inherited Members
Static Public Member Functions inherited from btTypedConstraint
static btRigidBody & | getFixedBody ()
Public Attributes inherited from btTypedObject
int | m_objectType
Protected Member Functions inherited from btTypedConstraint
btScalar | getMotorFactor (btScalar pos, btScalar lowLim, btScalar uppLim, btScalar vel, btScalar timeFact)
| internal method used by the constraint solver, don't use them directly More...
Protected Attributes inherited from btTypedConstraint
btRigidBody & | m_rbA
btRigidBody & | m_rbB
btScalar | m_appliedImpulse
btScalar | m_dbgDrawSize
btJointFeedback * | m_jointFeedback

## Detailed Description

hinge constraint between two rigidbodies each with a pivotpoint that descibes the axis location in local space axis defines the orientation of the hinge axis

Definition at line 51 of file btHingeConstraint.h.

## Constructor & Destructor Documentation

btHingeConstraint::btHingeConstraint | ( | btRigidBody & | rbA,
|  | btRigidBody & | rbB,
|  | const btVector3 & | pivotInA,
|  | const btVector3 & | pivotInB,
|  | const btVector3 & | axisInA,
|  | const btVector3 & | axisInB,
|  | bool | useReferenceFrameA = `false`
| ) |  |

Definition at line 37 of file btHingeConstraint.cpp.

btHingeConstraint::btHingeConstraint | ( | btRigidBody & | rbA,
|  | const btVector3 & | pivotInA,
|  | const btVector3 & | axisInA,
|  | bool | useReferenceFrameA = `false`
| ) |  |

Definition at line 99 of file btHingeConstraint.cpp.

btHingeConstraint::btHingeConstraint | ( | btRigidBody & | rbA,
|  | btRigidBody & | rbB,
|  | const btTransform & | rbAFrame,
|  | const btTransform & | rbBFrame,
|  | bool | useReferenceFrameA = `false`
| ) |  |

Definition at line 151 of file btHingeConstraint.cpp.

btHingeConstraint::btHingeConstraint | ( | btRigidBody & | rbA,
|  | const btTransform & | rbAFrame,
|  | bool | useReferenceFrameA = `false`
| ) |  |

not providing rigidbody B means implicitly using worldspace for body B

Definition at line 182 of file btHingeConstraint.cpp.

## Member Function Documentation

btHingeConstraint::BT_DECLARE_ALIGNED_ALLOCATOR | ( |  | ) |

void btHingeConstraint::buildJacobian | ( |  | ) |
| virtual

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

Reimplemented from btTypedConstraint.

Definition at line 215 of file btHingeConstraint.cpp.

int btHingeConstraint::calculateSerializeBufferSize | ( |  | ) | const
| inlinevirtual

Reimplemented from btTypedConstraint.

Definition at line 424 of file btHingeConstraint.h.

void btHingeConstraint::enableAngularMotor | ( | bool | enableMotor,
|  | btScalar | targetVelocity,
|  | btScalar | maxMotorImpulse
| ) |  |
| inline

Definition at line 168 of file btHingeConstraint.h.

void btHingeConstraint::enableMotor | ( | bool | enableMotor | ) |
| inline

Definition at line 178 of file btHingeConstraint.h.

const btTransform& btHingeConstraint::getAFrame | ( |  | ) | const
| inline

Definition at line 257 of file btHingeConstraint.h.

btTransform& btHingeConstraint::getAFrame | ( |  | ) |
| inline

Definition at line 260 of file btHingeConstraint.h.

bool btHingeConstraint::getAngularOnly | ( |  | ) |
| inline

Definition at line 281 of file btHingeConstraint.h.

const btTransform& btHingeConstraint::getBFrame | ( |  | ) | const
| inline

Definition at line 258 of file btHingeConstraint.h.

btTransform& btHingeConstraint::getBFrame | ( |  | ) |
| inline

Definition at line 261 of file btHingeConstraint.h.

bool btHingeConstraint::getEnableAngularMotor | ( |  | ) |
| inline

Definition at line 285 of file btHingeConstraint.h.

btTransform& btHingeConstraint::getFrameOffsetA | ( |  | ) |
| inline

Definition at line 151 of file btHingeConstraint.h.

btTransform& btHingeConstraint::getFrameOffsetB | ( |  | ) |
| inline

Definition at line 156 of file btHingeConstraint.h.

btScalar btHingeConstraint::getHingeAngle | ( |  | ) |

The getHingeAngle gives the hinge angle in range [-PI,PI].

Definition at line 681 of file btHingeConstraint.cpp.

btScalar btHingeConstraint::getHingeAngle | ( | const btTransform & | transA,
|  | const btTransform & | transB
| ) |  |

Definition at line 686 of file btHingeConstraint.cpp.

void btHingeConstraint::getInfo1 | ( | btConstraintInfo1 * | info | ) |
| virtual

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

Implements btTypedConstraint.

Reimplemented in btHingeAccumulatedAngleConstraint.

Definition at line 354 of file btHingeConstraint.cpp.

void btHingeConstraint::getInfo1NonVirtual | ( | btConstraintInfo1 * | info | ) |

Definition at line 379 of file btHingeConstraint.cpp.

void btHingeConstraint::getInfo2 | ( | btConstraintInfo2 * | info | ) |
| virtual

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

Implements btTypedConstraint.

Definition at line 394 of file btHingeConstraint.cpp.

void btHingeConstraint::getInfo2Internal | ( | btConstraintInfo2 * | info,
|  | const btTransform & | transA,
|  | const btTransform & | transB,
|  | const btVector3 & | angVelA,
|  | const btVector3 & | angVelB
| ) |  |

Definition at line 416 of file btHingeConstraint.cpp.

void btHingeConstraint::getInfo2InternalUsingFrameOffset | ( | btConstraintInfo2 * | info,
|  | const btTransform & | transA,
|  | const btTransform & | transB,
|  | const btVector3 & | angVelA,
|  | const btVector3 & | angVelB
| ) |  |

Definition at line 777 of file btHingeConstraint.cpp.

void btHingeConstraint::getInfo2NonVirtual | ( | btConstraintInfo2 * | info,
|  | const btTransform & | transA,
|  | const btTransform & | transB,
|  | const btVector3 & | angVelA,
|  | const btVector3 & | angVelB
| ) |  |

the regular (virtual) implementation getInfo2 already performs 'testLimit' during getInfo1, so we need to do it now

Definition at line 407 of file btHingeConstraint.cpp.

btScalar btHingeConstraint::getLimitSign | ( |  | ) |
| inline

Definition at line 272 of file btHingeConstraint.h.

btScalar btHingeConstraint::getLowerLimit | ( |  | ) | const
| inline

Definition at line 230 of file btHingeConstraint.h.

btScalar btHingeConstraint::getMaxMotorImpulse | ( |  | ) |
| inline

Definition at line 293 of file btHingeConstraint.h.

btScalar btHingeConstraint::getMotorTargetVelosity | ( |  | ) |
| inline

Definition at line 289 of file btHingeConstraint.h.

btScalar btHingeConstraint::getParam | ( | int | num,
|  | int | axis = `-1`
| ) |  | const
| virtual

return the local value of parameter

Implements btTypedConstraint.

Definition at line 1094 of file btHingeConstraint.cpp.

const btRigidBody& btHingeConstraint::getRigidBodyA | ( |  | ) | const
| inline

Definition at line 132 of file btHingeConstraint.h.

btRigidBody& btHingeConstraint::getRigidBodyA | ( |  | ) |
| inline

Definition at line 141 of file btHingeConstraint.h.

const btRigidBody& btHingeConstraint::getRigidBodyB | ( |  | ) | const
| inline

Definition at line 136 of file btHingeConstraint.h.

btRigidBody& btHingeConstraint::getRigidBodyB | ( |  | ) |
| inline

Definition at line 146 of file btHingeConstraint.h.

int btHingeConstraint::getSolveLimit | ( |  | ) |
| inline

Definition at line 263 of file btHingeConstraint.h.

btScalar btHingeConstraint::getUpperLimit | ( |  | ) | const
| inline

Definition at line 239 of file btHingeConstraint.h.

bool btHingeConstraint::getUseFrameOffset | ( |  | ) |
| inline

Definition at line 298 of file btHingeConstraint.h.

bool btHingeConstraint::hasLimit | ( |  | ) | const
| inline

Definition at line 222 of file btHingeConstraint.h.

const char * btHingeConstraint::serialize | ( | void * | dataBuffer,
|  | btSerializer * | serializer
| ) |  | const
| inlinevirtual

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

Reimplemented from btTypedConstraint.

Definition at line 430 of file btHingeConstraint.h.

void btHingeConstraint::setAngularOnly | ( | bool | angularOnly | ) |
| inline

Definition at line 163 of file btHingeConstraint.h.

void btHingeConstraint::setAxis | ( | btVector3 & | axisInA | ) |
| inline

Definition at line 197 of file btHingeConstraint.h.

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

Definition at line 664 of file btHingeConstraint.cpp.

void btHingeConstraint::setLimit | ( | btScalar | low,
|  | btScalar | high,
|  | btScalar | _softness = `0.9f`,
|  | btScalar | _biasFactor = `0.3f`,
|  | btScalar | _relaxationFactor = `1.0f`
| ) |  |
| inline

Definition at line 184 of file btHingeConstraint.h.

void btHingeConstraint::setMaxMotorImpulse | ( | btScalar | maxMotorImpulse | ) |
| inline

Definition at line 179 of file btHingeConstraint.h.

void btHingeConstraint::setMotorTarget | ( | const btQuaternion & | qAinB,
|  | btScalar | dt
| ) |  |

Definition at line 731 of file btHingeConstraint.cpp.

void btHingeConstraint::setMotorTarget | ( | btScalar | targetAngle,
|  | btScalar | dt
| ) |  |

Definition at line 756 of file btHingeConstraint.cpp.

void btHingeConstraint::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.

Implements btTypedConstraint.

Definition at line 1061 of file btHingeConstraint.cpp.

void btHingeConstraint::setUseFrameOffset | ( | bool | frameOffsetOnOff | ) |
| inline

Definition at line 299 of file btHingeConstraint.h.

void btHingeConstraint::testLimit | ( | const btTransform & | transA,
|  | const btTransform & | transB
| ) |  |

Definition at line 698 of file btHingeConstraint.cpp.

void btHingeConstraint::updateRHS | ( | btScalar | timeStep | ) |

Definition at line 672 of file btHingeConstraint.cpp.

## Member Data Documentation

btScalar btHingeConstraint::m_accLimitImpulse
| private

Definition at line 84 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_accMotorImpulse
| private

Definition at line 94 of file btHingeConstraint.h.

bool btHingeConstraint::m_angularOnly
| private

Definition at line 88 of file btHingeConstraint.h.

bool btHingeConstraint::m_enableAngularMotor
| private

Definition at line 89 of file btHingeConstraint.h.

int btHingeConstraint::m_flags
| private

Definition at line 96 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_hingeAngle
| private

Definition at line 85 of file btHingeConstraint.h.

btJacobianEntry btHingeConstraint::m_jac[3]
| private

Definition at line 56 of file btHingeConstraint.h.

btJacobianEntry btHingeConstraint::m_jacAng[3]
| private

Definition at line 57 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_kHinge
| private

Definition at line 81 of file btHingeConstraint.h.

btAngularLimit btHingeConstraint::m_limit
| private

Definition at line 67 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_maxMotorImpulse
| private

Definition at line 63 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_motorTargetVelocity
| private

Definition at line 62 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_normalCFM
| private

Definition at line 97 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_normalERP
| private

Definition at line 98 of file btHingeConstraint.h.

btTransform btHingeConstraint::m_rbAFrame
| private

Definition at line 59 of file btHingeConstraint.h.

btTransform btHingeConstraint::m_rbBFrame
| private

Definition at line 60 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_referenceSign
| private

Definition at line 86 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_stopCFM
| private

Definition at line 99 of file btHingeConstraint.h.

btScalar btHingeConstraint::m_stopERP
| private

Definition at line 100 of file btHingeConstraint.h.

bool btHingeConstraint::m_useOffsetForConstraintFrame
| private

Definition at line 91 of file btHingeConstraint.h.

bool btHingeConstraint::m_useReferenceFrameA
| private

Definition at line 92 of file btHingeConstraint.h.

bool btHingeConstraint::m_useSolveConstraintObsolete
| private

Definition at line 90 of file btHingeConstraint.h.

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

- btHingeConstraint.h
- btHingeConstraint.cpp