66 lines
2.9 KiB
C++
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 |