#ifndef _MATERIALSET_H #define _MATERIALSET_H #include "singleton.h" #include "material.h" #include "mayaExportLayer.h" namespace OgreMayaExporter { class MaterialSet : public Singleton { public: //constructor MaterialSet(){}; //destructor ~MaterialSet(){ clear(); } //clear void clear(){ for (int i=0; iname() == pMat->name()) { found = true; delete pMat; } } if (!found) m_materials.push_back(pMat); } //get material Material* getMaterial(const MString& name){ for (int i=0; iname() == name) return m_materials[i]; } return NULL; }; //get material set static MaterialSet& getSingleton(){ assert(ms_Singleton); return (*ms_Singleton); }; static MaterialSet* getSingletonPtr(){ return ms_Singleton; }; //write materials to Ogre XML MStatus writeXML(ParamList ¶ms){ MStatus stat; for (int i=0; iwriteXML(params); if (MS::kSuccess != stat) { MString msg = "Error writing material "; msg += m_materials[i]->name(); msg += ", aborting operation"; MGlobal::displayInfo(msg); } } return MS::kSuccess; }; protected: std::vector m_materials; }; template<> MaterialSet* Singleton::ms_Singleton = 0; }; //end namespace #endif