Inherited from NOrderItem,
Inherited by XPart, XAssembly
Friend class XManager,ModelComponentManager,PartSnapshotManager,XModel,
Description
XModelComponent封装了模型中的部件数据以及其相关的方法。部件的基本属性包括名字、颜色和变换矩阵,可分为零件(仅包含几何数据)和装配件(仅包含其他装配件或零件)。零件包含若干具有相同物理属性的几何对象(在某些特殊情况下也可能不相同),原则上零件与零件之间不共享节点(如果共享节点,则该两零件应该合并成一个零件),零件内的几何对象使用以一种颜色构建视图数据。装配件定义了零件与零件之间的装配关系,并且支持嵌套。
部件是模型的内部数据之一,它必须通过XModel提供的接口访问,不能直接访问和修改。
部件拥有自己的角色设定(role), 相同角色的部件必须放在同一根装配树下。
Members
Public interface
-
-
-
-
virtual void
write(XBinaryIO * io)const
virtual ErrorCode
read(PartManager * pMgr,XBinaryIO * io)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
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:
[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:
[i]XBinaryIO * io: 二进制文件句柄
return value: 无
virtual ErrorCode read(PartManager * pMgr,XBinaryIO * io)
bool isVisible() const
void setVisible(bool b)
function: 设置部件的可见性
parameters:
[i]bool b: 部件可见性
return value: 无
bool isAuxiliary() const
void setAuxiliary(bool b)
function: 设置辅助部件
parameters:
[i]bool b: 是否辅助部件
return value: 无
RGBAColor getColor() const
function: 获取部件颜色
parameters: NULL
return value: 部件颜色
void setColor(RGBAColor c)
function: 设置部件颜色
parameters:
[i]RGBAColor c: 部件颜色
return value: 无
ulong getReferencePartID() const
function: 获取参考部件ID
parameters: NULL
return value: 参考部件ID
void setReferencePartID(ulong p)
function: 设置参考部件ID
parameters:
[i]ulong p: 参考部件ID
return value: 无
XAssembly * toAssembly()
const XAssembly * toAssembly() const
ulong getGeometryCount() const
function: 获取几何对象个数
parameters: NULL
return value: 部件几何对象个数
void bindGeometryIterator(OrderItemIterator<XGeometry> * pIter)const
function: 绑定几何对象访问迭代器
parameters:
[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:
[i]OrderItemIterator<XPartSnapshot> * pIter: 部件快照对象访问迭代器
return value: 无
const XPartSnapshot * getFirstPartSnapshot() const
function: 获取部件的第一个快照对象
parameters: NULL
return value: 部件的第一个快照对象
const XPartSnapshot * getLastSnapshot() const
const XAssembly * getParentAssembly() const
function: 获取部件的父装配体对象
parameters: NULL
return value: 部件的父装配体对象
void setParentAssembly(const XAssembly * a)
function: 设置部件的父装配体对象
parameters:
[i]const XAssembly * a: 部件的父装配体对象
return value: 无
TMatrix44<double> & getTrMatrix()
const TMatrix44<double> & getTrMatrix() const
void detach(XGeometry * g, GeometryManager * geomMgr)
function: 解除部件与几何对象的从属关系
parameters:
[i]XGeometry * g: 几何对象
[i] GeometryManager * geomMgr: 几何对象管理器
return value: 无
void attach(XGeometry * g, GeometryManager * geomMgr)
function: 绑定部件与几何对象的从属关系
parameters:
[i]XGeometry * g: 几何对象
[i] GeometryManager * geomMgr: 几何对象管理器
return value: 无
void detach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)
function: 解除部件与快照对象的从属关系
parameters:
[i]XPartSnapshot * pss: 部件快照对象
[i] PartSnapshotManager * pssMgr: 部件快照对象管理器
return value: 无
void attach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)
function: 绑定部件与快照对象的从属关系
parameters:
[i]XPartSnapshot * pss: 部件快照对象
[i] PartSnapshotManager * pssMgr: 部件快照对象管理器
return value: 无