79 lines
2.3 KiB
C++
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; |