You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
C++
53 lines
1.2 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
|