Inherited from ElementSet,
Inherited by XSolid,XFace,XEdge,XVertex
Friend class GeometryManager,PartManager,XManager,
Description
XGeometry封装了模型中的几何对象数据及其方法。由于几何特征形式多样而且可以自由组合,并且几何数据的来源多样,或者或包含Brep信息的CAD文件,或者为纯三角片数据文件,为了兼容各种形式的数据源,架构使用带有拓扑关系的离散结构表达,一方面可以表达包括点、线、面、体四种拓扑结构和零部件及装配关系,另一方面使用三角片、线段等简单统一的离散结构表达具体的几何细节,既可以做到拓扑保真,又具有灵活的形式,在一定的误差控制下,可以表达任何几何形状,因而自然的具有可扩展性。
XGeometry作为单元容器还保存下级子拓扑哈希表,这一设计使得程序可以高效的访问校验拓扑关系。
Members
Public interface
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
virtual void
clear(ClearFlag f = Clear_All) = 0
void
write(XBinaryIO * io)const
ErrorCode
read(GeometryManager * esmgr, XBinaryIO * io)
-
-
-
-
-
Protected interface
RGBAColor m_Color
几何对象颜色
ulong m_ulFlag
几何对象临时标记
void * m_pExtData
几何对象临时扩展数据
int m_iRole
几何对象角色,普通角色、原始元素角色(比如中立面中使用)或者辅助角色
TypeID m_iFeatureType
几何拓扑特征类型
TypeID m_iViewMode
几何对象的视图模式
XHash<XGeometry>* m_pChildHash
子拓扑哈希表
XGeometry(ulong id,int tid = 0)
function: 构造函数
parameters:
[i]ulong id: 几何对象ID
[i]int tid = 0: 拓扑类型
return value: 无
XGeometry(ulong size)
function: 构造函数
parameters:
[i]ulong size: 子拓扑规模
return value: 无
void setFlag(ulong f)
function: 设置临时标记
parameters:
[i]ulong f: 临时标记值
return value: 无
ulong getFlag() const
function: 获取临时标记值
parameters: NULL
return value: 临时标记值
XSolid * toSolid()
XFace * toFace()
XEdge * toEdge()
XVertex * toVertex()
const XSolid * toSolid() const
const XFace * toFace()const
const XEdge * toEdge()const
const XVertex * toVertex() const
bool isVisible() const
void setVisible(bool b)
function: 设置对象是否可见
parameters:
[i]bool b: 对象是否可见
return value: 无
RGBAColor getColor() const
function: 获取几何对象颜色
parameters: NULL
return value: 几何对象颜色
void setColor(const RGBAColor c)
function: 设置几何对象颜色
parameters:
[i]const RGBAColor c: 几何对象颜色
return value: 无
TypeID getViewMode() const
function: 获取几何对象视图模式
parameters: NULL
return value: 几何对象视图模式
void setViewMode(TypeID vmode)
function: 设置几何对象视图模式
parameters:
[i]TypeID vmode: 几何对象视图模式
return value: 无
TypeID getFeatureType() const
function: 获取几何对象拓扑特征类型
parameters: NULL
return value: 几何对象拓扑特征类型
void setFeatureType(TypeID t)
function: 设置几何对象拓扑特征类型
parameters:
[i]TypeID t: 几何对象拓扑特征类型
return value: 无
TypeID getRole() const
function: 获取几何对象角色
parameters: NULL
return value: 几何对象角色
void setRole(TypeID t)
function: 设置几何对象角色
parameters:
[i]TypeID t: 几何对象角色
return value: 无
virtual ulong getChildCount() const
function: 获取子拓扑个数
parameters: NULL
return value: 子拓扑个数
virtual const XGeometry * getChildEntity(ulong id)const
void bindChildIterator(HashIterator * pIter)const
function: 绑定子拓扑对象访问迭代器
parameters:
[i]HashIterator * pIter: 子拓扑对象访问迭代器
return value: 无
virtual int getUpperCount() const = 0
function: 获取父拓扑对象个数
parameters: NULL
return value: 父拓扑对象个数
virtual ulong getNodeCount() const
function: 获取几何对象的节点个数
parameters: NULL
return value: 几何对象的节点个数
virtual void addUpperEntity(const XGeometry * pGeom) = 0
function: 添加父拓扑对象
parameters:
[i]const XGeometry * pGeom: 父拓扑对象
return value: 无
virtual void removeUpperEntity(const XGeometry * pGeom) = 0
function: 删除父拓扑对象
parameters:
[i]const XGeometry * pGeom: 父拓扑对象
return value: 无
virtual void clear(ClearFlag f = Clear_All) = 0
function: 清空几何对象数据
parameters:
[i]ClearFlag f = Clear_All: 清空标志
return value: 无
void write(XBinaryIO * io)const
function: 将几何对象写入到二进制文件中
parameters:
[i]XBinaryIO * io: 二进制文件句柄
return value: 无
ErrorCode read(GeometryManager * esmgr, XBinaryIO * io)
virtual ~XGeometry()
function: 析构函数
parameters: NULL
return value: 无
void bindExtData(void * d)
function: 设置扩展数据
parameters:
[i]void * d: 扩展数据
return value: 无
void * getExtData() const
function: 获取扩展数据
parameters: NULL
return value: 扩展数据
void setPart(const XPart * p)
function: 设置所属的部件
parameters:
[i]const XPart * p: 部件对象
return value: 无
const XPart * getPart() const
function: 获取所属部件
parameters: NULL
return value: 所属部件对象
virtual void attachChildEntity(const XGeometry * pEntity)
function: 绑定拓扑从属关系
parameters:
[i]const XGeometry * pEntity: 子拓扑对象
return value: 无
virtual void detachChildEntity(ulong id)
function: 解除拓扑从属关系
parameters:
[i]ulong id: 子拓扑对象ID
return value: 无