ogr_wrap.cpp
来自「支持各种栅格图像和矢量图像读取的库」· C++ 代码 · 共 2,175 行 · 第 1/5 页
CPP
2,175 行
/* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). * Version 1.3.31 * * 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 __cplusplustemplate<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)# if (__SUNPRO_CC <= 0x560)# define SWIGTEMPLATEDISAMBIGUATOR template# else# define SWIGTEMPLATEDISAMBIGUATOR # endif# 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 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#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 (code >=0 && (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 (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 __cplusplusextern "C" #endifSWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_ogr( 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 __cplusplusextern "C" #endifSWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_ogr( 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 __cplusplusextern "C" #endifSWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_ogr(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 -13SWIGINTERN 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>#include <iostream>using namespace std;#include "ogr_api.h"#include "ogr_core.h"#include "cpl_port.h"#include "cpl_string.h"typedef void OSRSpatialReferenceShadow;typedef void OGRDriverShadow;typedef void OGRDataSourceShadow;typedef void OGRLayerShadow;typedef void OGRFeatureShadow;typedef void OGRFeatureDefnShadow;typedef void OGRGeometryShadow;typedef void OSRCoordinateTransformationShadow;typedef void OGRFieldDefnShadow;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 OGRDataSourceShadow *OGRDriverShadow_CreateDataSource(OGRDriverShadow *self,char const *name,char **options=0){ OGRDataSourceShadow *ds = (OGRDataSourceShadow*) OGR_Dr_CreateDataSource( self, name, options); return ds; }SWIGINTERN OGRDataSourceShadow *OGRDriverShadow_CopyDataSource(OGRDriverShadow *self,OGRDataSourceShadow *copy_ds,char const *name,char **options=0){ OGRDataSourceShadow *ds = (OGRDataSourceShadow*) OGR_Dr_CopyDataSource(self, copy_ds, name, options); return ds; }SWIGINTERN OGRDataSourceShadow *OGRDriverShadow_Open(OGRDriverShadow *self,char const *name,int update=0){ OGRDataSourceShadow* ds = (OGRDataSourceShadow*) OGR_Dr_Open(self, name, update); return ds; }SWIGINTERN int OGRDriverShadow_DeleteDataSource(OGRDriverShadow *self,char const *name){ return OGR_Dr_DeleteDataSource( self, name ); }SWIGINTERN bool OGRDriverShadow_TestCapability(OGRDriverShadow *self,char const *cap){ return OGR_Dr_TestCapability(self, cap); }SWIGINTERN char const *OGRDriverShadow_GetName(OGRDriverShadow *self){ return OGR_Dr_GetName( self ); }SWIGINTERN void delete_OGRDataSourceShadow(OGRDataSourceShadow *self){ OGRReleaseDataSource(self); }SWIGINTERN int OGRDataSourceShadow_GetRefCount(OGRDataSourceShadow *self){ return OGR_DS_GetRefCount(self); }SWIGINTERN int OGRDataSourceShadow_GetSummaryRefCount(OGRDataSourceShadow *self){ return OGR_DS_GetSummaryRefCount(self); }SWIGINTERN int OGRDataSourceShadow_GetLayerCount(OGRDataSourceShadow *self){ return OGR_DS_GetLayerCount(self); }SWIGINTERN OGRDriverShadow *OGRDataSourceShadow_GetDriver(OGRDataSourceShadow *self){ OGRDriverShadow* driver; OGRDataSourceShadow* ds; ds = (OGRDataSourceShadow*)OGROpen((const char *) OGR_DS_GetName(self),0,&driver); OGRReleaseDataSource(ds); return driver; }SWIGINTERN char const *OGRDataSourceShadow_GetName(OGRDataSourceShadow *self){ return OGR_DS_GetName(self); }SWIGINTERN OGRErr OGRDataSourceShadow_DeleteLayer(OGRDataSourceShadow *self,int index){ return OGR_DS_DeleteLayer(self, index); }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"; }}SWIGINTERN OGRLayerShadow *OGRDataSourceShadow_CreateLayer(OGRDataSourceShadow *self,char const *name,OSRSpatialReferenceShadow *reference=NULL,OGRwkbGeometryType geom_type=wkbUnknown,char **options=0){ OGRLayerShadow* layer = (OGRLayerShadow*) OGR_DS_CreateLayer( self, name, reference, geom_type, options); return layer; }SWIGINTERN OGRLayerShadow *OGRDataSourceShadow_CopyLayer(OGRDataSourceShadow *self,OGRLayerShadow *src_layer,char const *new_name,char **options=0){ OGRLayerShadow* layer = (OGRLayerShadow*) OGR_DS_CopyLayer( self, src_layer, new_name,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?