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