====== XAssembly ====== **//Inherited from//** [[class::domain::xmodelcomponent|XModelComponent]], **//Inherited by//** NULL **//Friend class//** NULL **//Description//** XAssembly封装了部件与部件之间的装配关系,它是部件的一种特殊形态,从XModelComponent继承实现。装配体不包含任何几何对象,仅包含子部件或者子装配件对象。 XAssembly还保存了所属模型信息。 **//Members//** * XModel * [[xassembly#m_pmdl|m_pMdl]] **//Public interface//** * [[xassembly#xassembly1|XAssembly]](ulong id) * void [[xassembly#detach|detach]](XPart * g, PartManager * mgr) * void [[xassembly#attach|attach]](XPart * g, PartManager * mgr) * virtual void [[xassembly#write|write]](XBinaryIO * io)const * virtual ErrorCode [[xassembly#read|read]](PartManager * pMgr, XBinaryIO * io) * void [[xassembly#setmodel|setModel]](XModel * mdl) * const XModel * [[xassembly#getmodel|getModel]]() const * XModel * [[xassembly#getmodel|getModel]]() * ulong [[xassembly#getchildcount|getChildCount]]() const * void [[xassembly#bindchilditerator|bindChildIterator]](PartIterator * pIter)const * const XPart * [[xassembly#getfirstchild|getFirstChild]]() const * const XPart * [[xassembly#getlastchild|getLastChild]]() const ---- {{anchor:m_pmdl}} **XModel * m_pMdl** 装配体所属模型 ---- {{anchor:xassembly1}} **XAssembly(ulong id)** *function: 构造函数 *parameters: - [i]ulong id: 对象ID *return value: 无 {{anchor:detach}} **void detach(XPart * g, PartManager * mgr)** *function: 解除装配体与部件的从属关系 *parameters: - [i]XPart * g: 部件对象 - [i] PartManager * mgr: 部件管理器 *return value: 无 {{anchor:attach}} **void attach(XPart * g, PartManager * mgr)** *function: 绑定装配体与部件的从属关系 *parameters: - [i]XPart * g: 部件对象 - [i] PartManager * mgr: 部件管理器 *return value: 无 {{anchor:write}} **virtual void write(XBinaryIO * io)const** *function: 将装配体对象写入到二进制文件中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 无 {{anchor:read}} **virtual ErrorCode read(PartManager * pMgr, XBinaryIO * io)** *function: 从二进制文件中读取装配体对象数据 *parameters: - [i]PartManager * pMgr: 部件对象管理器 - [i] XBinaryIO * io: 二进制文件句柄 *return value: 成功读取返回Error_None,否则返回相应错误码 {{anchor:setmodel}} **void setModel(XModel * mdl)** *function: 设置所属模型 *parameters: - [i]XModel * mdl: 模型对象指针 *return value: 无 {{anchor:getmodel}} **const XModel * getModel() const** *function: 获取模型对象 *parameters: NULL *return value: 模型对象指针 {{anchor:getmodel}} **XModel * getModel()** *function: 获取模型对象 *parameters: NULL *return value: 模型对象指针(可修改) {{anchor:getchildcount}} **ulong getChildCount() const** *function: 获取子部件个数 *parameters: NULL *return value: 子部件个数 {{anchor:bindchilditerator}} **void bindChildIterator(PartIterator * pIter)const** *function: 绑定子部件对象访问迭代器 *parameters: - [i]PartIterator * pIter: 子部件对象访问迭代器 *return value: 无 {{anchor:getfirstchild}} **const XPart * getFirstChild() const** *function: 获取第一个子部件 *parameters: NULL *return value: 第一个子部件对象 {{anchor:getlastchild}} **const XPart * getLastChild() const** *function: 获取最后一个子部件对象 *parameters: NULL *return value: 最后一个子部件对象