mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 17:19:56 +00:00
52 lines
1 KiB
C
52 lines
1 KiB
C
|
#ifndef OENGINE_CMOTIONSTATE_H
|
||
|
#define OENGINE_CMOTIONSTATE_H
|
||
|
|
||
|
#include <BulletDynamics\Dynamics\btRigidBody.h>
|
||
|
#include <string>
|
||
|
|
||
|
namespace OEngine {
|
||
|
namespace Physic
|
||
|
{
|
||
|
class PhysicEngine;
|
||
|
|
||
|
/**
|
||
|
*A CMotionState is associated with a single RigidBody.
|
||
|
*When the RigidBody is moved by bullet, bullet will call the function setWorldTransform.
|
||
|
*for more info, see the bullet Wiki at btMotionState.
|
||
|
*/
|
||
|
class CMotionState:public btMotionState
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
CMotionState(PhysicEngine* eng,std::string name);
|
||
|
|
||
|
/**
|
||
|
*Return the position of the RigidBody.
|
||
|
*/
|
||
|
virtual void getWorldTransform(btTransform &worldTrans) const;
|
||
|
|
||
|
/**
|
||
|
*Function called by bullet when the RigidBody is moved.
|
||
|
*It add an event to the EventList of the PhysicEngine class.
|
||
|
*/
|
||
|
virtual void setWorldTransform(const btTransform &worldTrans);
|
||
|
|
||
|
protected:
|
||
|
PhysicEngine* pEng;
|
||
|
btTransform tr;
|
||
|
bool isNPC;
|
||
|
bool isPC;
|
||
|
|
||
|
std::string pName;
|
||
|
};
|
||
|
|
||
|
struct PhysicEvent
|
||
|
{
|
||
|
bool isNPC;
|
||
|
bool isPC;
|
||
|
btTransform newTransform;
|
||
|
std::string RigidBodyName;
|
||
|
};
|
||
|
|
||
|
}}
|
||
|
#endif
|