a
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
// Medium3D.h: interface for the CMedium3D class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_MEDIUM3D_H__71253A33_A9CF_4ED8_AC7C_0086B57C5C20__INCLUDED_)
|
||||
#define AFX_MEDIUM3D_H__71253A33_A9CF_4ED8_AC7C_0086B57C5C20__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "Medium.h"
|
||||
#include "scriptor.h"
|
||||
|
||||
#include "Script3D.h"
|
||||
|
||||
#include "OpCreate3DSptDlg.h"
|
||||
typedef struct ST_MID_GAR_SCAN_PARAM
|
||||
{
|
||||
float fMinAMSpace; //AM的最小距离,其实就是指的是AM水平距离上的最小距离
|
||||
float fABSpace; //AB的距离
|
||||
float fAPosY; //A点的Y轴距离
|
||||
ST_MID_GAR_SCAN_PARAM()
|
||||
{
|
||||
fMinAMSpace = 0;
|
||||
fABSpace = 0;
|
||||
fAPosY = 0;
|
||||
}
|
||||
}STMidGarScanParam;
|
||||
class CMedium3D : public CMedium
|
||||
{
|
||||
public:
|
||||
virtual void SetPoleDistance(DOUBLE f_dis_x, DOUBLE f_dis_y);
|
||||
virtual void SetPoleStep(int f_step_x, int f_step_y);
|
||||
virtual void SetFlags(BOOL Flags);
|
||||
CMedium3D();
|
||||
CMedium3D(int iAR);
|
||||
virtual ~CMedium3D();
|
||||
|
||||
//继承而来
|
||||
struct _scriptor *m_scr;
|
||||
virtual bool GenerateSptRecElecVal(int iEAmount, int* pMaxLevel, int* pPtAmount, CPtrArray* pSptRecArray) = NULL;
|
||||
virtual void CalculateSptPtLoc(int iMul, CSptRecord* pSptRecord) = NULL;
|
||||
virtual int GenSptRecLevel(int iA, int iB, int iM, int iN) = NULL;
|
||||
virtual int GenSptRecPosInLevel(int iA, int iB, int iM, int iN) = NULL;
|
||||
virtual int GetMaxLevelByEAmount(int iEAmount) = NULL;
|
||||
virtual float CalculateCESptKVal(float fA, float fB, float fX, float fY) = NULL;
|
||||
virtual float CalculateDepth(float fA, float fFactor = 0.5);
|
||||
virtual void CalculateTdPtLoc(const CRect& vRect, const int& iEAmount, int& iMaxLevel, CRect& lRect, int& iSmWidth, int& iSmHeight, CPtrArray* pTdRecArray);
|
||||
virtual void Destroy();
|
||||
//3D脚本算法的封装,注意:只有3D装置可调用以下函数
|
||||
virtual void create() = NULL;//创建脚本
|
||||
virtual void SetRect(int x0, int y0, int x1, int y1) = NULL; //设置矩形大小
|
||||
virtual void setZone(bool enable, int zonec, int *zonev) = NULL; //设置需要生成测点的象限
|
||||
virtual BOOL setPoleStart(int startpole) = NULL; //设置测点的起始位置
|
||||
virtual BOOL generate() = NULL; //执行脚本生成
|
||||
|
||||
virtual int getPoleStart() = NULL; //获取起始电极
|
||||
virtual int getPoleCount() = NULL; //获取电极总数
|
||||
virtual struct _rect * getRect() = NULL; //获取矩阵
|
||||
virtual void SaveScr() = NULL; //生成脚本文件
|
||||
|
||||
virtual bool GenerateSptRecElecVal3D( int nSplittedNum,CScript3D *pScript, int* pPtAmount, CPtrArray* pSptRecArray);
|
||||
|
||||
//Gradient装置
|
||||
virtual void SetPointCPosition(char *f_type, int x, int y) = NULL; //设置Gradient装置类型的C点位置
|
||||
|
||||
// private:
|
||||
// struct _scriptor *m_scr;
|
||||
// struct _rect m_rect;
|
||||
|
||||
virtual BOOL CheckPointVailed(_point *point, int SplittedId,int *result);
|
||||
void SetStackNumber(UINT uiStackNumber){m_uiStackNumber = uiStackNumber;}
|
||||
|
||||
protected:
|
||||
UINT m_uiStackNumber;
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_MEDIUM3D_H__71253A33_A9CF_4ED8_AC7C_0086B57C5C20__INCLUDED_)
|
||||
Reference in New Issue
Block a user