====== XSolid ====== **//Inherited from//** [[class::domain::xgeometry|XGeometry]], **//Inherited by//** NULL **//Friend class//** NULL **//Description//** XSolid封装了实体几何的数据及其方法,其类型标识名为"CGEOSOLID"(以CGEO为前缀)。实体几何是由若干面构成的封闭空间,是划分实体网格的对象基础。XSolid从XGeometry继承并重新实现了适用于实体的方法。 为了便于构建实体几何的视图数据,XSolid缓存了它所包含的边界单元数组以及边界面号信息。 **//Members//** * XRenderData [[xsolid#m_xrenderdata|m_XRenderData]] * vector [[xsolid#m_pboundaryelems|m_pBoundaryElems]] * vector [[xsolid#m_pboundaryfacetid|m_pBoundaryFacetId]] **//Public interface//** * [[xsolid#xsolid1|XSolid]](ulong id,XMemPool * pHashPool = 0) * [[xsolid#~xsolid|~XSolid]]() * real [[xsolid#getvolume|getVolume]]() const * void [[xsolid#bindupperiterator|bindUpperIterator]](ListIterator * pIter)const * const XGeometry * [[xsolid#getupperentity|getUpperEntity]](int index) const * void [[xsolid#addupperentity|addUpperEntity]](const XGeometry * pGeom) * void [[xsolid#removeupperentity|removeUpperEntity]](const XGeometry * pGeom) * int [[xsolid#getuppercount|getUpperCount]]() const * void [[xsolid#clear|clear]](ClearFlag f = Clear_All) * void [[xsolid#write|write]](XBinaryIO * io)const * ErrorCode [[xsolid#read|read]](GeometryManager * esmgr, XBinaryIO * io) * void [[xsolid#updateafterrenumber|updateAfterRenumber]](TypeID tid) * const XRenderData * [[xsolid#getrenderdata|getRenderData]]() const * void [[xsolid#buildrenderdata|buildRenderData]]() * void [[xsolid#updaterenderdata|updateRenderData]](const float * colorValue, int colorLoc, const float * deformX, const float * deformY, const float * deformZ, const int * elemNodeIndex = NULL) ---- {{anchor:m_xrenderdata}} **XRenderData m_XRenderData** 实体几何的视图数据 {{anchor:m_pboundaryelems}} **vector m_pBoundaryElems** 实体几何所包含的边界体单元数组 {{anchor:m_pboundaryfacetid}} **vector m_pBoundaryFacetId** 与边界单元对应的边界面号信息(可见面) ---- {{anchor:xsolid1}} **XSolid(ulong id,XMemPool * pHashPool = 0)** *function: 构造函数 *parameters: - [i]ulong id: 对象ID - [i]XMemPool * pHashPool = 0: 内存池 *return value: 无 {{anchor:~xsolid}} **~XSolid()** *function: 析构函数 *parameters: NULL *return value: 无 {{anchor:getvolume}} **real getVolume() const** *function: 获取实体几何体积 *parameters: NULL *return value: 实体体积 {{anchor:getupperentity}} **const XGeometry * getUpperEntity(int index) const** *function: 重新实现XGeometry的getUpperEntity方法 *parameters: - [i]int index: 父拓扑对象序号 *return value: XSolid不存在父拓扑,返回空 {{anchor:addupperentity}} **void addUpperEntity(const XGeometry * pGeom)** *function: 重新实现XGeometry的addUpperEntity方法,XSolid不存在父拓扑 *parameters: - [i]const XGeometry * pGeom: 父拓扑对象 *return value: 无 {{anchor:removeupperentity}} **void removeUpperEntity(const XGeometry * pGeom)** *function: 重新实现XGeometry的removeUpperEntity方法,XSolid不存在父拓扑 *parameters: - [i]const XGeometry * pGeom: 父拓扑对象 *return value: 无 {{anchor:getuppercount}} **int getUpperCount() const** *function: 重新实现XGeometry的getUpperCount方法,XSolid不存在父拓扑 *parameters: NULL *return value: 返回0 {{anchor:clear}} **void clear(ClearFlag f = Clear_All)** *function: 重新实现XGeometry的clear方法 *parameters: - [i]ClearFlag f = Clear_All: 清空标记 *return value: 无 {{anchor:write}} **void write(XBinaryIO * io)const** *function: 将几何体对象写入到二进制文件中 *parameters: - [i]XBinaryIO * io: 二进制文件句柄 *return value: 无 {{anchor:read}} **ErrorCode read(GeometryManager * esmgr, XBinaryIO * io)** *function: 从二进制文件中读取几何对象数据 *parameters: - [i]GeometryManager * esmgr: 几何对象管理器 - [i] XBinaryIO * io: 二进制文件句柄 *return value: 成功读取返回Error_None,否则返回相应错误码 {{anchor:updateafterrenumber}} **void updateAfterRenumber(TypeID tid)** *function: 在对模型对象重编号之后调用,用以更新对重编号对象的引用 *parameters: - [i]TypeID tid: 重编号的对象类型 *return value: 无 {{anchor:getrenderdata}} **const XRenderData * getRenderData() const** *function: 重新实现XGeometry的getRenderData方法,获取视图数据 *parameters: NULL *return value: 视图数据 {{anchor:buildrenderdata}} **void buildRenderData()** *function: 构建几何体的视图数据 *parameters: NULL *return value: 无 {{anchor:updaterenderdata}} **void updateRenderData(const float * colorValue, int colorLoc, const float * deformX, const float * deformY, const float * deformZ, const int * elemNodeIndex = NULL)** *function: 更新几何体的视图数据 *parameters: - [i]const float * colorValue: 值数组 - [i] int colorLoc: 值所在的位置类型(如单元积分点、单元节点或节点) - [i] const float * deformX: 变形数组X分量 - [i] const float * deformY: 变形数组Y分量 - [i] const float * deformZ: 变形数组Z分量 - [i] const int * elemNodeIndex = NULL: 单元节点索引数组 *return value: 无