我有一個文件,它定義了3D模型的頂點,法線和連通性信息。C++ - 讀取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圖形類,但我只是尋求周密這裏,而不是一個完全寫入項目等
¤使用''中的'std :: getline'一次讀入一行。然後用你喜歡的任何東西來解析每一行。一個'std :: istringstream'很容易,但可能效率很低。編寫時您需要一些「自定義類」,例如作爲基本元素類型。但從頭開始儘可能少地發明。而是利用標準庫的容器,例如'vector'和'map'以及C++ 11'array'等等。把它作爲一個目標,在任何地方都沒有任何明確的「新」。乾杯&hth。, –