diff --git a/ChangeLog.txt b/ChangeLog.txt index 1fd86ad8b..5ed7e2e62 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,6 +1,16 @@ Bullet Continuous Collision Detection and Physics Library Primary author and maintainer: Erwin Coumans +2007 Aug 31 + - fixed MSVC 6 build + Thanks Proctoid, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1375 + - fixed double precision build issues + Thanks Alex Silverman, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1434 + +2007 Aug 24 + - fixed bug in btMatrix3x3::transposeTimes(const btMatrix3x3& m) const. Luckily it wasn't used in core parts of the library (yet). + Thanks to Jay Lee + 2007 Aug 15 - fixed bug in Extras/GIMPACT 0.2 related to moving triangle meshes Thanks Thomas, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1368 diff --git a/src/Bullet-C-Api.h b/src/Bullet-C-Api.h index e9e7ee760..1cce4efa8 100644 --- a/src/Bullet-C-Api.h +++ b/src/Bullet-C-Api.h @@ -25,7 +25,12 @@ subject to the following restrictions: #define PL_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name +#ifdef BT_USE_DOUBLE_PRECISION +typedef double plReal; +#else typedef float plReal; +#endif + typedef plReal plVector3[3]; typedef plReal plQuaternion[4]; diff --git a/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp b/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp index a94fa861c..98c57acdb 100644 --- a/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp +++ b/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp @@ -35,8 +35,8 @@ btMultiSapBroadphase::btMultiSapBroadphase(int maxProxies) // return true when pairs need collision virtual bool needBroadphaseCollision(btBroadphaseProxy* childProxy0,btBroadphaseProxy* childProxy1) const { - btMultiSapProxy* multiSapProxy0 = (btMultiSapProxy*)childProxy0->m_multiSapParentProxy; - btMultiSapProxy* multiSapProxy1 = (btMultiSapProxy*)childProxy1->m_multiSapParentProxy; + btMultiSapBroadphase::btMultiSapProxy* multiSapProxy0 = (btMultiSapBroadphase::btMultiSapProxy*)childProxy0->m_multiSapParentProxy; + btMultiSapBroadphase::btMultiSapProxy* multiSapProxy1 = (btMultiSapBroadphase::btMultiSapProxy*)childProxy1->m_multiSapParentProxy; bool collides = (multiSapProxy0->m_collisionFilterGroup & multiSapProxy1->m_collisionFilterMask) != 0; collides = collides && (multiSapProxy1->m_collisionFilterGroup & multiSapProxy0->m_collisionFilterMask); diff --git a/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h b/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h index f7199248e..60ebc61ef 100644 --- a/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h +++ b/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h @@ -46,6 +46,8 @@ class btMultiSapBroadphase :public btBroadphaseInterface btBroadphaseInterface* m_childBroadphase; }; +public: + struct btMultiSapProxy : public btBroadphaseProxy { @@ -73,6 +75,8 @@ class btMultiSapBroadphase :public btBroadphaseInterface }; +protected: + btAlignedObjectArray m_multiSapProxies; public: diff --git a/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp b/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp index 772806a0a..630052849 100644 --- a/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp +++ b/src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp @@ -110,5 +110,5 @@ int btUniformScalingShape::getNumPreferredPenetrationDirections() const void btUniformScalingShape::getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const { - return m_childConvexShape->getPreferredPenetrationDirection(index,penetrationVector); + m_childConvexShape->getPreferredPenetrationDirection(index,penetrationVector); } diff --git a/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp b/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp index a841fef73..c95d5d903 100644 --- a/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp +++ b/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp @@ -248,7 +248,7 @@ void btConeTwistConstraint::solveConstraint(btScalar timeStep) // Clamp the accumulated impulse btScalar temp = m_accSwingLimitImpulse; - m_accSwingLimitImpulse = btMax(m_accSwingLimitImpulse + impulseMag, 0.0f ); + m_accSwingLimitImpulse = btMax(m_accSwingLimitImpulse + impulseMag, btScalar(0.0) ); impulseMag = m_accSwingLimitImpulse - temp; btVector3 impulse = m_swingAxis * impulseMag; @@ -266,7 +266,7 @@ void btConeTwistConstraint::solveConstraint(btScalar timeStep) // Clamp the accumulated impulse btScalar temp = m_accTwistLimitImpulse; - m_accTwistLimitImpulse = btMax(m_accTwistLimitImpulse + impulseMag, 0.0f ); + m_accTwistLimitImpulse = btMax(m_accTwistLimitImpulse + impulseMag, btScalar(0.0) ); impulseMag = m_accTwistLimitImpulse - temp; btVector3 impulse = m_twistAxis * impulseMag;