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

96 lines
2.9 KiB
C++

// Copyright (C), 1998-2007, Beijing Tangent Engineering Software Co. Ltd.
// = FileName: TDbRoadEntity.h
// = Version: 8.5
// = Author: lgh
// = Date: 2010-9-10 9:32:48
// = Description: 道路实体,仅仅用来做jig的绘制,其他功能没有实现
// = Maintainers:
#pragma once
class CDrawRoadDlg;
class CLineRoad;
class CArcRoad;
// 注意需要实现默认的构造函数
class TDbRoadEntity : public TDbEntity
{
DECLARE_TENTBASE();
public:
ACRX_DECLARE_MEMBERS(TDbRoadEntity);
TDbRoadEntity(){};
TDbRoadEntity(double dHalfWid) : m_dHalfWid(dHalfWid), TDbEntity(){};
virtual ~TDbRoadEntity(void){};
public:
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const{return Acad::eOk;}
public:
virtual void SetHalfWid(double dHalfWid);
double m_dHalfWid;
};
class TDbLineRoadEntity : public TDbRoadEntity
{
DECLARE_TENTBASE();
public:
ACRX_DECLARE_MEMBERS(TDbLineRoadEntity);
TDbLineRoadEntity(){}
TDbLineRoadEntity(double dHalfWid, const AcGeLineSeg2d &lineSeg)
: TDbRoadEntity(dHalfWid), m_ptStart(lineSeg.startPoint()), m_ptEnd(lineSeg.endPoint()){}
virtual ~TDbLineRoadEntity(void){}
public:
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
public:
CLineRoad* CreateLineRoad(CDrawRoadDlg *pDlg) const ;
public:
void SetMidLine(const AcGeLineSeg2d &midLine) ;
void SetLineRoad(const AcGePoint2d &ptStart, const AcGePoint2d &ptEnd, CDrawRoadDlg *pDlg);
AcGePoint2d GetStartPt() {return m_ptStart; }
AcGePoint2d GetEndPt() {return m_ptEnd; }
private:
AcGePoint2d m_ptStart, m_ptEnd;
};
class TDbArcRoadEntity : public TDbRoadEntity
{
DECLARE_TENTBASE();
public:
ACRX_DECLARE_MEMBERS(TDbArcRoadEntity);
TDbArcRoadEntity(){}
TDbArcRoadEntity(double dHalfWid, const AcGePoint2d &ptFir, const AcGePoint2d &ptThir, const AcGePoint2d &ptEnd)
: TDbRoadEntity(dHalfWid), m_ptFirst(ptFir), m_ptThird(ptThir), m_ptEnd(ptEnd) {}
virtual ~TDbArcRoadEntity(void){}
public:
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
public:
CArcRoad* CreateArcRoad(CDrawRoadDlg *pDlg);
void SetMidArc(const AcGePoint2d &ptFir, const AcGePoint2d &ptThir, const AcGePoint2d &ptEnd)
{
m_ptFirst = ptFir;
m_ptThird = ptThir;
m_ptEnd = ptEnd;
}
void SetArcRoad(const AcGePoint2d &ptFir, const AcGePoint2d &ptThir, const AcGePoint2d &ptEnd, CDrawRoadDlg *pDlg);
AcGePoint2d GetFirstPt() {return m_ptFirst; }
AcGePoint2d GetThirdPt() {return m_ptThird; }
AcGePoint2d GetEndPt() {return m_ptEnd; }
private:
AcGePoint2d m_ptFirst;
AcGePoint2d m_ptThird;
AcGePoint2d m_ptEnd;
};