XGroup
Inherited from NItem,
Inherited by NULL
Friend class NULL
Description
XGroup从NItem继承,是封装了特定类型的对象集合的数据及其方法的工具类,它的类型标识为“CGROUP”。
XGroup为特定类型的对象集合构建一个带有名字属性的身份ID哈希表,特定类型有域类型、集合类型一起指定,特别的,对于来自模型的对象,域类型为模型的ID。
基于XHash构建的身份ID哈希表可以快速判断某个对象是否在该对象集合里,它提供的访问迭代方法和XManager一起使用可以高效的访问集合内的对象。
Members
Public interface
XGroup(ulong id, XMemPool * hashpool)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
virtual void
write(XBinaryIO * io)
virtual ErrorCode
read(XBinaryIO * io)
-
-
int m_iDomain
集合域类型
int m_iGrpType
集合对象类型
RGBAColor m_Color
集合颜色
IDHash * m_pItems
对象ID哈希表
XGroup(ulong id, XMemPool * hashpool)
function:
parameters:
[i]ulong id: 构造函数
[i] XMemPool * hashpool: 内存池
return value: 无
~XGroup()
function: 析构函数
parameters: NULL
return value: 无
void clear()
function: 清空对象集合
parameters: NULL
return value: 无
void setGroupType(TypeID type)
function: 设置集合对象类型
parameters:
[i]TypeID type: 集合对象类型
return value: 无
TypeID getGroupType() const
function: 获取集合对象类型
parameters: NULL
return value: 集合对象类型
void setDomainID(DomainID type)
function: 设置域类型
parameters:
[i]DomainID type: 域类型
return value: 无
int getDomainID() const
function: 获取集合域类型
parameters: NULL
return value: 集合域类型
void insertItem(ulong id)
function: 插入对象
parameters:
[i]ulong id: 对象ID
return value: 无
void removeItem(ulong id)
function: 删除对象
parameters:
[i]ulong id: 对象ID
return value: 无
bool hasItem(ulong id) const
function: 校验集合是否包含对象
parameters:
[i]ulong id: 对象ID
return value: 无
int getItemCount() const
function: 获取集合内对象的个数
parameters: NULL
return value: 无
bool getModelTargets(XModel * mdl, vector<ItemPtr> * tars) const
void convertFacetToElements(XManager * elemFacetMgr)
void bindItemIterator(IDIterator * iter) const
function: 绑定对象ID迭代访问器
parameters:
[i]IDIterator * iter: 对象ID迭代访问器
return value: 无
void setTargets(vector<XUniqueObjectID*> * tars)
void setTargets(vector<XUniqueObjectID> * tars)
virtual void write(XBinaryIO * io)
function: 将对象数据写入到二进制文件中
parameters:
[i]XBinaryIO * io: 二进制文件句柄
return value: 无
virtual ErrorCode read(XBinaryIO * io)
RGBAColor getColor() const
function: 获取颜色
parameters: NULL
return value: 集合颜色
void setColor(RGBAColor c)
function: 设置集合颜色(在面集中使用)
parameters:
[i]RGBAColor c: 集合颜色
return value: 无