/** * This source file is part of OgreColladaPlugin * an addon for OGRE (Object-oriented Graphics Rendering Engine) * For the latest info, see http://www.ogre3d.org/ * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place - Suite 330, Boston, MA 02111-1307, USA, or go to * http://www.gnu.org/copyleft/lesser.txt. * * @authors Philipp Hartl, Jeff Doyle (nfz) * @see README */ #include "OgreColladaPrerequisites.h" #include "OgreColladaManager.h" #include "OgreColladaDocument.h" #include "OgreStringConverter.h" namespace Ogre { //----------------------------------------------------------------------- template<> ColladaManager* Singleton::ms_Singleton = 0; //----------------------------------------------------------------------- ColladaManager::ColladaManager(void) : mVersion(StringConverter::toString(COLLADA_VERSION_MAJOR) + "." + StringConverter::toString(COLLADA_VERSION_MINOR) + "." + StringConverter::toString(COLLADA_VERSION_PATCH)) { LogManager::getSingleton().logMessage("Collada Plugin version: " + mVersion); // Resource type mResourceType = "Collada"; // Register with resource group manager ResourceGroupManager::getSingleton()._registerResourceManager(mResourceType, this); } //----------------------------------------------------------------------- ColladaManager::~ColladaManager(void) { // Resources cleared by superclass // Unregister with resource group manager ResourceGroupManager::getSingleton()._unregisterResourceManager(mResourceType); ResourceGroupManager::getSingleton()._unregisterScriptLoader(this); } //----------------------------------------------------------------------- ColladaManager* ColladaManager::getSingletonPtr(void) { return ms_Singleton; } //----------------------------------------------------------------------- ColladaManager& ColladaManager::getSingleton(void) { assert( ms_Singleton ); return ( *ms_Singleton ); } //----------------------------------------------------------------------- ColladaDocumentPtr ColladaManager::load(const String& daeFileName, SceneManager* sceneMgr, NameValuePairList* loadParams, const String& group ) { ColladaDocumentPtr daeDoc = ResourceManager::load(daeFileName, group, false, 0, loadParams); if (!daeDoc.isNull()) daeDoc->setSceneManager(sceneMgr); return daeDoc; } //----------------------------------------------------------------------- Resource* ColladaManager::createImpl(const String& name, ResourceHandle handle, const String& group, bool isManual, ManualResourceLoader* loader, const NameValuePairList* params) { return new ColladaDocument(this, name, handle, group, isManual, loader); } }