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