#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 vecPoints,STBoreHoleParam stBoreholeParam); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() //计算L值 std::vector CalcLValue(std::vector vecPointBH1, std::vector vecPointBH2); //生成测试点 void TwoBoreholeGenerateScript(std::vector vecPointBH1, std::vector vecPointBH2); //写入数据库 BOOL SaveTestPointToDB(); //四井 AM装置生成测点 void OneBoreHoleGenerateScriptAM(std::map> mapPointBH); void OneBoreHoleGenerateScriptAM(std::vector vecPointBH); void TwoBoreHoleGenerateScriptAM(int iDirectionType,std::vector vecPointBH1, std::vector 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 m_vecAllBoreholeABMNInfo;//存放单通道写入数据库ABMN信息,绘制模拟跑极的测点,依次取值绘制 int m_iMediumType;//m_iMediumType 0:跨孔(Geomative) 1:井地井(Geomative),2:跨孔AM(Geomative) map>> m_mapDatabaseABMNInfo; //存放多通道写入数据库ABMN信息,用于多通道,第一个int用于存放A,第二个int用于存放B,第三个int对应M }; #endif