/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.36
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */


#ifdef __cplusplus
template<typename T> class SwigValueWrapper {
    T *tt;
public:
    SwigValueWrapper() : tt(0) { }
    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
    SwigValueWrapper(const T& t) : tt(new T(t)) { }
    ~SwigValueWrapper() { delete tt; } 
    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
    operator T&() const { return *tt; }
    T *operator&() { return tt; }
private:
    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
};

template <typename T> T SwigValueInit() {
  return T();
}
#endif

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__)) 
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__)) 
# else
#   define SWIGUNUSED 
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif 
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#  ifndef GCC_HASCLASSVISIBILITY
#    define GCC_HASCLASSVISIBILITY
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif 
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif



#include <stdlib.h>
#include <string.h>
#include <stdio.h>


/* Support for throwing C# exceptions from C/C++. There are two types: 
 * Exceptions that take a message and ArgumentExceptions that take a message and a parameter name. */
typedef enum {
  SWIG_CSharpApplicationException,
  SWIG_CSharpArithmeticException,
  SWIG_CSharpDivideByZeroException,
  SWIG_CSharpIndexOutOfRangeException,
  SWIG_CSharpInvalidCastException,
  SWIG_CSharpInvalidOperationException,
  SWIG_CSharpIOException,
  SWIG_CSharpNullReferenceException,
  SWIG_CSharpOutOfMemoryException,
  SWIG_CSharpOverflowException,
  SWIG_CSharpSystemException
} SWIG_CSharpExceptionCodes;

typedef enum {
  SWIG_CSharpArgumentException,
  SWIG_CSharpArgumentNullException,
  SWIG_CSharpArgumentOutOfRangeException
} SWIG_CSharpExceptionArgumentCodes;

typedef void (SWIGSTDCALL* SWIG_CSharpExceptionCallback_t)(const char *);
typedef void (SWIGSTDCALL* SWIG_CSharpExceptionArgumentCallback_t)(const char *, const char *);

typedef struct {
  SWIG_CSharpExceptionCodes code;
  SWIG_CSharpExceptionCallback_t callback;
} SWIG_CSharpException_t;

typedef struct {
  SWIG_CSharpExceptionArgumentCodes code;
  SWIG_CSharpExceptionArgumentCallback_t callback;
} SWIG_CSharpExceptionArgument_t;

static SWIG_CSharpException_t SWIG_csharp_exceptions[] = {
  { SWIG_CSharpApplicationException, NULL },
  { SWIG_CSharpArithmeticException, NULL },
  { SWIG_CSharpDivideByZeroException, NULL },
  { SWIG_CSharpIndexOutOfRangeException, NULL },
  { SWIG_CSharpInvalidCastException, NULL },
  { SWIG_CSharpInvalidOperationException, NULL },
  { SWIG_CSharpIOException, NULL },
  { SWIG_CSharpNullReferenceException, NULL },
  { SWIG_CSharpOutOfMemoryException, NULL },
  { SWIG_CSharpOverflowException, NULL },
  { SWIG_CSharpSystemException, NULL }
};

static SWIG_CSharpExceptionArgument_t SWIG_csharp_exceptions_argument[] = {
  { SWIG_CSharpArgumentException, NULL },
  { SWIG_CSharpArgumentNullException, NULL },
  { SWIG_CSharpArgumentOutOfRangeException, NULL },
};

static void SWIGUNUSED SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) {
  SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback;
  if ((size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) {
    callback = SWIG_csharp_exceptions[code].callback;
  }
  callback(msg);
}

static void SWIGUNUSED SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) {
  SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback;
  if ((size_t)code < sizeof(SWIG_csharp_exceptions_argument)/sizeof(SWIG_CSharpExceptionArgument_t)) {
    callback = SWIG_csharp_exceptions_argument[code].callback;
  }
  callback(msg, param_name);
}


#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_osr(
                                                SWIG_CSharpExceptionCallback_t applicationCallback,
                                                SWIG_CSharpExceptionCallback_t arithmeticCallback,
                                                SWIG_CSharpExceptionCallback_t divideByZeroCallback, 
                                                SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback, 
                                                SWIG_CSharpExceptionCallback_t invalidCastCallback,
                                                SWIG_CSharpExceptionCallback_t invalidOperationCallback,
                                                SWIG_CSharpExceptionCallback_t ioCallback,
                                                SWIG_CSharpExceptionCallback_t nullReferenceCallback,
                                                SWIG_CSharpExceptionCallback_t outOfMemoryCallback, 
                                                SWIG_CSharpExceptionCallback_t overflowCallback, 
                                                SWIG_CSharpExceptionCallback_t systemCallback) {
  SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback = applicationCallback;
  SWIG_csharp_exceptions[SWIG_CSharpArithmeticException].callback = arithmeticCallback;
  SWIG_csharp_exceptions[SWIG_CSharpDivideByZeroException].callback = divideByZeroCallback;
  SWIG_csharp_exceptions[SWIG_CSharpIndexOutOfRangeException].callback = indexOutOfRangeCallback;
  SWIG_csharp_exceptions[SWIG_CSharpInvalidCastException].callback = invalidCastCallback;
  SWIG_csharp_exceptions[SWIG_CSharpInvalidOperationException].callback = invalidOperationCallback;
  SWIG_csharp_exceptions[SWIG_CSharpIOException].callback = ioCallback;
  SWIG_csharp_exceptions[SWIG_CSharpNullReferenceException].callback = nullReferenceCallback;
  SWIG_csharp_exceptions[SWIG_CSharpOutOfMemoryException].callback = outOfMemoryCallback;
  SWIG_csharp_exceptions[SWIG_CSharpOverflowException].callback = overflowCallback;
  SWIG_csharp_exceptions[SWIG_CSharpSystemException].callback = systemCallback;
}

#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_osr(
                                                SWIG_CSharpExceptionArgumentCallback_t argumentCallback,
                                                SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback,
                                                SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) {
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback = argumentCallback;
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentNullException].callback = argumentNullCallback;
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentOutOfRangeException].callback = argumentOutOfRangeCallback;
}


/* Callback for returning strings to C# without leaking memory */
typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *);
static SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback = NULL;


#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_osr(SWIG_CSharpStringHelperCallback callback) {
  SWIG_csharp_string_callback = callback;
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, msg, ""); return nullreturn; } else

/*  Errors in SWIG */
#define  SWIG_UnknownError    	   -1 
#define  SWIG_IOError        	   -2 
#define  SWIG_RuntimeError   	   -3 
#define  SWIG_IndexError     	   -4 
#define  SWIG_TypeError      	   -5 
#define  SWIG_DivisionByZero 	   -6 
#define  SWIG_OverflowError  	   -7 
#define  SWIG_SyntaxError    	   -8 
#define  SWIG_ValueError     	   -9 
#define  SWIG_SystemError    	   -10
#define  SWIG_AttributeError 	   -11
#define  SWIG_MemoryError    	   -12 
#define  SWIG_NullReferenceError   -13




#include <iostream>
using namespace std;

#include "cpl_string.h"
#include "cpl_conv.h"

#include "ogr_srs_api.h"

typedef void OSRSpatialReferenceShadow;
typedef void OSRCoordinateTransformationShadow;



void VeryQuiteErrorHandler(CPLErr eclass, int code, const char *msg ) {
  /* If the error class is CE_Fatal, we want to have a message issued
     because the CPL support code does an abort() before any exception
     can be generated */
  if (eclass == CE_Fatal ) {
    CPLDefaultErrorHandler(eclass, code, msg );
  }
}


void UseExceptions() {
  CPLSetErrorHandler( (CPLErrorHandler) VeryQuiteErrorHandler );
}

void DontUseExceptions() {
  CPLSetErrorHandler( CPLDefaultErrorHandler );
}


SWIGINTERN void SWIG_CSharpException(int code, const char *msg) {
  if (code == SWIG_ValueError) {
    SWIG_CSharpExceptionArgumentCodes exception_code = SWIG_CSharpArgumentOutOfRangeException;
    SWIG_CSharpSetPendingExceptionArgument(exception_code, msg, 0);
  } else {
    SWIG_CSharpExceptionCodes exception_code = SWIG_CSharpApplicationException;
    switch(code) {
    case SWIG_MemoryError:
      exception_code = SWIG_CSharpOutOfMemoryException;
      break;
    case SWIG_IndexError:
      exception_code = SWIG_CSharpIndexOutOfRangeException;
      break;
    case SWIG_DivisionByZero:
      exception_code = SWIG_CSharpDivideByZeroException;
      break;
    case SWIG_IOError:
      exception_code = SWIG_CSharpIOException;
      break;
    case SWIG_OverflowError:
      exception_code = SWIG_CSharpOverflowException;
      break;
    case SWIG_RuntimeError:
    case SWIG_TypeError:
    case SWIG_SyntaxError:
    case SWIG_SystemError:
    case SWIG_UnknownError:
    default:
      exception_code = SWIG_CSharpApplicationException;
      break;
    }
    SWIG_CSharpSetPendingException(exception_code, msg);
  }
}


#include <stdexcept>


OGRErr GetWellKnownGeogCSAsWKT( const char *name, char **argout ) {
  OGRSpatialReferenceH srs = OSRNewSpatialReference("");
  OGRErr rcode = OSRSetWellKnownGeogCS( srs, name );
  if( rcode == OGRERR_NONE )
      rcode = OSRExportToWkt ( srs, argout );  
  OSRDestroySpatialReference( srs );
  return rcode;
}


static char const *
OGRErrMessages( int rc ) {
  switch( rc ) {
  case 0:
    return "OGR Error %d: None";
  case 1:
    return "OGR Error %d: Not enough data";
  case 2:
    return "OGR Error %d: Unsupported geometry type";
  case 3:
    return "OGR Error %d: Unsupported operation";
  case 4:
    return "OGR Error %d: Corrupt data";
  case 5:
    return "OGR Error %d: General Error";
  case 6:
    return "OGR Error %d: Unsupported SRS";
  default:
    return "OGR Error %d: Unknown";
  }
}


OGRErr GetUserInputAsWKT( const char *name, char **argout ) {
  OGRSpatialReferenceH srs = OSRNewSpatialReference("");
  OGRErr rcode = OSRSetFromUserInput( srs, name );
  if( rcode == OGRERR_NONE )
      rcode = OSRExportToWkt ( srs, argout );  
  OSRDestroySpatialReference( srs );
  return rcode;
}

SWIGINTERN OSRSpatialReferenceShadow *new_OSRSpatialReferenceShadow(char const *wkt=""){
    return (OSRSpatialReferenceShadow*) OSRNewSpatialReference(wkt);
  }
SWIGINTERN void delete_OSRSpatialReferenceShadow(OSRSpatialReferenceShadow *self){
    if (OSRDereference( self ) == 0 ) {
      OSRDestroySpatialReference( self );
    }
  }
SWIGINTERN char *OSRSpatialReferenceShadow___str__(OSRSpatialReferenceShadow *self){
    char *buf = 0;
    OSRExportToPrettyWkt( self, &buf, 0 );
    return buf;
  }
SWIGINTERN int OSRSpatialReferenceShadow_IsSame(OSRSpatialReferenceShadow *self,OSRSpatialReferenceShadow *rhs){
    return OSRIsSame( self, rhs );
  }
SWIGINTERN int OSRSpatialReferenceShadow_IsSameGeogCS(OSRSpatialReferenceShadow *self,OSRSpatialReferenceShadow *rhs){
    return OSRIsSameGeogCS( self, rhs );
  }
SWIGINTERN int OSRSpatialReferenceShadow_IsGeographic(OSRSpatialReferenceShadow *self){
    return OSRIsGeographic(self);
  }
SWIGINTERN int OSRSpatialReferenceShadow_IsProjected(OSRSpatialReferenceShadow *self){
    return OSRIsProjected(self);
  }
SWIGINTERN int OSRSpatialReferenceShadow_IsLocal(OSRSpatialReferenceShadow *self){
    return OSRIsLocal(self);
  }
SWIGINTERN char const *OSRSpatialReferenceShadow_GetAttrValue(OSRSpatialReferenceShadow *self,char const *name,int child=0){
    return OSRGetAttrValue( self, name, child );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetAttrValue(OSRSpatialReferenceShadow *self,char const *name,char const *value){
    return OSRSetAttrValue( self, name, value ); 
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetAngularUnits(OSRSpatialReferenceShadow *self,char const *name,double to_radians){
    return OSRSetAngularUnits( self, name, to_radians );
  }
SWIGINTERN double OSRSpatialReferenceShadow_GetAngularUnits(OSRSpatialReferenceShadow *self){
    // Return code ignored.
    return OSRGetAngularUnits( self, 0 );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetLinearUnits(OSRSpatialReferenceShadow *self,char const *name,double to_meters){
    return OSRSetLinearUnits( self, name, to_meters );
  }
SWIGINTERN double OSRSpatialReferenceShadow_GetLinearUnits(OSRSpatialReferenceShadow *self){
    // Return code ignored.
    return OSRGetLinearUnits( self, 0 );
  }
SWIGINTERN char const *OSRSpatialReferenceShadow_GetLinearUnitsName(OSRSpatialReferenceShadow *self){
    const char *name = 0;
    if ( OSRIsProjected( self ) ) {
      name = OSRGetAttrValue( self, "PROJCS|UNIT", 0 );
    }
    else if ( OSRIsLocal( self ) ) {
      name = OSRGetAttrValue( self, "LOCAL_CS|UNIT", 0 );
    }

    if (name != 0) 
      return name;

    return "Meter";
  }
SWIGINTERN char const *OSRSpatialReferenceShadow_GetAuthorityCode(OSRSpatialReferenceShadow *self,char const *target_key){
    return OSRGetAuthorityCode( self, target_key );
  }
SWIGINTERN char const *OSRSpatialReferenceShadow_GetAuthorityName(OSRSpatialReferenceShadow *self,char const *target_key){
    return OSRGetAuthorityName( self, target_key );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetUTM(OSRSpatialReferenceShadow *self,int zone,int north=1){
    return OSRSetUTM( self, zone, north );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetStatePlane(OSRSpatialReferenceShadow *self,int zone,int is_nad83=1,char const *unitsname="",double units=0.0){
    return OSRSetStatePlaneWithUnits( self, zone, is_nad83, unitsname, units );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_AutoIdentifyEPSG(OSRSpatialReferenceShadow *self){
    return OSRAutoIdentifyEPSG( self );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetProjection(OSRSpatialReferenceShadow *self,char const *arg){
    return OSRSetProjection( self, arg );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetProjParm(OSRSpatialReferenceShadow *self,char const *name,double val){
    return OSRSetProjParm( self, name, val ); 
  }
SWIGINTERN double OSRSpatialReferenceShadow_GetProjParm(OSRSpatialReferenceShadow *self,char const *name,double default_val=0.0){
    // Return code ignored.
    return OSRGetProjParm( self, name, default_val, 0 );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetNormProjParm(OSRSpatialReferenceShadow *self,char const *name,double val){
    return OSRSetNormProjParm( self, name, val );
  }
SWIGINTERN double OSRSpatialReferenceShadow_GetNormProjParm(OSRSpatialReferenceShadow *self,char const *name,double default_val=0.0){
    // Return code ignored.
    return OSRGetNormProjParm( self, name, default_val, 0 );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetACEA(OSRSpatialReferenceShadow *self,double stdp1,double stdp2,double clat,double clong,double fe,double fn){
    return OSRSetACEA( self, stdp1, stdp2, clat, clong, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetAE(OSRSpatialReferenceShadow *self,double clat,double clon,double fe,double fn){
    return OSRSetAE( self, clat, clon, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetCS(OSRSpatialReferenceShadow *self,double clat,double clong,double fe,double fn){
    return OSRSetCS( self, clat, clong, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetBonne(OSRSpatialReferenceShadow *self,double clat,double clong,double fe,double fn){
    return OSRSetBonne( self, clat, clong, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetEC(OSRSpatialReferenceShadow *self,double stdp1,double stdp2,double clat,double clong,double fe,double fn){
    return OSRSetEC( self, stdp1, stdp2, clat, clong, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetEckertIV(OSRSpatialReferenceShadow *self,double cm,double fe,double fn){
    return OSRSetEckertIV( self, cm, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetEckertVI(OSRSpatialReferenceShadow *self,double cm,double fe,double fn){
    return OSRSetEckertVI( self, cm, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetEquirectangular(OSRSpatialReferenceShadow *self,double clat,double clong,double fe,double fn){
    return OSRSetEquirectangular( self, clat, clong, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetGS(OSRSpatialReferenceShadow *self,double cm,double fe,double fn){
    return OSRSetGS( self, cm, fe, fn );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetWellKnownGeogCS(OSRSpatialReferenceShadow *self,char const *name){
    return OSRSetWellKnownGeogCS( self, name );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetFromUserInput(OSRSpatialReferenceShadow *self,char const *name){
    return OSRSetFromUserInput( self, name );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_CopyGeogCSFrom(OSRSpatialReferenceShadow *self,OSRSpatialReferenceShadow *rhs){
    return OSRCopyGeogCSFrom( self, rhs );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetTOWGS84(OSRSpatialReferenceShadow *self,double p1,double p2,double p3,double p4=0.0,double p5=0.0,double p6=0.0,double p7=0.0){
    return OSRSetTOWGS84( self, p1, p2, p3, p4, p5, p6, p7 );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_GetTOWGS84(OSRSpatialReferenceShadow *self,double argout[7]){
    return OSRGetTOWGS84( self, argout, 7 );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetGeogCS(OSRSpatialReferenceShadow *self,char const *pszGeogName,char const *pszDatumName,char const *pszEllipsoidName,double dfSemiMajor,double dfInvFlattening,char const *pszPMName="Greenwich",double dfPMOffset=0.0,char const *pszUnits="degree",double dfConvertToRadians=0.0174532925199433){
    return OSRSetGeogCS( self, pszGeogName, pszDatumName, pszEllipsoidName,
                         dfSemiMajor, dfInvFlattening,
                         pszPMName, dfPMOffset, pszUnits, dfConvertToRadians );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_SetProjCS(OSRSpatialReferenceShadow *self,char const *name="unnamed"){
    return OSRSetProjCS( self, name );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromWkt(OSRSpatialReferenceShadow *self,char **ppszInput){
    return OSRImportFromWkt( self, ppszInput );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromProj4(OSRSpatialReferenceShadow *self,char *ppszInput){
    return OSRImportFromProj4( self, ppszInput );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromESRI(OSRSpatialReferenceShadow *self,char **ppszInput){
    return OSRImportFromESRI( self, ppszInput );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromEPSG(OSRSpatialReferenceShadow *self,int arg){
    return OSRImportFromEPSG(self, arg);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromPCI(OSRSpatialReferenceShadow *self,char const *proj,char const *units="METRE",double argin[17]=0){
    return OSRImportFromPCI( self, proj, units, argin );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromUSGS(OSRSpatialReferenceShadow *self,long proj_code,long zone=0,double argin[15]=0,long datum_code=0){
    return OSRImportFromUSGS( self, proj_code, zone, argin, datum_code );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ImportFromXML(OSRSpatialReferenceShadow *self,char const *xmlString){
    return OSRImportFromXML( self, xmlString );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ExportToWkt(OSRSpatialReferenceShadow *self,char **argout){
    return OSRExportToWkt( self, argout );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ExportToPrettyWkt(OSRSpatialReferenceShadow *self,char **argout,int simplify=0){
    return OSRExportToPrettyWkt( self, argout, simplify );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ExportToProj4(OSRSpatialReferenceShadow *self,char **argout){
    return OSRExportToProj4( self, argout );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ExportToPCI(OSRSpatialReferenceShadow *self,char **proj,char **units,double *parms[17]){
    return OSRExportToPCI( self, proj, units, parms );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ExportToUSGS(OSRSpatialReferenceShadow *self,long *code,long *zone,double *parms[15],long *datum){
    return OSRExportToUSGS( self, code, zone, parms, datum );
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_ExportToXML(OSRSpatialReferenceShadow *self,char **argout,char const *dialect=""){
    return OSRExportToXML( self, argout, dialect );
  }
SWIGINTERN OSRSpatialReferenceShadow *OSRSpatialReferenceShadow_CloneGeogCS(OSRSpatialReferenceShadow *self){
    return (OSRSpatialReferenceShadow*) OSRCloneGeogCS(self);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_Validate(OSRSpatialReferenceShadow *self){
    return OSRValidate(self);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_StripCTParms(OSRSpatialReferenceShadow *self){
    return OSRStripCTParms(self);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_FixupOrdering(OSRSpatialReferenceShadow *self){
    return OSRFixupOrdering(self);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_Fixup(OSRSpatialReferenceShadow *self){
    return OSRFixup(self);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_MorphToESRI(OSRSpatialReferenceShadow *self){
    return OSRMorphToESRI(self);
  }
SWIGINTERN OGRErr OSRSpatialReferenceShadow_MorphFromESRI(OSRSpatialReferenceShadow *self){
    return OSRMorphFromESRI(self);
  }
SWIGINTERN OSRCoordinateTransformationShadow *new_OSRCoordinateTransformationShadow(OSRSpatialReferenceShadow *src,OSRSpatialReferenceShadow *dst){
    OSRCoordinateTransformationShadow *obj = (OSRCoordinateTransformationShadow*) OCTNewCoordinateTransformation( src, dst );
    if (obj == 0 ) {
      CPLError(CE_Failure, 1, "Failed to create coordinate transformation");
      return NULL;
    }
    return obj;
  }
SWIGINTERN void delete_OSRCoordinateTransformationShadow(OSRCoordinateTransformationShadow *self){
    OCTDestroyCoordinateTransformation( self );
  }
SWIGINTERN void OSRCoordinateTransformationShadow_TransformPoint__SWIG_0(OSRCoordinateTransformationShadow *self,double inout[3]){
    OCTTransform( self, 1, &inout[0], &inout[1], &inout[2] );
  }
SWIGINTERN void OSRCoordinateTransformationShadow_TransformPoint__SWIG_1(OSRCoordinateTransformationShadow *self,double argout[3],double x,double y,double z=0.0){
    argout[0] = x;
    argout[1] = y;
    argout[2] = z;
    OCTTransform( self, 1, &argout[0], &argout[1], &argout[2] );
  }

#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_ALBERS_CONIC_EQUAL_AREA_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_ALBERS_CONIC_EQUAL_AREA";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_AZIMUTHAL_EQUIDISTANT_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_AZIMUTHAL_EQUIDISTANT";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_CASSINI_SOLDNER_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_CASSINI_SOLDNER";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_CYLINDRICAL_EQUAL_AREA_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_CYLINDRICAL_EQUAL_AREA";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_ECKERT_IV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_ECKERT_IV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_ECKERT_VI_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_ECKERT_VI";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_EQUIDISTANT_CONIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_EQUIDISTANT_CONIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_EQUIRECTANGULAR_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_EQUIRECTANGULAR";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_GALL_STEREOGRAPHIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_GALL_STEREOGRAPHIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_GNOMONIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_GNOMONIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_GOODE_HOMOLOSINE_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_GOODE_HOMOLOSINE";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_HOTINE_OBLIQUE_MERCATOR_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_HOTINE_OBLIQUE_MERCATOR";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_LABORDE_OBLIQUE_MERCATOR_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_LABORDE_OBLIQUE_MERCATOR";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_MERCATOR_1SP_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_MERCATOR_1SP";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_MERCATOR_2SP_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_MERCATOR_2SP";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_MILLER_CYLINDRICAL_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_MILLER_CYLINDRICAL";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_MOLLWEIDE_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_MOLLWEIDE";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_NEW_ZEALAND_MAP_GRID_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_NEW_ZEALAND_MAP_GRID";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_OBLIQUE_STEREOGRAPHIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_OBLIQUE_STEREOGRAPHIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_ORTHOGRAPHIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_ORTHOGRAPHIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_POLAR_STEREOGRAPHIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_POLAR_STEREOGRAPHIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_POLYCONIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_POLYCONIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_ROBINSON_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_ROBINSON";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_SINUSOIDAL_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_SINUSOIDAL";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_STEREOGRAPHIC_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_STEREOGRAPHIC";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_SWISS_OBLIQUE_CYLINDRICAL_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_SWISS_OBLIQUE_CYLINDRICAL";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TRANSVERSE_MERCATOR_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TRANSVERSE_MERCATOR";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TRANSVERSE_MERCATOR_MI_22_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TRANSVERSE_MERCATOR_MI_22";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TRANSVERSE_MERCATOR_MI_23_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TRANSVERSE_MERCATOR_MI_23";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TRANSVERSE_MERCATOR_MI_24_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TRANSVERSE_MERCATOR_MI_24";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TRANSVERSE_MERCATOR_MI_25_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TRANSVERSE_MERCATOR_MI_25";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_TUNISIA_MINING_GRID_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_TUNISIA_MINING_GRID";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_VANDERGRINTEN_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_VANDERGRINTEN";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PT_KROVAK_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PT_KROVAK";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_CENTRAL_MERIDIAN_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_CENTRAL_MERIDIAN";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_SCALE_FACTOR_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_SCALE_FACTOR";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_STANDARD_PARALLEL_1_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_STANDARD_PARALLEL_1";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_STANDARD_PARALLEL_2_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_STANDARD_PARALLEL_2";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_PSEUDO_STD_PARALLEL_1_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_PSEUDO_STD_PARALLEL_1";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LONGITUDE_OF_CENTER_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LONGITUDE_OF_CENTER";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LATITUDE_OF_CENTER_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LATITUDE_OF_CENTER";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LONGITUDE_OF_ORIGIN_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LONGITUDE_OF_ORIGIN";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LATITUDE_OF_ORIGIN_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LATITUDE_OF_ORIGIN";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_FALSE_EASTING_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_FALSE_EASTING";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_FALSE_NORTHING_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_FALSE_NORTHING";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_AZIMUTH_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_AZIMUTH";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LONGITUDE_OF_POINT_1_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LONGITUDE_OF_POINT_1";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LATITUDE_OF_POINT_1_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LATITUDE_OF_POINT_1";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LONGITUDE_OF_POINT_2_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LONGITUDE_OF_POINT_2";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LATITUDE_OF_POINT_2_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LATITUDE_OF_POINT_2";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LONGITUDE_OF_POINT_3_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LONGITUDE_OF_POINT_3";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LATITUDE_OF_POINT_3_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LATITUDE_OF_POINT_3";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_RECTIFIED_GRID_ANGLE_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_RECTIFIED_GRID_ANGLE";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_LANDSAT_NUMBER_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_LANDSAT_NUMBER";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_PATH_NUMBER_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_PATH_NUMBER";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_PERSPECTIVE_POINT_HEIGHT_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_PERSPECTIVE_POINT_HEIGHT";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_FIPSZONE_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_FIPSZONE";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_PP_ZONE_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_PP_ZONE";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_METER_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_METER";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_FOOT_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_FOOT";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_FOOT_CONV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_FOOT_CONV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_US_FOOT_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_US_FOOT";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_US_FOOT_CONV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_US_FOOT_CONV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_NAUTICAL_MILE_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_NAUTICAL_MILE";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_NAUTICAL_MILE_CONV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_NAUTICAL_MILE_CONV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_LINK_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_LINK";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_LINK_CONV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_LINK_CONV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_CHAIN_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_CHAIN";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_CHAIN_CONV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_CHAIN_CONV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_ROD_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_ROD";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_UL_ROD_CONV_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_UL_ROD_CONV";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_DN_NAD27_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_DN_NAD27";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_DN_NAD83_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_DN_NAD83";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_DN_WGS72_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_DN_WGS72";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SRS_DN_WGS84_get() {
  char * jresult ;
  char *result = 0 ;
  
  result = (char *) "SRS_DN_WGS84";
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SRS_WGS84_SEMIMAJOR_get() {
  double jresult ;
  double result;
  
  result = (double) SRS_WGS84_SEMIMAJOR;
  jresult = result; 
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SRS_WGS84_INVFLATTENING_get() {
  double jresult ;
  double result;
  
  result = (double) SRS_WGS84_INVFLATTENING;
  jresult = result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_UseExceptions() {
  UseExceptions();
}


SWIGEXPORT void SWIGSTDCALL CSharp_DontUseExceptions() {
  DontUseExceptions();
}


SWIGEXPORT int SWIGSTDCALL CSharp_GetWellKnownGeogCSAsWKT(char * jarg1, void * jarg2) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  char **arg2 = (char **) 0 ;
  OGRErr result;
  
  arg1 = (char *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  {
    CPLErrorReset();
    result = (OGRErr)GetWellKnownGeogCSAsWKT((char const *)arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_GetUserInputAsWKT(char * jarg1, void * jarg2) {
  int jresult ;
  char *arg1 = (char *) 0 ;
  char **arg2 = (char **) 0 ;
  OGRErr result;
  
  arg1 = (char *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  {
    CPLErrorReset();
    result = (OGRErr)GetUserInputAsWKT((char const *)arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_GetProjectionMethods() {
  void * jresult ;
  char **result = 0 ;
  
  {
    CPLErrorReset();
    result = (char **)OPTGetProjectionMethods();
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_GetProjectionMethodParameterList(char * jarg1, void * jarg2) {
  void * jresult ;
  char *arg1 = (char *) 0 ;
  char **arg2 = (char **) 0 ;
  char **result = 0 ;
  
  arg1 = (char *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  {
    CPLErrorReset();
    result = (char **)OPTGetParameterList(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = (void *)result; 
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_GetProjectionMethodParamInfo(char * jarg1, char * jarg2, void * jarg3, void * jarg4, void * jarg5) {
  char *arg1 = (char *) 0 ;
  char *arg2 = (char *) 0 ;
  char **arg3 = (char **) 0 ;
  char **arg4 = (char **) 0 ;
  double *arg5 = (double *) 0 ;
  
  arg1 = (char *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    /* %typemap(in) (char **argout) */
    arg3 = (char **)jarg3;
  }
  {
    /* %typemap(in) (char **argout) */
    arg4 = (char **)jarg4;
  }
  {
    /* %typemap(in) (double inout[ANY]) */
    arg5 = (double *)jarg5;
  }
  {
    CPLErrorReset();
    OPTGetParameterInfo(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return ; 
      };
      
    }
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg3);
    if (*arg3)
    free(*arg3);
    *arg3 = temp_string;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg4);
    if (*arg4)
    free(*arg4);
    *arg4 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpatialReference(char * jarg1) {
  void * jresult ;
  char *arg1 = (char *) "" ;
  OSRSpatialReferenceShadow *result = 0 ;
  
  arg1 = (char *)jarg1; 
  {
    CPLErrorReset();
    result = (OSRSpatialReferenceShadow *)new_OSRSpatialReferenceShadow((char const *)arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SpatialReference(void * jarg1) {
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    delete_OSRSpatialReferenceShadow(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return ; 
      };
      
    }
  }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference___str__(void * jarg1) {
  char * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (char *)OSRSpatialReferenceShadow___str__(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = SWIG_csharp_string_callback((const char *)result); 
  delete [] result;
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsSame(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
  int result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (OSRSpatialReferenceShadow *)jarg2; 
  {
    CPLErrorReset();
    result = (int)OSRSpatialReferenceShadow_IsSame(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsSameGeogCS(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
  int result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (OSRSpatialReferenceShadow *)jarg2; 
  {
    CPLErrorReset();
    result = (int)OSRSpatialReferenceShadow_IsSameGeogCS(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsGeographic(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  int result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (int)OSRSpatialReferenceShadow_IsGeographic(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsProjected(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  int result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (int)OSRSpatialReferenceShadow_IsProjected(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsLocal(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  int result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (int)OSRSpatialReferenceShadow_IsLocal(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetAttrValue(void * jarg1, char * jarg2, int jarg3) {
  char * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  int arg3 = (int) 0 ;
  char *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (int)jarg3; 
  {
    CPLErrorReset();
    result = (char *)OSRSpatialReferenceShadow_GetAttrValue(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetAttrValue(void * jarg1, char * jarg2, char * jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (char *)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetAttrValue(arg1,(char const *)arg2,(char const *)arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetAngularUnits(void * jarg1, char * jarg2, double jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (double)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetAngularUnits(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetAngularUnits(void * jarg1) {
  double jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (double)OSRSpatialReferenceShadow_GetAngularUnits(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetLinearUnits(void * jarg1, char * jarg2, double jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (double)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetLinearUnits(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetLinearUnits(void * jarg1) {
  double jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (double)OSRSpatialReferenceShadow_GetLinearUnits(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetLinearUnitsName(void * jarg1) {
  char * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (char *)OSRSpatialReferenceShadow_GetLinearUnitsName(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetAuthorityCode(void * jarg1, char * jarg2) {
  char * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  char *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (char *)OSRSpatialReferenceShadow_GetAuthorityCode(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetAuthorityName(void * jarg1, char * jarg2) {
  char * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  char *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (char *)OSRSpatialReferenceShadow_GetAuthorityName(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = SWIG_csharp_string_callback((const char *)result); 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetUTM(void * jarg1, int jarg2, int jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  int arg2 ;
  int arg3 = (int) 1 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetUTM(arg1,arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetStatePlane(void * jarg1, int jarg2, int jarg3, char * jarg4, double jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  int arg2 ;
  int arg3 = (int) 1 ;
  char *arg4 = (char *) "" ;
  double arg5 = (double) 0.0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (int)jarg2; 
  arg3 = (int)jarg3; 
  arg4 = (char *)jarg4; 
  arg5 = (double)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetStatePlane(arg1,arg2,arg3,(char const *)arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_AutoIdentifyEPSG(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_AutoIdentifyEPSG(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetProjection(void * jarg1, char * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetProjection(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetProjParm(void * jarg1, char * jarg2, double jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (double)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetProjParm(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetProjParm(void * jarg1, char * jarg2, double jarg3) {
  double jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 = (double) 0.0 ;
  double result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (double)jarg3; 
  {
    CPLErrorReset();
    result = (double)OSRSpatialReferenceShadow_GetProjParm(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetNormProjParm(void * jarg1, char * jarg2, double jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (double)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetNormProjParm(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetNormProjParm(void * jarg1, char * jarg2, double jarg3) {
  double jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  double arg3 = (double) 0.0 ;
  double result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (double)jarg3; 
  {
    CPLErrorReset();
    result = (double)OSRSpatialReferenceShadow_GetNormProjParm(arg1,(char const *)arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetACEA(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5, double jarg6, double jarg7) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  double arg6 ;
  double arg7 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  arg6 = (double)jarg6; 
  arg7 = (double)jarg7; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetACEA(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetAE(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetAE(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetCS(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetCS(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetBonne(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetBonne(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEC(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5, double jarg6, double jarg7) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  double arg6 ;
  double arg7 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  arg6 = (double)jarg6; 
  arg7 = (double)jarg7; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetEC(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEckertIV(void * jarg1, double jarg2, double jarg3, double jarg4) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetEckertIV(arg1,arg2,arg3,arg4);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEckertVI(void * jarg1, double jarg2, double jarg3, double jarg4) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetEckertVI(arg1,arg2,arg3,arg4);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEquirectangular(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetEquirectangular(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetGS(void * jarg1, double jarg2, double jarg3, double jarg4) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetGS(arg1,arg2,arg3,arg4);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetWellKnownGeogCS(void * jarg1, char * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetWellKnownGeogCS(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetFromUserInput(void * jarg1, char * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetFromUserInput(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_CopyGeogCSFrom(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (OSRSpatialReferenceShadow *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_CopyGeogCSFrom(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetTOWGS84(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5, double jarg6, double jarg7, double jarg8) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 = (double) 0.0 ;
  double arg6 = (double) 0.0 ;
  double arg7 = (double) 0.0 ;
  double arg8 = (double) 0.0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (double)jarg2; 
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  arg6 = (double)jarg6; 
  arg7 = (double)jarg7; 
  arg8 = (double)jarg8; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetTOWGS84(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_GetTOWGS84(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  double *arg2 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (double argout[ANY]) */
    arg2 = (double *)jarg2;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_GetTOWGS84(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetGeogCS(void * jarg1, char * jarg2, char * jarg3, char * jarg4, double jarg5, double jarg6, char * jarg7, double jarg8, char * jarg9, double jarg10) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  double arg5 ;
  double arg6 ;
  char *arg7 = (char *) "Greenwich" ;
  double arg8 = (double) 0.0 ;
  char *arg9 = (char *) "degree" ;
  double arg10 = (double) 0.0174532925199433 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (char *)jarg3; 
  arg4 = (char *)jarg4; 
  arg5 = (double)jarg5; 
  arg6 = (double)jarg6; 
  arg7 = (char *)jarg7; 
  arg8 = (double)jarg8; 
  arg9 = (char *)jarg9; 
  arg10 = (double)jarg10; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetGeogCS(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,(char const *)arg9,arg10);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetProjCS(void * jarg1, char * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) "unnamed" ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_SetProjCS(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromWkt(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  char *val2 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **ignorechange) */
    /*TODO*/
    arg2 = 0;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromWkt(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromProj4(void * jarg1, char * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromProj4(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromESRI(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  char *val2 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **ignorechange) */
    /*TODO*/
    arg2 = 0;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromESRI(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromEPSG(void * jarg1, int jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  int arg2 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (int)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromEPSG(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromPCI(void * jarg1, char * jarg2, char * jarg3, void * jarg4) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) "METRE" ;
  double *arg4 = (double *) (double *)0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  arg3 = (char *)jarg3; 
  {
    /* %typemap(in) (double argin[ANY]) */
    arg4 = (double *)jarg4;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromPCI(arg1,(char const *)arg2,(char const *)arg3,arg4);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromUSGS(void * jarg1, long jarg2, long jarg3, void * jarg4, long jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  long arg2 ;
  long arg3 = (long) 0 ;
  double *arg4 = (double *) (double *)0 ;
  long arg5 = (long) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (long)jarg2; 
  arg3 = (long)jarg3; 
  {
    /* %typemap(in) (double argin[ANY]) */
    arg4 = (double *)jarg4;
  }
  arg5 = (long)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromUSGS(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromXML(void * jarg1, char * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char *arg2 = (char *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (char *)jarg2; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromXML(arg1,(char const *)arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToWkt(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToWkt(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToPrettyWkt(void * jarg1, void * jarg2, int jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  int arg3 = (int) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  arg3 = (int)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToPrettyWkt(arg1,arg2,arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToProj4(void * jarg1, void * jarg2) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToProj4(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToPCI(void * jarg1, void * jarg2, void * jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  char **arg3 = (char **) 0 ;
  double **arg4 ;
  double *argout4[17] ;
  OGRErr result;
  
  {
    /* %typemap(in,numinputs=0) (double *argout4[ANY]) */
    arg4 = (double**)&argout4;
  }
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  {
    /* %typemap(in) (char **argout) */
    arg3 = (char **)jarg3;
  }
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToPCI(arg1,arg2,arg3,arg4);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg3);
    if (*arg3)
    free(*arg3);
    *arg3 = temp_string;
  }
  {
    /* %typemap(argout) (double *argout[ANY]) */
    
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(freearg) (double *argout[ANY]) */
    
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToUSGS(void * jarg1, long * jarg2, long * jarg3, long * jarg5) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  long *arg2 = (long *) 0 ;
  long *arg3 = (long *) 0 ;
  double **arg4 ;
  long *arg5 = (long *) 0 ;
  double *argout4[15] ;
  OGRErr result;
  
  {
    /* %typemap(in,numinputs=0) (double *argout4[ANY]) */
    arg4 = (double**)&argout4;
  }
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (long *)jarg2; 
  arg3 = (long *)jarg3; 
  arg5 = (long *)jarg5; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToUSGS(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (double *argout[ANY]) */
    
  }
  {
    /* %typemap(freearg) (double *argout[ANY]) */
    
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToXML(void * jarg1, void * jarg2, char * jarg3) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  char **arg2 = (char **) 0 ;
  char *arg3 = (char *) "" ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    /* %typemap(in) (char **argout) */
    arg2 = (char **)jarg2;
  }
  arg3 = (char *)jarg3; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToXML(arg1,arg2,(char const *)arg3);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(argout) (char **argout) */
    char* temp_string;
    temp_string = SWIG_csharp_string_callback(*arg2);
    if (*arg2)
    free(*arg2);
    *arg2 = temp_string;
  }
  {
    /* %typemap(freearg) (char **argout) */
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SpatialReference_CloneGeogCS(void * jarg1) {
  void * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OSRSpatialReferenceShadow *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OSRSpatialReferenceShadow *)OSRSpatialReferenceShadow_CloneGeogCS(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_Validate(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_Validate(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_StripCTParms(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_StripCTParms(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_FixupOrdering(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_FixupOrdering(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_Fixup(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_Fixup(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_MorphToESRI(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_MorphToESRI(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_MorphFromESRI(void * jarg1) {
  int jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OGRErr result;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  {
    CPLErrorReset();
    result = (OGRErr)OSRSpatialReferenceShadow_MorphFromESRI(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  {
    /* %typemap(out,fragment="OGRErrMessages",canthrow=1) OGRErr */
    jresult = result;
  }
  {
    /* %typemap(ret) OGRErr */
    
  }
  return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CoordinateTransformation(void * jarg1, void * jarg2) {
  void * jresult ;
  OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
  OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
  OSRCoordinateTransformationShadow *result = 0 ;
  
  arg1 = (OSRSpatialReferenceShadow *)jarg1; 
  arg2 = (OSRSpatialReferenceShadow *)jarg2; 
  {
    CPLErrorReset();
    result = (OSRCoordinateTransformationShadow *)new_OSRCoordinateTransformationShadow(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return 0; 
      };
      
    }
  }
  jresult = (void *)result; 
  return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CoordinateTransformation(void * jarg1) {
  OSRCoordinateTransformationShadow *arg1 = (OSRCoordinateTransformationShadow *) 0 ;
  
  arg1 = (OSRCoordinateTransformationShadow *)jarg1; 
  {
    CPLErrorReset();
    delete_OSRCoordinateTransformationShadow(arg1);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return ; 
      };
      
    }
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_CoordinateTransformation_TransformPoint__SWIG_0(void * jarg1, void * jarg2) {
  OSRCoordinateTransformationShadow *arg1 = (OSRCoordinateTransformationShadow *) 0 ;
  double *arg2 ;
  
  arg1 = (OSRCoordinateTransformationShadow *)jarg1; 
  {
    /* %typemap(in) (double argin[ANY]) */
    arg2 = (double *)jarg2;
  }
  {
    CPLErrorReset();
    OSRCoordinateTransformationShadow_TransformPoint__SWIG_0(arg1,arg2);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return ; 
      };
      
    }
  }
  {
    /* %typemap(argout) (double inout[ANY]) */
  }
}


SWIGEXPORT void SWIGSTDCALL CSharp_CoordinateTransformation_TransformPoint__SWIG_1(void * jarg1, void * jarg2, double jarg3, double jarg4, double jarg5) {
  OSRCoordinateTransformationShadow *arg1 = (OSRCoordinateTransformationShadow *) 0 ;
  double *arg2 ;
  double arg3 ;
  double arg4 ;
  double arg5 = (double) 0.0 ;
  
  arg1 = (OSRCoordinateTransformationShadow *)jarg1; 
  {
    /* %typemap(in) (double argout[ANY]) */
    arg2 = (double *)jarg2;
  }
  arg3 = (double)jarg3; 
  arg4 = (double)jarg4; 
  arg5 = (double)jarg5; 
  {
    CPLErrorReset();
    OSRCoordinateTransformationShadow_TransformPoint__SWIG_1(arg1,arg2,arg3,arg4,arg5);
    CPLErr eclass = CPLGetLastErrorType();
    if ( eclass == CE_Failure || eclass == CE_Fatal ) {
      {
        SWIG_CSharpException(SWIG_RuntimeError, CPLGetLastErrorMsg()); return ; 
      };
      
    }
  }
}


#ifdef __cplusplus
}
#endif

