Hello. I am following a tutorial that when calls to glBufferData() are made, its third argument, a const void * pointer, is used to point to a static const GLfloat  or to a static const GLint which represents the vertices and its indices. So, is there no use to keep already made triangles? By triangles I mean an Object that is made of three Vec3f objects (which are three floats) that represent the vertices, another Vec3f that represents normal and a couple methods that operate over it.
Can I throw all that away and instead focus into copying the data contained into two c++ vectors, that stored all vertices and all the faces index before the triangles creation to a permanent and more suitable format that glBufferData can interpret? (dynamically allocated GLfloat and GLint I guess…)
Thanks for the attention.