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

237 lines
7.4 KiB
C++

#if !defined(AFX_ELEVATIONCALCDLG_H__7FD7994C_3081_40B3_9897_4DC29534FC6F__INCLUDED_)
#define AFX_ELEVATIONCALCDLG_H__7FD7994C_3081_40B3_9897_4DC29534FC6F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "resource.h"
#include <set>
#include "ElevationCalc.h"
#include "WDGrid.h"
//#include "LayDepthData.h"
class ElevationCalc;
class CElevationCalcDlg;
class CElevationCalcGrid:public WDGrid
{
public:
CElevationCalcGrid();
void SetWnd(CElevationCalcDlg* pWnd);
void SetPipeRow(const std::map<AcDbObjectId, int> &data);
void SetColorPipe(const std::vector<AcDbObjectId> &data);
void SetRowforEndWell(int nRow); // 排出井所在行号
void SetModifyColorforEndWell(BOOL bModify);
// void SetDropWell(const std::vector<CString> &data); // 2011.7.26 add
// 跌水井对应颜色设置 cet 2011.11.28 add
void setWellColor(const std::map<CString,int> &mapWellColor);
// 跌水井提示信息 cet 2011.11.28 add
void setWellTip(const std::map<CString,CString> &mapWellTip);
protected:
virtual void OnDblClick(WDGridRow&row);
virtual bool OnModified(WDGridCell&cell,CString &text);
virtual void OnBeforeRefresh(WDGridCell&cell);
virtual void OnCellComboString(WDGridCell&cell,CComboBox&combo); // cet 2011.6.16 add
virtual BOOL PreTranslateMessage(MSG* pMsg); // cet 2011.7.26 add
protected:
//{{AFX_MSG(CElevationCalcGrid)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void SetToolTipText(LPCTSTR pspText, BOOL bActivate); // cet 2011.7.26 add
private:
CElevationCalcDlg *m_pWnd;
std::map<AcDbObjectId, int> m_mapRow; // 管段对应的行号 用于根据管段选择行号操作
std::set<int> m_setRow; // 行号用于改变此行管段颜色
int m_nRowForEndWell; // 排出井行号
BOOL m_bModifyColor; // 是否改变排出井颜色
// std::vector<CString> m_vecWellName; // 跌水井 cet 2011.7.26 add
std::map<CString,int> m_mapWellColor; // 跌水井及对应颜色值 cet 2011.11.28 add
std::map<CString,CString> m_mapWellTip;// 跌水井及对应提示 cet 2011.11.28 add
CToolTipCtrl m_ToolTip; // cet 2011.7.26 add
};
// 图面赋值时需要的井信息
typedef struct
{
AcDbObjectId id;
CString strWellName; // 名称
BOOL bIsDropWell; // 是否为跌水井
double dGroundEle; // 自然地面标高
double dWellRadius; // 井半径
double dSand; // 沉沙量
double dWellEleDown; // 井底标高
double dWellEleUp; // 起点井地面标高
double dLayingDepth; // 埋深
BOOL bSysSWell; // 系统起点井
BOOL bWell; // 井时为真,化粪池时为假
}WELLNODE;
class ElevationCalcError;
class CElevationCalcDlg : public CDialog
{
public:
CElevationCalcDlg(CWnd* pParent = NULL);
~CElevationCalcDlg();
void SetPipeSysList(SSearchPipeList *pList);
void DblClickLst(); // WGrid双击事件
void UpdatePipeInfo(long nRow, long nCol, double dVal);
void UpdateWellNode(); // 自动计算完成时更新井信息
void UpdateGrid();
// 管网是否已经计算过
void SetCalced(BOOL bCalced);
void SetPipeType(CString &sPipeLayer); //zxl 2011.11.29 add 获取管线类型
CString GetPipeType(); //zxl 2011.11.29 add
void SetDropWellByCalc(AcDbObjectId &id); //计算中产生的跌水井
//{{AFX_DATA(CElevationCalcDlg)
enum { IDD = IDD_CALC_ELEVATION };
CElevationCalcGrid m_lstCtrl;
double m_dWndEdtLayingDepth;
double m_dMinThick;
BOOL m_bWndChkReverseCalc;
BOOL m_bWndChkLayingDepth;
BOOL m_bWndChkMinThick;
CString m_strPipeEleDown;
//}}AFX_DATA
//{{AFX_VIRTUAL(CElevationCalcDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
protected:
//{{AFX_MSG(CElevationCalcDlg)
virtual BOOL OnInitDialog();
afx_msg void OnBtnModifyele();
afx_msg void OnBtnCalc();
afx_msg void OnBtnLayingdepth();
afx_msg void OnBtnTodwg();
afx_msg void OnBtnTable();
afx_msg void OnCheckEdownele();
afx_msg void OnBtnLook();
afx_msg void OnChangeEditStartdeep();
afx_msg void OnChangeEditMinthick();
afx_msg void OnClose();
virtual void OnCancel();
afx_msg void OnChangeEditEnddownele();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
void GetWellNodeInfo(); // 获得图面赋值时需要的井信息
void ShowPipe(AcDbObjectId &idPipe); // 显示管段
void UpdateWellNode(const AcDbObjectId &id, double dGroundEle, double dEleUp, double dWellRadius, double dSand, double dEleDown, BOOL bDrop); // 修改井标高时更新井信息
void UpdateWellNode(const CalcNode &node); // 自动计算时需更新井信息(跌水井、井底标高)
void UpdateWellNode(const AcDbObjectId &id, double dLayingDepth); // 修改井埋设深度时更新系统起点井的埋设深度
AcDbObjectId InsertWellDim(const XPoint &pt, const CString &strText);
void UpdateWellDim(const AcDbObjectId &idDim, const CString &strText);
XPoint GetWellpt(const AcDbObjectId &id);
XPoint GetWellLayingDepthDimPt(const AcDbObjectId &id);
double GetWellEleDown(const AcDbObjectId &id); // 通过计算连接井的各管道的最小管道标高 得到井底标高
void ShowWellDim(BOOL bShow);
void DeleteWellDim();
void UpdateWellDim();
void UpdateGroundEleForGrid(); // 更新表格中的地面标高值
bool isDropWell(int nIndex, const std::vector<CALCNODE> data); // 判断管段终点井是否是跌水井 cet 2011.6.20 add
void GetDropWell(std::vector<CString> &vecWellName); // cet 2011.7.26 add 获取跌水井
void SetDropWellColor(); // cet 2011.7.26 add 改变计算过程中产生的跌水井的颜色
bool GetWellDropHeight(AcDbObjectId &id, CString &sWellDorp); // zxl 2011.11.15 add 计算井的跌落高度
void GetDropWellEle(std::vector<CString> &vecWell, std::map<CString, double> &mapEle);//获取跌水井井底标高
void UpdateDropWellByCustom(std::map<CString, double> &mapEle, std::vector<CString> &vecCalc);//设置计算后生成的跌水井
// 初始化起点井埋深数据 cet 2012.6.21 add
void InitSWellLayDepth();
// 井面标高 cet 2012.6.21 add
double GetWellEleUp(const AcDbObjectId &id);
// 获得埋深类型和值 cet 2012.6.21 add
void GetLayDepthData(const CString &sLayDepth, LayingDepthType &type, double &dLayDepth);
// 修改特定井的时更新埋深 cet 2012.6.21 add
void UpdatelayDepthData(const AcDbObjectId &idWell, double dLayDepth);
// 计算完成时更新埋深 cet 2012.6.21 add
void UpdatelayDepthData();
// 将埋深数据写入井的扩展数据中 cet 2012.6.21 add
void WriteXDataToWell();
// 获得井底标高 cet 2012.6.21 add
double GetWellEleDown2(const AcDbObjectId &id);
// 当管网在命令执行前已经计算过时,直接获取管网信息
void UpdateCalcedData();
private:
SSearchPipeList *m_pAllList;
std::vector<WELLNODE> m_vecWellInfo; // 图面赋值时井信息
std::map<AcDbObjectId,AcDbObjectId> m_mapWellDim;
BOOL m_bCalc; // 是否进行了标高计算
ElevationCalc *m_pElevationCalc;
ElevationCalc* m_pPositiveCalc; // 正算类
ElevationCalc* m_pReverseCalc; // 反算类
std::vector<CString> m_vecWellName; // cet 2011.7.26 add 记录跌水井
CString m_sPipeType;//zxl 2011.11.29 add 记录管线类型
std::map<AcDbObjectId,LayingDepthNode> m_mapSWellLayDepth; // 系统起点井埋深值及埋深类型 cet 2012.6.21 add
bool m_bFirstRunCmd; // 是否是第一次执行命令 cet 2012.6.21 add
bool m_bOnlySWell; // 是否只有一个起点井 cet 2012.6.26 add
};
#endif // !defined(AFX_ELEVATIONCALCDLG_H__7FD7994C_3081_40B3_9897_4DC29534FC6F__INCLUDED_)