update Bullet 2.x with latest changes, notice that the integration is not finished...
[blender.git] / extern / bullet2 / src / BulletCollision / CollisionDispatch / btCollisionObject.h
index 3838fc989616d361510f0a92a22e4bdddc9a32ef..5df3de489cdb1fa30c1c92ff36351db0eeeeb356 100644 (file)
@@ -43,6 +43,11 @@ struct       btCollisionObject
        ///m_interpolationWorldTransform is used for CCD and interpolation
        ///it can be either previous or future (predicted) transform
        btTransform     m_interpolationWorldTransform;
+       //those two are experimental: just added for bullet time effect, so you can still apply impulses (directly modifying velocities) 
+       //without destroying the continuous interpolated motion (which uses this interpolation velocities)
+       btVector3       m_interpolationLinearVelocity;
+       btVector3       m_interpolationAngularVelocity;
+
 
        enum CollisionFlags
        {
@@ -73,32 +78,32 @@ struct      btCollisionObject
        ///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::
        float                   m_ccdSweptSphereRadius;
 
-       /// Don't do continuous collision detection if square motion (in one step) is less then m_ccdSquareMotionTreshold
-       float                   m_ccdSquareMotionTreshold;
+       /// Don't do continuous collision detection if square motion (in one step) is less then m_ccdSquareMotionThreshold
+       float                   m_ccdSquareMotionThreshold;
 
        inline bool mergesSimulationIslands() const
        {
                ///static objects, kinematic and object without contact response don't merge islands
-               return  !(m_collisionFlags & (CF_STATIC_OBJECT | CF_KINEMATIC_OJBECT | CF_NO_CONTACT_RESPONSE) );
+               return  ((m_collisionFlags & (CF_STATIC_OBJECT | CF_KINEMATIC_OJBECT | CF_NO_CONTACT_RESPONSE) )==0);
        }
 
 
        inline bool             isStaticObject() const {
-               return m_collisionFlags & CF_STATIC_OBJECT;
+               return (m_collisionFlags & CF_STATIC_OBJECT) != 0;
        }
 
        inline bool             isKinematicObject() const
        {
-               return m_collisionFlags & CF_KINEMATIC_OJBECT;
+               return (m_collisionFlags & CF_KINEMATIC_OJBECT) != 0;
        }
 
        inline bool             isStaticOrKinematicObject() const
        {
-               return m_collisionFlags & (CF_KINEMATIC_OJBECT | CF_STATIC_OBJECT);
+               return (m_collisionFlags & (CF_KINEMATIC_OJBECT | CF_STATIC_OBJECT)) != 0 ;
        }
 
        inline bool             hasContactResponse() const {
-               return !(m_collisionFlags & CF_NO_CONTACT_RESPONSE);
+               return (m_collisionFlags & CF_NO_CONTACT_RESPONSE)==0;
        }