3Dモデルの頂点、法線、および接続情報を定義するファイルがあります。C++ - 3Dモデルの読み込み
サンプル:で読み、この情報を格納するための最良の方法だろう
v vertex coordinate (x, y, z position)
vt texture coordinate (u, v coordinate)
f polygon connectivity information with vertex and texture indices
何:
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
?各頂点と接続情報の内部配列を持つカスタムクラス/構造体?私はデータをC++で区切られた形で読み込む前に一度も考えていたが、同じデータ型であったため、多次元配列にチャンクした。私はちょうどstringstreams
とカスタムの構造体/クラスを使うべきでしょうか?
EDIT開示は、これは私の3Dグラフィックスクラスのためですが、
¤一度に1行ずつ、 ''の 'std :: getline'を使って読み込みます。次に、あなたが気に入っているものを使って、各行を解析します。 'std :: istringstream'は簡単ですが、おそらく非効率です。あなたが書いているように、いくつかの "カスタムクラス"が必要になります。基本的な要素の種類として。しかし、ゼロからできるだけ少なく考えてください。代わりに、 'vector'や' map'やC++ 11 'array'などの標準ライブラリのコンテナを活用してください。どこでも明確な 'new'を持たないことを目標にしてください。乾杯&乾杯。 –