diff options
Diffstat (limited to 'extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp')
-rw-r--r-- | extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp b/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp index 7a79ac25791..b1ecb3e432c 100644 --- a/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp +++ b/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp @@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library -Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ +Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. @@ -15,11 +15,7 @@ subject to the following restrictions: #include "BulletCollision/CollisionShapes/btPolyhedralConvexShape.h" -btPolyhedralConvexShape::btPolyhedralConvexShape() :btConvexInternalShape(), -m_localAabbMin(1,1,1), -m_localAabbMax(-1,-1,-1), -m_isLocalAabbValid(false), -m_optionalHull(0) +btPolyhedralConvexShape::btPolyhedralConvexShape() :btConvexInternalShape() { } @@ -27,10 +23,12 @@ m_optionalHull(0) btVector3 btPolyhedralConvexShape::localGetSupportingVertexWithoutMargin(const btVector3& vec0)const { - int i; - btVector3 supVec(0,0,0); - btScalar maxDot(btScalar(-1e30)); + + btVector3 supVec(0,0,0); +#ifndef __SPU__ + int i; + btScalar maxDot(btScalar(-BT_LARGE_FLOAT)); btVector3 vec = vec0; btScalar lenSqr = vec.length2(); @@ -57,12 +55,16 @@ btVector3 btPolyhedralConvexShape::localGetSupportingVertexWithoutMargin(const b } } + +#endif //__SPU__ return supVec; - } + + void btPolyhedralConvexShape::batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const { +#ifndef __SPU__ int i; btVector3 vtx; @@ -70,7 +72,7 @@ void btPolyhedralConvexShape::batchedUnitVectorGetSupportingVertexWithoutMargin( for (i=0;i<numVectors;i++) { - supportVerticesOut[i][3] = btScalar(-1e30); + supportVerticesOut[i][3] = btScalar(-BT_LARGE_FLOAT); } for (int j=0;j<numVectors;j++) @@ -90,12 +92,14 @@ void btPolyhedralConvexShape::batchedUnitVectorGetSupportingVertexWithoutMargin( } } } +#endif //__SPU__ } void btPolyhedralConvexShape::calculateLocalInertia(btScalar mass,btVector3& inertia) const { +#ifndef __SPU__ //not yet, return box inertia btScalar margin = getMargin(); @@ -115,25 +119,31 @@ void btPolyhedralConvexShape::calculateLocalInertia(btScalar mass,btVector3& ine const btScalar scaledmass = mass * btScalar(0.08333333); inertia = scaledmass * (btVector3(y2+z2,x2+z2,x2+y2)); - +#endif //__SPU__ } -void btPolyhedralConvexShape::getAabb(const btTransform& trans,btVector3& aabbMin,btVector3& aabbMax) const +void btPolyhedralConvexAabbCachingShape::setLocalScaling(const btVector3& scaling) { - getNonvirtualAabb(trans,aabbMin,aabbMax,getMargin()); + btConvexInternalShape::setLocalScaling(scaling); + recalcLocalAabb(); } +btPolyhedralConvexAabbCachingShape::btPolyhedralConvexAabbCachingShape() +:btPolyhedralConvexShape(), +m_localAabbMin(1,1,1), +m_localAabbMax(-1,-1,-1), +m_isLocalAabbValid(false) +{ +} - -void btPolyhedralConvexShape::setLocalScaling(const btVector3& scaling) +void btPolyhedralConvexAabbCachingShape::getAabb(const btTransform& trans,btVector3& aabbMin,btVector3& aabbMax) const { - btConvexInternalShape::setLocalScaling(scaling); - recalcLocalAabb(); + getNonvirtualAabb(trans,aabbMin,aabbMax,getMargin()); } -void btPolyhedralConvexShape::recalcLocalAabb() +void btPolyhedralConvexAabbCachingShape::recalcLocalAabb() { m_isLocalAabbValid = true; @@ -181,5 +191,3 @@ void btPolyhedralConvexShape::recalcLocalAabb() #endif } - - |