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

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