#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; //文字偏移距离 };