00001 /* 00002 * BaseMesh.h 00003 * 00004 * Created on: 03.02.2011 00005 * Author: Thomas Wiemann 00006 */ 00007 00008 #ifndef BASEMESH_H_ 00009 #define BASEMESH_H_ 00010 00011 namespace lssr { 00012 00019 template<typename VertexT, typename NormalT> 00020 class BaseMesh 00021 { 00022 public: 00023 00031 virtual void addVertex(VertexT v) = 0; 00032 00041 virtual void addNormal(NormalT n) = 0; 00042 00050 virtual void addTriangle(uint a, uint b, uint c) = 0; 00051 00056 virtual void finalize() = 0; 00057 00061 virtual void save(string filename); 00062 00063 protected: 00064 00066 bool m_finalized; 00067 00069 float* m_vertexBuffer; 00070 00072 float* m_normalBuffer; 00073 00075 float* m_colorBuffer; 00076 00078 uint* m_indexBuffer; 00079 00081 uint m_nVertices; 00082 00084 uint m_nFaces; 00085 }; 00086 } 00087 00088 #include "BaseMesh.tcc" 00089 00090 #endif /* BASEMESH_H_ */