Back to index

supertuxkart  0.5+dfsg1
btDefaultMotionState.h
Go to the documentation of this file.
00001 #ifndef DEFAULT_MOTION_STATE_H
00002 #define DEFAULT_MOTION_STATE_H
00003 
00005 struct btDefaultMotionState : public btMotionState
00006 {
00007        btTransform m_graphicsWorldTrans;
00008        btTransform   m_centerOfMassOffset;
00009        btTransform m_startWorldTrans;
00010        void*         m_userPointer;
00011 
00012        btDefaultMotionState(const btTransform& startTrans = btTransform::getIdentity(),const btTransform& centerOfMassOffset = btTransform::getIdentity())
00013               : m_graphicsWorldTrans(startTrans),
00014               m_centerOfMassOffset(centerOfMassOffset),
00015               m_startWorldTrans(startTrans),
00016               m_userPointer(0)
00017 
00018        {
00019        }
00020 
00022        virtual void  getWorldTransform(btTransform& centerOfMassWorldTrans ) const 
00023        {
00024                      centerOfMassWorldTrans =    m_centerOfMassOffset.inverse() * m_graphicsWorldTrans ;
00025        }
00026 
00029        virtual void  setWorldTransform(const btTransform& centerOfMassWorldTrans)
00030        {
00031                      m_graphicsWorldTrans = centerOfMassWorldTrans * m_centerOfMassOffset ;
00032        }
00033 
00034        
00035 
00036 };
00037 
00038 #endif //DEFAULT_MOTION_STATE_H