Vector3 parseVector3 (TiXmlElement * XMLNode); Quaternion parseQuaternion (TiXmlElement * XMLNode); ColourValue parseColour (TiXmlElement * XMLNode);
SceneManager * mSceneMgr; SceneNode * mAttachNode; Corda m_sGroupName; Corda m_sPrependNode; };}
#endif //DOT_SCENELOADER_H
DotSceneLoader.cpp
#include "DotSceneLoader.h" #include "tinyxml.h" #include "Ogre.h"
usando namespace std; using namespace Ogre;
anular DotSceneLoader :: parseDotScene (const string & SceneName, const string & groupName, SceneManager * yourSceneMgr, SceneNode * pAttachNode, const string & sPrependNode) {//configurar valores objeto compartilhado m_sGroupName = groupName; mSceneMgr = yourSceneMgr; m_sPrependNode = sPrependNode; staticObjects.clear (); dynamicObjects.
clear ();
TiXmlDocument * XMLDoc = 0; TiXmlElement * XmlRoot;
try {//Tira o caminho Ogre :: string basename, caminho; Ogre :: :: StringUtil splitFilename (SceneName, basename, caminho);
DataStreamPtr pStream = ResourceGroupManager :: getSingleton (). openResource (basename, groupName);
//DataStreamPtr pStream = ResourceGroupManager :: getSingleton (). //OpenResource (SceneName, groupName);
dados String = pStream-> getAsString (); //Abre o XMLDoc .scene arquivo = new TiXmlDocument (); XMLDoc-> Parse (data.c_str ()); pStream-> close (); pStream.setNull ();.
if (XMLDoc-> Erro ()) {//Nós vamos faça o login, e continuar graciosamente LogManager :: getSingleton () logMessage ("[DotSceneLoader] O TiXmlDocument relatou um erro" ); excluir XMLDoc; Retorna; }} Catch (...) {//Nós vamos faça o login, e continuar graciosamente LogManager :: getSingleton () logMessage ("[DotSceneLoader] Erro ao criar TiXmlDocument."); excluir XMLDoc; Retorna; } //
validar o arquivo XmlRoot = XMLDoc-> RootElement (); if (String (XMLRoot-> Valor ()) = "cena"!) {LogManager :: getSingleton () logMessage. ("[DotSceneLoader] Erro:. .
scene arquivo inválido Missing"); excluir XMLDoc; Retorna; } //
descobrir onde vai fixar quaisquer nós que criamos mAttachNode = pAttachNode; if (! mAttachNode) mAttachNode = mSceneMgr-> getRootSceneNode ();
//Processar a cena processScene (XmlRoot);
//Fecha o arquivo XML excluir XMLDoc;}
anular DotSceneLoader :: pro
Criando um jogo de plataforma flash com Flixel e Flex - Powerup Blocks
- Detectando Cores Imagens
- Compreender Jogo Programming
- Como centro de uma mensagem de uma linha em um C ++ program
- Armazenamento Duração em C ++
- Noções básicas de Janela Classes
- Referência Perl para uma sub-rotina Anonymous
- Variáveis de swap Valores em PHP
- Html5 pode fazer como Flash e Silverlight
- Regex Agrupamentos Perl
- Mysql Sql Programming