Bullet Collision Detection & Physics Library
|
Go to the documentation of this file.
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;
223 #endif //BT_TRANSFORM_UTIL_H
const btScalar & y() const
Return the y value.
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatr...
btScalar length() const
Return the length of the vector.
btScalar getAngle() const
Return the angle [0, 2Pi] of rotation represented by this quaternion.
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btMatrix3x3 inverse() const
Return the inverse of the matrix.
btQuaternion inverse() const
Return the inverse of this quaternion.
btScalar dot(const btVector3 &v) const
Return the dot product.
btQuaternion & normalize()
Normalize the quaternion Such that x^2 + y^2 + z^2 +w^2 = 1.
btQuaternion & safeNormalize()
btScalar length2() const
Return the length squared of the quaternion.
const btScalar & y() const
Return the y value.
btConvexSeparatingDistanceUtil(btScalar boundingRadiusA, btScalar boundingRadiusB)
btScalar getConservativeSeparatingDistance()
btScalar m_boundingRadiusA
btScalar btSin(btScalar x)
btQuaternion nearest(const btQuaternion &qd) const
btScalar btCos(btScalar x)
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
The btConvexSeparatingDistanceUtil can help speed up convex collision detection by conservatively upd...
btVector3 can be used to represent 3D points and vectors.
btScalar m_boundingRadiusB
void updateSeparatingDistance(const btTransform &transA, const btTransform &transB)
const btScalar & x() const
Return the x value.
#define SIMD_FORCE_INLINE
btScalar m_separatingDistance
const btScalar & x() const
Return the x value.
void getRotation(btQuaternion &q) const
Get the matrix represented as a quaternion.
void initSeparatingDistance(const btVector3 &separatingVector, btScalar separatingDistance, const btTransform &transA, const btTransform &transB)
const btScalar & z() const
Return the z value.
btVector3 m_separatingNormal
btScalar btSqrt(btScalar y)
const btScalar & z() const
Return the z value.
btScalar length2() const
Return the length of the vector squared.