====== MaterialManager ====== **//Inherited from//** [[class::domain::xmanager|XManager]], **//Inherited by//** NULL **//Friend class//** NULL **//Description//** MaterialManager从XManager继承,是材料对象管理器,所有材料对象的创建、销毁、访问以及修改都通过调用它的通用接口完成。它的域识别码是Domain_Material,类型名是“DMATERIAL”。 **//Members//** * MaterialEntryManager * [[materialmanager#m_pmatentries|m_pMatEntries]] **//Public interface//** * [[materialmanager#materialmanager1|MaterialManager]](int size,XMemPool * item_pool, OpnRecorder * rec) * [[materialmanager#~materialmanager|~MaterialManager]]() * MaterialEntryManager * [[materialmanager#getentrymanager|getEntryManager]]() * virtual void [[materialmanager#additem|addItem]](XItem * item) * void [[materialmanager#clear|clear]]() * void [[materialmanager#appendtolibrary|appendToLibrary]](const char * fname,XMaterial * mat) * XMaterial * [[materialmanager#createfromlibrary|createFromLibrary]](const char * fname,const char * mat_name) * XMaterial * [[materialmanager#getmaterialbyname|getMaterialByName]](const char * mat_name) * virtual void [[materialmanager#write|write]](XBinaryIO * io) * virtual ErrorCode [[materialmanager#read|read]](XBinaryIO * io) * virtual bool [[materialmanager#read|read]](XH5IO * io, H5Obj * grp) * virtual void [[materialmanager#write|write]](XH5IO * io, H5Obj * grp) * void [[materialmanager#linkentries|linkEntries]]() * void [[materialmanager#serialize|serialize]](XBinaryIO * io, XItem * obj, bool bSave) ---- {{anchor:m_pmatentries}} **MaterialEntryManager * m_pMatEntries** 材料子项管理器 ---- {{anchor:materialmanager1}} **MaterialManager(int size,XMemPool * item_pool, OpnRecorder * rec)** *function: 构造函数 *parameters: - [i]int size: 初始对象个数 - [i]XMemPool * item_pool: 内存池 - [i] OpnRecorder * rec: 数据操作记录器 *return value: 无 {{anchor:~materialmanager}} **~MaterialManager()** *function: 析构函数 *parameters: NULL *return value: 无 {{anchor:getentrymanager}} **MaterialEntryManager * getEntryManager()** *function: 获取材料子项管理器 *parameters: NULL *return value: 材料子项管理器 {{anchor:additem}} **virtual void addItem(XItem * item)** *function: 基类函数的重新实现,添加对象 *parameters: - [i]XItem * item: 材料对象 *return value: 无 {{anchor:clear}} **void clear()** *function: 基类函数的重新实现,清空材料对象 *parameters: NULL *return value: 无 {{anchor:appendtolibrary}} **void appendToLibrary(const char * fname,XMaterial * mat)** *function: 将材料对象添加到Xml库文件中 *parameters: - [i]const char * fname: Xml库文件名 - [i]XMaterial * mat: 材料对象 *return value: 无 {{anchor:createfromlibrary}} **XMaterial * createFromLibrary(const char * fname,const char * mat_name)** *function: 从库文件中创建材料对象 *parameters: - [i]const char * fname: 库文件名 - [i]const char * mat_name: 材料对象名 *return value: 材料对象 {{anchor:getmaterialbyname}} **XMaterial * getMaterialByName(const char * mat_name)** *function: 获取指定名字的材料对象 *parameters: - [i]const char * mat_name: 材料名 *return value: 材料对象 {{anchor:read}} **ErrorCode read(XBinaryIO * io)** *function: 从二进制文件中读取对象数据到管理器中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 成功读取返回Error_None, 否则返回相应错误码 {{anchor:write}} **void write(XBinaryIO * io)** *function: 将管理的所有对象数据写入到二进制文件中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 无 {{anchor:write}} **void write(XH5IO * io, H5Obj * grp)** *function: 将管理的所有对象数据写入到HDF5文件中 *parameters: - [i]XH5IO * io: HDF5文件句柄 - [i] H5Obj * grp: 对象管理器对应的HDF5节点 *return value: 无 {{anchor:read}} **bool read(XH5IO * io, H5Obj * grp)** *function: 从HDF5文件中读取对象数据到管理器中 *parameters: - [i]XH5IO * io: HDF5文件句柄 - [i] H5Obj * grp: 对象管理器对应的HDF5节点 *return value: 完整读取返回true,否则返回false * {{anchor:linkentries}} **void linkEntries()** *function: 构建材料对象与材料子项对象的从属关系 *parameters: NULL *return value: 无 {{anchor:serialize}} **void serialize(XBinaryIO * io, XItem * obj, bool bSave)** *function: 在undo、redo时从数据操作记录文件中序列化数据对象 *parameters: - [i]XBinaryIO * io: 二进制数据操作记录文件句柄 - [i] XItem * obj: 数据对象 - [i] bool bSave: 是否保存数据对象 *return value: 无