Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

57 lines
2.4 KiB
C++

#ifndef AFX_C_2D_SIMULATION_DLG_H_20191223_INCLUDE_H
#define AFX_C_2D_SIMULATION_DLG_H_20191223_INCLUDE_H
#pragma once
// C2DSimulationDlg 对话框
#define WM_MSG_UPDATE_CROSSHOLEMAINWND_BTN WM_USER+1000
class C2DSimulationDlg : public CDialog
{
DECLARE_DYNAMIC(C2DSimulationDlg)
public:
// 对话框数据
enum { IDD = IDD_DIALOG_SIMULATION_BOARD };
static C2DSimulationDlg* GetInstance();
void AddBoreholePointToVector(std::map<STWellPoints, std::vector<STBoreHolePoints>> mapNewPoints); //将坐标点添加到井下集合
void AddSurfacePointsToVector(std::vector<STBoreHolePoints> vecNewPoints); //将坐标点添加到地表集合
void DeleteCoordinatesPoint();
//设置时间间隔
void SetTimeInterval(int iTimeInterval);
//获取整个测试列表
void SetSingleChannelSimulationRunMethod(vector<STDatabaseABMNInfo> vecAllBoreholeABMNInfo);
void SetMultiChannelSimulationRunMethod(map<int, map<int, map<int, STDatabaseABMNInfo>>> mapPointsSortedByABMN);
BOOL StartSimulation(); //开始模拟
BOOL StopSimulation(); //结束模拟
BOOL IsSimulating(); //是否正在模拟中
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
private:
C2DSimulationDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~C2DSimulationDlg();
//模拟脚本跑极方式
static UINT SimulateScriptRunMethodThread(LPVOID lParam);
//用户保存需要绘制的点
std::map<STWellPoints, std::vector<STBoreHolePoints>> m_mapBoreholePoints; //保存井下所有的点,,int存放X用于区分是否在同一个孔
std::vector<STBoreHolePoints> m_vecSurfacePoints; //地表所有的点,只有一条测线
BOOL m_bStopSimulation; //停止模拟
int m_iA;
int m_iB;
int m_iM;
int m_iN;
int m_iTimeInterval; //模拟跑极间隔
CRect m_rcWnd; //模拟器窗口大小
CRect m_rcBrush; //绘制电缆示意图区域
vector<STDatabaseABMNInfo> m_vecAllBoreholeABMNInfo; //单通道ABMN信息
map<int, map<int, map<int, STDatabaseABMNInfo>>> m_mapPointsSortedByABMN; //多通道ABMN信息,第一个int用于存放A,第二个int用于存放B,第三个int对应M,改变了的作用主要是用来控制多通道/单通道测点跑极方式的
};
#endif