28 #define USE_OFFSET_FOR_CONSTANT_FRAME true   186     for(i = 0; i < 3; i++)
   281         btScalar miA = rbAinvMass;
   282         btScalar miB = rbBinvMass;
   284         btScalar miS = miA + miB;
   285         btScalar factA, factB;
   302                 ax1 = ax1A * factA + ax1B * factB;
   352         btScalar k = info->
fps * currERP;
   379         btVector3 tmpA(0,0,0), tmpB(0,0,0), relA(0,0,0), relB(0,0,0), c(0,0,0);
   395                 btVector3 totalDist = projA + ax1 * sliderOffs - projB;
   397                 relA = orthoA + totalDist * factA;
   398                 relB = orthoB - totalDist * factB;
   400                 p = orthoB * factA + orthoA * factB;
   413                 tmpA = relA.
cross(p);
   414                 tmpB = relB.
cross(p);
   417                 tmpA = relA.cross(q);
   418                 tmpB = relB.cross(q);
   452         k = info->
fps * currERP;
   454         btScalar rhs = k * p.
dot(ofs);
   456         rhs = k * q.
dot(ofs);
   471                 limit = (limit_err > 
btScalar(0.0)) ? 2 : 1;
   479         if (limit || powered) 
   501                                 tmpA = relA.
cross(ax1);
   502                                 tmpB = relB.
cross(ax1);
   525                 if(limit && (lostop == histop))
   547                         k = info->
fps * currERP;
   572                                 btScalar vel = linVelA.
dot(ax1);
   573                                 vel -= linVelB.
dot(ax1);
   581                                                 btScalar newc = -bounce * vel;
   592                                                 btScalar newc = -bounce * vel;
   593                                                 if(newc < info->m_constraintError[srow]) 
   609                 limit = (limit_err > 
btScalar(0.0)) ? 1 : 2;
   631                 if(limit && (lostop == histop))
   649                         k = info->
fps * currERP;
   683                                                 btScalar newc = -bounce * vel;
   694                                                 btScalar newc = -bounce * vel;
   695                                                 if(newc < info->m_constraintError[srow])
 btScalar * m_constraintError
btScalar getInvMass() const 
void calculateTransforms(const btTransform &transA, const btTransform &transB)
#define SLIDER_CONSTRAINT_DEF_RESTITUTION
btScalar m_dampingOrthoAng
btScalar getMaxAngMotorForce()
const btTransform & getCalculatedTransformA() const 
btScalar * m_J2angularAxis
const btTransform & getCalculatedTransformB() const 
btScalar m_dampingOrthoLin
#define USE_OFFSET_FOR_CONSTANT_FRAME
void getInfo2NonVirtual(btConstraintInfo2 *info, const btTransform &transA, const btTransform &transB, const btVector3 &linVelA, const btVector3 &linVelB, btScalar rbAinvMass, btScalar rbBinvMass)
virtual void getInfo2(btConstraintInfo2 *info)
internal method used by the constraint solver, don't use them directly 
btScalar m_restitutionOrthoAng
btScalar m_accumulatedAngMotorImpulse
void btPlaneSpace1(const T &n, T &p, T &q)
btScalar btSqrt(btScalar y)
btScalar m_accumulatedLinMotorImpulse
btScalar getLowerLinLimit()
btTransform m_calculatedTransformB
bool getPoweredLinMotor()
btScalar * m_J1angularAxis
btScalar m_targetLinMotorVelocity
btVector3 getColumn(int i) const 
Get a column of the matrix as a vector. 
btScalar dot(const btVector3 &v) const 
Return the dot product. 
bool getPoweredAngMotor()
btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1. 
btSliderConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA)
btScalar getMaxLinMotorForce()
btScalar m_restitutionLimLin
btScalar getUpperAngLimit()
btScalar * m_J1linearAxis
btScalar m_softnessLimLin
const btTransform & getCenterOfMassTransform() const 
btScalar m_restitutionLimAng
btScalar m_restitutionDirAng
btScalar btAtan2(btScalar x, btScalar y)
#define SLIDER_CONSTRAINT_DEF_CFM
btScalar getDampingLimAng()
const btVector3 & getAngularVelocity() const 
btVector3 cross(const btVector3 &v) const 
Return the cross product between this and another vector. 
btScalar m_softnessDirLin
The btRigidBody is the main class for rigid body objects. 
btVector3 m_realPivotBInW
btScalar m_softnessOrthoLin
virtual btScalar getParam(int num, int axis=-1) const 
return the local value of parameter 
btScalar m_targetAngMotorVelocity
virtual void getInfo1(btConstraintInfo1 *info)
internal method used by the constraint solver, don't use them directly 
bool m_useOffsetForConstraintFrame
btScalar getUpperLinLimit()
btScalar getTargetLinMotorVelocity()
#define SLIDER_CONSTRAINT_DEF_SOFTNESS
void getInfo1NonVirtual(btConstraintInfo1 *info)
btScalar btAdjustAngleToLimits(btScalar angleInRadians, btScalar angleLowerLimitInRadians, btScalar angleUpperLimitInRadians)
btVector3 can be used to represent 3D points and vectors. 
btScalar length2() const 
Return the length of the vector squared. 
static btRigidBody & getFixedBody()
bool m_useLinearReferenceFrameA
btScalar getTargetAngMotorVelocity()
btScalar * m_J2linearAxis
btTransform m_calculatedTransformA
TypedConstraint is the baseclass for Bullet constraints and vehicles. 
btScalar getSoftnessLimLin()
btScalar getMotorFactor(btScalar pos, btScalar lowLim, btScalar uppLim, btScalar vel, btScalar timeFact)
internal method used by the constraint solver, don't use them directly 
btVector3 m_realPivotAInW
btScalar m_softnessDirAng
bool m_useSolveConstraintObsolete
for backwards compatibility during the transition to 'getInfo/getInfo2' 
btScalar m_maxLinMotorForce
const btVector3 & getLinearVelocity() const 
btScalar getLowerAngLimit()
btScalar m_restitutionDirLin
btScalar m_maxAngMotorForce
#define btAssertConstrParams(_par)
btScalar m_softnessLimAng
btScalar getDampingLimLin()
btScalar m_restitutionOrthoLin
btScalar m_softnessOrthoAng
btScalar getSoftnessLimAng()
#define SLIDER_CONSTRAINT_DEF_DAMPING
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
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...
btScalar btFabs(btScalar x)