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

52 lines
1.4 KiB
C++

#ifndef _CDRAWSECTIONSYMBOL_H__
#define _CDRAWSECTIONSYMBOL_H__
#include "DataContainer.h"
#include <set>
class CDrawSectionSymbol
{
public:
CDrawSectionSymbol();
void SetDataContainer(CDataContainer *pData);
bool DrawPipe(const AcDbObjectId& idPipe, AcDbEntity*& pOutEnt);
bool DrawText(const AcGePoint3d &ptLoc, LPCTSTR pszText, BOOL bDir, AcDbEntity*& pOutText);
bool DrawArrow(AcDbEntity*& pArrow);
bool DrawDivision(AcDbVoidPtrArray& arPtr);
bool DrawRoadway(AcDbPolyline*& pOutLine, AcDbVoidPtrArray& arSplitLine, AcDbVoidPtrArray& arSubPtr, BOOL bCreateSub);
bool DrawRoadDist(AcDbVoidPtrArray& arPtr);
private:
bool IsIntersect(const AcDbLine &line1, const AcDbLine &line2, AcGePoint3d &ptInt);
bool DrawLabel(const AcGePoint3dArray &arPt, AcDbVoidPtrArray& arPtr);
bool DrawNameInfo(const AcGePoint3d &ptIns, AcDbVoidPtrArray& arPtr, bool bGeneral = false);
bool DrawWayBorder(const AcGePoint3d &ptL, const AcGePoint3d &ptR, AcDbVoidPtrArray& arPtr);
bool DrawPipeInfo(const std::map<AcDbObjectId, AcGePoint3d>& mapData, AcDbVoidPtrArray& arPtr);
bool GetWayInfo(double &dWayWidth, std::set<double> &setWay, bool bMidPt = false);
bool GetScaleXY(double &dX, double &dY);
bool GetMaxVal(double &dMax); // 获取道牙最大值
private:
CDataContainer* m_pmapData; // 道路信息
std::map<AcDbObjectId,AcGePoint3d> m_mapPipe; // 用于保存管线id和管线与横断面的交点
};
#endif