#pragma once #include #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> TypeRooms; typedef std::map> 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 &nodeDims, bool includeFire); void collectNodeInfo_Statistic(AcDbObjectId idEw, std::vector &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(); }