00001 00002 #ifndef __MESH_H 00003 #define __MESH_H 00004 00005 #include <ostream> 00006 #include <vector> 00007 00008 #include "MS3D.h" 00009 00010 #include "Vector.h" 00011 00012 #include "Material.h" 00013 00014 #include "Triangle.h" 00015 00016 class Model; 00017 00030 class Mesh { 00031 private: 00033 int m_materialIndex; 00035 std::vector<const Triangle*> m_triangles; 00036 00038 const Model& m_model; 00039 00040 private: 00042 Mesh(const Mesh& copy); 00044 Mesh& operator=(const Mesh& rhs); 00045 00046 public: 00048 Mesh(const Model& model); 00049 00057 const char* initialize(const char* ptr); 00058 00060 const Model& getModel() const; 00061 00063 bool hasMaterial() const; 00065 const Material& getMaterial() const; 00067 const std::vector<const Triangle*>& getTriangles() const; 00068 00073 friend std::ostream& operator<< (std::ostream& out, const Mesh& mesh); 00074 }; 00075 00076 #endif // __MESH_H