体の動きを追跡するアプリケーションがあります。サーバーのように機能して、体の追跡データを TCP 経由で送信することもできます。私のクライアントはサーバーに接続し、データを取得します。
データがクライアントに送信される前に、次のようなことが起こります。
MTBF v10 = bodyPose2MTBF_v10(pose, m_startup, m_stream_position, 1);
ss << v10.get();
m_body_tracking_server->send(ss);
ポーズには、ベクトルとしての頭の位置、脚、肩の位置などのすべての情報が含まれています。send メソッドでは、stringstream(ss) がクライアントに送信されます。
私のクライアントでは、stringstream を取得します。また、mtbfに戻しました。問題は、コードが私からのものではないため、すべてを理解していないことです。ポーズが mtbf に変換されると、次のようなことが起こります。
data.addFlag(0);
data << torso.x() << torso.y() << torso.z();
sensorConfig |= MTBFData_0_4::RightArmPosition;
data.addFlag(1);
.
.
.
たとえば、胴体を認識できるように「フラグ」を追加し、その後に胴体のxy座標とz座標を追加していることがわかります。ただし、フラグの追加メソッドは次のようになります。
addFlag(unsigned char n)
{
m_flag |= (1i64 << n);
m_buf.replace(7+8, 8, reinterpret_cast<char*>(&m_flag), 8);
return *this;
}
このメソッドは正確には何ですか?? いくつかのものをシフトし、文字を再解釈します...これを理解するには本当に助けが必要です! ありがとう!