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
This commit is contained in:
@@ -1,6 +1,16 @@
|
|||||||
Bullet Continuous Collision Detection and Physics Library
|
Bullet Continuous Collision Detection and Physics Library
|
||||||
Primary author and maintainer: Erwin Coumans
|
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
|
2007 Aug 15
|
||||||
- fixed bug in Extras/GIMPACT 0.2 related to moving triangle meshes
|
- fixed bug in Extras/GIMPACT 0.2 related to moving triangle meshes
|
||||||
Thanks Thomas, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1368
|
Thanks Thomas, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1368
|
||||||
|
|||||||
@@ -25,7 +25,12 @@ subject to the following restrictions:
|
|||||||
|
|
||||||
#define PL_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name
|
#define PL_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name
|
||||||
|
|
||||||
|
#ifdef BT_USE_DOUBLE_PRECISION
|
||||||
|
typedef double plReal;
|
||||||
|
#else
|
||||||
typedef float plReal;
|
typedef float plReal;
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef plReal plVector3[3];
|
typedef plReal plVector3[3];
|
||||||
typedef plReal plQuaternion[4];
|
typedef plReal plQuaternion[4];
|
||||||
|
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ btMultiSapBroadphase::btMultiSapBroadphase(int maxProxies)
|
|||||||
// return true when pairs need collision
|
// return true when pairs need collision
|
||||||
virtual bool needBroadphaseCollision(btBroadphaseProxy* childProxy0,btBroadphaseProxy* childProxy1) const
|
virtual bool needBroadphaseCollision(btBroadphaseProxy* childProxy0,btBroadphaseProxy* childProxy1) const
|
||||||
{
|
{
|
||||||
btMultiSapProxy* multiSapProxy0 = (btMultiSapProxy*)childProxy0->m_multiSapParentProxy;
|
btMultiSapBroadphase::btMultiSapProxy* multiSapProxy0 = (btMultiSapBroadphase::btMultiSapProxy*)childProxy0->m_multiSapParentProxy;
|
||||||
btMultiSapProxy* multiSapProxy1 = (btMultiSapProxy*)childProxy1->m_multiSapParentProxy;
|
btMultiSapBroadphase::btMultiSapProxy* multiSapProxy1 = (btMultiSapBroadphase::btMultiSapProxy*)childProxy1->m_multiSapParentProxy;
|
||||||
|
|
||||||
bool collides = (multiSapProxy0->m_collisionFilterGroup & multiSapProxy1->m_collisionFilterMask) != 0;
|
bool collides = (multiSapProxy0->m_collisionFilterGroup & multiSapProxy1->m_collisionFilterMask) != 0;
|
||||||
collides = collides && (multiSapProxy1->m_collisionFilterGroup & multiSapProxy0->m_collisionFilterMask);
|
collides = collides && (multiSapProxy1->m_collisionFilterGroup & multiSapProxy0->m_collisionFilterMask);
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ class btMultiSapBroadphase :public btBroadphaseInterface
|
|||||||
btBroadphaseInterface* m_childBroadphase;
|
btBroadphaseInterface* m_childBroadphase;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
struct btMultiSapProxy : public btBroadphaseProxy
|
struct btMultiSapProxy : public btBroadphaseProxy
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -73,6 +75,8 @@ class btMultiSapBroadphase :public btBroadphaseInterface
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
btAlignedObjectArray<btMultiSapProxy*> m_multiSapProxies;
|
btAlignedObjectArray<btMultiSapProxy*> m_multiSapProxies;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -110,5 +110,5 @@ int btUniformScalingShape::getNumPreferredPenetrationDirections() const
|
|||||||
|
|
||||||
void btUniformScalingShape::getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const
|
void btUniformScalingShape::getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const
|
||||||
{
|
{
|
||||||
return m_childConvexShape->getPreferredPenetrationDirection(index,penetrationVector);
|
m_childConvexShape->getPreferredPenetrationDirection(index,penetrationVector);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ void btConeTwistConstraint::solveConstraint(btScalar timeStep)
|
|||||||
|
|
||||||
// Clamp the accumulated impulse
|
// Clamp the accumulated impulse
|
||||||
btScalar temp = m_accSwingLimitImpulse;
|
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;
|
impulseMag = m_accSwingLimitImpulse - temp;
|
||||||
|
|
||||||
btVector3 impulse = m_swingAxis * impulseMag;
|
btVector3 impulse = m_swingAxis * impulseMag;
|
||||||
@@ -266,7 +266,7 @@ void btConeTwistConstraint::solveConstraint(btScalar timeStep)
|
|||||||
|
|
||||||
// Clamp the accumulated impulse
|
// Clamp the accumulated impulse
|
||||||
btScalar temp = m_accTwistLimitImpulse;
|
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;
|
impulseMag = m_accTwistLimitImpulse - temp;
|
||||||
|
|
||||||
btVector3 impulse = m_twistAxis * impulseMag;
|
btVector3 impulse = m_twistAxis * impulseMag;
|
||||||
|
|||||||
Reference in New Issue
Block a user