【发布时间】:2011-12-05 00:57:38
【问题描述】:
我有一个文件,它定义了 3D 模型的顶点、法线和连接信息。
示例:
v -2.491060 -2.491060 0.000000
v 2.491060 -2.491060 0.000000
v -2.491060 2.491060 0.000000
v 2.491060 2.491060 0.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.000000 1.000000
vt 1.000000 1.000000
f 1/1 2/2 3/3
f 3/3 2/2 4/1
地点:
v vertex coordinate (x, y, z position)
vt texture coordinate (u, v coordinate)
f polygon connectivity information with vertex and texture indices
读取和存储这些信息的最佳方式是什么?具有每个顶点和连接信息的内部数组的自定义类/结构?我想我曾经用 C++ 以分隔方式读取数据,但它是相同的数据类型,所以我将它放入一个多维数组中。我应该只使用stringstreams 和自定义结构/类吗?
编辑披露,这是针对我的 3D 图形课程的,但我只是在这里寻求建议,而不是完整编写的项目等。
【问题讨论】:
-
¤ 使用来自
<string>的std::getline一次读取一行。然后使用您喜欢的任何内容来解析每一行。std::istringstream很简单,但可能效率低下。您在编写时将需要一些“自定义类”,例如作为基本元素类型。但尽可能少地从头开始发明。而是利用标准库的容器,例如vector和map和 C++11array等等。目标是在任何地方都没有明确的new。干杯&hth.,
标签: c++ file parsing object delimiter