Files
geomative/GeomativeStudio/h/SaveInRes.h
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

130 lines
4.9 KiB
C++

// SaveInRes.h: interface for the CSaveInRes class.
//
//////////////////////////////////////////////////////////////////////
#include <math.h>
#include "scriptor.h"
//测试方法的定义
const int Res = 0x01;
const int IP = 0x02;
#if !defined(AFX_SAVEINRES_H__1810BA80_AE59_446C_B729_58E351D0C52E__INCLUDED_)
#define AFX_SAVEINRES_H__1810BA80_AE59_446C_B729_58E351D0C52E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CSaveInRes
{
public://function
BOOL CreateResFile(CString szFilePath); //打开需要创建的res文件
void AddFileHeader(int method, int mediumType, CStringArray *szDataArray); //添加文件头
void InitCEFileHeader(CStringArray *szArray);
void Init2DFileHeader(CStringArray *szArray);
void Init3DFileHeader(CStringArray *szArray);
BOOL AddDateToFile(CStringArray *szDateArray); //添加文件主体
BOOL CloseFile(); //关闭文件
BOOL WriteLandInform(CStringArray *f_szArray); //添加地型文件
BOOL AddElectrodeTitle(CStringArray* szArray); //添加电极坐标标题
BOOL AddElectrodeCoordinatesInfo(CStringArray* szArray); //写入电极坐标信息
CSaveInRes();
virtual ~CSaveInRes();
public://attribute
void SetPoleStep(int f_StepX, int f_StepY);
void Dipole_Dipole_2D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Pole_Dipole_2D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Pole_Dipole_3D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Add_3D_LandFile(CStringArray *szSRCArray);
void Set_3D_LandSign(int f_type);
void AddCEModel(CStringArray *szArray);
void CE_Res_Schlumberger(CStringArray *szSRCArray, CStringArray *szTARArray);
void CE_Schlumberger(CStringArray *szSRCArray, CStringArray *szTARArray);
void CE_Res_Marine(CStringArray *szSRCArray, CStringArray *szTARArray);
//生成跨井钻孔的内容
void Cross_Hole_2D(CStringArray *szSRCArray, CStringArray *szTARArray);
void SetCorssHoleParam(float fPapram,float fInitiDepth){m_fCrossHoleParam = fPapram;m_fInitiDepth = fInitiDepth;}
//设置三维滚动方向
void Set3DRollDirction(int iRollDirection){m_i3DRollDiecetion = iRollDirection;}
void SetMidGardientInfo(float fAPosX, float fAPosY, float fABDistance, float fMinAMDistance);
//设置三维布线方向
void Set3DTestLineDirection(byte byLineDirection)
{
m_byLineDirection = byLineDirection;
}
//2d地型文件
int m_nLandSign;
int m_nFirstPole;
//共有属性
int m_methodType;
private://function
CString TransformMediumType(CString szMediumType);
void WriteZero(int nCount);
//2D
void Wenner(CStringArray *szSRCArray, CStringArray *szTARArray);//温纳
void Schlumberger(CStringArray *szSRCArray, CStringArray *szTARArray);//斯伦贝谢
void dipole(CStringArray *szSRCArray, CStringArray *szTARArray);//偶极
void Wenner_Schlumberger_2D(CStringArray *szSRCArray, CStringArray *szTARArray);//温-斯装置
void GetCrossHoleSurfaceElectrode(float fPoleDis, float fCrosshole, int nHoleElectrodeNum,CStringArray* strArray);
void A_M_ARRAY_2D(CStringArray *szSRCArray, CStringArray *szTARArray);//二维的二极AM装置
void AMN_ARRAY_2D(CStringArray *szSRCArray, CStringArray *szTARArray);//二维的三极AMN装置
void Custom_2D(CStringArray *szSRCArray, CStringArray *szTARArray); //二维的自定义装置
void CrossHole_2D(CStringArray *szSRCArray, CStringArray *szTARArray); //跨孔装置
//3D
void WennerAlfa3D(CStringArray *szSRCArray, CStringArray *szTARArray);//温纳A
void WennerBeta3D(CStringArray *szSRCArray, CStringArray *szTARArray);//温纳B
void Schlumberger3D(CStringArray *szSRCArray, CStringArray *szTARArray);//斯伦贝谢
private://attribute
void Gradient_3D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Pole_Pole_3D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Wenner_Y_2D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Reverse_Pole_dipole_2d(CStringArray *szSRCArray, CStringArray *szTARArray);
void Pole_dipole_2d(CStringArray *szSRCArray, CStringArray *szTARArray);
void Dipole_Dipole_3D(CStringArray *szSRCArray, CStringArray *szTARArray);
void Mid_Gardient_Scan_3D(CStringArray *szSRCArray, CStringArray *szTARArray);
void InitCeIpHeader(CStringArray *szArray);
void InitCeResHeader(CStringArray *szArray);
FILE *m_resFile;
int m_MediumType;
//2D
CString m_szDistancePole;
float m_fCrossHoleParam;
float m_fPoleDistance;
int m_iEAmount;
float m_fInitiDepth;
//3D
_rect m_rect;
CString m_szPoleStart;
CString m_szX_DistancePole;//电极间距
CString m_szY_DistancePole;
int m_nPoleStepX;
int m_nPoleStepY;
int m_i3DRollDiecetion; //三维滚动方向,这个用于合并任务时,1表示X轴方向合并,2表示Y轴方向合并
float m_fABDistance;
float m_fMinAMDistance;
float m_fAPosX;
float m_fAPosY;
//3D地型文件
int m_3DLandSign;
byte m_byLineDirection;
//1D
};
#endif // !defined(AFX_SAVEINRES_H__1810BA80_AE59_446C_B729_58E351D0C52E__INCLUDED_)