00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __geotiff_h_
00011 #define __geotiff_h_
00012
00024
00025
00026
00027
00028 #define GvCurrentVersion 1
00029
00030 #define LIBGEOTIFF_VERSION 1250
00031
00032 #include "geo_config.h"
00033 #include "geokeys.h"
00034
00035
00036
00037
00038 #if !defined(CPL_DLL)
00039 # if defined(_WIN32) && defined(BUILD_AS_DLL)
00040 # define CPL_DLL __declspec(dllexport)
00041 # else
00042 # define CPL_DLL
00043 # endif
00044 #endif
00045
00046
00047
00048
00049
00050
00051
00052 #if defined(__cplusplus)
00053 extern "C" {
00054 #endif
00055
00056 typedef struct gtiff GTIF;
00057 typedef struct _TIFFMethod TIFFMethod;
00058 typedef unsigned short tifftag_t;
00059 typedef unsigned short geocode_t;
00060 typedef int (*GTIFPrintMethod)(char *string, void *aux);
00061 typedef int (*GTIFReadMethod)(char *string, void *aux);
00062
00063 typedef enum {
00064 TYPE_BYTE=1,
00065 TYPE_SHORT=2,
00066 TYPE_LONG=3,
00067 TYPE_RATIONAL=4,
00068 TYPE_ASCII=5,
00069 TYPE_FLOAT=6,
00070 TYPE_DOUBLE=7,
00071 TYPE_SBYTE=8,
00072 TYPE_SSHORT=9,
00073 TYPE_SLONG=10,
00074 TYPE_UNKNOWN=11
00075 } tagtype_t;
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085 GTIF CPL_DLL *GTIFNew(void *tif);
00086 GTIF CPL_DLL *GTIFNewSimpleTags(void *tif);
00087 GTIF CPL_DLL *GTIFNewWithMethods(void *tif, TIFFMethod*);
00088 void CPL_DLL GTIFFree(GTIF *gtif);
00089 int CPL_DLL GTIFWriteKeys(GTIF *gtif);
00090 void CPL_DLL GTIFDirectoryInfo(GTIF *gtif, int *versions, int *keycount);
00091
00092
00093 int CPL_DLL GTIFKeyInfo(GTIF *gtif, geokey_t key, int *size, tagtype_t* type);
00094 int CPL_DLL GTIFKeyGet(GTIF *gtif, geokey_t key, void *val, int index,
00095 int count);
00096 int CPL_DLL GTIFKeySet(GTIF *gtif, geokey_t keyID, tagtype_t type,
00097 int count,...);
00098
00099
00100 void CPL_DLL GTIFPrint(GTIF *gtif, GTIFPrintMethod print, void *aux);
00101 int CPL_DLL GTIFImport(GTIF *gtif, GTIFReadMethod scan, void *aux);
00102 char CPL_DLL *GTIFKeyName(geokey_t key);
00103 char CPL_DLL *GTIFValueName(geokey_t key,int value);
00104 char CPL_DLL *GTIFTypeName(tagtype_t type);
00105 char CPL_DLL *GTIFTagName(int tag);
00106 int CPL_DLL GTIFKeyCode(char * key);
00107 int CPL_DLL GTIFValueCode(geokey_t key,char *value);
00108 int CPL_DLL GTIFTypeCode(char *type);
00109 int CPL_DLL GTIFTagCode(char *tag);
00110
00111
00112
00113 int CPL_DLL GTIFImageToPCS( GTIF *gtif, double *x, double *y );
00114 int CPL_DLL GTIFPCSToImage( GTIF *gtif, double *x, double *y );
00115
00116 #if defined(__cplusplus)
00117 }
00118 #endif
00119
00120 #endif