Files
envi-code/SourceCode/Code2026/tg_shs/shs_siteplan/FilroadConnectGroup.h
T

50 lines
1.6 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
// Copyright (C), 1998-2007, Beijing Tangent Engineering Software Co. Ltd.
2026-09-28 15:28:50 +08:00
// = FileName: FilroadConnectGroup.h
// = Version: 8.5
// = Author: lgh
// = Date: 2010-10-22 16:49:35
2026-10-04 00:04:20 +08:00
// = Description: 组织管理CFilroadConnect,检测分组,检测组内是否可以进行同圆心倒角。
2026-09-28 15:28:50 +08:00
// = 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;}
2026-10-04 00:04:20 +08:00
// 添加一个connect到组内。
2026-09-28 15:28:50 +08:00
void AddConnect(CFilroadConnect *pConnect);
2026-10-04 00:04:20 +08:00
// 合并另一个组connect到组内。
2026-09-28 15:28:50 +08:00
void AddGroup(CFilroadConnectGroup &ohterGroup);
2026-10-04 00:04:20 +08:00
// 检测一个点是否能够添加到组内。
2026-09-28 15:28:50 +08:00
BOOL CheckAConnect(CFilroadConnect *pConnect);
BOOL Draw(double dRaidus, AcAryCircArc2d &arEdgeArc, AcAryCircArc2d &arMidArc);
2026-10-04 00:04:20 +08:00
// 检测某connect是否是拐角道路的中线。
// 如果该group不是拐角,直接返回false;
2026-09-28 15:28:50 +08:00
BOOL CheckInsideMidConnect(CFilroadConnect *pConnect);
2026-10-04 00:04:20 +08:00
// 添加一个中线connect到组内。
2026-09-28 15:28:50 +08:00
void AddMidConnect(CFilroadConnect *pConnect);
2026-10-04 00:04:20 +08:00
// 检测当前组是否是双线道路拐角
2026-09-28 15:28:50 +08:00
BOOL TestCornerRoad(CFilroadConnect *&pConnectOut, CFilroadConnect *& pConnectIn) const;
private:
ArFilroadConnectPointer m_arConnect;
ArFilroadConnectPointer m_arMidConnect;
BOOL m_bSameRadius;
2026-10-04 00:04:20 +08:00
static BOOL m_bForceSameRadius;// 强制的同圆心处理,只检测方向不检测距离。
2026-09-28 15:28:50 +08:00
static double m_dDis;
};
typedef AcArray<CFilroadConnectGroup*> ArFilroadGroupPointer;