#ifndef __MULTIVIEW_INSERT_H #define __MULTIVIEW_INSERT_H //#include "DbBlockInsert.h" class TARCH_EXP TDbMultiViewInsert: public TDbEntity { DECLARE_TENTBASE(); ACRX_DECLARE_MEMBERS(TDbMultiViewInsert); private: const static Adesk::UInt8 g_nVersion; protected: Adesk::UInt8 m_nFlag; AcDbHardPointerId m_idBlock2d, m_idBlock3d; XPoint m_ptLocation; double m_xScale, m_yScale, m_zScale; double m_nRotation; public: AcDbObjectId GetBlockId(BOOL b3D) const { return (b3D? m_idBlock3d : m_idBlock2d); } AcGeScale3d GetScaleFactors() const { return AcGeScale3d(m_xScale, m_yScale, m_zScale); } XPoint GetLocation() const { return m_ptLocation; } double GetRotation() const { return m_nRotation; } void SetBlockId(BOOL b3D, AcDbObjectId id) { assertWriteEnabled(); if(b3D) m_idBlock3d=id; else m_idBlock2d=id; } void SetLocation(XPoint pt) { assertWriteEnabled(); m_ptLocation=pt; } void SetRotation(double nRot) { assertWriteEnabled(); m_nRotation=nRot; } void SetScaleFactors(AcGeScale3d scales) { assertWriteEnabled(); m_xScale=scales[0]; m_yScale=scales[1]; m_zScale=scales[2]; } AcDbBlockReference *NewBlock(BOOL b3D) const; TBlockGeomInfo GetGeomInfo() const; Acad::ErrorStatus UpdateFrom(const TBlockGeomInfo &geom); protected: Acad::ErrorStatus DrawOneView(XExplodeDraw &dc, BOOL bDraw3d) const; public: TDbMultiViewInsert(); virtual BOOL IsValid() const; virtual bool IsModelEntity() const{return true;} virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const; virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const; virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual void GetTips(DList &) const; //取动态属性显示数据 virtual int GetFirstVersion()const{return 6;}//ok // Overriden function from AcDbEntity virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const; virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const; virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const; virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subGetOsnapPoints( AcDb::OsnapMode osnapMode, INT_PTR gsSelectionMark, const AcGePoint3d& ptPick, const AcGePoint3d& lastPoint, const AcGeMatrix3d& viewXform, AcGePoint3dArray& snapPoints, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subIntersectWith(const AcDbEntity* ent, AcDb::Intersect intType, AcGePoint3dArray& points, INT_PTR thisGsMarker, INT_PTR otherGsMarker) const; virtual int GetCtrlToggleIndex()const{return 0;}//ok }; #endif