XGeometry

Inherited from ElementSet,

Inherited by XSolid,XFace,XEdge,XVertex

Friend class GeometryManager,PartManager,XManager,

Description

XGeometry封装了模型中的几何对象数据及其方法。由于几何特征形式多样而且可以自由组合,并且几何数据的来源多样,或者或包含Brep信息的CAD文件,或者为纯三角片数据文件,为了兼容各种形式的数据源,架构使用带有拓扑关系的离散结构表达,一方面可以表达包括点、线、面、体四种拓扑结构和零部件及装配关系,另一方面使用三角片、线段等简单统一的离散结构表达具体的几何细节,既可以做到拓扑保真,又具有灵活的形式,在一定的误差控制下,可以表达任何几何形状,因而自然的具有可扩展性。

XGeometry作为单元容器还保存下级子拓扑哈希表,这一设计使得程序可以高效的访问校验拓扑关系。

Members

Public interface

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)

XGeometry(ulong size)

void setFlag(ulong f)

ulong getFlag() const

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)

RGBAColor getColor() const

void setColor(const RGBAColor c)

TypeID getViewMode() const

void setViewMode(TypeID vmode)

TypeID getFeatureType() const

void setFeatureType(TypeID t)

TypeID getRole() const

void setRole(TypeID t)

virtual ulong getChildCount() const

virtual const XGeometry * getChildEntity(ulong id)const

void bindChildIterator(HashIterator * pIter)const

virtual int getUpperCount() const = 0

virtual ulong getNodeCount() const

virtual void addUpperEntity(const XGeometry * pGeom) = 0

virtual void removeUpperEntity(const XGeometry * pGeom) = 0

virtual void clear(ClearFlag f = Clear_All) = 0

void write(XBinaryIO * io)const

ErrorCode read(GeometryManager * esmgr, XBinaryIO * io)

virtual ~XGeometry()

void bindExtData(void * d)

void * getExtData() const

void setPart(const XPart * p)

const XPart * getPart() const


virtual void attachChildEntity(const XGeometry * pEntity)

virtual void detachChildEntity(ulong id)