Files
envi-code/SourceCode/Code2026/tg_shs/shs_annotate/RoadElevStyle.h
T

41 lines
2.5 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 "SymbolAnnotateJig.h"
#include "TRoadGradeArrowJig.h"
class CRoadElevStyle
{
public:
enum ReturnValue{ kRetContinue, kRetEsc, kRetDynamicStyle };
CRoadElevStyle();
~CRoadElevStyle();
int SelectStyle(TDbSymbElevation *pSymbElevEnt);
2026-10-04 00:04:20 +08:00
CString CalcElevData(XPoly2D &RoadBaseLine, XPoint ptSelect); //计算标高
void FindClosePoint(XPoly2D &RoadBaseLine, TDbSymbElevation *pSymbElev, XPoint &ptShort, int iNum);//找出最近的投影点,就是正确的投影点
2026-09-28 15:28:50 +08:00
private:
2026-10-04 00:04:20 +08:00
bool JudgeSelectRoadElevation(PickSet &ss); //判断选择的标高是否满足规定的个数
int SelectRoadBaseLine(PickSet &ssRoadBaseLine, XPoly2D &roadBaseLine); //选择道路基准线
bool JudgeRoadBaseLineIsContinue(const PickSet &ssRoadBaseLine, XPoly2D &roadBaseLine2d);//判断选择道路基准线是否连续
void InputBaseLineGrade(); //只选择了一个标高对象,输入“W”,输入坡度处理
//判断标高是否在选择的线上
2026-09-28 15:28:50 +08:00
bool JudgeElevationOnRoadCenter(const XPoly2D &roadCenterLine2d, const PickSet &ssElevation);
2026-10-04 00:04:20 +08:00
TDbSymbElevation* GetFirstElevEnty(const PickSet &ss); //获取第一个实体对象
void AutoMendElev(PickSet& ss, XPoly2D &RoadBaseLine, int iNum); //更改标高
void GetBaseLinept(PickSet& ss); //获取道路基线的起点终点
2026-09-28 15:28:50 +08:00
bool GetDefaultLine(const PickSet ssElevation, XPoly2D &polyDefalutLine);
private:
2026-10-04 00:04:20 +08:00
static double m_dRoadGrade; //坡度
static int m_iRoadGradePrecision; //坡度精度 add tyj 20160906
static double m_dStartElevation; //起点标高值
static double m_dEndElevation; //最后一个点的标高值
static double m_dRoadLenth; //投影点间的道路长度
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
static XPoint m_ptProjectStart; //第一个标高投影点坐标
static XPoint m_ptProjectend; //最后一个标高投影点坐标
static XPoint m_ptElevStart; //第一个标高点坐标
static XPoint m_ptElevEnd; //第二个标高点坐标
static XPoint m_ptBaselineStart; //道路基线起点
static XPoint m_ptBaseLineEnd; //道路基线终点
static bool m_bsingleElev; //只点取了一个标高
static bool m_bSelectRoadLine; //道路中心线
2026-09-28 15:28:50 +08:00
};