/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.25
 * 
 * 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<class 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);
};
#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
#  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__) || defined(__ICC)
#   define SWIGUNUSED __attribute__ ((unused)) 
# else
#   define 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 for Windows DLLs */
#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   define SWIGEXPORT
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif 
#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_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_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 SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) {
  SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback;
  if (code >=0 && (size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) {
    callback = SWIG_csharp_exceptions[code].callback;
  }
  callback(msg);
}

static void SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) {
  SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback;
  if (code >=0 && (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 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_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


#include <iostream>
using namespace std;

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

#include "ogr_srs_api.h"

typedef void OSRSpatialReferenceShadow;
typedef void OSRCoordinateTransformationShadow;



OGRErr GetWellKnownGeogCSAsWKT( const char *name, char **argout ) {
  OGRSpatialReferenceH srs = OSRNewSpatialReference("");
  OSRSetWellKnownGeogCS( srs, name );
  OGRErr 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";
  }
}

static OSRSpatialReferenceShadow *new_OSRSpatialReferenceShadow(char const *wkt=""){
    OSRSpatialReferenceShadow *sr = (OSRSpatialReferenceShadow*) OSRNewSpatialReference(wkt);
    if (sr) {
      OSRReference( sr );
    }
    return sr;
  }
static void delete_OSRSpatialReferenceShadow(OSRSpatialReferenceShadow *self){
    if (OSRDereference( self ) == 0 ) {
      OSRDestroySpatialReference( self );
    }
  }
static char *OSRSpatialReferenceShadow___str__(OSRSpatialReferenceShadow *self){
    char *buf = 0;
    OSRExportToPrettyWkt( self, &buf, 0 );
    return buf;
  }
static int OSRSpatialReferenceShadow_IsSame(OSRSpatialReferenceShadow *self,OSRSpatialReferenceShadow *rhs){
    return OSRIsSame( self, rhs );
  }
static int OSRSpatialReferenceShadow_IsSameGeogCS(OSRSpatialReferenceShadow *self,OSRSpatialReferenceShadow *rhs){
    return OSRIsSameGeogCS( self, rhs );
  }
static int OSRSpatialReferenceShadow_IsGeographic(OSRSpatialReferenceShadow *self){
    return OSRIsGeographic(self);
  }
static int OSRSpatialReferenceShadow_IsProjected(OSRSpatialReferenceShadow *self){
    return OSRIsProjected(self);
  }
static char const *OSRSpatialReferenceShadow_GetAttrValue(OSRSpatialReferenceShadow *self,char const *name,int child=0){
    return OSRGetAttrValue( self, name, child );
  }
static OGRErr OSRSpatialReferenceShadow_SetAttrValue(OSRSpatialReferenceShadow *self,char const *name,char const *value){
    return OSRSetAttrValue( self, name, value ); 
  }
static OGRErr OSRSpatialReferenceShadow_SetAngularUnits(OSRSpatialReferenceShadow *self,char const *name,double to_radians){
    return OSRSetAngularUnits( self, name, to_radians );
  }
static double OSRSpatialReferenceShadow_GetAngularUnits(OSRSpatialReferenceShadow *self){
    // Return code ignored.
    return OSRGetAngularUnits( self, 0 );
  }
static OGRErr OSRSpatialReferenceShadow_SetLinearUnits(OSRSpatialReferenceShadow *self,char const *name,double to_meters){
    return OSRSetAngularUnits( self, name, to_meters );
  }
static double OSRSpatialReferenceShadow_GetLinearUnits(OSRSpatialReferenceShadow *self){
    // Return code ignored.
    return OSRGetLinearUnits( self, 0 );
  }
static 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";
  }
static char const *OSRSpatialReferenceShadow_GetAuthorityCode(OSRSpatialReferenceShadow *self,char const *target_key){
    return OSRGetAuthorityCode( self, target_key );
  }
static char const *OSRSpatialReferenceShadow_GetAuthorityName(OSRSpatialReferenceShadow *self,char const *target_key){
    return OSRGetAuthorityName( self, target_key );
  }
static OGRErr OSRSpatialReferenceShadow_SetUTM(OSRSpatialReferenceShadow *self,int zone,int north=1){
    return OSRSetUTM( self, zone, north );
  }
static 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 );
  }
static OGRErr OSRSpatialReferenceShadow_AutoIdentifyEPSG(OSRSpatialReferenceShadow *self){
    return OSRAutoIdentifyEPSG( self );
  }
static OGRErr OSRSpatialReferenceShadow_SetProjection(OSRSpatialReferenceShadow *self,char const *arg){
    return OSRSetProjection( self, arg );
  }
static OGRErr OSRSpatialReferenceShadow_SetProjParm(OSRSpatialReferenceShadow *self,char const *name,double val){
    return OSRSetProjParm( self, name, val ); 
  }
static double OSRSpatialReferenceShadow_GetProjParm(OSRSpatialReferenceShadow *self,char const *name,double default_val=0.0){
    // Return code ignored.
    return OSRGetProjParm( self, name, default_val, 0 );
  }
static OGRErr OSRSpatialReferenceShadow_SetNormProjParm(OSRSpatialReferenceShadow *self,char const *name,double val){
    return OSRSetNormProjParm( self, name, val );
  }
static double OSRSpatialReferenceShadow_GetNormProjParm(OSRSpatialReferenceShadow *self,char const *name,double default_val=0.0){
    // Return code ignored.
    return OSRGetNormProjParm( self, name, default_val, 0 );
  }
static 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 );
  }
static OGRErr OSRSpatialReferenceShadow_SetAE(OSRSpatialReferenceShadow *self,double clat,double clon,double fe,double fn){
    return OSRSetAE( self, clat, clon, fe, fn );
  }
static OGRErr OSRSpatialReferenceShadow_SetCS(OSRSpatialReferenceShadow *self,double clat,double clong,double fe,double fn){
    return OSRSetCS( self, clat, clong, fe, fn );
  }
static OGRErr OSRSpatialReferenceShadow_SetBonne(OSRSpatialReferenceShadow *self,double clat,double clong,double fe,double fn){
    return OSRSetBonne( self, clat, clong, fe, fn );
  }
static 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 );
  }
static OGRErr OSRSpatialReferenceShadow_SetEckertIV(OSRSpatialReferenceShadow *self,double cm,double fe,double fn){
    return OSRSetEckertIV( self, cm, fe, fn );
  }
static OGRErr OSRSpatialReferenceShadow_SetEckertVI(OSRSpatialReferenceShadow *self,double cm,double fe,double fn){
    return OSRSetEckertVI( self, cm, fe, fn );
  }
static OGRErr OSRSpatialReferenceShadow_SetEquirectangular(OSRSpatialReferenceShadow *self,double clat,double clong,double fe,double fn){
    return OSRSetEquirectangular( self, clat, clong, fe, fn );
  }
static OGRErr OSRSpatialReferenceShadow_SetGS(OSRSpatialReferenceShadow *self,double cm,double fe,double fn){
    return OSRSetGS( self, cm, fe, fn );
  }
static OGRErr OSRSpatialReferenceShadow_SetWellKnownGeogCS(OSRSpatialReferenceShadow *self,char const *name){
    return OSRSetWellKnownGeogCS( self, name );
  }
static OGRErr OSRSpatialReferenceShadow_SetFromUserInput(OSRSpatialReferenceShadow *self,char const *name){
    return OSRSetFromUserInput( self, name );
  }
static OGRErr OSRSpatialReferenceShadow_CopyGeogCSFrom(OSRSpatialReferenceShadow *self,OSRSpatialReferenceShadow *rhs){
    return OSRCopyGeogCSFrom( self, rhs );
  }
static 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 );
  }

static int
CreateTupleFromDoubleArray( double *first, unsigned int size ) {
  
  return 1;
}

static OGRErr OSRSpatialReferenceShadow_GetTOWGS84(OSRSpatialReferenceShadow *self,double argout[7]){
    return OSRGetTOWGS84( self, argout, 7 );
  }
static 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 );
  }
static OGRErr OSRSpatialReferenceShadow_SetProjCS(OSRSpatialReferenceShadow *self,char const *name="unnamed"){
    return OSRSetProjCS( self, name );
  }
static OGRErr OSRSpatialReferenceShadow_ImportFromWkt(OSRSpatialReferenceShadow *self,char **ppszInput){
    return OSRImportFromWkt( self, ppszInput );
  }
static OGRErr OSRSpatialReferenceShadow_ImportFromProj4(OSRSpatialReferenceShadow *self,char *ppszInput){
    return OSRImportFromProj4( self, ppszInput );
  }
static OGRErr OSRSpatialReferenceShadow_ImportFromESRI(OSRSpatialReferenceShadow *self,char **ppszInput){
    return OSRImportFromESRI( self, ppszInput );
  }
static OGRErr OSRSpatialReferenceShadow_ImportFromEPSG(OSRSpatialReferenceShadow *self,int arg){
    return OSRImportFromEPSG(self, arg);
  }
static OGRErr OSRSpatialReferenceShadow_ImportFromPCI(OSRSpatialReferenceShadow *self,char const *proj,char const *units="METRE",double argin[17]=0){
    return OSRImportFromPCI( self, proj, units, argin );
  }
static 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 );
  }
static OGRErr OSRSpatialReferenceShadow_ImportFromXML(OSRSpatialReferenceShadow *self,char const *xmlString){
    return OSRImportFromXML( self, xmlString );
  }
static OGRErr OSRSpatialReferenceShadow_ExportToWkt(OSRSpatialReferenceShadow *self,char **argout){
    return OSRExportToWkt( self, argout );
  }
static OGRErr OSRSpatialReferenceShadow_ExportToPrettyWkt(OSRSpatialReferenceShadow *self,char **argout,int simplify=0){
    return OSRExportToPrettyWkt( self, argout, simplify );
  }
static OGRErr OSRSpatialReferenceShadow_ExportToProj4(OSRSpatialReferenceShadow *self,char **argout){
    return OSRExportToProj4( self, argout );
  }
static OGRErr OSRSpatialReferenceShadow_ExportToPCI(OSRSpatialReferenceShadow *self,char **proj,char **units,double *parms[17]){
    return OSRExportToPCI( self, proj, units, parms );
  }
static OGRErr OSRSpatialReferenceShadow_ExportToUSGS(OSRSpatialReferenceShadow *self,long *code,long *zone,double *parms[15],long *datum){
    return OSRExportToUSGS( self, code, zone, parms, datum );
  }
static OGRErr OSRSpatialReferenceShadow_ExportToXML(OSRSpatialReferenceShadow *self,char **argout,char const *dialect=""){
    return OSRExportToXML( self, argout, dialect );
  }
static OSRSpatialReferenceShadow *OSRSpatialReferenceShadow_CloneGeogCS(OSRSpatialReferenceShadow *self){
    return (OSRSpatialReferenceShadow*) OSRCloneGeogCS(self);
  }
static OGRErr OSRSpatialReferenceShadow_Validate(OSRSpatialReferenceShadow *self){
    return OSRValidate(self);
  }
static OGRErr OSRSpatialReferenceShadow_StripCTParms(OSRSpatialReferenceShadow *self){
    return OSRStripCTParms(self);
  }
static OGRErr OSRSpatialReferenceShadow_FixupOrdering(OSRSpatialReferenceShadow *self){
    return OSRFixupOrdering(self);
  }
static OGRErr OSRSpatialReferenceShadow_Fixup(OSRSpatialReferenceShadow *self){
    return OSRFixup(self);
  }
static OGRErr OSRSpatialReferenceShadow_MorphToESRI(OSRSpatialReferenceShadow *self){
    return OSRMorphToESRI(self);
  }
static OGRErr OSRSpatialReferenceShadow_MorphFromESRI(OSRSpatialReferenceShadow *self){
    return OSRMorphFromESRI(self);
  }
static OSRCoordinateTransformationShadow *new_OSRCoordinateTransformationShadow(OSRSpatialReferenceShadow *src,OSRSpatialReferenceShadow *dst){
    OSRCoordinateTransformationShadow *obj = (OSRCoordinateTransformationShadow*) OCTNewCoordinateTransformation( src, dst );
    if (obj == 0 ) {
      throw "Failed to create coordinate transformation";
    }
    return obj;
  }
static void delete_OSRCoordinateTransformationShadow(OSRCoordinateTransformationShadow *self){
    OCTDestroyCoordinateTransformation( self );
  }
static void OSRCoordinateTransformationShadow_TransformPoint__SWIG_0(OSRCoordinateTransformationShadow *self,double inout[3]){
    OCTTransform( self, 1, &inout[0], &inout[1], &inout[2] );
  }
static 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_get_SRS_PT_ALBERS_CONIC_EQUAL_AREA() {
    char * jresult = 0 ;
    char *result;
    
    result = (char *) "SRS_PT_ALBERS_CONIC_EQUAL_AREA";
    
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


SWIGEXPORT int SWIGSTDCALL CSharp_GetWellKnownGeogCSAsWKT(char * jarg1) {
    int jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char **arg2 = (char **) 0 ;
    OGRErr result;
    char *argout2 = 0 ;
    
    {
        /* %typemap(in,numinputs=0) (char **argout2) */
        
    }
    arg1 = jarg1; 
    result = (OGRErr)GetWellKnownGeogCSAsWKT((char const *)arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_GetProjectionMethods() {
    void * jresult = 0 ;
    char **result;
    
    result = (char **)OPTGetProjectionMethods();
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_GetProjectionMethodParameterList(char * jarg1, void * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char **arg2 = (char **) 0 ;
    char **result;
    
    arg1 = jarg1; 
    arg2 = (char **)jarg2; 
    result = (char **)OPTGetParameterList(arg1,arg2);
    
    jresult = (void *)result; 
    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 = jarg1; 
    arg2 = jarg2; 
    arg3 = (char **)jarg3; 
    arg4 = (char **)jarg4; 
    arg5 = (double *)jarg5; 
    OPTGetParameterInfo(arg1,arg2,arg3,arg4,arg5);
    
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SpatialReference(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) "" ;
    OSRSpatialReferenceShadow *result;
    
    arg1 = jarg1; 
    result = (OSRSpatialReferenceShadow *)new_OSRSpatialReferenceShadow((char const *)arg1);
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SpatialReference(void * jarg1) {
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    delete_OSRSpatialReferenceShadow(arg1);
    
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference___str__(void * jarg1) {
    char * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (char *)OSRSpatialReferenceShadow___str__(arg1);
    
    jresult = SWIG_csharp_string_callback(result); 
    delete [] result;
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsSame(void * jarg1, void * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
    int result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (OSRSpatialReferenceShadow *)jarg2; 
    result = (int)OSRSpatialReferenceShadow_IsSame(arg1,arg2);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsSameGeogCS(void * jarg1, void * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
    int result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (OSRSpatialReferenceShadow *)jarg2; 
    result = (int)OSRSpatialReferenceShadow_IsSameGeogCS(arg1,arg2);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsGeographic(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    int result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (int)OSRSpatialReferenceShadow_IsGeographic(arg1);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_IsProjected(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    int result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (int)OSRSpatialReferenceShadow_IsProjected(arg1);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetAttrValue(void * jarg1, char * jarg2, int jarg3) {
    char * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 = (int) 0 ;
    char *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (int)jarg3; 
    result = (char *)OSRSpatialReferenceShadow_GetAttrValue(arg1,(char const *)arg2,arg3);
    
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetAttrValue(void * jarg1, char * jarg2, char * jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetAttrValue(arg1,(char const *)arg2,(char const *)arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetAngularUnits(void * jarg1, char * jarg2, double jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    double arg3 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (double)jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetAngularUnits(arg1,(char const *)arg2,arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetAngularUnits(void * jarg1) {
    double jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    double result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (double)OSRSpatialReferenceShadow_GetAngularUnits(arg1);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetLinearUnits(void * jarg1, char * jarg2, double jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    double arg3 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (double)jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetLinearUnits(arg1,(char const *)arg2,arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetLinearUnits(void * jarg1) {
    double jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    double result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (double)OSRSpatialReferenceShadow_GetLinearUnits(arg1);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetLinearUnitsName(void * jarg1) {
    char * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (char *)OSRSpatialReferenceShadow_GetLinearUnitsName(arg1);
    
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetAuthorityCode(void * jarg1, char * jarg2) {
    char * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (char *)OSRSpatialReferenceShadow_GetAuthorityCode(arg1,(char const *)arg2);
    
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SpatialReference_GetAuthorityName(void * jarg1, char * jarg2) {
    char * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (char *)OSRSpatialReferenceShadow_GetAuthorityName(arg1,(char const *)arg2);
    
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetUTM(void * jarg1, int jarg2, int jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    int arg2 ;
    int arg3 = (int) 1 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = (int)jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetUTM(arg1,arg2,arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetStatePlane(void * jarg1, int jarg2, int jarg3, char * jarg4, double jarg5) {
    int jresult = 0 ;
    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 = jarg4; 
    arg5 = (double)jarg5; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetStatePlane(arg1,arg2,arg3,(char const *)arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_AutoIdentifyEPSG(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_AutoIdentifyEPSG(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetProjection(void * jarg1, char * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetProjection(arg1,(char const *)arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetProjParm(void * jarg1, char * jarg2, double jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    double arg3 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (double)jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetProjParm(arg1,(char const *)arg2,arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetProjParm(void * jarg1, char * jarg2, double jarg3) {
    double jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    double arg3 = (double) 0.0 ;
    double result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (double)jarg3; 
    result = (double)OSRSpatialReferenceShadow_GetProjParm(arg1,(char const *)arg2,arg3);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetNormProjParm(void * jarg1, char * jarg2, double jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    double arg3 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (double)jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetNormProjParm(arg1,(char const *)arg2,arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_SpatialReference_GetNormProjParm(void * jarg1, char * jarg2, double jarg3) {
    double jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    double arg3 = (double) 0.0 ;
    double result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = (double)jarg3; 
    result = (double)OSRSpatialReferenceShadow_GetNormProjParm(arg1,(char const *)arg2,arg3);
    
    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 = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetACEA(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetAE(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
    int jresult = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetAE(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetCS(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
    int jresult = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetCS(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetBonne(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
    int jresult = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetBonne(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, 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 = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetEC(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEckertIV(void * jarg1, double jarg2, double jarg3, double jarg4) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    double arg2 ;
    double arg3 ;
    double arg4 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (double)jarg2; 
    arg3 = (double)jarg3; 
    arg4 = (double)jarg4; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetEckertIV(arg1,arg2,arg3,arg4);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEckertVI(void * jarg1, double jarg2, double jarg3, double jarg4) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    double arg2 ;
    double arg3 ;
    double arg4 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (double)jarg2; 
    arg3 = (double)jarg3; 
    arg4 = (double)jarg4; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetEckertVI(arg1,arg2,arg3,arg4);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetEquirectangular(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
    int jresult = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetEquirectangular(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetGS(void * jarg1, double jarg2, double jarg3, double jarg4) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    double arg2 ;
    double arg3 ;
    double arg4 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (double)jarg2; 
    arg3 = (double)jarg3; 
    arg4 = (double)jarg4; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetGS(arg1,arg2,arg3,arg4);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetWellKnownGeogCS(void * jarg1, char * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetWellKnownGeogCS(arg1,(char const *)arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetFromUserInput(void * jarg1, char * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetFromUserInput(arg1,(char const *)arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_CopyGeogCSFrom(void * jarg1, void * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (OSRSpatialReferenceShadow *)jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_CopyGeogCSFrom(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, 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 = 0 ;
    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; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetTOWGS84(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_GetTOWGS84(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    double *arg2 ;
    OGRErr result;
    double argout2[7] ;
    
    {
        /* %typemap(in,numinputs=0) (double argout2[ANY]) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_GetTOWGS84(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (double argout[ANY]) */
        
    }
    {
        /* %typemap(csharp, 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 = 0 ;
    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 = jarg2; 
    arg3 = jarg3; 
    arg4 = jarg4; 
    arg5 = (double)jarg5; 
    arg6 = (double)jarg6; 
    arg7 = jarg7; 
    arg8 = (double)jarg8; 
    arg9 = jarg9; 
    arg10 = (double)jarg10; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetGeogCS(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,(char const *)arg9,arg10);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_SetProjCS(void * jarg1, char * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) "unnamed" ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_SetProjCS(arg1,(char const *)arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromWkt(void * jarg1, void * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    OGRErr result;
    char *val2 ;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    {
        /* %typemap(csharp, in) (char **ignorechange) */
        
    }
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromWkt(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromProj4(void * jarg1, char * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromProj4(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromESRI(void * jarg1, void * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    OGRErr result;
    char *val2 ;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    {
        /* %typemap(csharp, in) (char **ignorechange) */
        
    }
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromESRI(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromEPSG(void * jarg1, int jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    int arg2 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (int)jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromEPSG(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromPCI(void * jarg1, char * jarg2, char * jarg3, void * jarg4) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) "METRE" ;
    double *arg4 = (double *) (double *)0 ;
    OGRErr result;
    double argin4[17] ;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3; 
    {
        /* %typemap(in) (double argin4[ANY]) */
        
    }
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromPCI(arg1,(char const *)arg2,(char const *)arg3,arg4);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromUSGS(void * jarg1, long jarg2, long jarg3, void * jarg4, long jarg5) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    long arg2 ;
    long arg3 = (long) 0 ;
    double *arg4 = (double *) (double *)0 ;
    long arg5 = (long) 0 ;
    OGRErr result;
    double argin4[15] ;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (long)jarg2; 
    arg3 = (long)jarg3; 
    {
        /* %typemap(in) (double argin4[ANY]) */
        
    }
    arg5 = (long)jarg5; 
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromUSGS(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ImportFromXML(void * jarg1, char * jarg2) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char *arg2 = (char *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = jarg2; 
    result = (OGRErr)OSRSpatialReferenceShadow_ImportFromXML(arg1,(char const *)arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToWkt(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    OGRErr result;
    char *argout2 = 0 ;
    
    {
        /* %typemap(in,numinputs=0) (char **argout2) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToWkt(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToPrettyWkt(void * jarg1, int jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    int arg3 = (int) 0 ;
    OGRErr result;
    char *argout2 = 0 ;
    
    {
        /* %typemap(in,numinputs=0) (char **argout2) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg3 = (int)jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToPrettyWkt(arg1,arg2,arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToProj4(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    OGRErr result;
    char *argout2 = 0 ;
    
    {
        /* %typemap(in,numinputs=0) (char **argout2) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToProj4(arg1,arg2);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToPCI(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    char **arg3 = (char **) 0 ;
    double **arg4 ;
    OGRErr result;
    char *argout2 = 0 ;
    char *argout3 = 0 ;
    double *argout4[ANY] ;
    
    {
        /* %typemap(in,numinputs=0) (char **argout2) */
        
    }
    {
        /* %typemap(in,numinputs=0) (char **argout3) */
        
    }
    {
        /* %typemap(in,numinputs=0) (double *argout4[ANY]) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToPCI(arg1,arg2,arg3,arg4);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(argout) (double *argout[ANY]) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (double *argout[ANY]) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToUSGS(void * jarg1, long * jarg2, long * jarg3, long * jarg5) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    long *arg2 = (long *) 0 ;
    long *arg3 = (long *) 0 ;
    double **arg4 ;
    long *arg5 = (long *) 0 ;
    OGRErr result;
    double *argout4[ANY] ;
    
    {
        /* %typemap(in,numinputs=0) (double *argout4[ANY]) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (long *)jarg2; 
    arg3 = (long *)jarg3; 
    arg5 = (long *)jarg5; 
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToUSGS(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (double *argout[ANY]) */
        
    }
    {
        /* %typemap(freearg) (double *argout[ANY]) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_ExportToXML(void * jarg1, char * jarg3) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    char **arg2 = (char **) 0 ;
    char *arg3 = (char *) "" ;
    OGRErr result;
    char *argout2 = 0 ;
    
    {
        /* %typemap(in,numinputs=0) (char **argout2) */
        
    }
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg3 = jarg3; 
    result = (OGRErr)OSRSpatialReferenceShadow_ExportToXML(arg1,arg2,(char const *)arg3);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(argout) (char **argout) */
        
    }
    {
        /* %typemap(freearg) (char **argout) */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SpatialReference_CloneGeogCS(void * jarg1) {
    void * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OSRSpatialReferenceShadow *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OSRSpatialReferenceShadow *)OSRSpatialReferenceShadow_CloneGeogCS(arg1);
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_Validate(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_Validate(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_StripCTParms(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_StripCTParms(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_FixupOrdering(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_FixupOrdering(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_Fixup(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_Fixup(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_MorphToESRI(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_MorphToESRI(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT int SWIGSTDCALL CSharp_SpatialReference_MorphFromESRI(void * jarg1) {
    int jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OGRErr result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    result = (OGRErr)OSRSpatialReferenceShadow_MorphFromESRI(arg1);
    
    {
        /* %typemap(csharp, out) OGRErr */
        
    }
    {
        /* %typemap(csharp, ret) OGRErr */
        
    }
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CoordinateTransformation(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    OSRSpatialReferenceShadow *arg1 = (OSRSpatialReferenceShadow *) 0 ;
    OSRSpatialReferenceShadow *arg2 = (OSRSpatialReferenceShadow *) 0 ;
    OSRCoordinateTransformationShadow *result;
    
    arg1 = (OSRSpatialReferenceShadow *)jarg1; 
    arg2 = (OSRSpatialReferenceShadow *)jarg2; 
    result = (OSRCoordinateTransformationShadow *)new_OSRCoordinateTransformationShadow(arg1,arg2);
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CoordinateTransformation(void * jarg1) {
    OSRCoordinateTransformationShadow *arg1 = (OSRCoordinateTransformationShadow *) 0 ;
    
    arg1 = (OSRCoordinateTransformationShadow *)jarg1; 
    delete_OSRCoordinateTransformationShadow(arg1);
    
}


SWIGEXPORT void SWIGSTDCALL CSharp_CoordinateTransformation_TransformPoint__SWIG_0(void * jarg1, void * jarg2) {
    OSRCoordinateTransformationShadow *arg1 = (OSRCoordinateTransformationShadow *) 0 ;
    double *arg2 ;
    double argin2[3] ;
    
    arg1 = (OSRCoordinateTransformationShadow *)jarg1; 
    {
        /* %typemap(in) (double argin2[ANY]) */
        
    }
    OSRCoordinateTransformationShadow_TransformPoint__SWIG_0(arg1,arg2);
    
    {
        /* %typemap(argout) (double argout[ANY]) */
        
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_CoordinateTransformation_TransformPoint__SWIG_1(void * jarg1, double jarg3, double jarg4, double jarg5) {
    OSRCoordinateTransformationShadow *arg1 = (OSRCoordinateTransformationShadow *) 0 ;
    double *arg2 ;
    double arg3 ;
    double arg4 ;
    double arg5 = (double) 0.0 ;
    double argout2[3] ;
    
    {
        /* %typemap(in,numinputs=0) (double argout2[ANY]) */
        
    }
    arg1 = (OSRCoordinateTransformationShadow *)jarg1; 
    arg3 = (double)jarg3; 
    arg4 = (double)jarg4; 
    arg5 = (double)jarg5; 
    OSRCoordinateTransformationShadow_TransformPoint__SWIG_1(arg1,arg2,arg3,arg4,arg5);
    
    {
        /* %typemap(argout) (double argout[ANY]) */
        
    }
}


#ifdef __cplusplus
}
#endif

