[699] | 1 | |
---|
| 2 | #include "BBCManager.h" |
---|
| 3 | |
---|
| 4 | namespace BBC { |
---|
| 5 | |
---|
[731] | 6 | template <> BBCManager* CSingleton<BBCManager>::ms_Singleton = NULL; |
---|
[699] | 7 | |
---|
[731] | 8 | BBCManager* BBCManager::getSingletonPtr(void) |
---|
[699] | 9 | { |
---|
| 10 | return ms_Singleton; |
---|
| 11 | } |
---|
| 12 | |
---|
[731] | 13 | BBCManager& BBCManager::getSingleton(void) |
---|
[699] | 14 | { |
---|
| 15 | assert( ms_Singleton ); return ( *ms_Singleton ); |
---|
| 16 | } |
---|
| 17 | |
---|
[731] | 18 | BBCManager::BBCManager() |
---|
[721] | 19 | { |
---|
[699] | 20 | } |
---|
| 21 | |
---|
[731] | 22 | BBCManager::~BBCManager() |
---|
[699] | 23 | { |
---|
[751] | 24 | |
---|
[699] | 25 | } |
---|
| 26 | |
---|
[731] | 27 | void BBCManager::shutdown() |
---|
[699] | 28 | { |
---|
| 29 | } |
---|
| 30 | |
---|
[731] | 31 | void BBCManager::initialize() |
---|
[699] | 32 | { |
---|
| 33 | } |
---|
| 34 | |
---|
[731] | 35 | Ogre::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] | 50 | Ogre::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] | 71 | void 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] | 77 | void 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] | 83 | void 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 | } |
---|