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

85 lines
2.8 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#include "roaddatacenternew.h"
#include "RoadEdgeCreater.h"
#include "TDbRoadEntity.h"
#include "LandScapeStyle.h"
2026-10-04 00:04:20 +08:00
//创建景观路及选择实体
2026-09-28 15:28:50 +08:00
class CLandScapeDataCenterNew :
public CRoadDataCenterNew
{
public:
CLandScapeDataCenterNew(void);
~CLandScapeDataCenterNew(void);
2026-10-04 00:04:20 +08:00
// 添加道路,直线型,或者弧线型。
2026-09-28 15:28:50 +08:00
void AddLineRoad(const CLineRoad &lineRoad);
void AddArcRoad(const CArcRoad &arcRoad);
void RoolBack();
protected:
2026-10-04 00:04:20 +08:00
// 改变选择实体的方式
2026-09-28 15:28:50 +08:00
static void SelectEntInCAD(const AcGePoint2d &ptLeftDown, const AcGePoint2d &ptRightUp,
AcAryLineEntEdgeAdapterPtr &lineEdges, AcAryArcEntEdgeAdapterPtr &arcEdges,
AcAryLineEntEdgeAdapterPtr &lineMids, AcAryArcEntEdgeAdapterPtr &arcMids);
2026-10-04 00:04:20 +08:00
//处理截取的道路边线
2026-09-28 15:28:50 +08:00
static void CreateRoadEdgeStruct(ROAD_EDGE_STRUCT &res);
AcDbObjectIdArray m_arrGroupId;
};
class CLineLandScapeEdgeCreater : public CLineRoadEdgeCreater
{
public:
CLineLandScapeEdgeCreater (const CRoad *pRoad,
AcAryInterStructPointer &leftInterStruct, AcAryInterStructPointer &rightInterStruct,
AcAryInterStructPointer &leftInterStructin, AcAryInterStructPointer &rightInterStructin,
AcAryInterStructPointer &leftInterStructMid, AcAryInterStructPointer &rightInterStructMid,
CFilterMode &leftFilterMode, CFilterMode &rightFiltMode);
~CLineLandScapeEdgeCreater(){}
protected:
2026-10-04 00:04:20 +08:00
void DrawRoadEdge();// 绘制道路时添加图块及设置边线是否显示
2026-09-28 15:28:50 +08:00
};
class CArcLandScapeEdgeCreater : public CArcRoadEdgeCreater
{
public:
CArcLandScapeEdgeCreater (const CRoad *pRoad, AcAryInterStructPointer &leftInterStruct, AcAryInterStructPointer &rightInterStruct,
AcAryInterStructPointer &leftInterStructin, AcAryInterStructPointer &rightInterStructin,
AcAryInterStructPointer &leftInterStructMid, AcAryInterStructPointer &rightInterStructMid,
CFilterMode &leftFilterMode, CFilterMode &rightFiltMode);
~CArcLandScapeEdgeCreater(){}
protected:
2026-10-04 00:04:20 +08:00
void DrawRoadEdge(); // 绘制道路时添加图块及设置边线是否显示
2026-09-28 15:28:50 +08:00
};
2026-10-04 00:04:20 +08:00
//初始化道路参数
2026-09-28 15:28:50 +08:00
class TDbArcLandScapeEntity : public TDbArcRoadEntity
{
DECLARE_TENTBASE();
public:
ACRX_DECLARE_MEMBERS(TDbArcLandScapeEntity);
TDbArcLandScapeEntity(){}
virtual ~TDbArcLandScapeEntity(void){}
void SetHalfWid(double dHalfWid);
public:
CArcRoad* CreateArcRoad(CLandScapeStyle *pLandStyle);
void SetArcRoad(const AcGePoint2d &ptFir, const AcGePoint2d &ptThir, const AcGePoint2d &ptEnd, CLandScapeStyle *pLandStyle);
};
class TDbLineLandScapeEntity : public TDbLineRoadEntity
{
DECLARE_TENTBASE();
public:
ACRX_DECLARE_MEMBERS(TDbLineLandScapeEntity);
TDbLineLandScapeEntity(){}
virtual ~TDbLineLandScapeEntity(void){}
void SetHalfWid(double dHalfWid);
public:
CLineRoad* CreateLineRoad(CLandScapeStyle *pLandStyle);
void SetLineRoad(const AcGePoint2d &ptStart, const AcGePoint2d &ptEnd, CLandScapeStyle *pLandStyle);
};