#ifndef __GEO_SUBMESH__ #define __GEO_SUBMESH__ #include #include #include "GeoBase.h" #include "GeoVertexBuffer.h" #include "GeoSerializable.h" namespace Geometry { /// SubMesh interface /** SubMesh is part of a Mesh, and stores vertex and index geometric information. */ class SubMesh : public Serializable { public: /// Default constructor SubMesh(); /// Default destructor ~SubMesh(); /// Copy constructor //SubMesh(const SubMesh&); /// Assignment operator //SubMesh& operator =(const SubMesh&); /// Loads data from a Serializer void Load(Serializer &s); /// Saves data to a Serializer void Save(Serializer &s); /// VertexBuffer used to store vertex Data. Is a reference to a shared VertexData if /// mSharedVertexBuffer == true, and must be not deallocated in that case. VertexBuffer *mVertexBuffer; bool mSharedVertexBuffer; ///< true if VertexBuffer it's shared with Mesh and other SubMeshes Index *mIndex; ///< Array of Index size_t mIndexCount; ///< Index count Index **mStrip; ///< Array of pointers to mIndex that represents each strip size_t mStripCount; ///< number of Strips MeshType mType; ///< Type of mesh char mMaterialName[255]; ///< Material name std::vector mBones; }; } #endif