GeometryManager

Inherited from XManager,

Inherited by NULL

Friend class NULL

Description

GeometryManager从XManager继承,是几何对象管理器,所有几何对象的创建、销毁、访问以及修改都通过调用它的通用接口完成。它的域识别码是Domain_Geometry,类型名是“DGEOMETRY”。

它管理的对象分为4类:XSolid,XFace,XEdge,XVertex,均从XGeometry继承,为了方便开发者访问,GeometryManager为每种类型的几何对象分别构建了一个独立的哈希索引表。

几何对象是模型对象的内部数据,它被模型对象管理,几何对象管理器是模型对象的成员之一,几何对象的ID只在模型对象内唯一。对于多个模型的场景,几何对象管理器也有多个,在模型初始化时几何对象管理器的句柄会被记录到数据操作记录器中以支持undo、redo机制。

Members

Public interface

Protected interface


ElementSetHash * m_pEntityHash[DItem_Entity_Type_Max-DItem_Entity]

几何对象哈希表

XModel * m_pMdl

所属模型


GeometryManager(XModel * mdl,XMemPool * item_pool)

~GeometryManager()

void clear()

ErrorCode read(XBinaryIO * io)

void write(XBinaryIO * io)

void write(XH5IO * io, H5Obj * grp)

bool read(XH5IO * io, H5Obj * grp)

void bindEntityIterator(HashIterator *iter,TypeID type)

ulong getEntityCount(TypeID type)

virtual void addItem(XItem * item)

virtual void removeItem(XItem * item)

virtual void updateAfterRenumber(TypeID tid = DItem_Unknown)

void attachElement(ElementSet * g,XElement * el)

void detachElement(ElementSet * g,XElement * el)

void attachChildEntity(XGeometry * g,const XGeometry * child)

void detachChildEntity(XGeometry * g,const XGeometry * child)

void updateCache(XItem * obj, OpnType opn)

void serialize(XBinaryIO * io, XItem * obj, bool bSave)

void serializeGeomLinks(XBinaryIO * io, XGeometry * obj, bool bSave)

void attachItem(XItem * obj, const XItem * ref)

void detachItem(XItem * obj, const XItem * ref)

void linkGeomElems()


void removePrevNext(XItem * item)