|
Bullet Collision Detection & Physics Library
|
btGeneric6DofConstraint between two rigidbodies each with a pivotpoint that descibes the axis location in local space More...
#include <btGeneric6DofConstraint.h>


Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btGeneric6DofConstraint (btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA) | |
| btGeneric6DofConstraint (btRigidBody &rbB, const btTransform &frameInB, bool useLinearReferenceFrameB) | |
| void | calculateTransforms (const btTransform &transA, const btTransform &transB) |
| Calcs global transform of the offsets. More... | |
| void | calculateTransforms () |
| const btTransform & | getCalculatedTransformA () const |
| Gets the global transform of the offset for body A. More... | |
| const btTransform & | getCalculatedTransformB () const |
| Gets the global transform of the offset for body B. More... | |
| const btTransform & | getFrameOffsetA () const |
| const btTransform & | getFrameOffsetB () const |
| btTransform & | getFrameOffsetA () |
| btTransform & | getFrameOffsetB () |
| virtual void | buildJacobian () |
| performs Jacobian calculation, and also calculates angle differences and axis 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 &linVelA, const btVector3 &linVelB, const btVector3 &angVelA, const btVector3 &angVelB) |
| void | updateRHS (btScalar timeStep) |
| btVector3 | getAxis (int axis_index) const |
| Get the rotation axis in global coordinates. More... | |
| btScalar | getAngle (int axis_index) const |
| Get the relative Euler angle. More... | |
| btScalar | getRelativePivotPosition (int axis_index) const |
| Get the relative position of the constraint pivot. More... | |
| void | setFrames (const btTransform &frameA, const btTransform &frameB) |
| bool | testAngularLimitMotor (int axis_index) |
| Test angular limit. More... | |
| void | setLinearLowerLimit (const btVector3 &linearLower) |
| void | getLinearLowerLimit (btVector3 &linearLower) |
| void | setLinearUpperLimit (const btVector3 &linearUpper) |
| void | getLinearUpperLimit (btVector3 &linearUpper) |
| void | setAngularLowerLimit (const btVector3 &angularLower) |
| void | getAngularLowerLimit (btVector3 &angularLower) |
| void | setAngularUpperLimit (const btVector3 &angularUpper) |
| void | getAngularUpperLimit (btVector3 &angularUpper) |
| btRotationalLimitMotor * | getRotationalLimitMotor (int index) |
| Retrieves the angular limit informacion. More... | |
| btTranslationalLimitMotor * | getTranslationalLimitMotor () |
| Retrieves the limit informacion. More... | |
| void | setLimit (int axis, btScalar lo, btScalar hi) |
| bool | isLimited (int limitIndex) |
| Test limit. More... | |
| virtual void | calcAnchorPos (void) |
| int | get_limit_motor_info2 (btRotationalLimitMotor *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) |
| 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... | |
| void | setAxis (const btVector3 &axis1, const btVector3 &axis2) |
| 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 |
Public Attributes | |
| bool | m_useSolveConstraintObsolete |
| for backwards compatibility during the transition to 'getInfo/getInfo2' More... | |
Protected Member Functions | |
| btGeneric6DofConstraint & | operator= (btGeneric6DofConstraint &other) |
| 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 | buildLinearJacobian (btJacobianEntry &jacLinear, const btVector3 &normalWorld, const btVector3 &pivotAInW, const btVector3 &pivotBInW) |
| void | buildAngularJacobian (btJacobianEntry &jacAngular, const btVector3 &jointAxisW) |
| void | calculateLinearInfo () |
| void | calculateAngleInfo () |
| calcs the euler angles between the two bodies. More... | |
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 | |
| btTransform | m_frameInA |
| relative_frames More... | |
| btTransform | m_frameInB |
| the constraint space w.r.t body B More... | |
| btJacobianEntry | m_jacLinear [3] |
| Jacobians. More... | |
| btJacobianEntry | m_jacAng [3] |
| 3 orthogonal angular constraints More... | |
| btTranslationalLimitMotor | m_linearLimits |
| Linear_Limit_parameters. More... | |
| btRotationalLimitMotor | m_angularLimits [3] |
| hinge_parameters More... | |
| btScalar | m_timeStep |
| temporal variables More... | |
| 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 |
| btVector3 | m_AnchorPos |
| bool | m_useLinearReferenceFrameA |
| bool | m_useOffsetForConstraintFrame |
| int | m_flags |
Protected Attributes inherited from btTypedConstraint | |
| btRigidBody & | m_rbA |
| btRigidBody & | m_rbB |
| btScalar | m_appliedImpulse |
| btScalar | m_dbgDrawSize |
| btJointFeedback * | m_jointFeedback |
Additional Inherited Members | |
Static Public Member Functions inherited from btTypedConstraint | |
| static btRigidBody & | getFixedBody () |
btGeneric6DofConstraint between two rigidbodies each with a pivotpoint that descibes the axis location in local space
btGeneric6DofConstraint can leave any of the 6 degree of freedom 'free' or 'locked'. currently this limit supports rotational motors
For Linear limits, use btGeneric6DofConstraint.setLinearUpperLimit, btGeneric6DofConstraint.setLinearLowerLimit. You can set the parameters with the btTranslationalLimitMotor structure accsesible through the btGeneric6DofConstraint.getTranslationalLimitMotor method. At this moment translational motors are not supported. May be in the future.
For Angular limits, use the btRotationalLimitMotor structure for configuring the limit. This is accessible through btGeneric6DofConstraint.getLimitMotor method, This brings support for limit parameters and motors.
| AXIS | MIN ANGLE | MAX ANGLE |
| X | -PI | PI |
| Y | -PI/2 | PI/2 |
| Z | -PI | PI |
Definition at line 271 of file btGeneric6DofConstraint.h.
| btGeneric6DofConstraint::btGeneric6DofConstraint | ( | btRigidBody & | rbA, |
| btRigidBody & | rbB, | ||
| const btTransform & | frameInA, | ||
| const btTransform & | frameInB, | ||
| bool | useLinearReferenceFrameA | ||
| ) |
Definition at line 38 of file btGeneric6DofConstraint.cpp.
| btGeneric6DofConstraint::btGeneric6DofConstraint | ( | btRigidBody & | rbB, |
| const btTransform & | frameInB, | ||
| bool | useLinearReferenceFrameB | ||
| ) |
not providing rigidbody A means implicitly using worldspace for body A
Definition at line 52 of file btGeneric6DofConstraint.cpp.
| btGeneric6DofConstraint::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
protected |
Definition at line 433 of file btGeneric6DofConstraint.cpp.
|
virtual |
performs Jacobian calculation, and also calculates angle differences and axis
Reimplemented from btTypedConstraint.
Definition at line 458 of file btGeneric6DofConstraint.cpp.
|
protected |
Definition at line 415 of file btGeneric6DofConstraint.cpp.
|
virtual |
Definition at line 739 of file btGeneric6DofConstraint.cpp.
|
protected |
calcs the euler angles between the two bodies.
Definition at line 353 of file btGeneric6DofConstraint.cpp.
|
protected |
Definition at line 760 of file btGeneric6DofConstraint.cpp.
|
inlinevirtual |
Reimplemented from btTypedConstraint.
Reimplemented in btGeneric6DofSpringConstraint.
Definition at line 581 of file btGeneric6DofConstraint.h.
| void btGeneric6DofConstraint::calculateTransforms | ( | const btTransform & | transA, |
| const btTransform & | transB | ||
| ) |
Calcs global transform of the offsets.
Calcs the global transform for the joint offset for body A an B, and also calcs the agle differences between the bodies.
Definition at line 389 of file btGeneric6DofConstraint.cpp.
| void btGeneric6DofConstraint::calculateTransforms | ( | ) |
Definition at line 384 of file btGeneric6DofConstraint.cpp.
| int btGeneric6DofConstraint::get_limit_motor_info2 | ( | btRotationalLimitMotor * | 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 |
||
| ) |
Definition at line 773 of file btGeneric6DofConstraint.cpp.
| btScalar btGeneric6DofConstraint::getAngle | ( | int | axis_index) | const |
Get the relative Euler angle.
Definition at line 732 of file btGeneric6DofConstraint.cpp.
|
inline |
Definition at line 473 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 485 of file btGeneric6DofConstraint.h.
| btVector3 btGeneric6DofConstraint::getAxis | ( | int | axis_index) | const |
Get the rotation axis in global coordinates.
Definition at line 720 of file btGeneric6DofConstraint.cpp.
|
inline |
Gets the global transform of the offset for body A.
Definition at line 370 of file btGeneric6DofConstraint.h.
|
inline |
Gets the global transform of the offset for body B.
Definition at line 379 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 384 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 395 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 389 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 400 of file btGeneric6DofConstraint.h.
|
virtual |
internal method used by the constraint solver, don't use them directly
Implements btTypedConstraint.
Definition at line 520 of file btGeneric6DofConstraint.cpp.
| void btGeneric6DofConstraint::getInfo1NonVirtual | ( | btConstraintInfo1 * | info) |
Definition at line 554 of file btGeneric6DofConstraint.cpp.
|
virtual |
internal method used by the constraint solver, don't use them directly
Implements btTypedConstraint.
Reimplemented in btGeneric6DofSpringConstraint.
Definition at line 569 of file btGeneric6DofConstraint.cpp.
| void btGeneric6DofConstraint::getInfo2NonVirtual | ( | btConstraintInfo2 * | info, |
| const btTransform & | transA, | ||
| const btTransform & | transB, | ||
| const btVector3 & | linVelA, | ||
| const btVector3 & | linVelB, | ||
| const btVector3 & | angVelA, | ||
| const btVector3 & | angVelB | ||
| ) |
Definition at line 594 of file btGeneric6DofConstraint.cpp.
|
inline |
Definition at line 452 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 462 of file btGeneric6DofConstraint.h.
|
virtual |
return the local value of parameter
Implements btTypedConstraint.
Definition at line 995 of file btGeneric6DofConstraint.cpp.
| btScalar btGeneric6DofConstraint::getRelativePivotPosition | ( | int | axis_index) | const |
Get the relative position of the constraint pivot.
Definition at line 726 of file btGeneric6DofConstraint.cpp.
|
inline |
Retrieves the angular limit informacion.
Definition at line 492 of file btGeneric6DofConstraint.h.
|
inline |
Retrieves the limit informacion.
Definition at line 498 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 544 of file btGeneric6DofConstraint.h.
|
inline |
Test limit.
Definition at line 527 of file btGeneric6DofConstraint.h.
|
inlineprotected |
Definition at line 321 of file btGeneric6DofConstraint.h.
|
inlinevirtual |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btTypedConstraint.
Reimplemented in btGeneric6DofSpringConstraint.
Definition at line 587 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 669 of file btGeneric6DofConstraint.cpp.
|
inline |
Definition at line 467 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 479 of file btGeneric6DofConstraint.h.
Definition at line 1047 of file btGeneric6DofConstraint.cpp.
| void btGeneric6DofConstraint::setFrames | ( | const btTransform & | frameA, |
| const btTransform & | frameB | ||
| ) |
Definition at line 710 of file btGeneric6DofConstraint.cpp.
Definition at line 504 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 621 of file btGeneric6DofConstraint.cpp.
|
inline |
Definition at line 447 of file btGeneric6DofConstraint.h.
|
inline |
Definition at line 457 of file btGeneric6DofConstraint.h.
|
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 946 of file btGeneric6DofConstraint.cpp.
|
inline |
Definition at line 545 of file btGeneric6DofConstraint.h.
| bool btGeneric6DofConstraint::testAngularLimitMotor | ( | int | axis_index) |
Test angular limit.
Calculates angular correction and returns true if limit needs to be corrected.
Definition at line 446 of file btGeneric6DofConstraint.cpp.
| void btGeneric6DofConstraint::updateRHS | ( | btScalar | timeStep) |
Definition at line 703 of file btGeneric6DofConstraint.cpp.
|
protected |
Definition at line 312 of file btGeneric6DofConstraint.h.
|
protected |
hinge_parameters
Definition at line 295 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 306 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 305 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 307 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 303 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 304 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 308 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 309 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 317 of file btGeneric6DofConstraint.h.
|
protected |
relative_frames
the constraint space w.r.t body A
Definition at line 277 of file btGeneric6DofConstraint.h.
|
protected |
the constraint space w.r.t body B
Definition at line 278 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 310 of file btGeneric6DofConstraint.h.
|
protected |
3 orthogonal angular constraints
Definition at line 284 of file btGeneric6DofConstraint.h.
|
protected |
Jacobians.
3 orthogonal linear constraints
Definition at line 283 of file btGeneric6DofConstraint.h.
|
protected |
Linear_Limit_parameters.
Definition at line 289 of file btGeneric6DofConstraint.h.
|
protected |
temporal variables
Definition at line 302 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 314 of file btGeneric6DofConstraint.h.
|
protected |
Definition at line 315 of file btGeneric6DofConstraint.h.
| bool btGeneric6DofConstraint::m_useSolveConstraintObsolete |
for backwards compatibility during the transition to 'getInfo/getInfo2'
Definition at line 352 of file btGeneric6DofConstraint.h.
1.8.4