libgeotiff

geotiff.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  *
00003  *  geotiff.h - Public interface for Geotiff tag parsing.
00004  *
00005  *
00006  *   Written By: Niles D. Ritter
00007  *
00008  **********************************************************************/
00009 
00010 #ifndef __geotiff_h_
00011 #define __geotiff_h_
00012 
00024 /* This Version code should only change if a drastic
00025  * alteration is made to the GeoTIFF key structure. Readers
00026  * encountering a larger value should give up gracefully.
00027  */
00028 #define GvCurrentVersion   1
00029 
00030 #define LIBGEOTIFF_VERSION 1250
00031 
00032 #include "geo_config.h"
00033 #include "geokeys.h"
00034 
00035 /**********************************************************************
00036  * Do we want to build as a DLL on windows?
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  *                 Public Structures & Definitions
00049  *
00050  **********************************************************************/
00051 
00052 #if defined(__cplusplus)
00053 extern "C" {
00054 #endif
00055 
00056 typedef struct gtiff GTIF;   /* struct gtiff is private */
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  *                 Public Function Declarations
00081  *
00082  **********************************************************************/
00083 
00084 /* TIFF-level interface */
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 /* GeoKey Access */
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 /* Metadata Import-Export utilities */
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 /* Translation between image/PCS space */
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 /* __geotiff_h_ */

Generated for libgeotiff by doxygen 1.7.3