对于建模系统来说,需要有一套合适的规则将构建的现实对象(如几何面、材料等)抽象定义为数据结构,为了支持大规模数据对象,XT设计了一套统一的高效数据对象管理系统。XT中所有的数据对象都从XItem继承而来,而对同一类型的数据对象,XT平台使用XManager管理数据对象,如新建、删除、遍历等功能。
数据管理器体提供了IO的接口,它包含两部分,一部分是数据本身的序列化,另一部分是数据对象关系的序列化。对Undo/Redo管理器提供了另外的接口serializeRecord和serializeLinkRecord。
对于某些数据对象,如PartSnapshot,不能对它进行修改,所以这样的对象只能创建或者删除。
数据对象的定义 根据数据对象是否拥有名字属性可分别从XItem或者NItem继承。在XT中数据被使用之前必须注册该数据的类型,XT提供两种方式的注册方式:
这两种宏都需要提供对象的类型以及所属域的类型,它们一般定义在头文件globalenum.h中。
数据对象的管理
每个数据对象拥有唯一的数字ID,XManager内建的内存池为数据对象分配空间,然后通过ID索引数据对象,所以在新建数据对象时,必须指定ID。