www.pudn.com > 人体步态跟踪识别bate版.rar > WalkConf.cpp
// WalkConf.cpp: implementation of the CWalkConf class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "humantrack.h"
#include "WalkConf.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CWalkConf::CWalkConf()
{
rota_f_hip =0; // the rotation of hip of the front leg
rota_f_knee =0; // the rotation of knee of the front leg
rota_f_ankle =0 ; // the rotation of anklne of the front leg
rota_b_hip =0; // the rotation of hip of the back leg
rota_b_knee =0 ; // the rotation of knee of the back leg
rota_b_ankle =0 ;
}
CWalkConf::SetPara(CPosition loca_sacroiliac1,double rota_f_hip1, double rota_f_knee1, double rota_f_ankle1,double rota_b_hip1, double rota_b_knee1, double rota_b_ankle1)
{
loca_sacroiliac = loca_sacroiliac1;
rota_f_hip = rota_f_hip1;
rota_f_knee = rota_f_knee1;
rota_f_ankle = rota_f_ankle1;
rota_b_hip = rota_b_hip1;
rota_b_knee = rota_b_knee1;
rota_b_ankle = rota_b_ankle1;
}
CWalkConf::~CWalkConf()
{
}
void CWalkConf::setValue(CPosition loca_sacroiliac1,double rota_f_hip1, double rota_f_knee1, double rota_f_ankle1,double rota_b_hip1, double rota_b_knee1, double rota_b_ankle1)
{
loca_sacroiliac = loca_sacroiliac1;
rota_f_hip = rota_f_hip1;
rota_f_knee = rota_f_knee1;
rota_f_ankle = rota_f_ankle1;
rota_b_hip = rota_b_hip1;
rota_b_knee = rota_b_knee1;
rota_b_ankle = rota_b_ankle1;
}
CString CWalkConf::toString()
{
CString s("ok");
return s;
//new CString(loca_sacroiliac + "-[" + rota_f_hip + ", " + rota_f_knee + ", " + rota_f_ankle + "]-[" +rota_b_hip + ", " + rota_b_knee + ", " + rota_b_ankle + "]");
}
/**
* judge the walk configuration is same or not
*/
bool CWalkConf::equals(CWalkConf w)
{
if(loca_sacroiliac.equals(w.loca_sacroiliac)
&&rota_f_hip == w.rota_f_hip
&&rota_f_knee == w.rota_f_knee
&&rota_f_ankle == w.rota_f_ankle &&
rota_b_hip == w.rota_b_hip &&
rota_b_knee == w.rota_b_knee &&
rota_b_ankle == w.rota_b_ankle )
return true;
else
return false;
}
/**
* exchange the value of two legs
*/
void CWalkConf::exchange()
{
double hip = rota_f_hip;
double knee = rota_f_knee;
double ankle = rota_f_ankle;
rota_f_hip = rota_b_hip;
rota_f_knee = rota_b_knee;
rota_f_ankle = rota_b_ankle;
rota_b_hip = hip;
rota_b_knee = knee;
rota_b_ankle = ankle;
}
bool CWalkConf::IsEmpty()
{
if (rota_f_hip== 0 &&rota_f_knee== 0 && rota_f_ankle == 0 && rota_b_hip== 0 &&rota_b_knee== 0 &&rota_b_ankle== 0)
return true;
else
return false;
}