16 #ifndef BT_TRANSFORM_UTIL_H
17 #define BT_TRANSFORM_UTIL_H
20 #define ANGULAR_MOTION_THRESHOLD btScalar(0.5)*SIMD_HALF_PI
28 supportDir.
y() <
btScalar(0.0) ? -halfExtents.
y() : halfExtents.
y(),
29 supportDir.
z() <
btScalar(0.0) ? -halfExtents.
z() : halfExtents.
z());
47 #ifdef QUATERNION_DERIVATIVE
49 predictedOrn += (angvel * predictedOrn) * (timeStep *
btScalar(0.5));
66 axis = angvel*(
btScalar(0.5)*timeStep-(timeStep*timeStep*timeStep)*(
btScalar(0.020833333333))*fAngle*fAngle );
71 axis = angvel*(
btSin(
btScalar(0.5)*fAngle*timeStep)/fAngle );
84 linVel = (pos1 - pos0) / timeStep;
90 angVel = axis * angle / timeStep;
118 angVel = axis * angle / timeStep;
184 btVector3 linVelA,angVelA,linVelB,angVelB;
190 if (relLinVelocLength<0.f)
192 relLinVelocLength = 0.f;
195 btScalar projectedMotion = maxAngularProjectedVelocity +relLinVelocLength;
227 #endif //BT_TRANSFORM_UTIL_H
btMatrix3x3 inverse() const
Return the inverse of the matrix.
btVector3 m_separatingNormal
btScalar getAngle() const
Return the angle of rotation represented by this quaternion.
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
btScalar btSin(btScalar x)
const btScalar & z() const
Return the z value.
btConvexSeparatingDistanceUtil(btScalar boundingRadiusA, btScalar boundingRadiusB)
btScalar btSqrt(btScalar y)
#define SIMD_FORCE_INLINE
const btScalar & y() const
Return the y value.
btScalar m_boundingRadiusB
btScalar dot(const btVector3 &v) const
Return the dot product.
btQuaternion nearest(const btQuaternion &qd) const
const btScalar & x() const
Return the x value.
void getRotation(btQuaternion &q) const
Get the matrix represented as a quaternion.
void updateSeparatingDistance(const btTransform &transA, const btTransform &transB)
btQuaternion & normalize()
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1.
btScalar m_boundingRadiusA
The btConvexSeparatingDistanceUtil can help speed up convex collision detection by conservatively upd...
btScalar getConservativeSeparatingDistance()
btScalar m_separatingDistance
btQuaternion inverse() const
Return the inverse of this quaternion.
btScalar length() const
Return the length of the vector.
const btScalar & y() const
Return the y value.
btVector3 can be used to represent 3D points and vectors.
btScalar length2() const
Return the length of the vector squared.
const btScalar & x() const
Return the x value.
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatr...
void initSeparatingDistance(const btVector3 &separatingVector, btScalar separatingDistance, const btTransform &transA, const btTransform &transB)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar btCos(btScalar x)
const btScalar & z() const
Return the z value.