#pragma once #include "AecDbSymbWithText.h" #include "objinfounit.h" #include "GePoly2D.h" class AecXDbText; class AecXDbSymbModi : public AecXDbSymbWithText { public: ACRX_DECLARE_MEMBERS(AecXDbSymbModi); public: AecXDbSymbModi(); ~AecXDbSymbModi(); protected: const static Adesk::UInt8 g_nVersion; // 对象格式版本 protected: GePoly2D m_poly; // 云线对应的多段线 double m_dEndWidth; // 云线的末尾宽度 double m_dAngle; // 弯曲的弧度值 Adesk::UInt8 m_bShowEdition; // 是否显示版次 TCString m_sEdition; // 版次文字 ADSGePoint3d m_ptEditLoc; // 版次位置 public: //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 subGetGripPoints(AcDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const AcGeVector3d& curViewDir, const int bitflags) const { return Acad::eNotImplementedYet; } virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const; virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); public: virtual BOOL IsValid() const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual void GetTips(PtrList &) const; // 取动态属性显示数据 virtual long GetSubTextNum() const { return 1; } virtual void SetSubText(long i, CString sText) { assertWriteEnabled(); m_sEdition = sText; }; virtual const TCHAR *GetDefaultLayer() const; virtual int GetFirstVersion() const { return 9; } virtual int ConvertText(TConvertTextPtr ptr, void *pData = NULL); BOOL GetText(Adesk::UInt32 cookies, AecXDbText &text) const; virtual TextPosition FindSubText(const TCHAR *sSubText, TextPosition &posStart, TextRange *pRange = NULL) const; virtual TextPosition ReplaceSubText(const TextPosition &posRep, const TCHAR *sRepText, TextRange *pRange = NULL); virtual bool UnifyElevation(double dElevation = 0.0); public: void SetModiPoly(GePoly2D poly); void GetModiPoly(GePoly2D &poly) const; BOOL GetIsShowEdition() const; // 是否显示版次 void SetIsShowEdition(BOOL bShow); // 设置是否显示版次 ADSGePoint3d GetEditLocal() const; // 返回版次位置 void SetEditLocal(ADSGePoint3d pt); // 设置版次位置 ADSGePoint3d GetDefaultTextLocation(); // 版次文字默认位置点 void SetEditionText(CString strText); // 设置版次文字 CString GetEditionText() const; // 获得版次文字 double GetEndWidth() const; // 获得云线线宽 void SetEndWidth(double dWidth); // 设置线宽 void SetArcAngle(double dAngle); // poly中的每个点的弧度值 double GetArcAngle() const; };