15#ifndef BT_TRANSFORM_UTIL_H
16#define BT_TRANSFORM_UTIL_H
19#define ANGULAR_MOTION_THRESHOLD btScalar(0.5) * SIMD_HALF_PI
24 supportDir.
y() <
btScalar(0.0) ? -halfExtents.
y() : halfExtents.
y(),
25 supportDir.
z() <
btScalar(0.0) ? -halfExtents.
z() : halfExtents.
z());
36#ifdef QUATERNION_DERIVATIVE
38 predictedOrn += (angvel * predictedOrn) * (timeStep *
btScalar(0.5));
61 axis = angvel * (
btScalar(0.5) * timeStep - (timeStep * timeStep * timeStep) * (
btScalar(0.020833333333)) * fAngle * fAngle);
66 axis = angvel * (
btSin(
btScalar(0.5) * fAngle * timeStep) / fAngle);
86 linVel = (pos1 - pos0) / timeStep;
92 angVel = axis * angle / timeStep;
121 angVel = axis * angle / timeStep;
182 btVector3 linVelA, angVelA, linVelB, angVelB;
186 btVector3 relLinVel = (linVelB - linVelA);
188 if (relLinVelocLength < 0.f)
190 relLinVelocLength = 0.f;
193 btScalar projectedMotion = maxAngularProjectedVelocity + relLinVelocLength;
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar btSqrt(btScalar y)
btScalar btSin(btScalar x)
#define SIMD_FORCE_INLINE
btScalar btCos(btScalar x)
The btConvexSeparatingDistanceUtil can help speed up convex collision detection by conservatively upd...
btVector3 m_separatingNormal
btScalar m_boundingRadiusB
btScalar m_separatingDistance
btScalar getConservativeSeparatingDistance()
void initSeparatingDistance(const btVector3 &separatingVector, btScalar separatingDistance, const btTransform &transA, const btTransform &transB)
btConvexSeparatingDistanceUtil(btScalar boundingRadiusA, btScalar boundingRadiusB)
btScalar m_boundingRadiusA
void updateSeparatingDistance(const btTransform &transA, const btTransform &transB)
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
btMatrix3x3 inverse() const
Return the inverse of the matrix.
void getRotation(btQuaternion &q) const
Get the matrix represented as a quaternion.
const btScalar & z() const
Return the z value.
const btScalar & y() const
Return the y value.
const btScalar & x() const
Return the x value.
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatr...
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.
btQuaternion & safeNormalize()
btQuaternion inverse() const
Return the inverse of this quaternion.
btQuaternion & normalize()
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1.
btVector3 can be used to represent 3D points and vectors.
const btScalar & z() const
Return the z value.
btScalar length() const
Return the length of the vector.
btScalar dot(const btVector3 &v) const
Return the dot product.
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
btScalar length2() const
Return the length of the vector squared.
const btScalar & x() const
Return the x value.
const btScalar & y() const
Return the y value.