User Tools

Site Tools


class:domain:xmodelcomponent

XModelComponent

Inherited from NOrderItem,

Inherited by XPart, XAssembly

Friend class XManager,ModelComponentManager,PartSnapshotManager,XModel,

Description

XModelComponent封装了模型中的部件数据以及其相关的方法。部件的基本属性包括名字、颜色和变换矩阵,可分为零件(仅包含几何数据)和装配件(仅包含其他装配件或零件)。零件包含若干具有相同物理属性的几何对象(在某些特殊情况下也可能不相同),原则上零件与零件之间不共享节点(如果共享节点,则该两零件应该合并成一个零件),零件内的几何对象使用以一种颜色构建视图数据。装配件定义了零件与零件之间的装配关系,并且支持嵌套。

部件是模型的内部数据之一,它必须通过XModel提供的接口访问,不能直接访问和修改。

部件拥有自己的角色设定(role), 相同角色的部件必须放在同一根装配树下。

Members

Public interface

Private interface

  • void detach(XGeometry * g, GeometryManager * geomMgr)
  • void attach(XGeometry * g, GeometryManager * geomMgr)
  • void detach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)
  • void attach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)

OrderContainer m_Geoms

部件内几何对象数组

OrderContainer m_Subs

部件内子对象数组(对于装配体,是子部件对象;对于部件,是部件快照对象的引用)

RGBAColor m_Color

部件颜色

TypeID m_iRefMode

部件参考模式

TMatrix44<double> m_dTMatrix

部件坐标变换矩阵

bool m_bVisible

部件可见性

bool m_bAuxiliary

是否为辅助部件


XPart(ulong id)

  • function: 构造函数
  • parameters:
    1. [i]ulong id: 部件ID
  • return value: 无

~XPart()

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

const XModel * getModel() const

  • function: 获取部件所属模型
  • parameters: NULL
  • return value: 部件所属模型指针

virtual void clear()

  • function: 清空部件
  • parameters: NULL
  • return value: 无

virtual void write(XBinaryIO * io)const

  • function: 将部件数据写入到二进制文件中
  • parameters:
    1. [i]XBinaryIO * io: 二进制文件句柄
  • return value: 无

virtual ErrorCode read(PartManager * pMgr,XBinaryIO * io)

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

bool isVisible() const

  • function: 部件是否可见
  • parameters: NULL
  • return value: 可见返回true,否则返回false

void setVisible(bool b)

  • function: 设置部件的可见性
  • parameters:
    1. [i]bool b: 部件可见性
  • return value: 无

bool isAuxiliary() const

  • function: 是否辅助部件
  • parameters: NULL
  • return value: 是辅助部件返回true,否则返回false

void setAuxiliary(bool b)

  • function: 设置辅助部件
  • parameters:
    1. [i]bool b: 是否辅助部件
  • return value: 无

RGBAColor getColor() const

  • function: 获取部件颜色
  • parameters: NULL
  • return value: 部件颜色

void setColor(RGBAColor c)

  • function: 设置部件颜色
  • parameters:
    1. [i]RGBAColor c: 部件颜色
  • return value: 无

ulong getReferencePartID() const

  • function: 获取参考部件ID
  • parameters: NULL
  • return value: 参考部件ID

void setReferencePartID(ulong p)

  • function: 设置参考部件ID
  • parameters:
    1. [i]ulong p: 参考部件ID
  • return value: 无

XAssembly * toAssembly()

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

const XAssembly * toAssembly() const

  • function: 转换为装配体对象
  • parameters: NULL
  • return value: 装配体对象指针(不可修改)

ulong getGeometryCount() const

  • function: 获取几何对象个数
  • parameters: NULL
  • return value: 部件几何对象个数

void bindGeometryIterator(OrderItemIterator<XGeometry> * pIter)const

  • function: 绑定几何对象访问迭代器
  • parameters:
    1. [i]OrderItemIterator<XGeometry> * pIter: 几何对象访问迭代器
  • return value: 无

const XGeometry * getFirstGeometry() const

  • function: 获取部件的第一个几何对象
  • parameters: NULL
  • return value: 部件的第一个几何对象

ulong getPartSnapshotCount() const

  • function: 获取部件快照的个数
  • parameters: NULL
  • return value: 部件快照的个数

void bindPartSnapshotIterator(OrderItemIterator<XPartSnapshot> * pIter)const

  • function: 绑定部件快照对象访问迭代器
  • parameters:
    1. [i]OrderItemIterator<XPartSnapshot> * pIter: 部件快照对象访问迭代器
  • return value: 无

const XPartSnapshot * getFirstPartSnapshot() const

  • function: 获取部件的第一个快照对象
  • parameters: NULL
  • return value: 部件的第一个快照对象

const XPartSnapshot * getLastSnapshot() const

  • function: 获取部件的最后一个快照对象
  • parameters: NULL
  • return value: 部件的最后一个快照对象

const XAssembly * getParentAssembly() const

  • function: 获取部件的父装配体对象
  • parameters: NULL
  • return value: 部件的父装配体对象

void setParentAssembly(const XAssembly * a)

  • function: 设置部件的父装配体对象
  • parameters:
    1. [i]const XAssembly * a: 部件的父装配体对象
  • return value: 无

TMatrix44<double> & getTrMatrix()

  • function: 获取部件的变换矩阵
  • parameters: NULL
  • return value: 部件的变换矩阵(可修改)

const TMatrix44<double> & getTrMatrix() const

  • function: 获取部件的变换矩阵
  • parameters: NULL
  • return value: 部件的变换矩阵(不可修改)

void detach(XGeometry * g, GeometryManager * geomMgr)

  • function: 解除部件与几何对象的从属关系
  • parameters:
    1. [i]XGeometry * g: 几何对象
    2. [i] GeometryManager * geomMgr: 几何对象管理器
  • return value: 无

void attach(XGeometry * g, GeometryManager * geomMgr)

  • function: 绑定部件与几何对象的从属关系
  • parameters:
    1. [i]XGeometry * g: 几何对象
    2. [i] GeometryManager * geomMgr: 几何对象管理器
  • return value: 无

void detach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)

  • function: 解除部件与快照对象的从属关系
  • parameters:
    1. [i]XPartSnapshot * pss: 部件快照对象
    2. [i] PartSnapshotManager * pssMgr: 部件快照对象管理器
  • return value: 无

void attach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)

  • function: 绑定部件与快照对象的从属关系
  • parameters:
    1. [i]XPartSnapshot * pss: 部件快照对象
    2. [i] PartSnapshotManager * pssMgr: 部件快照对象管理器
  • return value: 无
class/domain/xmodelcomponent.txt · Last modified: 2023/12/14 09:47 (external edit)