2013-11-10 20 views
1

我有在CPP一些結構填補了C++中的嵌套結構有很多Ø獨特的數據

struct Vertex 
    { 
     GLfloat position[3]; 
     GLubyte color[4]; 
     GLfloat textCoord[2]; 
     GLfloat normal[3]; 
    } 

    Vertex verts[5]; 

我現在需要做的,就是把很多獨特的數據導入。問題是,這是非常不暢,非常混亂和horrowing ...

verts[3].position[0] = 0.5; verts[3].position[1] = -0.5; verts[3].position[2] = 0.0; 
verts[3].color[0] = 255; verts[3].color[1] = 255; verts[3].color[2] = 0; verts[3].color[3] = 255; 
verts[3].normal[0] = verts[3].normal[1] = verts[3].normal[2] = 0.0; 
verts[3].textCoord[0] = 0.0; verts[3].textCoord[1] = 0.0; 

我怎樣可以把它放在更簡單的方法?當然,我可以從文件中讀取它,但出於某種原因,我不想。 對我來說,最好的方式是將其填充爲數組或其他東西。我想過重載一些操作符,但是我不能在這個想法中找到任何解決方案,因爲它們大多數只有一個參數。

回答

0

編寫一個簡單的程序來生成一個文件的測試數據。

修改程序以從文件輸入測試數據。

該文件將有兩個目的:1)在每次測試運行期間您都會得到相同的數據以進行調試;和2)您可以輕鬆更改數據,而無需重新編譯程序。

0

類似下面應該爲你工作 - 它只是數組初始化:

struct Vertex 
{ 
    GLfloat position[3]; 
    GLubyte color[4]; 
    GLfloat textCoord[2]; 
    GLfloat normal[3]; 
}; 

Vertex verts[5] = 
{ 
    {{0.5, -0.5, 0.0}, {255, 255, 0, 255}, {0.0, 0.0}, {0.0, 0.0, 0.0}}, 
    < ... repeat for other vertices probably with other numbers ... > 
}; 
+0

不能做到這一點...'數組member' – Krzycho

+0

無效初始化有此結構中沒有「代碼」成員。該消息可能是由其他一些代碼生成的。 – HEKTO

+0

呵呵,我看...請在開頭添加:#include 和「Vertex」定義後的分號 – HEKTO