00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef _GXFOPEN_H_INCLUDED
00032 #define _GXFOPEN_H_INCLUDED
00033
00040
00041
00042
00043 #include "cpl_conv.h"
00044 #include "cpl_string.h"
00045
00046 CPL_C_START
00047
00048 typedef void *GXFHandle;
00049
00050 GXFHandle GXFOpen( const char * pszFilename );
00051
00052 CPLErr GXFGetRawInfo( GXFHandle hGXF, int *pnXSize, int *pnYSize,
00053 int *pnSense, double * pdfZMin, double * pdfZMax,
00054 double * pdfDummy );
00055 CPLErr GXFGetInfo( GXFHandle hGXF, int *pnXSize, int *pnYSize );
00056
00057 CPLErr GXFGetRawScanline( GXFHandle, int iScanline, double * padfLineBuf );
00058 CPLErr GXFGetScanline( GXFHandle, int iScanline, double * padfLineBuf );
00059
00060 char **GXFGetMapProjection( GXFHandle );
00061 char **GXFGetMapDatumTransform( GXFHandle );
00062 char *GXFGetMapProjectionAsPROJ4( GXFHandle );
00063 char *GXFGetMapProjectionAsOGCWKT( GXFHandle );
00064
00065 CPLErr GXFGetRawPosition( GXFHandle, double *, double *, double *, double *,
00066 double * );
00067 CPLErr GXFGetPosition( GXFHandle, double *, double *, double *, double *,
00068 double * );
00069
00070 CPLErr GXFGetPROJ4Position( GXFHandle, double *, double *, double *, double *,
00071 double * );
00072
00073 void GXFClose( GXFHandle hGXF );
00074
00075 #define GXFS_LL_UP -1
00076 #define GXFS_LL_RIGHT 1
00077 #define GXFS_UL_RIGHT -2
00078 #define GXFS_UL_DOWN 2
00079 #define GXFS_UR_DOWN -3
00080 #define GXFS_UR_LEFT 3
00081 #define GXFS_LR_LEFT -4
00082 #define GXFS_LR_UP 4
00083
00084 CPL_C_END
00085
00086
00087
00088
00089 typedef struct {
00090 FILE *fp;
00091
00092 int nRawXSize;
00093 int nRawYSize;
00094 int nSense;
00095 int nGType;
00096
00097 double dfXPixelSize;
00098 double dfYPixelSize;
00099 double dfRotation;
00100 double dfXOrigin;
00101 double dfYOrigin;
00102
00103 char szDummy[64];
00104 double dfSetDummyTo;
00105
00106 char *pszTitle;
00107
00108 double dfTransformScale;
00109 double dfTransformOffset;
00110 char *pszTransformName;
00111
00112 char **papszMapProjection;
00113 char **papszMapDatumTransform;
00114
00115 char *pszUnitName;
00116 double dfUnitToMeter;
00117
00118
00119 double dfZMaximum;
00120 double dfZMinimum;
00121
00122 long *panRawLineOffset;
00123
00124 } GXFInfo_t;
00125
00126 #endif