|
|
|
|
|
#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>Zֵ<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>Zֵ
|
|
|
|
|
|
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);
|
|
|
|
|
|
};
|
|
|
|
|
|
|