dungeon_crawler
annotate prototype/src/mesh.h @ 2:1f61f2a02832
added mesh class
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 09 Aug 2012 06:20:27 +0300 |
parents | |
children | 158de53b4e18 |
rev | line source |
---|---|
nuclear@2 | 1 #ifndef MESH_H_ |
nuclear@2 | 2 #define MESH_H_ |
nuclear@2 | 3 |
nuclear@2 | 4 #include <string> |
nuclear@2 | 5 #include <assimp/assimp.h> |
nuclear@2 | 6 #include <assimp/aiScene.h> |
nuclear@2 | 7 |
nuclear@2 | 8 enum { |
nuclear@2 | 9 MESH_ATTR_VERTEX, |
nuclear@2 | 10 MESH_ATTR_NORMAL, |
nuclear@2 | 11 MESH_ATTR_TANGENT, |
nuclear@2 | 12 MESH_ATTR_TEXCOORD, |
nuclear@2 | 13 |
nuclear@2 | 14 NUM_MESH_ATTR |
nuclear@2 | 15 }; |
nuclear@2 | 16 |
nuclear@2 | 17 |
nuclear@2 | 18 class Mesh { |
nuclear@2 | 19 private: |
nuclear@2 | 20 std::string name; |
nuclear@2 | 21 |
nuclear@2 | 22 unsigned int nverts, nfaces; |
nuclear@2 | 23 |
nuclear@2 | 24 unsigned int vbo[NUM_MESH_ATTR]; |
nuclear@2 | 25 unsigned int ibo; |
nuclear@2 | 26 |
nuclear@2 | 27 int tang_loc; |
nuclear@2 | 28 |
nuclear@2 | 29 public: |
nuclear@2 | 30 Mesh(); |
nuclear@2 | 31 ~Mesh(); |
nuclear@2 | 32 |
nuclear@2 | 33 bool create(const aiScene *scn, aiMesh *aim); |
nuclear@2 | 34 void destroy(); |
nuclear@2 | 35 |
nuclear@2 | 36 void set_attrib_location(int attr, int loc); |
nuclear@2 | 37 int get_attrib_location(int attr) const; |
nuclear@2 | 38 |
nuclear@2 | 39 void draw() const; |
nuclear@2 | 40 }; |
nuclear@2 | 41 |
nuclear@2 | 42 #endif // MESH_H_ |