Collada DOM 的使用--CreateSimple…
2017-08-05 17:41
337 查看
Collada
Dom是一个基于文档对象模型的用来给用户读取Collada数据提供方便的DOM接口,其内核经过我自己在里面找还是Boost和TinyXml,所以在学习Collada结构之前掌握一定的xml的Schema的知识我看来是非常必要的,因为我自己也是一个半吊子学的XML,所以可以看做是一边学Collada的读取一边学dom了(虽然不太可能):
首先是要说明一下collada的学习主要还是来自于http://www.wazim.com/Collada_Tutorial_1.htm这位大神的文章,是英文的,当然国内也有人翻译了第一部分,但是我觉得先看一遍翻译自己再理解一遍英文文档会有更大的收获,然后就是如何得到Dom的问题了,我的话就是在sourceforge中得到的http://sourceforge.net/projects/collada-dom/,因为自己用的collada是1.4版本的,所以只能编译相应的文件,奇怪的就是一定要用对应版本的IDE,否则会出现莫名其妙的错误,我是用VS08编的dll然后自己写程序用vs2010.
下面当然就是学习的过程了,因为自己之前已经花了一定时间理解collada的Schema和其树结构,所以现在可以直接走起(主要是来自于对于其用户手册的理解http://collada.org/mediawiki/index.php/COLLADA_DOM_user_guide和相关的博文http://www.cnblogs.com/Jedimaster/archive/2007/12/01/979256.html,怎么编译和配置guide上都有讲,也不用再废话了,所以就从文档的创建直接开始)。
【创建文档】
DOM中所有的交互都建立在文档的基础上,所以在程序的最初就是需要建立一DAE文档对象,其提供了一个文件之间相互参考的方式,同时也提供其他对象建立所需的状态:
#include<iostream>
#include"dae.h"
#include"dom\domCOLLADA.h"
#include"dom\domAsset.h"
#include"dom\domGeometry.h"
using namespace std;
int main(int argc,char **argv)
{
//
创建一个叫做simple的dae文档,writeAll的作用就是写入添加到DAE中的原有路径中的所有文档当中,而
DAE dae ;
daeElement *root=dae.add("valid.dae");
daeElement
*asset=root->add("asset");
//asset里面必须要有东西
daeElement
*contributor=asset->add("contributor");//contributer可以为空
daeElement *created=asset->add("created");
daeElement *modified=asset->add("modified");
const char *date="2008-04-08T13;07:25—08:00";//创建时间不能为空
created->setCharData(date); //修改创建时间
modified->setCharData(date);//修改修改时间
/
/
/
//在XML
DOM中提供了可以给用户自己定义节点的方法,主要是使用extra类型来实现的,下面的方法可以实现在library_nodes_node之中添加一个extra节点,并且定义其中的相关属性和元素
daeElement
*extra=root->add("library_nodes node extra");
daeElement
*technique=extra->add("technique");
technique->setAttribute("profile","SteveT");
//在profile里面可以建立自己的节点,命名和属性都可以自己定义
daeElement
*elt=technique->add("myElement");
daeElement
*elt2=technique->add("nextElement");
elt->setAttribute("myAttr","myValue");
elt->setCharData("this is some
text");
elt2->setAttribute("myga","fgag");
dae.writeAll();
return 0;
}
Dom是一个基于文档对象模型的用来给用户读取Collada数据提供方便的DOM接口,其内核经过我自己在里面找还是Boost和TinyXml,所以在学习Collada结构之前掌握一定的xml的Schema的知识我看来是非常必要的,因为我自己也是一个半吊子学的XML,所以可以看做是一边学Collada的读取一边学dom了(虽然不太可能):
首先是要说明一下collada的学习主要还是来自于http://www.wazim.com/Collada_Tutorial_1.htm这位大神的文章,是英文的,当然国内也有人翻译了第一部分,但是我觉得先看一遍翻译自己再理解一遍英文文档会有更大的收获,然后就是如何得到Dom的问题了,我的话就是在sourceforge中得到的http://sourceforge.net/projects/collada-dom/,因为自己用的collada是1.4版本的,所以只能编译相应的文件,奇怪的就是一定要用对应版本的IDE,否则会出现莫名其妙的错误,我是用VS08编的dll然后自己写程序用vs2010.
下面当然就是学习的过程了,因为自己之前已经花了一定时间理解collada的Schema和其树结构,所以现在可以直接走起(主要是来自于对于其用户手册的理解http://collada.org/mediawiki/index.php/COLLADA_DOM_user_guide和相关的博文http://www.cnblogs.com/Jedimaster/archive/2007/12/01/979256.html,怎么编译和配置guide上都有讲,也不用再废话了,所以就从文档的创建直接开始)。
【创建文档】
DOM中所有的交互都建立在文档的基础上,所以在程序的最初就是需要建立一DAE文档对象,其提供了一个文件之间相互参考的方式,同时也提供其他对象建立所需的状态:
#include<iostream>
#include"dae.h"
#include"dom\domCOLLADA.h"
#include"dom\domAsset.h"
#include"dom\domGeometry.h"
using namespace std;
int main(int argc,char **argv)
{
//
创建一个叫做simple的dae文档,writeAll的作用就是写入添加到DAE中的原有路径中的所有文档当中,而
DAE dae ;
daeElement *root=dae.add("valid.dae");
daeElement
*asset=root->add("asset");
//asset里面必须要有东西
daeElement
*contributor=asset->add("contributor");//contributer可以为空
daeElement *created=asset->add("created");
daeElement *modified=asset->add("modified");
const char *date="2008-04-08T13;07:25—08:00";//创建时间不能为空
created->setCharData(date); //修改创建时间
modified->setCharData(date);//修改修改时间
/
/
/
//在XML
DOM中提供了可以给用户自己定义节点的方法,主要是使用extra类型来实现的,下面的方法可以实现在library_nodes_node之中添加一个extra节点,并且定义其中的相关属性和元素
daeElement
*extra=root->add("library_nodes node extra");
daeElement
*technique=extra->add("technique");
technique->setAttribute("profile","SteveT");
//在profile里面可以建立自己的节点,命名和属性都可以自己定义
daeElement
*elt=technique->add("myElement");
daeElement
*elt2=technique->add("nextElement");
elt->setAttribute("myAttr","myValue");
elt->setCharData("this is some
text");
elt2->setAttribute("myga","fgag");
dae.writeAll();
return 0;
}
相关文章推荐
- simple_html_dom.php 使用 乱码处理<作者:gaoming13>
- SVG Dom使用g元素
- XML&nbsp;问题:&nbsp;超越DOM(轻松使用&nbsp;DOM&nbsp;的技巧和诀窍)
- 使用php-simple-html-dom-parser遇到的create_debugger_socket("localhost", 9000) socket: Too many open files
- 【原】使用IPV6, 10M/s高速BT互传…
- 黑苹果上使用xcode&nbsp;的reposit…
- android 自带的主题 theme 的使用
- JavaScript&nbsp;HTML&nbsp;DOM&nbsp;对象
- union:C/C++语言关键字&nbsp;内存使用
- Create Attribute View
- svg dom绘制五角星
- Linux&nbsp;下使用&nbsp;NMON&amp;nbsp…
- linux下创建管理员组 使用 su - 命令
- using 语句使用注意点
- [置顶] Spring MVC之SimpleFormController的简单使用
- 使用ksoap2&nbsp;调用&nbsp;WebSer…
- PHP Cookie与Session的使用与区别
- 12-4&nbsp;plsql中使用循环语句
- 使用手机作为调制解调器,将 PC 连…
- 使用UCenter整合应用&nbsp;&ndash;&nbsp;用户注册