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

71 lines
2.9 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef C_CROSSHOLE_CONFIG_3D_MAIN_DLG_H_20190716
#define C_CROSSHOLE_CONFIG_3D_MAIN_DLG_H_20190716
#pragma once
#include "afxcmn.h"
#include "CtrlProtocolDef.h"
#include "crossHole/COption3DBoreholeDlg.h"
#include "crossHole/COption3DGeometryDlg.h"
#include "crossHole/COption3DSurfaceDlg.h"
#include "crossHole/COption3DSettingDlg.h"
#include "crossHole/CCrosshole3dDrawingBoardDlg.h"
// CCrossHoleConfig3DMainDlg 对话框
class CCrossHoleConfig3DMainDlg : public CDialog
{
DECLARE_DYNAMIC(CCrossHoleConfig3DMainDlg)
public:
static CCrossHoleConfig3DMainDlg* GetInstance();
virtual BOOL OnInitDialog();
afx_msg void OnTcnSelchangeTabArChange(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedBtnLoadGeometry();
afx_msg void OnBnClickedBtnCreate();
afx_msg void OnBnClickedBtnStartSimulation();
afx_msg void OnBnClickedBtnStopSimulation();
afx_msg void OnBnClickedBtnClose();
afx_msg void OnDestroy();
LRESULT OnMsgCrossHoleMainWndBtn(WPARAM wParam, LPARAM lParam);
// 对话框数据
enum { IDD = IDD_DIALOG_3D_CROSS_HOLE_CONFIG };
void ChangeTabPage(EN_TAB_PAGE pageType, std::vector<STBoreHolePoints> vecPoints,STBoreHoleParam stBoreholeParam);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
//计算L值
std::vector<int> CalcLValue(std::vector<STBoreHolePoints> vecPointBH1, std::vector<STBoreHolePoints> vecPointBH2);
//生成测试点
void TwoBoreholeGenerateScript(std::vector<STBoreHolePoints> vecPointBH1, std::vector<STBoreHolePoints> vecPointBH2);
//写入数据库
BOOL SaveTestPointToDB();
//四井 AM装置生成测点
void OneBoreHoleGenerateScriptAM(std::map<int,std::vector<STBoreHolePoints>> mapPointBH);
void OneBoreHoleGenerateScriptAM(std::vector<STBoreHolePoints> vecPointBH);
void TwoBoreHoleGenerateScriptAM(int iDirectionType,std::vector<STBoreHolePoints> vecPointBH1, std::vector<STBoreHolePoints> vecPointBH2);
float GetUniSptXPos(int iA, int iB, int iM, int iN);
private:
CCrossHoleConfig3DMainDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CCrossHoleConfig3DMainDlg();
CTabCtrl m_tabChange;
_ConnectionPtr m_pConnection;
CString m_strScriptName;
CString m_strTimeInterval;
CString m_strOperator;
CString m_strNote;
UINT32 m_uiEamount; //电极数量
UINT32 m_uiCHamount; //通道数量
UINT32 m_uiTPamount; //测点数量
CRect m_rcRect;
CRect m_rcRectLoc;
CString m_strPoleDistance;
CString m_strPoleStep;
vector<STDatabaseABMNInfo> m_vecAllBoreholeABMNInfo;//存放单通道写入数据库ABMN信息,绘制模拟跑极的测点,依次取值绘制
int m_iMediumType;//m_iMediumType 0:跨孔(Geomative) 1:井地井(Geomative),2:跨孔AMGeomative
map<int, map<int, map<int, STDatabaseABMNInfo>>> m_mapDatabaseABMNInfo; //存放多通道写入数据库ABMN信息,用于多通道,第一个int用于存放A,第二个int用于存放B,第三个int对应M
};
#endif