Engine
mesh.h
1 #include <vector>
2 #include <GL/glew.h>
3 #include <Eigen/Core>
4 #ifndef MESH
5 #define MESH
6 
14 typedef Eigen::Matrix<GLfloat, Eigen::Dynamic, 3, Eigen::RowMajor> List3df;
15 typedef Eigen::Matrix<GLint, Eigen::Dynamic, 3, Eigen::RowMajor> List3di;
16 
17 class Mesh
18 {
19  private:
20  List3df m_vertices; // Matrix of vertices in mesh
21  List3di m_faces; // Matrix of indices into vertex list in counter-clockwise order.
22  List3df m_face_normals; // Matrix of face normals
23  List3df m_vertex_normals; // Matrix of vertex normals
24  GLuint m_VAO;
25  GLuint m_VBO;
26  GLuint m_EBO;
27 
28  void GenerateVAO();
29 
30  void ComputeNormals();
31 
32  public:
36  Mesh();
37 
43  Mesh(List3df vertices, List3di faces);
44 
48  List3df GetVertices();
49 
53  List3di GetFaces();
54 
58  List3df GetFaceNormals();
59 
63  GLuint GetNumEdges();
64 
68  GLuint GetVAO();
69 
73  void CleanUp();
74 
75 };
76 #endif
List3df GetVertices()
Definition: mesh.cpp:19
Definition: mesh.h:17
List3df GetFaceNormals()
Definition: mesh.cpp:29
void CleanUp()
Definition: mesh.cpp:89
GLuint GetVAO()
Definition: mesh.cpp:39
List3di GetFaces()
Definition: mesh.cpp:24
Mesh()
Definition: mesh.cpp:7
GLuint GetNumEdges()
Definition: mesh.cpp:34