You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.5 KiB
C

1 month ago
#pragma once
struct GML_FLAG;
class GMLDimsIter
{
public:
GMLDimsIter();
~GMLDimsIter();
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
void setGridInfo(double* xyRange, int* nxny, double* inc, double*zRange);
// <20><><EFBFBD><EFBFBD><5A><D6B5><EFBFBD><EFBFBD>
void setZData(long num, float* data);
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
void clearMemory();
// <20><><EFBFBD>ݷ<EFBFBD>Χ
double* getXYRange();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int* getXnYn();
long getXnYnTotal();
double getXmin(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СX
double getXmax(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X
double getYmin(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СY
double getYmax(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y
int getGridX(); // X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int getGridY(); // Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double getDeltX(); // X<><58><EFBFBD><EFBFBD>
double getDeltY(); // Y<><59><EFBFBD><EFBFBD>
double getX(int i); // <20><>X<EFBFBD><58><EFBFBD><EFBFBD>
double getY(int j); // <20><>Y<EFBFBD><59><EFBFBD><EFBFBD>
int getIndexFrX(double x);
int getIndexFrY(double y);
// <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
float getZValue(int ij);
float getZValue(int i, int j);
float getZValue(double x0, double y0);
int readDfgBinary(const char* file);
private:
double m_xyRange[4]; /* Min/max x and y coordinates */
int m_nxny[2]; // nx nyNumber of columns Number of rows*/;
double m_inc[2]; /* x and y increment */
double m_zRange[2]; /* Minimum z value Maximum z value */
int m_n = 2;
long m_nm; /* Number of data items in this grid (nx * ny) [padding is excluded] */
float* m_pdu; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD> z ֵ
GML_FLAG* m_pFlag; // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>ʶ(<28><><EFBFBD><EFBFBD>, <20>ϲ<EFBFBD>,<2C>ȵ<EFBFBD>)
int m_pOffset[4]; // ʮ<><CAAE><EFBFBD><EFBFBD>Χƫ<CEA7><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>
void CreateGrid();
int GetLocation(int *ip);
float GetZValue(double xy[], int* ip, int j);
};