2013-09-15 3 views
0

Я полностью испуган, насколько жестко он в Java ..Java - вектор векторов в буфер

Я использую OpenGL ES 2.0, который требует от меня, чтобы передать буфер здесь и там.

Представьте, что я храню вектор объектов. Каждый объект хранит много вещей вместе с вершинами, которые он хранит. Это выглядит следующим образом:

class MyObject { 
    Vector<Float> vertices; 
} 
Vector<MyObject> objects; 

Теперь, мне нужно, чтобы преобразовать их в буфер (FloatBuffer, я думаю). Я пытался сделать это по-разному, но никто, кажется, ничего не бывал быстро/они немые и могут не работать.

Может ли кто-нибудь показать мне правильный путь?

@EDIT

Просто уточнить - мне нужно, чтобы иметь буфер, который содержит все вершины из всех объектов.

Псевдо-код:

float[] allvertices; 
for(i = 0; i<objects.length; i++) 
    for(n = 0; n<objects[i].vertices.length; n++) 
     allvertices.add(objects[i].vertices[n]); 
// Now convert allvertices to buffer 
+2

** Примечание стороны: ** 'VECTOR' осуждается, вы должны избегать использования этого, используйте' list' вместо – BackSlash

ответ

0

Как насчет использования метода обруча?

float[] values = new float[vertices.size()]; 
int index = 0; 
for (Float f : vertices) { 
    values[index++] = f; 
} 
FloatBuffer b = FloatBuffer.wrap(values); 
+0

Это прекрасно - но это делает floatbuffer из одной MyObject вершин. Мне нужно объединить вершины n объектов –

Смежные вопросы