33 lines
629 B
C++
33 lines
629 B
C++
#ifndef MESH_H
|
|
#define MESH_H
|
|
|
|
#include <glew/glew.h>
|
|
#include <vector>
|
|
|
|
#define BUFFER_OFFSET(i) ((char *)NULL + (i))
|
|
|
|
class Mesh{
|
|
protected:
|
|
enum {VERTEX_BUFFER, INDICES_BUFFER, NB_BUFFERS};
|
|
|
|
std::vector<unsigned int> indices;
|
|
GLuint vao;
|
|
GLuint vbo[2];
|
|
bool locked;
|
|
|
|
virtual int getNbVertices() = 0;
|
|
virtual int getSizeofVertexType() = 0;
|
|
virtual void* getVertexData() = 0;
|
|
virtual void setAttribPointer() = 0;
|
|
|
|
public:
|
|
~Mesh();
|
|
void addFace(int i1, int i2, int i3);
|
|
void initGL();
|
|
void destroyGL();
|
|
void draw();
|
|
bool isLocked(){return locked;}
|
|
};
|
|
|
|
#endif // MESH_H
|