#ifndef __BBCOGREMESHEXPORTER_H__ #define __BBCOGREMESHEXPORTER_H__ #include #include #include namespace BBC { class _BBCExport OgreMeshSerializer { public: OgreMeshSerializer(); virtual ~OgreMeshSerializer(); void setEntity(EntityPtr entity); EntityPtr getEntity(); void exportMesh(const Ogre::String& fileName, bool mergeSubMeshes, bool tangents); protected: EntityPtr mEntity; void buildMesh(MeshPtr pMesh, bool mergeSubmeshes); void generateEntityAABB(MeshPtr pMesh); void exportSubMeshes(MeshPtr pMesh); void exportSubMesh(MeshPtr pMesh, SubEntityPtr subEntity); template void writeIndexes(T* buf, SubEntityPtr subEntity); void createVertexBuffer(Ogre::VertexData* vd, unsigned short bufIdx, UniqueVertexList *uniqueVertexList); }; } #endif