XPart

Inherited from XModelComponent,

Inherited by NULL

Friend class XManager,PartManager,PartSnapshotManager,XModel,

Description

XPart封装了模型中的零件数据对象以及其相关的方法。零件从部件XModelComponent继承。零件包含若干具有相同物理属性的几何对象(在某些特殊情况下也可能不相同),原则上零件与零件之间不共享节点(如果共享节点,则该两零件应该合并成一个零件),零件内的几何对象使用以一种颜色构建视图数据。任何零件都有且只有一个父部件对象。一般的,零件的变换矩阵是相对于父部件的局部变换矩阵,但在定义了参考零件的条件下(通过变换参考零件的位置生成本部件),它的变换矩阵是相对于参考部件的局部变换矩阵。

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

基于零件可以构建零件快照信息,用于保存某个时刻的零件数据状态。

Members

Public interface

Private interface


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)

~XPart()

const XModel * getModel() const

virtual void clear()

virtual void write(XBinaryIO * io)const

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

bool isVisible() const

void setVisible(bool b)

bool isAuxiliary() const

void setAuxiliary(bool b)

RGBAColor getColor() const

void setColor(RGBAColor c)

ulong getReferencePartID() const

void setReferencePartID(ulong p)

XAssembly * toAssembly()

const XAssembly * toAssembly() const

ulong getGeometryCount() const

void bindGeometryIterator(OrderItemIterator<XGeometry> * pIter)const

const XGeometry * getFirstGeometry() const

ulong getPartSnapshotCount() const

void bindPartSnapshotIterator(OrderItemIterator<XPartSnapshot> * pIter)const

const XPartSnapshot * getFirstPartSnapshot() const

const XPartSnapshot * getLastSnapshot() const

const XAssembly * getParentAssembly() const

void setParentAssembly(const XAssembly * a)

TMatrix44<double> & getTrMatrix()

const TMatrix44<double> & getTrMatrix() const


void detach(XGeometry * g, GeometryManager * geomMgr)

void attach(XGeometry * g, GeometryManager * geomMgr)

void detach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)

void attach(XPartSnapshot * pss, PartSnapshotManager * pssMgr)