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

66 lines
2.9 KiB
C++

#ifndef AFX_C_3D_SIMULATION_DLG_H_20191223_INCLUDE_H
#define AFX_C_3D_SIMULATION_DLG_H_20191223_INCLUDE_H
#pragma once
// C2DSimulationDlg 对话框
#define WM_MSG_UPDATE_CROSSHOLEMAINWND_BTN WM_USER+1000
class C3DSimulationDlg : public CDialog
{
DECLARE_DYNAMIC(C3DSimulationDlg)
public:
// 对话框数据
enum { IDD = IDD_DIALOG_SIMULATION_BOARD };
static C3DSimulationDlg* GetInstance();
void AddBoreholePointToVector(map<STWellPoints, vector<STBoreHolePoints>> mapNewPoint); //将坐标点添加到井下集合
void AddSurfaceXPointsToVector(map<int, std::vector<STBoreHolePoints>> mapXNewPoints); //将坐标点添加到地表集合
void AddSurfaceYPointsToVector(map<int, std::vector<STBoreHolePoints>> mapYNewPoints); //将坐标点添加到地表集合
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 支持
float CalcMaxCableLength(); //计算X/Y/Z线缆最大长度
DECLARE_MESSAGE_MAP()
private:
C3DSimulationDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~C3DSimulationDlg();
//模拟脚本跑极方式
static UINT SimulateScriptRunMethodThread(LPVOID lParam);
//用户保存需要绘制的点
map<STWellPoints, vector<STBoreHolePoints>> m_mapBoreholePoints; //STWellPoints存放X/Y坐标,vector<STBoreHolePoints>存放井电极坐标
std::map<int, std::vector<STBoreHolePoints>> m_mapSurfaceXPoints; //地表X方向坐标
std::map<int, std::vector<STBoreHolePoints>> m_mapSurfaceYPoints; //地表Y方向坐标
BOOL m_bStopSimulation; //停止模拟
int m_iA;
int m_iB;
int m_iM;
int m_iN;
int m_iTimeInterval; //模拟跑极间隔
CRect m_rcWnd; //模拟器窗口大小
CRect m_rcBrush; //绘制电缆示意图区域
float m_fMaxCableLength; //X/Y/Z三个方向线缆最大长度
int m_iEachSmallSize; //每个单元格对应的像素
BOOL m_isNeedCalc; //是否需要计算值
CFont* m_pFont; //绘制字体大小
vector<STDatabaseABMNInfo> m_vecAllBoreholeABMNInfo; //单通道ABMN信息
map<int, map<int, map<int, STDatabaseABMNInfo>>> m_mapPointsSortedByABMN; //存放写入数据库ABMN信息,用于多通道,第一个int用于存放A,第二个int用于存放B,第三个int对应M,改变了的作用主要是用来控制多通道/单通道测点跑极方式的
};
#endif