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