VBOs com std :: vector

Eu escrevi um carregador de modelos em C ++ e OpenGL. Eu useistd::vectors para armazenar meus dados de vértice, mas agora quero passar paraglBufferData(), no entanto, os tipos de dados são totalmente diferentes. Quero saber se há uma maneira de converter entrestd::vector para o documentadoconst GLvoid * paraglBufferData().

Vertex type
typedef struct
{
    float x, y, z;
    float nx, ny, nz;
    float u, v;
}
Vertex;

vector<Vertex> vertices;
glBufferData () call
glBufferData(GL_ARRAY_BUFFER, vertices.size() * 3 * sizeof(float), vertices, GL_STATIC_DRAW);

Eu recebo o seguinte erro (esperado):

error: cannot convert ‘std::vector<Vertex>’ to ‘const GLvoid*’ in argument passing

Como converter o vetor em um tipo compatível comglBufferData()?

NB. Não me importo com a alocação correta de memória no momento;vertices.size() * 3 * sizeof(float) provavelmente ocorrerá um segfault, mas quero resolver o erro de tipo primeir

questionAnswers(2)

yourAnswerToTheQuestion