使用OgreMax自定义数据(CDATA)

来源:互联网 发布:淘宝上买四轮电动车 编辑:程序博客网 时间:2024/06/06 08:55

前提:

1.Ogitor附带的DotSceneLoader,其使用rapidxml进行xml解析;

2.OgreMax导出场景,导出的用户自定义以CDATA格式存在于生成的xml中。

 

实例:

1.编写OgreMax自定义数据{

我编写的自定义类型:路点

<userDataTypes><class name="WayPoint"><data name="ID" type="int"/><data name="x" type="int"/><data name="y" type="int"/><data name="z" type="int"/></class></userDataTypes>

在OgreMax->Object Settings->User Data中载入,中选择"WayPoint"类型,它会按照xml中定义的数据显示。

 

在场景导出后的数据:

<userData> <![CDATA[

<WayPoint>

<ID>1</ID>

<x>45</x>

<y>0</y>

<z>45</z>

</WayPoint>

]]></userData>

}

2.DotSceneLoader常规解析;

3.调用processUserDataReference{

//在processNode或processEntity最后:

// Process userDataReference (?) pElement = XMLNode->first_node("userData"); if(pElement) processUserDataReference(pElement, pNode);

}

4.CDATA数据的二次解析{

rapidxml::xml_document<> cdata_doc;     

cdata_doc.parse<0>(XMLNode->first_node()->value()); rapidxml::xml_node<>* cdata_node = cdata_doc.first_node("WayPoint");

                Ogre::String strID cdata_node ->first_node("ID")->value();

......

}