User Tools

Site Tools


class:domain:xgeometry

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)

  • function: 构造函数
  • parameters:
    1. [i]ulong id: 几何对象ID
    2. [i]int tid = 0: 拓扑类型
  • return value: 无

XGeometry(ulong size)

  • function: 构造函数
  • parameters:
    1. [i]ulong size: 子拓扑规模
  • return value: 无

void setFlag(ulong f)

  • function: 设置临时标记
  • parameters:
    1. [i]ulong f: 临时标记值
  • return value: 无

ulong getFlag() const

  • function: 获取临时标记值
  • parameters: NULL
  • return value: 临时标记值

XSolid * toSolid()

  • function: 转换为实体拓扑对象
  • parameters: NULL
  • return value: 实体拓扑对象指针(可修改)

XFace * toFace()

  • function: 转换为面拓扑对象
  • parameters: NULL
  • return value: 面拓扑对象指针(可修改)

XEdge * toEdge()

  • function: 转换为边拓扑对象
  • parameters: NULL
  • return value: 边拓扑对象指针(可修改)

XVertex * toVertex()

  • function: 转换为顶点拓扑对象
  • parameters: NULL
  • return value: 顶点拓扑对象指针(可修改)

const XSolid * toSolid() const

  • function: 转换为实体拓扑对象
  • parameters: NULL
  • return value: 实体拓扑对象(不可修改)

const XFace * toFace()const

  • function: 转换为面拓扑对象
  • parameters: NULL
  • return value: 面拓扑对象(不可修改)

const XEdge * toEdge()const

  • function: 转换为边拓扑对象
  • parameters: NULL
  • return value: 边拓扑对象(不可修改)

const XVertex * toVertex() const

  • function: 转换为顶点拓扑对象
  • parameters: NULL
  • return value: 顶点拓扑对象(不可修改)

bool isVisible() const

  • function: 几何对象是否可见
  • parameters: NULL
  • return value: 可见返回true,否则返回false

void setVisible(bool b)

  • function: 设置对象是否可见
  • parameters:
    1. [i]bool b: 对象是否可见
  • return value: 无

RGBAColor getColor() const

  • function: 获取几何对象颜色
  • parameters: NULL
  • return value: 几何对象颜色

void setColor(const RGBAColor c)

  • function: 设置几何对象颜色
  • parameters:
    1. [i]const RGBAColor c: 几何对象颜色
  • return value: 无

TypeID getViewMode() const

  • function: 获取几何对象视图模式
  • parameters: NULL
  • return value: 几何对象视图模式

void setViewMode(TypeID vmode)

  • function: 设置几何对象视图模式
  • parameters:
    1. [i]TypeID vmode: 几何对象视图模式
  • return value: 无

TypeID getFeatureType() const

  • function: 获取几何对象拓扑特征类型
  • parameters: NULL
  • return value: 几何对象拓扑特征类型

void setFeatureType(TypeID t)

  • function: 设置几何对象拓扑特征类型
  • parameters:
    1. [i]TypeID t: 几何对象拓扑特征类型
  • return value: 无

TypeID getRole() const

  • function: 获取几何对象角色
  • parameters: NULL
  • return value: 几何对象角色

void setRole(TypeID t)

  • function: 设置几何对象角色
  • parameters:
    1. [i]TypeID t: 几何对象角色
  • return value: 无

virtual ulong getChildCount() const

  • function: 获取子拓扑个数
  • parameters: NULL
  • return value: 子拓扑个数

virtual const XGeometry * getChildEntity(ulong id)const

  • function: 获取子拓扑对象
  • parameters:
    1. [i]ulong id: 子拓扑对象ID
  • return value: 如存在指定ID的子拓扑对象,返回该对象指针,否则返回空

void bindChildIterator(HashIterator * pIter)const

  • function: 绑定子拓扑对象访问迭代器
  • parameters:
    1. [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:
    1. [i]const XGeometry * pGeom: 父拓扑对象
  • return value: 无

virtual void removeUpperEntity(const XGeometry * pGeom) = 0

  • function: 删除父拓扑对象
  • parameters:
    1. [i]const XGeometry * pGeom: 父拓扑对象
  • return value: 无

virtual void clear(ClearFlag f = Clear_All) = 0

  • function: 清空几何对象数据
  • parameters:
    1. [i]ClearFlag f = Clear_All: 清空标志
  • return value: 无

void write(XBinaryIO * io)const

  • function: 将几何对象写入到二进制文件中
  • parameters:
    1. [i]XBinaryIO * io: 二进制文件句柄
  • return value: 无

ErrorCode read(GeometryManager * esmgr, XBinaryIO * io)

  • function: 从二进制文件中读取几何对象数据
  • parameters:
    1. [i]GeometryManager * esmgr: 几何对象管理器
    2. [i] XBinaryIO * io: 二进制文件句柄
  • return value: 成功读取返回Error_None,否则返回相应错误码

virtual ~XGeometry()

  • function: 析构函数
  • parameters: NULL
  • return value: 无

void bindExtData(void * d)

  • function: 设置扩展数据
  • parameters:
    1. [i]void * d: 扩展数据
  • return value: 无

void * getExtData() const

  • function: 获取扩展数据
  • parameters: NULL
  • return value: 扩展数据

void setPart(const XPart * p)

  • function: 设置所属的部件
  • parameters:
    1. [i]const XPart * p: 部件对象
  • return value: 无

const XPart * getPart() const

  • function: 获取所属部件
  • parameters: NULL
  • return value: 所属部件对象

virtual void attachChildEntity(const XGeometry * pEntity)

  • function: 绑定拓扑从属关系
  • parameters:
    1. [i]const XGeometry * pEntity: 子拓扑对象
  • return value: 无

virtual void detachChildEntity(ulong id)

  • function: 解除拓扑从属关系
  • parameters:
    1. [i]ulong id: 子拓扑对象ID
  • return value: 无
class/domain/xgeometry.txt · Last modified: 2023/05/06 07:01 (external edit)