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

55 lines
2.7 KiB
C++

// MediumLandfillDiagonally.h: interface for the CMediumLandfillDiagonally class.
//
//////////////////////////////////////////////////////////////////////
#ifndef AFX_MEDIUM_LANDFILL_DIAGONALLY_H__20190918_INCLUDED_
#define AFX_MEDIUM_LANDFILL_DIAGONALLY_H__20190918_INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Medium3D.h"
#include "DialCustomSptInput.h"
class CMediumLandfillDiagonally : public CMedium3D
{
public:
CMediumLandfillDiagonally(int iAR);
virtual ~CMediumLandfillDiagonally();
virtual bool GenerateSptRecElecVal(int iEAmount, int* pMaxLevel, int* pPtAmount, CPtrArray* pSptRecArray){ return true; }
virtual float CalculateCESptKVal(float fA, float fB, float fX, float fY);
virtual void CalculateSptPtLoc(int iMul, CSptRecord* pSptRecord){ return; } //计算脚本测点位置(iMul---in:倍数,pSptRecord---in:脚本记录)
virtual int GenSptRecLevel(int iA, int iB, int iM, int iN) { return 0; } //计算脚本记录层数(iA---in:A,iB---in:B,iM---in:M,iN----in:N)
virtual int GenSptRecPosInLevel(int iA, int iB, int iM, int iN){ return 0; } //计算每层脚本记录位置(iA---in:A,iB---in:B,iM---in:M,iN----in:N)
virtual int GetMaxLevelByEAmount(int iEAmount){ return 0; }
virtual void ReSortPoint(CPtrArray *f_ptr){ return; }
virtual void SetParamVal(const void* pVal);
virtual bool SortMulChannelSpt(CPtrArray* pSptRecArr){ return m_sortMulChannelSpt.MultiChannlePtCplSort(pSptRecArr); }
void SetPointCPosition(char *f_type, int f_x, int f_y){ return; }
//3D脚本接口
void create(){ m_scr = NULL; }//创建脚本
void SetRect(int x0, int y0, int x1, int y1){ rect_init(&m_rect, x0, y0, x1, y1); } //设置矩形大小
void setZone(bool enable, int zonec, int *zonev){ return; } //设置需要生成测点的象限
BOOL setPoleStart(int startpole){ return TRUE; } //设置测点的起始位置
BOOL generate(){ return TRUE; } //执行脚本生成
int getPoleStart(){ return 1; } //获取起始电极
int getPoleCount(){ return (m_rect.x1 - m_rect.x0 + 1)*(m_rect.y1 - m_rect.y0 + 1); } //获取电极总数
struct _rect * getRect(){ return &m_rect; } //获取矩阵
void SaveScr(){ return; } //生成脚本文件
void SetPoleDistance(DOUBLE f_dis_x, DOUBLE f_dis_y){ m_fXPoleSpace = f_dis_x; m_fYPoleSpace = f_dis_y; }
void SetPoleStep(int f_step_x, int f_step_y){ return; }
virtual bool GenerateSptRecElecVal3D(int nSplittedNum, CScript3D *pScript, int* pPtAmount, CPtrArray* pSptRecArray);
protected:
struct _rect m_rect;
float m_fXPoleSpace;
float m_fYPoleSpace;
int m_iXGridSzie;
int m_iYGridSize;
};
#endif // !defined(AFX_MEDIUM_LANDFILL_DIAGONALLY_H__20190918_INCLUDED_)