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));
72 axis = angvel*(
btScalar(0.5)*timeStep-(timeStep*timeStep*timeStep)*(
btScalar(0.020833333333))*fAngle*fAngle );
77 axis = angvel*(
btSin(
btScalar(0.5)*fAngle*timeStep)/fAngle );
97 linVel = (pos1 - pos0) / timeStep;
103 angVel = axis * angle / timeStep;
131 angVel = axis * angle / timeStep;
197 btVector3 linVelA,angVelA,linVelB,angVelB;
203 if (relLinVelocLength<0.f)
205 relLinVelocLength = 0.f;
208 btScalar projectedMotion = maxAngularProjectedVelocity +relLinVelocLength;
240 #endif //BT_TRANSFORM_UTIL_H
const btScalar & x() const
Return the x value.
btVector3 m_separatingNormal
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
btScalar btSin(btScalar x)
btScalar length2() const
Return the length of the vector squared.
btQuaternion & safeNormalize()
btConvexSeparatingDistanceUtil(btScalar boundingRadiusA, btScalar boundingRadiusB)
btScalar btSqrt(btScalar y)
#define SIMD_FORCE_INLINE
btScalar m_boundingRadiusB
btQuaternion inverse() const
Return the inverse of this quaternion.
void updateSeparatingDistance(const btTransform &transA, const btTransform &transB)
const btScalar & x() const
Return the x value.
btQuaternion & normalize()
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1.
btScalar m_boundingRadiusA
btScalar dot(const btVector3 &v) const
Return the dot product.
The btConvexSeparatingDistanceUtil can help speed up convex collision detection by conservatively upd...
const btScalar & y() const
Return the y value.
btScalar getConservativeSeparatingDistance()
const btScalar & z() const
Return the z value.
btScalar m_separatingDistance
const btScalar & z() const
Return the z value.
btVector3 can be used to represent 3D points and vectors.
btScalar getAngle() const
Return the angle [0, 2Pi] of rotation represented by this quaternion.
btQuaternion nearest(const btQuaternion &qd) const
btScalar length2() const
Return the length squared of the quaternion.
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
const btScalar & y() const
Return the y value.
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatr...
btMatrix3x3 inverse() const
Return the inverse of the matrix.
void initSeparatingDistance(const btVector3 &separatingVector, btScalar separatingDistance, const btTransform &transA, const btTransform &transB)
void getRotation(btQuaternion &q) const
Get the matrix represented as a quaternion.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar btCos(btScalar x)
btScalar length() const
Return the length of the vector.