将tf::transform对象写入文件

writing a tf::transform object to a file

本文关键字:文件 transform tf 对象      更新时间:2023-10-16

我正在尝试执行类似于以下代码块的操作:

tf::transform t;
initializeTransform(t);
std::ofstream f;
f.open("somefile");
f << t << std::endl;
f.close();

假设在尝试将t写入f时,我已经正确设置了ft,我将如何做到这一点?我尝试了许多变体,所有这些变体都导致了一堵巨大的文本墙,大意是ofstream不知道如何处理tf::transform对象,这并不太令人惊讶。

有没有办法让ofstream取任意对象?有没有什么格式我可以很容易地将其转换为更有利于流媒体的格式?理想情况下,如果我转换它,我希望有一种方法可以将它可逆地转换为一些矩阵,我可以直接导入和导出文件。

实现运算符
在这种情况下,我不确定转换结构的内容,但假设它是:

struct transform { float mat[16]; }

然后实现可以类似于:

std::ostream& operator<< (std::ostream& os, const tf::transform& t)
{
  os << t.mat[0];
  for(int i=1;i<16;++i) os << ',' << t.mat[i];
  return os;
}