#pragma once #include "AecDbEntityBaseEx.h" ///////////////////////////////////////////////////////////// // 指北针 class AecXDbSymbNorthThumb : public AecXDbEntityBaseEx { public: ACRX_DECLARE_MEMBERS(AecXDbSymbNorthThumb); private: const static Adesk::UInt8 g_nVersion; protected: ADSGePoint3d m_ptCenter; // 圆心 double m_nRadius; // 尺寸 double m_nRotation; // 方向 // TArch9,增加文字参数 AcDbHardPointerId m_idTextStyle; // 文字样式 double m_dTextHeight; // 文字高度 Adesk::UInt16 m_colorText; // 文字颜色 TCString m_szText; // 文字内容 ADSGePoint3d m_ptText; // 文字位置,ECS相对坐标 public: AecXDbSymbNorthThumb(); ~AecXDbSymbNorthThumb(); virtual BOOL IsValid() const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); //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; 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); // drived from TDbEntity virtual DrawModeType GetDrawType() const; virtual void GetTips(PtrList &) const; // 取动态属性显示数据 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual const TCHAR *GetDefaultLayer() const; virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; //virtual Acad::ErrorStatus DownGradeSave(int nDrawMode, AcDbVoidPtrArray &entSet, // BOOL *bErase); // sg add 111227,支持文字在位编辑 virtual long GetSubTextNum() const { return 1; } virtual void SetSubText(long i, CString sText) { SetText(sText); } // sg add 110301,支持统一标高 virtual bool UnifyElevation(double dElevation = 0.0); // Properties ADSGePoint3d GetCenter() const; double GetRadius(BOOL bAsPaperUnit = TRUE) const; double GetRotation() const; ADSGePoint3d GetNorthPoint() const; void SetCenter(ADSGePoint3d pt); void SetRadius(double val, BOOL bAsPaperUnit = TRUE); void SetRotation(double val); // TArch9,增加文字参数 AcDbObjectId GetTextStyleId() const; void SetTextStyleId(AcDbObjectId id); double GetTextHeight(BOOL bAsPaperUnit = TRUE) const; void SetTextHeight(double nHeight, BOOL bAsPaperUnit = TRUE); void SetTextColor(Adesk::UInt16 color); Adesk::UInt16 GetTextColor() const; void SetText(const TCHAR *pszText); const TCHAR* GetText() const; ADSGePoint3d GetTextPoint(BOOL bEcsPoint = FALSE) const; void SetTextPoint(ADSGePoint3d pt); public: // Helper Method // 下列函数为9.0新增加的函数,需要增加实现 AcGePoint2d GetEcsOriginPt() const; void GetEcsAxisVector(AcGeVector2d &xAxis, AcGeVector2d &yAxis) const; ADSGePoint3d GetWcsTextPt() const; // 文字默认位置 ADSGePoint3d GetDefaultTextLocation() const; };