#pragma once
#include "box2d/types.h"
struct Bone
{
enum
{
e_hip = 0,
e_torso = 1,
e_head = 2,
e_upperLeftLeg = 3,
e_lowerLeftLeg = 4,
e_upperRightLeg = 5,
e_lowerRightLeg = 6,
e_upperLeftArm = 7,
e_lowerLeftArm = 8,
e_upperRightArm = 9,
e_lowerRightArm = 10,
e_count = 11,
};
b2BodyId bodyId;
b2JointId jointId;
float frictionScale;
int parentIndex;
};
class Human
{
public:
Human();
void Spawn( b2WorldId worldId, b2Vec2 position, float scale, float frictionTorque, float hertz, float dampingRatio,
int groupIndex, void* userData, bool colorize );
void Despawn();
void ApplyRandomAngularImpulse( float magnitude );
void SetJointFrictionTorque( float torque );
void SetJointSpringHertz( float hertz );
void SetJointDampingRatio( float dampingRatio );
Bone m_bones[Bone::e_count];
float m_scale;
bool m_isSpawned;
};