84 lines
2.0 KiB
C++
84 lines
2.0 KiB
C++
#pragma once
|
|
#include "tdbentity.h"
|
|
|
|
class TARCH_EXP ATSParking :
|
|
public TDbEntity
|
|
{
|
|
DECLARE_TENTBASE();
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(ATSParking);
|
|
//车位模式
|
|
enum
|
|
{
|
|
k0Bias = 0,//无斜线
|
|
k1Bias = 1,//单斜线
|
|
k2Bias = 2,//双斜线
|
|
kCar = 3 //有停车
|
|
};
|
|
//象限切换
|
|
enum
|
|
{
|
|
kQuadrant1 = 0,
|
|
kQuadrant2 = 3,
|
|
kQuadrant3 = 2,
|
|
kQuadrant4 = 1
|
|
};
|
|
ATSParking();
|
|
ATSParking(const XString &sName);
|
|
~ATSParking();
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
|
|
|
|
//////////////////////////////////////////////////////////////////////////直线段
|
|
//ptStart 起点
|
|
//vec 基线方向向量(顶点1到2的向量)
|
|
//angle 角度
|
|
//iWidth 宽度
|
|
//iHeight 深度
|
|
//iSize 线段那一侧,1:基线方向向量逆时针 -1:基线方向向量顺时针
|
|
//iStyle 模式
|
|
//iQuadrant 象限位置
|
|
void Fill(const XPoint &ptStart,const AcGeVector3d &vec,int angle,double iWidth,double iHeight,int iSize=1,int iStyle=0,int iQuadrant=0);
|
|
|
|
//弧
|
|
void Fill(const XPoint &ptCenter,const XPoint &ptStart,const AcGeVector3d &vec,double iWidth,double iHeight,int iSize=1,int iStyle=0);
|
|
|
|
//图块基点
|
|
XPoint GetBasePt();
|
|
XPoint GetPtText();
|
|
double GetRotAngle();
|
|
void SetTextOffset(double dOffset){m_dOffset = dOffset;}
|
|
|
|
protected:
|
|
void TransformByEx(AcDbEntity &ent) const;
|
|
|
|
private://属性
|
|
|
|
//模式
|
|
int m_iStyle;
|
|
|
|
//象限
|
|
int m_iQuadrant;
|
|
|
|
//边框顶点(基向量方向)
|
|
TADSGePoint3d m_ptVertex1;
|
|
TADSGePoint3d m_ptVertex2;
|
|
TADSGePoint3d m_ptVertex3;
|
|
TADSGePoint3d m_ptVertex4;
|
|
TADSGePoint3d m_ptText;
|
|
|
|
//中点辅助画双斜线线
|
|
TADSGePoint3d m_ptMid;
|
|
|
|
//车图块
|
|
double m_dAngle;
|
|
TADSGePoint3d m_ptBlockCenter;
|
|
AcDbObjectId m_idBlock;
|
|
|
|
//双斜线指向
|
|
BOOL m_bDirect;
|
|
double m_dOffset; //文字偏移距离
|
|
};
|