Using MountNode Xml        

the following code has some dependancies:

  • you have available the AxisObject or one like it.
  • tinyxml is available.
  • the bones referenced in the xml file do indeed exist on the entity.
  • the format of your xml file match's the data from MountNodeSet MaxScript

bool loadMountXML()
	{
		Ogre::DataStreamPtr file = Ogre::ResourceGroupManager::getSingleton().openResource(filename);
		TiXmlDocument *doc = new TiXmlDocument(filename.c_str());

		if(!doc || !doc->RootElement())
			return false;

		TiXmlElement *rootXml = doc->RootElement();
		Ogre::String rootName = rootXml->Value();
		if(rootName != "MountNodes")
		{
			return false;
		}

		mMountParent = rootXml->Attribute("parent");

		TiXmlElement *n = rootXml->FirstChildElement("Node");
		while(n && n->Type() == TiXmlNode::ELEMENT)
		{

			Ogre::String name		= n->Attribute("name");
			Ogre::String parent		= n->Attribute("parent");

			Ogre::String spos		= n->Attribute("pos");
			Ogre::String srot		= n->Attribute("rot");

			Ogre::Vector3 pos = Ogre::StringConverter::parseVector3(spos);
			Ogre::Quaternion rot = Ogre::StringConverter::parseQuaternion(srot);

			n = rootXml->NextSiblingElement();
		}

		delete doc;

		return true;
	}