nuclear@0: #ifndef MESH_H_ nuclear@0: #define MESH_H_ nuclear@0: nuclear@0: #include nuclear@0: #include nuclear@0: #include nuclear@0: nuclear@0: struct Vertex { nuclear@0: Vector3 pos, normal; nuclear@0: Vector2 texcoord; nuclear@0: }; nuclear@0: nuclear@0: class Mesh { nuclear@0: private: nuclear@0: Vector3 cur_norm; nuclear@0: Vector2 cur_texcoord; nuclear@0: nuclear@0: std::vector verts; nuclear@0: ID3D11Buffer *vbuf; nuclear@0: nuclear@0: bool update_vbuffer(); nuclear@0: void invalidate_vbuffer(); nuclear@0: nuclear@0: public: nuclear@0: Mesh(); nuclear@0: ~Mesh(); nuclear@0: nuclear@0: void clear(); nuclear@0: nuclear@0: void normal(float x, float y, float z); nuclear@0: void texcoord(float u, float v); nuclear@0: void vertex(float x, float y, float z); nuclear@0: nuclear@0: void draw() const; nuclear@0: }; nuclear@0: nuclear@0: #endif // MESH_H_