Files
envi-code/SourceCode/Code2026/tg_shs/shs_siteplan/TDbLayoutLegend.h
T
2026-09-28 15:28:50 +08:00

60 lines
1.6 KiB
C++

#pragma once
#include <vector>
//画块信息结构体
typedef struct CDrawData
{
AcDbObjectId idBlock; //块id
AcGeScale3d scale; //压缩比
CString sText; //注释文字
AcGeVector3d vecOffet; //基点偏移量
}DRAWDATA;
//图例块和相应注释文字的插入位置坐标结构体
typedef struct CCoordinateData
{
AcGePoint3d ptImage;
AcGePoint3d ptText;
}COORDINATEDATA;
class TDbLayoutLegend : public TDbEntity
{
DECLARE_TENTBASE();
public:
ACRX_DECLARE_MEMBERS(TDbLayoutLegend) ;
TDbLayoutLegend() ;
virtual ~TDbLayoutLegend () ;
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
void Push_Back(TCHAR* pszBlockName,TCHAR* pszText); //块数据入列
void SetLocation(AcGePoint3d &pt); //设置基点
void SetCloumnWidth(CList<double>* listCloumnWdith){m_listCloumnWdith = listCloumnWdith;}
protected:
double m_dWidthStd; //画图边框宽
double m_dHeightStd;//画图边框高
//计算坐标表的偏移常量
const double m_dPtImageXOffet;
const double m_dPtImageYOffet;
const double m_dPtImageYStepOffet;
const double m_dptTextXOffet;
const double m_dptTextYOffet;
const double m_dptTextYStepOffet;
CList<double>* m_listCloumnWdith;
protected:
void MakeCoordinateTable(int iSize);
private:
AcGePoint3d m_ptLocation; //本对象基点
AcDbObjectId n_idTextStyle; //文字样式
std::vector<DRAWDATA> m_vecDrawData; //块数据队列
std::vector<COORDINATEDATA> m_vecCoordinateData;//坐标表
double m_dRot; //文字转角
} ;