source: GTP/trunk/Lib/Illum/IBRBillboardCloudTrees/OGRE/src/BBCManager.cpp @ 751

Revision 751, 2.7 KB checked in by igarcia, 18 years ago (diff)
RevLine 
[699]1
2#include "BBCManager.h"
3
4namespace BBC {
5
[731]6template <> BBCManager* CSingleton<BBCManager>::ms_Singleton = NULL;
[699]7
[731]8BBCManager* BBCManager::getSingletonPtr(void)
[699]9{
10    return ms_Singleton;
11}
12
[731]13BBCManager& BBCManager::getSingleton(void)
[699]14
15    assert( ms_Singleton );  return ( *ms_Singleton ); 
16}
17
[731]18BBCManager::BBCManager()
[721]19{   
[699]20}
21
[731]22BBCManager::~BBCManager()
[699]23{
[751]24
[699]25}
26
[731]27void BBCManager::shutdown()
[699]28{
29}
30
[731]31void BBCManager::initialize()
[699]32{
33}
34
[731]35Ogre::Mesh* BBCManager::loadMesh(Ogre::String folderName, Ogre::String fileName)
[699]36{       
[721]37        //std::ifstream ifs;
38        //ifs.open(Ogre::String(folderName + fileName).c_str(), std::ios_base::in | std::ios_base::binary);
39        //Ogre::DataStreamPtr stream(new Ogre::FileStreamDataStream(folderName + fileName, &ifs, false));
40        //Ogre::MeshPtr mesh = OBA::OgreBase::getSingleton().getMeshManager()->create(fileName, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
41        //OBA::OgreBase::getSingleton().getMeshSerializer()->importMesh(stream, mesh.getPointer());
42
43        Ogre::ResourceGroupManager::getSingleton().addResourceLocation(folderName, "FileSystem", fileName, false);
44
[731]45        Ogre::MeshPtr mesh = Ogre::MeshManager::getSingleton().load(fileName, fileName);
[721]46
47        return mesh.getPointer();
[699]48}
49
[731]50Ogre::Mesh* BBCManager::loadXMLMesh(Ogre::String name)
[699]51{
52        Ogre::MeshPtr newMesh = Ogre::MeshManager::getSingleton().createManual(name.substr(0,((name.size()-1)-4)),Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
53
[721]54        Ogre::VertexElementType colourElementType;
55        if (true)
56        {
57                // DirectX Colour Format
58                colourElementType = Ogre::VET_COLOUR_ARGB;
59        }
60        else
61        {
62                // OpenGL Colour Format
63                colourElementType = Ogre::VET_COLOUR_ABGR;
64        }
[699]65
[721]66    OBA::OgreBase::getSingleton().getXMLMeshSerializer()->importMesh(name, colourElementType, newMesh.getPointer());
67
[699]68        return newMesh.getPointer();
69}
70
[731]71void BBCManager::saveMesh(Ogre::String name)
[699]72{
73        Ogre::MeshPtr meshPtr = Ogre::MeshManager::getSingleton().getByName(name);
[721]74        OBA::OgreBase::getSingleton().getMeshSerializer()->exportMesh(meshPtr.getPointer(),name);
[699]75}
76
[731]77void BBCManager::saveXMLMesh(Ogre::String name)
[699]78{
79        Ogre::MeshPtr meshPtr = Ogre::MeshManager::getSingleton().getByName(name);
[721]80        OBA::OgreBase::getSingleton().getXMLMeshSerializer()->exportMesh(meshPtr.getPointer(),name + ".xml");
[699]81}
82
[731]83void BBCManager::saveMaterial(Ogre::String materialName)
84{
85        Ogre::ResourceManager::ResourceMapIterator it = Ogre::MaterialManager::getSingleton().getResourceIterator();
86    while (it.hasMoreElements())
87    {
88                Ogre::MaterialPtr m = it.getNext();
89       
90        if (m->getName() == materialName)
91                {
92                        OBA::OgreBase::getSingleton().getMaterialSerializer()->queueForExport(m);
93                        break;
94                }
95    }
96    //OBA::OgreBase::getSingleton().getMaterialSerializer()->exportQueued(dest);
97}
98
[699]99}
Note: See TracBrowser for help on using the repository browser.