mirror of
https://github.com/bulletphysics/bullet3
synced 2025-01-11 01:40:10 +00:00
72 lines
1.2 KiB
C
72 lines
1.2 KiB
C
|
#ifndef RAGDOLL_H_INCLUDED
|
||
|
#define RAGDOLL_H_INCLUDED
|
||
|
|
||
|
#include "DemoApplication.h"
|
||
|
#include "LinearMath/btAlignedObjectArray.h"
|
||
|
#include "btBulletDynamicsCommon.h"
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
class RagDoll
|
||
|
{
|
||
|
enum
|
||
|
{
|
||
|
BODYPART_PELVIS = 0,
|
||
|
BODYPART_SPINE,
|
||
|
BODYPART_HEAD,
|
||
|
|
||
|
BODYPART_LEFT_UPPER_LEG,
|
||
|
BODYPART_LEFT_LOWER_LEG,
|
||
|
|
||
|
BODYPART_RIGHT_UPPER_LEG,
|
||
|
BODYPART_RIGHT_LOWER_LEG,
|
||
|
|
||
|
BODYPART_LEFT_UPPER_ARM,
|
||
|
BODYPART_LEFT_LOWER_ARM,
|
||
|
|
||
|
BODYPART_RIGHT_UPPER_ARM,
|
||
|
BODYPART_RIGHT_LOWER_ARM,
|
||
|
|
||
|
BODYPART_COUNT
|
||
|
};
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
JOINT_PELVIS_SPINE = 0,
|
||
|
JOINT_SPINE_HEAD,
|
||
|
|
||
|
JOINT_LEFT_HIP,
|
||
|
JOINT_LEFT_KNEE,
|
||
|
|
||
|
JOINT_RIGHT_HIP,
|
||
|
JOINT_RIGHT_KNEE,
|
||
|
|
||
|
JOINT_LEFT_SHOULDER,
|
||
|
JOINT_LEFT_ELBOW,
|
||
|
|
||
|
JOINT_RIGHT_SHOULDER,
|
||
|
JOINT_RIGHT_ELBOW,
|
||
|
|
||
|
JOINT_COUNT
|
||
|
};
|
||
|
|
||
|
btDynamicsWorld* m_ownerWorld;
|
||
|
btCollisionShape* m_shapes[BODYPART_COUNT];
|
||
|
btRigidBody* m_bodies[BODYPART_COUNT];
|
||
|
btTypedConstraint* m_joints[JOINT_COUNT];
|
||
|
|
||
|
btRigidBody* localCreateRigidBody (btScalar mass, const btTransform& startTransform, btCollisionShape* shape);
|
||
|
|
||
|
public:
|
||
|
RagDoll (btDynamicsWorld* ownerWorld,
|
||
|
const btVector3& positionOffset,
|
||
|
btScalar scale_ragdoll = btScalar(1.0));
|
||
|
|
||
|
~RagDoll ();
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
#endif // RAGDOLL_H_INCLUDED
|