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

50 lines
1.5 KiB
C++

// 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<CFilroadConnectGroup*> ArFilroadGroupPointer;