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

79 lines
2.3 KiB
C++

// Copyright (C), 1998-2007, Beijing Tangent Engineering Software Co. Ltd.
// = FileName: CADEntFilRoadAdatper.h
// = Version: 8.5
// = Author: lgh
// = Date: 2010-10-22 16:13:54
// = Description: CADEnt 用来做手工道路倒角的适配器,控制道路的绘制。
// = Maintainers:
#pragma once
class CCADEnt;
class CArcCADEnt;
class CLineCADEnt;
class CLineCADEntFilRoadAdapter;
class CArcCADEntFilRoadAdapter;
class CCADEntFilRoadAdatper
{
enum eLinked {eStart = 0x01, eEnd = 0x02, eAll = 0x03};
public:
CCADEntFilRoadAdatper(CCADEnt *pEnt) : m_pEnt(pEnt), m_bRecreate(FALSE), m_linkFlag(0) {}
~CCADEntFilRoadAdatper() {};
virtual CLineCADEntFilRoadAdapter* ToLineAdapter() const {return NULL;}
virtual CArcCADEntFilRoadAdapter* ToArcAdapter() const {return NULL;}
BOOL IsStartLinked() const { return m_linkFlag&eStart;}
BOOL IsEndLinked() const {return m_linkFlag&eEnd;}
BOOL IsLinkOver() const {return m_linkFlag == eAll;}
void SetStartLink() {m_linkFlag |= eStart;}
void SetEndLink(){m_linkFlag |= eEnd;}
void Erase();
virtual void Redraw(EEntType eType) = 0;
protected:
CCADEnt *m_pEnt;
BOOL m_bRecreate;
int m_linkFlag; // 表示是否已经关联。
};
class CLineCADEntFilRoadAdapter : public CCADEntFilRoadAdatper
{
public:
CLineCADEntFilRoadAdapter(CLineCADEnt *pEnt);
~CLineCADEntFilRoadAdapter();
AcGeLineSeg2d OriginSeg() const;
AcGeLineSeg2d CurrSeg() const{return m_lineDump;}
void Reset(BOOL bStart, const AcGePoint2d &pt);
virtual CLineCADEntFilRoadAdapter* ToLineAdapter() const {return (CLineCADEntFilRoadAdapter* )this;}
virtual void Redraw(EEntType eType);
protected:
// 储存的,用来更新CADEnt的数据。
AcGeLineSeg2d m_lineDump;
};
class CArcCADEntFilRoadAdapter : public CCADEntFilRoadAdatper
{
public:
CArcCADEntFilRoadAdapter(CArcCADEnt *pEnt);
~CArcCADEntFilRoadAdapter();
AcGeCircArc2d OriginSeg () const;
AcGeCircArc2d CurrSeg () const {return m_arcDump;}
void Reset(BOOL bStart, const AcGePoint2d &pt);
virtual CArcCADEntFilRoadAdapter* ToArcAdapter() const {return (CArcCADEntFilRoadAdapter*)this;}
virtual void Redraw(EEntType eType);
protected:
// 储存的,用来更新CADEnt的数据。
AcGeCircArc2d m_arcDump;
};
// road
typedef AcArray<CCADEntFilRoadAdatper*> ArFilroadAdatperPointer;
typedef AcArray<CLineCADEntFilRoadAdapter*> ArLineFilroadAdapterPointer;
typedef AcArray<CArcCADEntFilRoadAdapter*> ArArcFilroadAdapterPointer;