// Copyright (C), 1998-2007, Beijing Tangent Engineering Software Co. Ltd. // = FileName: FilroadConnectGroup.h // = Version: 8.5 // = Author: lgh // = Date: 2010-10-22 16:49:35 // = Description: 组织管理CFilroadConnect,检测分组,检测组内是否可以进行同圆心倒角。 // = Maintainers: #pragma once #include "FilroadConnect.h" class CFilroadConnectGroup { public: CFilroadConnectGroup(void); CFilroadConnectGroup(CFilroadConnect *pConnect, BOOL bMid); ~CFilroadConnectGroup(void); static void SetSameCenterLimit(double dDis){m_dDis = dDis;} static double DisLimit() {return m_dDis;} // 添加一个connect到组内。 void AddConnect(CFilroadConnect *pConnect); // 合并另一个组connect到组内。 void AddGroup(CFilroadConnectGroup &ohterGroup); // 检测一个点是否能够添加到组内。 BOOL CheckAConnect(CFilroadConnect *pConnect); BOOL Draw(double dRaidus, AcAryCircArc2d &arEdgeArc, AcAryCircArc2d &arMidArc); // 检测某connect是否是拐角道路的中线。 // 如果该group不是拐角,直接返回false; BOOL CheckInsideMidConnect(CFilroadConnect *pConnect); // 添加一个中线connect到组内。 void AddMidConnect(CFilroadConnect *pConnect); // 检测当前组是否是双线道路拐角 BOOL TestCornerRoad(CFilroadConnect *&pConnectOut, CFilroadConnect *& pConnectIn) const; private: ArFilroadConnectPointer m_arConnect; ArFilroadConnectPointer m_arMidConnect; BOOL m_bSameRadius; static BOOL m_bForceSameRadius;// 强制的同圆心处理,只检测方向不检测距离。 static double m_dDis; }; typedef AcArray ArFilroadGroupPointer;