User Tools

Site Tools


class:domain:xgroup

XGroup

Inherited from NItem,

Inherited by NULL

Friend class NULL

Description

XGroup从NItem继承,是封装了特定类型的对象集合的数据及其方法的工具类,它的类型标识为“CGROUP”。

XGroup为特定类型的对象集合构建一个带有名字属性的身份ID哈希表,特定类型有域类型、集合类型一起指定,特别的,对于来自模型的对象,域类型为模型的ID。

基于XHash构建的身份ID哈希表可以快速判断某个对象是否在该对象集合里,它提供的访问迭代方法和XManager一起使用可以高效的访问集合内的对象。

Members

Public interface


int m_iDomain

集合域类型

int m_iGrpType

集合对象类型

RGBAColor m_Color

集合颜色

IDHash * m_pItems

对象ID哈希表


XGroup(ulong id, XMemPool * hashpool)

  • function:
  • parameters:
    1. [i]ulong id: 构造函数
    2. [i] XMemPool * hashpool: 内存池
  • return value: 无

~XGroup()

  • function: 析构函数
  • parameters: NULL
  • return value: 无

void clear()

  • function: 清空对象集合
  • parameters: NULL
  • return value: 无

void setGroupType(TypeID type)

  • function: 设置集合对象类型
  • parameters:
    1. [i]TypeID type: 集合对象类型
  • return value: 无

TypeID getGroupType() const

  • function: 获取集合对象类型
  • parameters: NULL
  • return value: 集合对象类型

void setDomainID(DomainID type)

  • function: 设置域类型
  • parameters:
    1. [i]DomainID type: 域类型
  • return value: 无

int getDomainID() const

  • function: 获取集合域类型
  • parameters: NULL
  • return value: 集合域类型

void insertItem(ulong id)

  • function: 插入对象
  • parameters:
    1. [i]ulong id: 对象ID
  • return value: 无

void removeItem(ulong id)

  • function: 删除对象
  • parameters:
    1. [i]ulong id: 对象ID
  • return value: 无

bool hasItem(ulong id) const

  • function: 校验集合是否包含对象
  • parameters:
    1. [i]ulong id: 对象ID
  • return value: 无

int getItemCount() const

  • function: 获取集合内对象的个数
  • parameters: NULL
  • return value: 无

bool getModelTargets(XModel * mdl, vector<ItemPtr> * tars) const

  • function: 在该集合为模型内的对象集合时,从集合对象ID获取指定模型内的对象指针数组
  • parameters:
    1. [i]XModel * mdl: 模型
    2. [i] vector<ItemPtr> * tars: 模型内的对象指针数组
  • return value: 成功获取返回true,否则返回false

void convertFacetToElements(XManager * elemFacetMgr)

  • function: 将单元面对象(XElementFacet)转换为面单元
  • parameters:
    1. [i]XManager * elemFacetMgr: 单元面对象管理器
  • return value: 无

void bindItemIterator(IDIterator * iter) const

  • function: 绑定对象ID迭代访问器
  • parameters:
    1. [i]IDIterator * iter: 对象ID迭代访问器
  • return value: 无

void setTargets(vector<XUniqueObjectID*> * tars)

  • function: 从XUniqueObjectID数组设置集合内的对象(一般用于从XPicker中直接设定集合对象)
  • parameters:
    1. [i]vector<XUniqueObjectID*> * tars: XUniqueObjectID对象标识数组
  • return value: 无

void setTargets(vector<XUniqueObjectID> * tars)

  • function: 从XUniqueObjectID数组设置集合内的对象(一般用于从XPicker中直接设定集合对象)
  • parameters:
    1. [i]vector<XUniqueObjectID> * tars: XUniqueObjectID对象标识数组
  • return value: 无

virtual void write(XBinaryIO * io)

  • function: 将对象数据写入到二进制文件中
  • parameters:
    1. [i]XBinaryIO * io: 二进制文件句柄
  • return value: 无

virtual ErrorCode read(XBinaryIO * io)

  • function: 从二进制文件中读取对象数据
  • parameters:
    1. [i]XBinaryIO * io: 二进制文件句柄
  • return value: 如成功读取返回Error_None, 否则返回相应错误码

RGBAColor getColor() const

  • function: 获取颜色
  • parameters: NULL
  • return value: 集合颜色

void setColor(RGBAColor c)

  • function: 设置集合颜色(在面集中使用)
  • parameters:
    1. [i]RGBAColor c: 集合颜色
  • return value: 无
class/domain/xgroup.txt · Last modified: 2023/05/06 07:01 (external edit)