Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef TRIANGLEMESH_H_
00009 #define TRIANGLEMESH_H_
00010
00011 #include "BaseMesh.hpp"
00012
00013 #include <vector>
00014 #include <list>
00015 #include <cassert>
00016 using namespace std;
00017
00018 namespace lssr
00019 {
00020
00024 template<typename VertexT, typename NormalT>
00025 class TriangleMesh : public BaseMesh<VertexT, NormalT>{
00026 public:
00027
00031 TriangleMesh();
00032
00036 TriangleMesh(const TriangleMesh &other);
00037
00046 virtual void addTriangle(uint v0, uint v1, uint v2);
00047
00053 virtual void addVertex(VertexT v){ m_vertices.push_back(v);};
00054
00061 virtual void addNormal(NormalT n) {m_normals.push_back(n);};
00062
00063
00067 virtual ~TriangleMesh();
00068
00072 VertexT getVertex(uint index);
00073
00077 VertexT getNormal(uint index);
00078
00082 virtual void finalize();
00083
00084 protected:
00085
00087 float* m_normalBuffer;
00088
00090 vector<VertexT> m_normals;
00091
00093 vector<VertexT> m_vertices;
00094
00096 list<uint> m_triangles;
00097
00098 };
00099
00100 }
00101
00102 #include "TriangleMesh.tcc"
00103
00104 #endif