|
|
忙了一个月了,就这几行,效率太......
只是粗码,主要是提四元数,根节点要提position.基本应该够用了,
感谢xpertsoft提供cssdk,感谢太傻指点.
感兴趣的来顶啊。
void _get_node_point(INode* pNode, Point3& p){
Control* pTmCtrl = pNode->GetTMController();
///printf("pTmCtrl:%i\r\n", pTmCtrl);
if(!pTmCtrl)return;
///检查Ctrl类型;
//if(pTmCtrl->ClassID() == BIPBODY_CONTROL_CLASS_ID){
//}
IBipMaster* pBipM = GetBipMasterInterface(pTmCtrl);
///printf("pBipM:%i\r\n", pBipM);
if(!pBipM)return;
TimeValue time1 = gpIF->GetTime();
p = pBipM->GetBipedPos(time1, pNode);
Quat q = pBipM->GetBipedRot(time1, pNode);
float pR[3];
QuatToEuler(q,pR);
printf("q:%0.2f, %0.2f, %0.2f\r\n", pR[0]/(3.1415926/180), pR[1]/(3.1415926/180),
pR[2]/(3.1415926/180));
////ScaleValue s1 = pBipM->GetBipedScale(time1, pNode);
////Point3 p1 = s1.s;
printf("pos:%0.3f, %0.3f, %0.3f\r\n", p.x, p.y, p.z);
pTmCtrl->ReleaseInterface(I_BIPMASTER, pBipM);
}
|
|