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; 
}