56 lines
1.2 KiB
C++
56 lines
1.2 KiB
C++
#pragma once
|
|
#include <set>
|
|
|
|
#include "EarThwormDef.h"
|
|
namespace MK_DIM
|
|
{
|
|
struct NodeDim
|
|
{
|
|
enum ENodeType
|
|
{
|
|
eDrainWell = 0, // 集水井
|
|
eDoghouse, // 料口
|
|
eVenDoghouse, // 通风口
|
|
eFireWall, // 防火墙
|
|
eEscapeHatch, // 逃生口
|
|
eOutlet, // 分支口
|
|
eEspJoint, // 变形缝
|
|
eNone,
|
|
};
|
|
|
|
struct _com_by_dist{ bool operator () (NodeDim &a, NodeDim &b) { return a.distFromHead < b.distFromHead; } };
|
|
|
|
typedef std::map<ENodeType, std::set<CString>> TypeRooms;
|
|
typedef std::map<CString, std::set<ENodeType>> RoomTypes;
|
|
|
|
AcGePoint3d pntIns;
|
|
// 节点类型-拥有此类节点的舱室数组
|
|
TypeRooms type_rooms;
|
|
RoomTypes room_types;
|
|
AcGeVector3d vt;
|
|
CString stake;
|
|
//节点名称
|
|
CString name;
|
|
// 从管廊起点到节点的距离
|
|
double distFromHead;
|
|
AcDbObjectId idEw;
|
|
};
|
|
|
|
void collectNodeInfo_Dim(AcDbObjectId idEw, std::vector<NodeDim> &nodeDims, bool includeFire);
|
|
void collectNodeInfo_Statistic(AcDbObjectId idEw, std::vector<NodeDim> &nodeDims, bool includeFire);
|
|
|
|
CString getNodeName(const NodeDim::ENodeType &type);
|
|
|
|
NodeDim::ENodeType getNodeType(const EFnctType &type);
|
|
|
|
NodeDim::ENodeType getNodeType(LPCTSTR psz);
|
|
|
|
}
|
|
|
|
namespace MK_DIM
|
|
{
|
|
void insertFireWallDim();
|
|
|
|
void insertNodeDim();
|
|
}
|