nuclear@2: #ifndef MESH_H_ nuclear@2: #define MESH_H_ nuclear@2: nuclear@2: #include nuclear@2: #include nuclear@2: #include nuclear@2: nuclear@2: enum { nuclear@2: MESH_ATTR_VERTEX, nuclear@2: MESH_ATTR_NORMAL, nuclear@2: MESH_ATTR_TANGENT, nuclear@2: MESH_ATTR_TEXCOORD, nuclear@2: nuclear@2: NUM_MESH_ATTR nuclear@2: }; nuclear@2: nuclear@2: nuclear@2: class Mesh { nuclear@2: private: nuclear@2: std::string name; nuclear@2: nuclear@2: unsigned int nverts, nfaces; nuclear@2: nuclear@2: unsigned int vbo[NUM_MESH_ATTR]; nuclear@2: unsigned int ibo; nuclear@2: nuclear@2: int tang_loc; nuclear@2: nuclear@2: public: nuclear@2: Mesh(); nuclear@2: ~Mesh(); nuclear@2: nuclear@2: bool create(const aiScene *scn, aiMesh *aim); nuclear@2: void destroy(); nuclear@2: nuclear@2: void set_attrib_location(int attr, int loc); nuclear@2: int get_attrib_location(int attr) const; nuclear@2: nuclear@2: void draw() const; nuclear@2: }; nuclear@2: nuclear@2: #endif // MESH_H_