86 lines
2.8 KiB
C++
86 lines
2.8 KiB
C++
#pragma once
|
|
#include "roaddatacenternew.h"
|
|
#include "RoadEdgeCreater.h"
|
|
#include "TDbRoadEntity.h"
|
|
#include "LandScapeStyle.h"
|
|
//创建景观路及选择实体
|
|
class CLandScapeDataCenterNew :
|
|
public CRoadDataCenterNew
|
|
{
|
|
public:
|
|
CLandScapeDataCenterNew(void);
|
|
~CLandScapeDataCenterNew(void);
|
|
// 添加道路,直线型,或者弧线型。
|
|
void AddLineRoad(const CLineRoad &lineRoad);
|
|
void AddArcRoad(const CArcRoad &arcRoad);
|
|
void RoolBack();
|
|
protected:
|
|
// 改变选择实体的方式
|
|
static void SelectEntInCAD(const AcGePoint2d &ptLeftDown, const AcGePoint2d &ptRightUp,
|
|
AcAryLineEntEdgeAdapterPtr &lineEdges, AcAryArcEntEdgeAdapterPtr &arcEdges,
|
|
AcAryLineEntEdgeAdapterPtr &lineMids, AcAryArcEntEdgeAdapterPtr &arcMids);
|
|
//处理截取的道路边线
|
|
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:
|
|
|
|
void DrawRoadEdge();// 绘制道路时添加图块及设置边线是否显示
|
|
|
|
};
|
|
|
|
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:
|
|
|
|
void DrawRoadEdge(); // 绘制道路时添加图块及设置边线是否显示
|
|
};
|
|
|
|
//初始化道路参数
|
|
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);
|
|
|
|
};
|
|
|
|
|