将 tf::transform 对象写入文件
Posted
技术标签:
【中文标题】将 tf::transform 对象写入文件【英文标题】:writing a tf::transform object to a file 【发布时间】:2013-07-14 18:33:43 【问题描述】:我正在尝试执行类似于以下代码块的操作:
tf::transform t;
initializeTransform(t);
std::ofstream f;
f.open("somefile");
f << t << std::endl;
f.close();
假设我在尝试将t
写入f
时已正确设置f
和t
,我该怎么做?我尝试了许多变体,所有变体都导致了巨大的文本墙,大意是ofstream
不知道如何处理 tf::transform 对象,这不足为奇。
有没有办法让ofstream
获取任意对象?是否有一些我可以很容易地将其转换为更有利于流式传输的格式?理想情况下,如果我转换它,我希望有一种方法可以将它可逆地转换为一些矩阵,我可以直接通过管道进出文件。
【问题讨论】:
【参考方案1】:实现运算符 在这种情况下,我不确定转换结构的内容,但假设它是:
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;
【讨论】:
“实施该运算符”是对问题的一个角度的更紧凑的措辞,但不是答案。 添加了一个例子。实现取决于数据结构的内容,但基本上您将操作分解为以上是关于将 tf::transform 对象写入文件的主要内容,如果未能解决你的问题,请参考以下文章