Blender V2.61 - r43446

btDefaultMotionState.h

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