Added Box2D
This commit is contained in:
478
external/Box2D-2.3.1/Contributions/Tests/BipedDef.cpp
vendored
Normal file
478
external/Box2D-2.3.1/Contributions/Tests/BipedDef.cpp
vendored
Normal file
@@ -0,0 +1,478 @@
|
||||
#include "BipedDef.h"
|
||||
|
||||
int16 BipedDef::count = 0;
|
||||
|
||||
const float32 k_scale = 3.0f;
|
||||
|
||||
BipedDef::BipedDef()
|
||||
{
|
||||
SetMotorTorque(2.0f);
|
||||
SetMotorSpeed(0.0f);
|
||||
SetDensity(20.0f);
|
||||
SetRestitution(0.0f);
|
||||
SetLinearDamping(0.0f);
|
||||
SetAngularDamping(0.005f);
|
||||
SetGroupIndex(--count);
|
||||
EnableMotor();
|
||||
EnableLimit();
|
||||
|
||||
DefaultVertices();
|
||||
DefaultPositions();
|
||||
DefaultJoints();
|
||||
|
||||
LFootPoly.friction = RFootPoly.friction = 0.85f;
|
||||
}
|
||||
|
||||
void BipedDef::IsFast(bool b)
|
||||
{
|
||||
B2_NOT_USED(b);
|
||||
/*
|
||||
LFootDef.isFast = b;
|
||||
RFootDef.isFast = b;
|
||||
LCalfDef.isFast = b;
|
||||
RCalfDef.isFast = b;
|
||||
LThighDef.isFast = b;
|
||||
RThighDef.isFast = b;
|
||||
PelvisDef.isFast = b;
|
||||
StomachDef.isFast = b;
|
||||
ChestDef.isFast = b;
|
||||
NeckDef.isFast = b;
|
||||
HeadDef.isFast = b;
|
||||
LUpperArmDef.isFast = b;
|
||||
RUpperArmDef.isFast = b;
|
||||
LForearmDef.isFast = b;
|
||||
RForearmDef.isFast = b;
|
||||
LHandDef.isFast = b;
|
||||
RHandDef.isFast = b;
|
||||
*/
|
||||
}
|
||||
|
||||
void BipedDef::SetGroupIndex(int16 i)
|
||||
{
|
||||
LFootPoly.filter.groupIndex = i;
|
||||
RFootPoly.filter.groupIndex = i;
|
||||
LCalfPoly.filter.groupIndex = i;
|
||||
RCalfPoly.filter.groupIndex = i;
|
||||
LThighPoly.filter.groupIndex = i;
|
||||
RThighPoly.filter.groupIndex = i;
|
||||
PelvisPoly.filter.groupIndex = i;
|
||||
StomachPoly.filter.groupIndex = i;
|
||||
ChestPoly.filter.groupIndex = i;
|
||||
NeckPoly.filter.groupIndex = i;
|
||||
HeadCirc.filter.groupIndex = i;
|
||||
LUpperArmPoly.filter.groupIndex = i;
|
||||
RUpperArmPoly.filter.groupIndex = i;
|
||||
LForearmPoly.filter.groupIndex = i;
|
||||
RForearmPoly.filter.groupIndex = i;
|
||||
LHandPoly.filter.groupIndex = i;
|
||||
RHandPoly.filter.groupIndex = i;
|
||||
}
|
||||
|
||||
void BipedDef::SetLinearDamping(float f)
|
||||
{
|
||||
LFootDef.linearDamping = f;
|
||||
RFootDef.linearDamping = f;
|
||||
LCalfDef.linearDamping = f;
|
||||
RCalfDef.linearDamping = f;
|
||||
LThighDef.linearDamping = f;
|
||||
RThighDef.linearDamping = f;
|
||||
PelvisDef.linearDamping = f;
|
||||
StomachDef.linearDamping = f;
|
||||
ChestDef.linearDamping = f;
|
||||
NeckDef.linearDamping = f;
|
||||
HeadDef.linearDamping = f;
|
||||
LUpperArmDef.linearDamping = f;
|
||||
RUpperArmDef.linearDamping = f;
|
||||
LForearmDef.linearDamping = f;
|
||||
RForearmDef.linearDamping = f;
|
||||
LHandDef.linearDamping = f;
|
||||
RHandDef.linearDamping = f;
|
||||
}
|
||||
|
||||
void BipedDef::SetAngularDamping(float f)
|
||||
{
|
||||
LFootDef.angularDamping = f;
|
||||
RFootDef.angularDamping = f;
|
||||
LCalfDef.angularDamping = f;
|
||||
RCalfDef.angularDamping = f;
|
||||
LThighDef.angularDamping = f;
|
||||
RThighDef.angularDamping = f;
|
||||
PelvisDef.angularDamping = f;
|
||||
StomachDef.angularDamping = f;
|
||||
ChestDef.angularDamping = f;
|
||||
NeckDef.angularDamping = f;
|
||||
HeadDef.angularDamping = f;
|
||||
LUpperArmDef.angularDamping = f;
|
||||
RUpperArmDef.angularDamping = f;
|
||||
LForearmDef.angularDamping = f;
|
||||
RForearmDef.angularDamping = f;
|
||||
LHandDef.angularDamping = f;
|
||||
RHandDef.angularDamping = f;
|
||||
}
|
||||
|
||||
void BipedDef::SetMotorTorque(float f)
|
||||
{
|
||||
LAnkleDef.maxMotorTorque = f;
|
||||
RAnkleDef.maxMotorTorque = f;
|
||||
LKneeDef.maxMotorTorque = f;
|
||||
RKneeDef.maxMotorTorque = f;
|
||||
LHipDef.maxMotorTorque = f;
|
||||
RHipDef.maxMotorTorque = f;
|
||||
LowerAbsDef.maxMotorTorque = f;
|
||||
UpperAbsDef.maxMotorTorque = f;
|
||||
LowerNeckDef.maxMotorTorque = f;
|
||||
UpperNeckDef.maxMotorTorque = f;
|
||||
LShoulderDef.maxMotorTorque = f;
|
||||
RShoulderDef.maxMotorTorque = f;
|
||||
LElbowDef.maxMotorTorque = f;
|
||||
RElbowDef.maxMotorTorque = f;
|
||||
LWristDef.maxMotorTorque = f;
|
||||
RWristDef.maxMotorTorque = f;
|
||||
}
|
||||
|
||||
void BipedDef::SetMotorSpeed(float f)
|
||||
{
|
||||
LAnkleDef.motorSpeed = f;
|
||||
RAnkleDef.motorSpeed = f;
|
||||
LKneeDef.motorSpeed = f;
|
||||
RKneeDef.motorSpeed = f;
|
||||
LHipDef.motorSpeed = f;
|
||||
RHipDef.motorSpeed = f;
|
||||
LowerAbsDef.motorSpeed = f;
|
||||
UpperAbsDef.motorSpeed = f;
|
||||
LowerNeckDef.motorSpeed = f;
|
||||
UpperNeckDef.motorSpeed = f;
|
||||
LShoulderDef.motorSpeed = f;
|
||||
RShoulderDef.motorSpeed = f;
|
||||
LElbowDef.motorSpeed = f;
|
||||
RElbowDef.motorSpeed = f;
|
||||
LWristDef.motorSpeed = f;
|
||||
RWristDef.motorSpeed = f;
|
||||
}
|
||||
|
||||
void BipedDef::SetDensity(float f)
|
||||
{
|
||||
LFootPoly.density = f;
|
||||
RFootPoly.density = f;
|
||||
LCalfPoly.density = f;
|
||||
RCalfPoly.density = f;
|
||||
LThighPoly.density = f;
|
||||
RThighPoly.density = f;
|
||||
PelvisPoly.density = f;
|
||||
StomachPoly.density = f;
|
||||
ChestPoly.density = f;
|
||||
NeckPoly.density = f;
|
||||
HeadCirc.density = f;
|
||||
LUpperArmPoly.density = f;
|
||||
RUpperArmPoly.density = f;
|
||||
LForearmPoly.density = f;
|
||||
RForearmPoly.density = f;
|
||||
LHandPoly.density = f;
|
||||
RHandPoly.density = f;
|
||||
}
|
||||
|
||||
void BipedDef::SetRestitution(float f)
|
||||
{
|
||||
LFootPoly.restitution = f;
|
||||
RFootPoly.restitution = f;
|
||||
LCalfPoly.restitution = f;
|
||||
RCalfPoly.restitution = f;
|
||||
LThighPoly.restitution = f;
|
||||
RThighPoly.restitution = f;
|
||||
PelvisPoly.restitution = f;
|
||||
StomachPoly.restitution = f;
|
||||
ChestPoly.restitution = f;
|
||||
NeckPoly.restitution = f;
|
||||
HeadCirc.restitution = f;
|
||||
LUpperArmPoly.restitution = f;
|
||||
RUpperArmPoly.restitution = f;
|
||||
LForearmPoly.restitution = f;
|
||||
RForearmPoly.restitution = f;
|
||||
LHandPoly.restitution = f;
|
||||
RHandPoly.restitution = f;
|
||||
}
|
||||
|
||||
void BipedDef::EnableLimit()
|
||||
{
|
||||
SetLimit(true);
|
||||
}
|
||||
|
||||
void BipedDef::DisableLimit()
|
||||
{
|
||||
SetLimit(false);
|
||||
}
|
||||
|
||||
void BipedDef::SetLimit(bool b)
|
||||
{
|
||||
LAnkleDef.enableLimit = b;
|
||||
RAnkleDef.enableLimit = b;
|
||||
LKneeDef.enableLimit = b;
|
||||
RKneeDef.enableLimit = b;
|
||||
LHipDef.enableLimit = b;
|
||||
RHipDef.enableLimit = b;
|
||||
LowerAbsDef.enableLimit = b;
|
||||
UpperAbsDef.enableLimit = b;
|
||||
LowerNeckDef.enableLimit = b;
|
||||
UpperNeckDef.enableLimit = b;
|
||||
LShoulderDef.enableLimit = b;
|
||||
RShoulderDef.enableLimit = b;
|
||||
LElbowDef.enableLimit = b;
|
||||
RElbowDef.enableLimit = b;
|
||||
LWristDef.enableLimit = b;
|
||||
RWristDef.enableLimit = b;
|
||||
}
|
||||
|
||||
void BipedDef::EnableMotor()
|
||||
{
|
||||
SetMotor(true);
|
||||
}
|
||||
|
||||
void BipedDef::DisableMotor()
|
||||
{
|
||||
SetMotor(false);
|
||||
}
|
||||
|
||||
void BipedDef::SetMotor(bool b)
|
||||
{
|
||||
LAnkleDef.enableMotor = b;
|
||||
RAnkleDef.enableMotor = b;
|
||||
LKneeDef.enableMotor = b;
|
||||
RKneeDef.enableMotor = b;
|
||||
LHipDef.enableMotor = b;
|
||||
RHipDef.enableMotor = b;
|
||||
LowerAbsDef.enableMotor = b;
|
||||
UpperAbsDef.enableMotor = b;
|
||||
LowerNeckDef.enableMotor = b;
|
||||
UpperNeckDef.enableMotor = b;
|
||||
LShoulderDef.enableMotor = b;
|
||||
RShoulderDef.enableMotor = b;
|
||||
LElbowDef.enableMotor = b;
|
||||
RElbowDef.enableMotor = b;
|
||||
LWristDef.enableMotor = b;
|
||||
RWristDef.enableMotor = b;
|
||||
}
|
||||
|
||||
BipedDef::~BipedDef(void)
|
||||
{
|
||||
}
|
||||
|
||||
void BipedDef::DefaultVertices()
|
||||
{
|
||||
{ // feet
|
||||
LFootPoly.vertexCount = RFootPoly.vertexCount = 5;
|
||||
LFootPoly.vertices[0] = RFootPoly.vertices[0] = k_scale * b2Vec2(.033f,.143f);
|
||||
LFootPoly.vertices[1] = RFootPoly.vertices[1] = k_scale * b2Vec2(.023f,.033f);
|
||||
LFootPoly.vertices[2] = RFootPoly.vertices[2] = k_scale * b2Vec2(.267f,.035f);
|
||||
LFootPoly.vertices[3] = RFootPoly.vertices[3] = k_scale * b2Vec2(.265f,.065f);
|
||||
LFootPoly.vertices[4] = RFootPoly.vertices[4] = k_scale * b2Vec2(.117f,.143f);
|
||||
}
|
||||
{ // calves
|
||||
LCalfPoly.vertexCount = RCalfPoly.vertexCount = 4;
|
||||
LCalfPoly.vertices[0] = RCalfPoly.vertices[0] = k_scale * b2Vec2(.089f,.016f);
|
||||
LCalfPoly.vertices[1] = RCalfPoly.vertices[1] = k_scale * b2Vec2(.178f,.016f);
|
||||
LCalfPoly.vertices[2] = RCalfPoly.vertices[2] = k_scale * b2Vec2(.205f,.417f);
|
||||
LCalfPoly.vertices[3] = RCalfPoly.vertices[3] = k_scale * b2Vec2(.095f,.417f);
|
||||
}
|
||||
{ // thighs
|
||||
LThighPoly.vertexCount = RThighPoly.vertexCount = 4;
|
||||
LThighPoly.vertices[0] = RThighPoly.vertices[0] = k_scale * b2Vec2(.137f,.032f);
|
||||
LThighPoly.vertices[1] = RThighPoly.vertices[1] = k_scale * b2Vec2(.243f,.032f);
|
||||
LThighPoly.vertices[2] = RThighPoly.vertices[2] = k_scale * b2Vec2(.318f,.343f);
|
||||
LThighPoly.vertices[3] = RThighPoly.vertices[3] = k_scale * b2Vec2(.142f,.343f);
|
||||
}
|
||||
{ // pelvis
|
||||
PelvisPoly.vertexCount = 5;
|
||||
PelvisPoly.vertices[0] = k_scale * b2Vec2(.105f,.051f);
|
||||
PelvisPoly.vertices[1] = k_scale * b2Vec2(.277f,.053f);
|
||||
PelvisPoly.vertices[2] = k_scale * b2Vec2(.320f,.233f);
|
||||
PelvisPoly.vertices[3] = k_scale * b2Vec2(.112f,.233f);
|
||||
PelvisPoly.vertices[4] = k_scale * b2Vec2(.067f,.152f);
|
||||
}
|
||||
{ // stomach
|
||||
StomachPoly.vertexCount = 4;
|
||||
StomachPoly.vertices[0] = k_scale * b2Vec2(.088f,.043f);
|
||||
StomachPoly.vertices[1] = k_scale * b2Vec2(.284f,.043f);
|
||||
StomachPoly.vertices[2] = k_scale * b2Vec2(.295f,.231f);
|
||||
StomachPoly.vertices[3] = k_scale * b2Vec2(.100f,.231f);
|
||||
}
|
||||
{ // chest
|
||||
ChestPoly.vertexCount = 4;
|
||||
ChestPoly.vertices[0] = k_scale * b2Vec2(.091f,.042f);
|
||||
ChestPoly.vertices[1] = k_scale * b2Vec2(.283f,.042f);
|
||||
ChestPoly.vertices[2] = k_scale * b2Vec2(.177f,.289f);
|
||||
ChestPoly.vertices[3] = k_scale * b2Vec2(.065f,.289f);
|
||||
}
|
||||
{ // head
|
||||
HeadCirc.radius = k_scale * .115f;
|
||||
}
|
||||
{ // neck
|
||||
NeckPoly.vertexCount = 4;
|
||||
NeckPoly.vertices[0] = k_scale * b2Vec2(.038f,.054f);
|
||||
NeckPoly.vertices[1] = k_scale * b2Vec2(.149f,.054f);
|
||||
NeckPoly.vertices[2] = k_scale * b2Vec2(.154f,.102f);
|
||||
NeckPoly.vertices[3] = k_scale * b2Vec2(.054f,.113f);
|
||||
}
|
||||
{ // upper arms
|
||||
LUpperArmPoly.vertexCount = RUpperArmPoly.vertexCount = 5;
|
||||
LUpperArmPoly.vertices[0] = RUpperArmPoly.vertices[0] = k_scale * b2Vec2(.092f,.059f);
|
||||
LUpperArmPoly.vertices[1] = RUpperArmPoly.vertices[1] = k_scale * b2Vec2(.159f,.059f);
|
||||
LUpperArmPoly.vertices[2] = RUpperArmPoly.vertices[2] = k_scale * b2Vec2(.169f,.335f);
|
||||
LUpperArmPoly.vertices[3] = RUpperArmPoly.vertices[3] = k_scale * b2Vec2(.078f,.335f);
|
||||
LUpperArmPoly.vertices[4] = RUpperArmPoly.vertices[4] = k_scale * b2Vec2(.064f,.248f);
|
||||
}
|
||||
{ // forearms
|
||||
LForearmPoly.vertexCount = RForearmPoly.vertexCount = 4;
|
||||
LForearmPoly.vertices[0] = RForearmPoly.vertices[0] = k_scale * b2Vec2(.082f,.054f);
|
||||
LForearmPoly.vertices[1] = RForearmPoly.vertices[1] = k_scale * b2Vec2(.138f,.054f);
|
||||
LForearmPoly.vertices[2] = RForearmPoly.vertices[2] = k_scale * b2Vec2(.149f,.296f);
|
||||
LForearmPoly.vertices[3] = RForearmPoly.vertices[3] = k_scale * b2Vec2(.088f,.296f);
|
||||
}
|
||||
{ // hands
|
||||
LHandPoly.vertexCount = RHandPoly.vertexCount = 5;
|
||||
LHandPoly.vertices[0] = RHandPoly.vertices[0] = k_scale * b2Vec2(.066f,.031f);
|
||||
LHandPoly.vertices[1] = RHandPoly.vertices[1] = k_scale * b2Vec2(.123f,.020f);
|
||||
LHandPoly.vertices[2] = RHandPoly.vertices[2] = k_scale * b2Vec2(.160f,.127f);
|
||||
LHandPoly.vertices[3] = RHandPoly.vertices[3] = k_scale * b2Vec2(.127f,.178f);
|
||||
LHandPoly.vertices[4] = RHandPoly.vertices[4] = k_scale * b2Vec2(.074f,.178f);;
|
||||
}
|
||||
}
|
||||
|
||||
void BipedDef::DefaultJoints()
|
||||
{
|
||||
//b.LAnkleDef.body1 = LFoot;
|
||||
//b.LAnkleDef.body2 = LCalf;
|
||||
//b.RAnkleDef.body1 = RFoot;
|
||||
//b.RAnkleDef.body2 = RCalf;
|
||||
{ // ankles
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.045f,-.75f);
|
||||
LAnkleDef.localAnchor1 = RAnkleDef.localAnchor1 = anchor - LFootDef.position;
|
||||
LAnkleDef.localAnchor2 = RAnkleDef.localAnchor2 = anchor - LCalfDef.position;
|
||||
LAnkleDef.referenceAngle = RAnkleDef.referenceAngle = 0.0f;
|
||||
LAnkleDef.lowerAngle = RAnkleDef.lowerAngle = -0.523598776f;
|
||||
LAnkleDef.upperAngle = RAnkleDef.upperAngle = 0.523598776f;
|
||||
}
|
||||
|
||||
//b.LKneeDef.body1 = LCalf;
|
||||
//b.LKneeDef.body2 = LThigh;
|
||||
//b.RKneeDef.body1 = RCalf;
|
||||
//b.RKneeDef.body2 = RThigh;
|
||||
{ // knees
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.030f,-.355f);
|
||||
LKneeDef.localAnchor1 = RKneeDef.localAnchor1 = anchor - LCalfDef.position;
|
||||
LKneeDef.localAnchor2 = RKneeDef.localAnchor2 = anchor - LThighDef.position;
|
||||
LKneeDef.referenceAngle = RKneeDef.referenceAngle = 0.0f;
|
||||
LKneeDef.lowerAngle = RKneeDef.lowerAngle = 0;
|
||||
LKneeDef.upperAngle = RKneeDef.upperAngle = 2.61799388f;
|
||||
}
|
||||
|
||||
//b.LHipDef.body1 = LThigh;
|
||||
//b.LHipDef.body2 = Pelvis;
|
||||
//b.RHipDef.body1 = RThigh;
|
||||
//b.RHipDef.body2 = Pelvis;
|
||||
{ // hips
|
||||
b2Vec2 anchor = k_scale * b2Vec2(.005f,-.045f);
|
||||
LHipDef.localAnchor1 = RHipDef.localAnchor1 = anchor - LThighDef.position;
|
||||
LHipDef.localAnchor2 = RHipDef.localAnchor2 = anchor - PelvisDef.position;
|
||||
LHipDef.referenceAngle = RHipDef.referenceAngle = 0.0f;
|
||||
LHipDef.lowerAngle = RHipDef.lowerAngle = -2.26892803f;
|
||||
LHipDef.upperAngle = RHipDef.upperAngle = 0;
|
||||
}
|
||||
|
||||
//b.LowerAbsDef.body1 = Pelvis;
|
||||
//b.LowerAbsDef.body2 = Stomach;
|
||||
{ // lower abs
|
||||
b2Vec2 anchor = k_scale * b2Vec2(.035f,.135f);
|
||||
LowerAbsDef.localAnchor1 = anchor - PelvisDef.position;
|
||||
LowerAbsDef.localAnchor2 = anchor - StomachDef.position;
|
||||
LowerAbsDef.referenceAngle = 0.0f;
|
||||
LowerAbsDef.lowerAngle = -0.523598776f;
|
||||
LowerAbsDef.upperAngle = 0.523598776f;
|
||||
}
|
||||
|
||||
//b.UpperAbsDef.body1 = Stomach;
|
||||
//b.UpperAbsDef.body2 = Chest;
|
||||
{ // upper abs
|
||||
b2Vec2 anchor = k_scale * b2Vec2(.045f,.320f);
|
||||
UpperAbsDef.localAnchor1 = anchor - StomachDef.position;
|
||||
UpperAbsDef.localAnchor2 = anchor - ChestDef.position;
|
||||
UpperAbsDef.referenceAngle = 0.0f;
|
||||
UpperAbsDef.lowerAngle = -0.523598776f;
|
||||
UpperAbsDef.upperAngle = 0.174532925f;
|
||||
}
|
||||
|
||||
//b.LowerNeckDef.body1 = Chest;
|
||||
//b.LowerNeckDef.body2 = Neck;
|
||||
{ // lower neck
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.015f,.575f);
|
||||
LowerNeckDef.localAnchor1 = anchor - ChestDef.position;
|
||||
LowerNeckDef.localAnchor2 = anchor - NeckDef.position;
|
||||
LowerNeckDef.referenceAngle = 0.0f;
|
||||
LowerNeckDef.lowerAngle = -0.174532925f;
|
||||
LowerNeckDef.upperAngle = 0.174532925f;
|
||||
}
|
||||
|
||||
//b.UpperNeckDef.body1 = Chest;
|
||||
//b.UpperNeckDef.body2 = Head;
|
||||
{ // upper neck
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.005f,.630f);
|
||||
UpperNeckDef.localAnchor1 = anchor - ChestDef.position;
|
||||
UpperNeckDef.localAnchor2 = anchor - HeadDef.position;
|
||||
UpperNeckDef.referenceAngle = 0.0f;
|
||||
UpperNeckDef.lowerAngle = -0.610865238f;
|
||||
UpperNeckDef.upperAngle = 0.785398163f;
|
||||
}
|
||||
|
||||
//b.LShoulderDef.body1 = Chest;
|
||||
//b.LShoulderDef.body2 = LUpperArm;
|
||||
//b.RShoulderDef.body1 = Chest;
|
||||
//b.RShoulderDef.body2 = RUpperArm;
|
||||
{ // shoulders
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.015f,.545f);
|
||||
LShoulderDef.localAnchor1 = RShoulderDef.localAnchor1 = anchor - ChestDef.position;
|
||||
LShoulderDef.localAnchor2 = RShoulderDef.localAnchor2 = anchor - LUpperArmDef.position;
|
||||
LShoulderDef.referenceAngle = RShoulderDef.referenceAngle = 0.0f;
|
||||
LShoulderDef.lowerAngle = RShoulderDef.lowerAngle = -1.04719755f;
|
||||
LShoulderDef.upperAngle = RShoulderDef.upperAngle = 3.14159265f;
|
||||
}
|
||||
|
||||
//b.LElbowDef.body1 = LForearm;
|
||||
//b.LElbowDef.body2 = LUpperArm;
|
||||
//b.RElbowDef.body1 = RForearm;
|
||||
//b.RElbowDef.body2 = RUpperArm;
|
||||
{ // elbows
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.005f,.290f);
|
||||
LElbowDef.localAnchor1 = RElbowDef.localAnchor1 = anchor - LForearmDef.position;
|
||||
LElbowDef.localAnchor2 = RElbowDef.localAnchor2 = anchor - LUpperArmDef.position;
|
||||
LElbowDef.referenceAngle = RElbowDef.referenceAngle = 0.0f;
|
||||
LElbowDef.lowerAngle = RElbowDef.lowerAngle = -2.7925268f;
|
||||
LElbowDef.upperAngle = RElbowDef.upperAngle = 0;
|
||||
}
|
||||
|
||||
//b.LWristDef.body1 = LHand;
|
||||
//b.LWristDef.body2 = LForearm;
|
||||
//b.RWristDef.body1 = RHand;
|
||||
//b.RWristDef.body2 = RForearm;
|
||||
{ // wrists
|
||||
b2Vec2 anchor = k_scale * b2Vec2(-.010f,.045f);
|
||||
LWristDef.localAnchor1 = RWristDef.localAnchor1 = anchor - LHandDef.position;
|
||||
LWristDef.localAnchor2 = RWristDef.localAnchor2 = anchor - LForearmDef.position;
|
||||
LWristDef.referenceAngle = RWristDef.referenceAngle = 0.0f;
|
||||
LWristDef.lowerAngle = RWristDef.lowerAngle = -0.174532925f;
|
||||
LWristDef.upperAngle = RWristDef.upperAngle = 0.174532925f;
|
||||
}
|
||||
}
|
||||
|
||||
void BipedDef::DefaultPositions()
|
||||
{
|
||||
LFootDef.position = RFootDef.position = k_scale * b2Vec2(-.122f,-.901f);
|
||||
LCalfDef.position = RCalfDef.position = k_scale * b2Vec2(-.177f,-.771f);
|
||||
LThighDef.position = RThighDef.position = k_scale * b2Vec2(-.217f,-.391f);
|
||||
LUpperArmDef.position = RUpperArmDef.position = k_scale * b2Vec2(-.127f,.228f);
|
||||
LForearmDef.position = RForearmDef.position = k_scale * b2Vec2(-.117f,-.011f);
|
||||
LHandDef.position = RHandDef.position = k_scale * b2Vec2(-.112f,-.136f);
|
||||
PelvisDef.position = k_scale * b2Vec2(-.177f,-.101f);
|
||||
StomachDef.position = k_scale * b2Vec2(-.142f,.088f);
|
||||
ChestDef.position = k_scale * b2Vec2(-.132f,.282f);
|
||||
NeckDef.position = k_scale * b2Vec2(-.102f,.518f);
|
||||
HeadDef.position = k_scale * b2Vec2(.022f,.738f);
|
||||
}
|
||||
Reference in New Issue
Block a user