Files
envi-code/SourceCode/Code2026/tg_shs/shs_siteplan/RoadFillterMgr.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

79 lines
2.4 KiB
C++

// Copyright (C), 1998-2007, Beijing Tangent Engineering Software Co. Ltd.
// = FileName: RoadFillterMgr.h
// = Version: 8.5
// = Author: lgh
// = Date: 2010-10-21 15:37:33
// = Description: 用来管理道路倒角的类型。
// = Maintainers:
#pragma once
#include "commonRoad.h"
#include "CADEnt.h" // for arEnt
#include "CADEntFilRoadAdapter.h" // for ArFilRoadAdapter
#include "FilroadConnect.h" // for ArFilroadConnect
#include "FilroadConnectGroup.h" // for ArFilroadConnectGroup
class CRoadFillterMgr
{
public:
CRoadFillterMgr(void);
~CRoadFillterMgr(void);
// 判断两个交点是否可以做同圆心倒角的限制。
double SameCenterTol() const{return m_dRadius*2.0;}
// 选择道路数据
BOOL SelectRoad();
// 生成filroadConnect实体
void MakeFilroadConnect();
// 编组
void GroupConnect();
// 执行生成
BOOL FilltRoad();
// 重新绘制。
void Draw();
BOOL IsSameCenter() const {return m_bSameCenter;}
static CString PromptSelectString(BOOL bSameCenter, double dRadiusMM);
static CString PromptRadiusString(double dRadiusSys);
void ReleaseMem();// 释放所分配的内存
private:
static void MakeFilroadConnect (ArLineFilroadAdapterPointer &arLineAdatper,
ArArcFilroadAdapterPointer &arArcAdapter,
ArFilroadConnectPointer &arConnect);
// 识别图面上已经倒角的道路边线,需要对他们做重新倒角的处理
static void IdentifyOldFilterConnect(ArLineFilroadAdapterPointer &arLineAdatper,
ArArcFilroadAdapterPointer &arArcAdapter,
ArFilroadConnectPointer &arConnect);
private:
// 原始线。
// 对CAD数组中元素的引用要密切的关注。
ArLineEntPointer m_arEdgeLine;
ArArcEntPointer m_arEdgeArc;
ArLineEntPointer m_arMidLine;
ArArcEntPointer m_arMidArc;
// 原始数据适配类。
ArLineFilroadAdapterPointer m_arEdgeLineAdapter;
ArArcFilroadAdapterPointer m_arEdgeArcAdapter;
ArLineFilroadAdapterPointer m_arMidLineAdapter;
ArArcFilroadAdapterPointer m_arMidArcAdapter;
// filRoadConnect;
ArFilroadConnectPointer m_arFilroadEdgeConnect;
ArFilroadConnectPointer m_arFilroadMidConnect;
// filRoadGroup;
ArFilroadGroupPointer m_arFilroadGroup;
ArFilroadGroupPointer m_arFilroadGroupMid; // 中线,仅仅用来绘制,同圆心时控制绘制。
AcAryCircArc2d m_arEdgeInterCircle; // 边线倒角
AcAryCircArc2d m_arMidInterCircle; // 中线倒角。
BOOL m_bSameCenter;// 是否要求同圆心处理
double m_dRadius;//
};