105 lines
3.4 KiB
C++
105 lines
3.4 KiB
C++
#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<ObjInfoUnit> &) 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;
|
|
};
|
|
|
|
|