// 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 ArFilroadAdatperPointer; typedef AcArray ArLineFilroadAdapterPointer; typedef AcArray ArArcFilroadAdapterPointer;