120 lines
4.2 KiB
C++
120 lines
4.2 KiB
C++
#pragma once
|
||
#include "AecDbSymbWithText.h"
|
||
#include "ObjInfoUnit.h"
|
||
#include "AecDbSymbMultiLeader.h"
|
||
|
||
#define SCF_AB 0x01 // AB标注
|
||
class AecXDbSymbCoord : public AecXDbSymbWithText
|
||
{
|
||
public:
|
||
ACRX_DECLARE_MEMBERS(AecXDbSymbCoord);
|
||
|
||
private:
|
||
const static Adesk::UInt8 g_nVersion;
|
||
|
||
protected:
|
||
Adesk::UInt8 m_nFlag; // 控制标记,后四位用来控制精度TArch6.5
|
||
Adesk::UInt8 m_nQuadrant; // 象限0~3
|
||
ADSGePoint3d m_ptLocation;
|
||
ADSGePoint3d m_ptValue; // 显示的坐标值 x--Y(B), y--X(A)
|
||
|
||
// TArch6 data
|
||
ADSGePoint3d m_ptTurn;
|
||
|
||
// TArch7 data
|
||
AecXDbSymbMultiLeader::TArrowStyle m_nStyle;
|
||
|
||
// TArch8 data
|
||
double m_dText2BaseRatio; // 文字距基线系数,sg add 081113
|
||
|
||
// TArch9 data
|
||
// 基线长度,数据的正负代表方向,用这个100000的数字来表示需要读取默认长度
|
||
double m_dTextBaseLen;
|
||
|
||
public:
|
||
AecXDbSymbCoord();
|
||
~AecXDbSymbCoord();
|
||
|
||
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 void GetTips(PtrList<ObjInfoUnit> &) const; //取动态属性显示数据
|
||
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
||
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
|
||
// virtual int ConvertText(TConvertTextPtr ptr, void *pData=NULL);
|
||
virtual long GetSubTextNum()const { return 2; }//ok
|
||
virtual SubText* HitTestText(ADSGePoint3d pt)const;
|
||
virtual SubText* GetSubText(long iText)const;
|
||
virtual void SetSubText(long i, CString sText);
|
||
virtual const TCHAR *GetDefaultLayer() const;
|
||
|
||
// sg add 090629,解决需求平台问题613,支持查找替换操作
|
||
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);
|
||
|
||
// sg add 110301,支持统一标高
|
||
virtual bool UnifyElevation(double dElevation = 0.0);
|
||
|
||
//virtual Acad::ErrorStatus DownGradeSave(int nDrawMode, AcDbVoidPtrArray &entSet,
|
||
// BOOL *bErase);
|
||
|
||
ADSGePoint3d GetTurnPoint() const;
|
||
|
||
// Properties
|
||
ADSGePoint3d GetLocation() const;
|
||
ADSGePoint3d GetValue() const;
|
||
BOOL IsAB() const;
|
||
BOOL IsPrec2() const;
|
||
Adesk::UInt8 GetQuadrant() const;
|
||
Adesk::UInt8 GetPrecNum() const;
|
||
|
||
void SetLocation(ADSGePoint3d pt);
|
||
void SetValue(ADSGePoint3d pt);
|
||
void SetAB(BOOL bTrue);
|
||
void SetPrec2(BOOL bTrue);
|
||
void SetQuadrant(Adesk::UInt8 nQuadrant);
|
||
void SetTurnPoint(ADSGePoint3d pt);
|
||
void SetPrecNum(Adesk::UInt8 iNum);
|
||
AecXDbSymbMultiLeader::TArrowStyle GetStyle()const { assertReadEnabled(); return m_nStyle; }
|
||
void SetStyle(AecXDbSymbMultiLeader::TArrowStyle style) { assertWriteEnabled(); m_nStyle = style; }
|
||
|
||
// sg add 081113,bRealDist用来控制,返回“实际距离”(自动乘字高)或“系数”
|
||
double GetText2BaseRatio(BOOL bAsPaperUnit = TRUE, BOOL bRealDist = TRUE) const;
|
||
void SetText2BaseRatio(double dVal, BOOL bAsPaperUnit = TRUE);
|
||
|
||
// TArch9 data,文字基线长度
|
||
void SetTextBaseLen(double dVal, BOOL bAsPaperUnit = TRUE);
|
||
double GetTextBaseLen(BOOL bAsPaperUnit = TRUE) const;
|
||
|
||
// 文字基线默认长度
|
||
double GetDefaultTextBaseLen(BOOL bAsPaperUnit = TRUE) const;
|
||
// 文字基线的真实长度
|
||
double GetTrueTextBaseLen(BOOL bAsPaperUnit = TRUE) const;
|
||
|
||
protected:
|
||
ADSGePoint3d _GetTurnPoint() const; // 用于对TArch5的升级
|
||
};
|