Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

120 lines
4.3 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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的升级
};