linux下collada-dom编译,Collada DOM 的使用--CreateSimpleDocument

Collada

Dom是一个基于文档对象模型的用来给用户读取Collada数据提供方便的DOM接口,其内核经过我自己在里面找还是Boost和TinyXml,所以在学习Collada结构之前掌握一定的xml的Schema的知识我看来是非常必要的,因为我自己也是一个半吊子学的XML,所以可以看做是一边学Collada的读取一边学dom了(虽然不太可能):

首先是要说明一下collada的学习主要还是来自于这位大神的文章,是英文的,当然国内也有人翻译了第一部分,但是我觉得先看一遍翻译自己再理解一遍英文文档会有更大的收获,然后就是如何得到Dom的问题了,我的话就是在sourceforge中得到的,因为自己用的collada是1.4版本的,所以只能编译相应的文件,奇怪的就是一定要用对应版本的IDE,否则会出现莫名其妙的错误,我是用VS08编的dll然后自己写程序用vs2010.

【创建文档】

DOM中所有的交互都建立在文档的基础上,所以在程序的最初就是需要建立一DAE文档对象,其提供了一个文件之间相互参考的方式,同时也提供其他对象建立所需的状态:

#include

#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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值