void CHydraHmdLatest::DebugRequest( const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize ) { std::istringstream ss( pchRequest ); std::string strCmd; ss >> strCmd; if ( strCmd == "hydra:realign_coordinates" ) { // hydra_monitor is calling us back with HMD tracking information so we can // finish realigning our coordinate system to the HMD's float m[3][3], v[3]; for ( int i = 0; i < 3; ++i ) { for ( int j = 0; j < 3; ++j ) { // Note the transpose, because sixenseMath::Matrix3 and vr::HmdMatrix34_t disagree on row/col major ss >> m[j][i]; } ss >> v[i]; } sixenseMath::Matrix3 matRot( m ); sixenseMath::Vector3 matPos( v ); FinishRealignCoordinates( matRot, matPos ); }
void CLeapHmdLatest::DebugRequest( const char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize ) { std::istringstream ss( pchRequest ); std::string strCmd; ss >> strCmd; if ( strCmd == "leap:realign_coordinates" ) { // leap_monitor is calling us back with HMD tracking information so we can // finish realigning our coordinate system to the HMD's float m[3][3], v[3]; for ( int i = 0; i < 3; ++i ) { for ( int j = 0; j < 3; ++j ) { ss >> m[j][i]; } ss >> v[i]; } FinishRealignCoordinates(m, v); }