1 /* ----------------------------------------------------------------------------
2 * This file was automatically generated by SWIG (http://www.swig.org).
3 * Version 3.0.12
4 *
5 * This file is not intended to be easily readable and contains a number of
6 * coding conventions designed to improve portability and efficiency. Do not make
7 * changes to this file unless you know what you are doing--modify the SWIG
8 * interface file instead.
9 * ----------------------------------------------------------------------------- */
10
11
12 #ifndef SWIGPERL
13 #define SWIGPERL
14 #endif
15
16 #define SWIG_CASTRANK_MODE
17
18
19 #ifdef __cplusplus
20 /* SwigValueWrapper is described in swig.swg */
21 template<typename T> class SwigValueWrapper {
22 struct SwigMovePointer {
23 T *ptr;
SwigMovePointerSwigValueWrapper::SwigMovePointer24 SwigMovePointer(T *p) : ptr(p) { }
~SwigMovePointerSwigValueWrapper::SwigMovePointer25 ~SwigMovePointer() { delete ptr; }
operator =SwigValueWrapper::SwigMovePointer26 SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
27 } pointer;
28 SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
29 SwigValueWrapper(const SwigValueWrapper<T>& rhs);
30 public:
SwigValueWrapper()31 SwigValueWrapper() : pointer(0) { }
operator =(const T & t)32 SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
operator T&() const33 operator T&() const { return *pointer.ptr; }
operator &()34 T *operator&() { return pointer.ptr; }
35 };
36
SwigValueInit()37 template <typename T> T SwigValueInit() {
38 return T();
39 }
40 #endif
41
42 /* -----------------------------------------------------------------------------
43 * This section contains generic SWIG labels for method/variable
44 * declarations/attributes, and other compiler dependent labels.
45 * ----------------------------------------------------------------------------- */
46
47 /* template workaround for compilers that cannot correctly implement the C++ standard */
48 #ifndef SWIGTEMPLATEDISAMBIGUATOR
49 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
50 # define SWIGTEMPLATEDISAMBIGUATOR template
51 # elif defined(__HP_aCC)
52 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
53 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
54 # define SWIGTEMPLATEDISAMBIGUATOR template
55 # else
56 # define SWIGTEMPLATEDISAMBIGUATOR
57 # endif
58 #endif
59
60 /* inline attribute */
61 #ifndef SWIGINLINE
62 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
63 # define SWIGINLINE inline
64 # else
65 # define SWIGINLINE
66 # endif
67 #endif
68
69 /* attribute recognised by some compilers to avoid 'unused' warnings */
70 #ifndef SWIGUNUSED
71 # if defined(__GNUC__)
72 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
73 # define SWIGUNUSED __attribute__ ((__unused__))
74 # else
75 # define SWIGUNUSED
76 # endif
77 # elif defined(__ICC)
78 # define SWIGUNUSED __attribute__ ((__unused__))
79 # else
80 # define SWIGUNUSED
81 # endif
82 #endif
83
84 #ifndef SWIG_MSC_UNSUPPRESS_4505
85 # if defined(_MSC_VER)
86 # pragma warning(disable : 4505) /* unreferenced local function has been removed */
87 # endif
88 #endif
89
90 #ifndef SWIGUNUSEDPARM
91 # ifdef __cplusplus
92 # define SWIGUNUSEDPARM(p)
93 # else
94 # define SWIGUNUSEDPARM(p) p SWIGUNUSED
95 # endif
96 #endif
97
98 /* internal SWIG method */
99 #ifndef SWIGINTERN
100 # define SWIGINTERN static SWIGUNUSED
101 #endif
102
103 /* internal inline SWIG method */
104 #ifndef SWIGINTERNINLINE
105 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
106 #endif
107
108 /* exporting methods */
109 #if defined(__GNUC__)
110 # if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
111 # ifndef GCC_HASCLASSVISIBILITY
112 # define GCC_HASCLASSVISIBILITY
113 # endif
114 # endif
115 #endif
116
117 #ifndef SWIGEXPORT
118 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
119 # if defined(STATIC_LINKED)
120 # define SWIGEXPORT
121 # else
122 # define SWIGEXPORT __declspec(dllexport)
123 # endif
124 # else
125 # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
126 # define SWIGEXPORT __attribute__ ((visibility("default")))
127 # else
128 # define SWIGEXPORT
129 # endif
130 # endif
131 #endif
132
133 /* calling conventions for Windows */
134 #ifndef SWIGSTDCALL
135 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
136 # define SWIGSTDCALL __stdcall
137 # else
138 # define SWIGSTDCALL
139 # endif
140 #endif
141
142 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
143 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
144 # define _CRT_SECURE_NO_DEPRECATE
145 #endif
146
147 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
148 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
149 # define _SCL_SECURE_NO_DEPRECATE
150 #endif
151
152 /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
153 #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
154 # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
155 #endif
156
157 /* Intel's compiler complains if a variable which was never initialised is
158 * cast to void, which is a common idiom which we use to indicate that we
159 * are aware a variable isn't used. So we just silence that warning.
160 * See: https://github.com/swig/swig/issues/192 for more discussion.
161 */
162 #ifdef __INTEL_COMPILER
163 # pragma warning disable 592
164 #endif
165
166 /* -----------------------------------------------------------------------------
167 * swigrun.swg
168 *
169 * This file contains generic C API SWIG runtime support for pointer
170 * type checking.
171 * ----------------------------------------------------------------------------- */
172
173 /* This should only be incremented when either the layout of swig_type_info changes,
174 or for whatever reason, the runtime changes incompatibly */
175 #define SWIG_RUNTIME_VERSION "4"
176
177 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
178 #ifdef SWIG_TYPE_TABLE
179 # define SWIG_QUOTE_STRING(x) #x
180 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
181 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
182 #else
183 # define SWIG_TYPE_TABLE_NAME
184 #endif
185
186 /*
187 You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
188 creating a static or dynamic library from the SWIG runtime code.
189 In 99.9% of the cases, SWIG just needs to declare them as 'static'.
190
191 But only do this if strictly necessary, ie, if you have problems
192 with your compiler or suchlike.
193 */
194
195 #ifndef SWIGRUNTIME
196 # define SWIGRUNTIME SWIGINTERN
197 #endif
198
199 #ifndef SWIGRUNTIMEINLINE
200 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
201 #endif
202
203 /* Generic buffer size */
204 #ifndef SWIG_BUFFER_SIZE
205 # define SWIG_BUFFER_SIZE 1024
206 #endif
207
208 /* Flags for pointer conversions */
209 #define SWIG_POINTER_DISOWN 0x1
210 #define SWIG_CAST_NEW_MEMORY 0x2
211
212 /* Flags for new pointer objects */
213 #define SWIG_POINTER_OWN 0x1
214
215
216 /*
217 Flags/methods for returning states.
218
219 The SWIG conversion methods, as ConvertPtr, return an integer
220 that tells if the conversion was successful or not. And if not,
221 an error code can be returned (see swigerrors.swg for the codes).
222
223 Use the following macros/flags to set or process the returning
224 states.
225
226 In old versions of SWIG, code such as the following was usually written:
227
228 if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
229 // success code
230 } else {
231 //fail code
232 }
233
234 Now you can be more explicit:
235
236 int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
237 if (SWIG_IsOK(res)) {
238 // success code
239 } else {
240 // fail code
241 }
242
243 which is the same really, but now you can also do
244
245 Type *ptr;
246 int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
247 if (SWIG_IsOK(res)) {
248 // success code
249 if (SWIG_IsNewObj(res) {
250 ...
251 delete *ptr;
252 } else {
253 ...
254 }
255 } else {
256 // fail code
257 }
258
259 I.e., now SWIG_ConvertPtr can return new objects and you can
260 identify the case and take care of the deallocation. Of course that
261 also requires SWIG_ConvertPtr to return new result values, such as
262
263 int SWIG_ConvertPtr(obj, ptr,...) {
264 if (<obj is ok>) {
265 if (<need new object>) {
266 *ptr = <ptr to new allocated object>;
267 return SWIG_NEWOBJ;
268 } else {
269 *ptr = <ptr to old object>;
270 return SWIG_OLDOBJ;
271 }
272 } else {
273 return SWIG_BADOBJ;
274 }
275 }
276
277 Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
278 more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
279 SWIG errors code.
280
281 Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
282 allows to return the 'cast rank', for example, if you have this
283
284 int food(double)
285 int fooi(int);
286
287 and you call
288
289 food(1) // cast rank '1' (1 -> 1.0)
290 fooi(1) // cast rank '0'
291
292 just use the SWIG_AddCast()/SWIG_CheckState()
293 */
294
295 #define SWIG_OK (0)
296 #define SWIG_ERROR (-1)
297 #define SWIG_IsOK(r) (r >= 0)
298 #define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
299
300 /* The CastRankLimit says how many bits are used for the cast rank */
301 #define SWIG_CASTRANKLIMIT (1 << 8)
302 /* The NewMask denotes the object was created (using new/malloc) */
303 #define SWIG_NEWOBJMASK (SWIG_CASTRANKLIMIT << 1)
304 /* The TmpMask is for in/out typemaps that use temporal objects */
305 #define SWIG_TMPOBJMASK (SWIG_NEWOBJMASK << 1)
306 /* Simple returning values */
307 #define SWIG_BADOBJ (SWIG_ERROR)
308 #define SWIG_OLDOBJ (SWIG_OK)
309 #define SWIG_NEWOBJ (SWIG_OK | SWIG_NEWOBJMASK)
310 #define SWIG_TMPOBJ (SWIG_OK | SWIG_TMPOBJMASK)
311 /* Check, add and del mask methods */
312 #define SWIG_AddNewMask(r) (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
313 #define SWIG_DelNewMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
314 #define SWIG_IsNewObj(r) (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
315 #define SWIG_AddTmpMask(r) (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
316 #define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
317 #define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
318
319 /* Cast-Rank Mode */
320 #if defined(SWIG_CASTRANK_MODE)
321 # ifndef SWIG_TypeRank
322 # define SWIG_TypeRank unsigned long
323 # endif
324 # ifndef SWIG_MAXCASTRANK /* Default cast allowed */
325 # define SWIG_MAXCASTRANK (2)
326 # endif
327 # define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
328 # define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
SWIG_AddCast(int r)329 SWIGINTERNINLINE int SWIG_AddCast(int r) {
330 return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
331 }
SWIG_CheckState(int r)332 SWIGINTERNINLINE int SWIG_CheckState(int r) {
333 return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
334 }
335 #else /* no cast-rank mode */
336 # define SWIG_AddCast(r) (r)
337 # define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
338 #endif
339
340
341 #include <string.h>
342
343 #ifdef __cplusplus
344 extern "C" {
345 #endif
346
347 typedef void *(*swig_converter_func)(void *, int *);
348 typedef struct swig_type_info *(*swig_dycast_func)(void **);
349
350 /* Structure to store information on one type */
351 typedef struct swig_type_info {
352 const char *name; /* mangled name of this type */
353 const char *str; /* human readable name of this type */
354 swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
355 struct swig_cast_info *cast; /* linked list of types that can cast into this type */
356 void *clientdata; /* language specific type data */
357 int owndata; /* flag if the structure owns the clientdata */
358 } swig_type_info;
359
360 /* Structure to store a type and conversion function used for casting */
361 typedef struct swig_cast_info {
362 swig_type_info *type; /* pointer to type that is equivalent to this type */
363 swig_converter_func converter; /* function to cast the void pointers */
364 struct swig_cast_info *next; /* pointer to next cast in linked list */
365 struct swig_cast_info *prev; /* pointer to the previous cast */
366 } swig_cast_info;
367
368 /* Structure used to store module information
369 * Each module generates one structure like this, and the runtime collects
370 * all of these structures and stores them in a circularly linked list.*/
371 typedef struct swig_module_info {
372 swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
373 size_t size; /* Number of types in this module */
374 struct swig_module_info *next; /* Pointer to next element in circularly linked list */
375 swig_type_info **type_initial; /* Array of initially generated type structures */
376 swig_cast_info **cast_initial; /* Array of initially generated casting structures */
377 void *clientdata; /* Language specific module data */
378 } swig_module_info;
379
380 /*
381 Compare two type names skipping the space characters, therefore
382 "char*" == "char *" and "Class<int>" == "Class<int >", etc.
383
384 Return 0 when the two name types are equivalent, as in
385 strncmp, but skipping ' '.
386 */
387 SWIGRUNTIME int
SWIG_TypeNameComp(const char * f1,const char * l1,const char * f2,const char * l2)388 SWIG_TypeNameComp(const char *f1, const char *l1,
389 const char *f2, const char *l2) {
390 for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
391 while ((*f1 == ' ') && (f1 != l1)) ++f1;
392 while ((*f2 == ' ') && (f2 != l2)) ++f2;
393 if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
394 }
395 return (int)((l1 - f1) - (l2 - f2));
396 }
397
398 /*
399 Check type equivalence in a name list like <name1>|<name2>|...
400 Return 0 if equal, -1 if nb < tb, 1 if nb > tb
401 */
402 SWIGRUNTIME int
SWIG_TypeCmp(const char * nb,const char * tb)403 SWIG_TypeCmp(const char *nb, const char *tb) {
404 int equiv = 1;
405 const char* te = tb + strlen(tb);
406 const char* ne = nb;
407 while (equiv != 0 && *ne) {
408 for (nb = ne; *ne; ++ne) {
409 if (*ne == '|') break;
410 }
411 equiv = SWIG_TypeNameComp(nb, ne, tb, te);
412 if (*ne) ++ne;
413 }
414 return equiv;
415 }
416
417 /*
418 Check type equivalence in a name list like <name1>|<name2>|...
419 Return 0 if not equal, 1 if equal
420 */
421 SWIGRUNTIME int
SWIG_TypeEquiv(const char * nb,const char * tb)422 SWIG_TypeEquiv(const char *nb, const char *tb) {
423 return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
424 }
425
426 /*
427 Check the typename
428 */
429 SWIGRUNTIME swig_cast_info *
SWIG_TypeCheck(const char * c,swig_type_info * ty)430 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
431 if (ty) {
432 swig_cast_info *iter = ty->cast;
433 while (iter) {
434 if (strcmp(iter->type->name, c) == 0) {
435 if (iter == ty->cast)
436 return iter;
437 /* Move iter to the top of the linked list */
438 iter->prev->next = iter->next;
439 if (iter->next)
440 iter->next->prev = iter->prev;
441 iter->next = ty->cast;
442 iter->prev = 0;
443 if (ty->cast) ty->cast->prev = iter;
444 ty->cast = iter;
445 return iter;
446 }
447 iter = iter->next;
448 }
449 }
450 return 0;
451 }
452
453 /*
454 Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
455 */
456 SWIGRUNTIME swig_cast_info *
SWIG_TypeCheckStruct(swig_type_info * from,swig_type_info * ty)457 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
458 if (ty) {
459 swig_cast_info *iter = ty->cast;
460 while (iter) {
461 if (iter->type == from) {
462 if (iter == ty->cast)
463 return iter;
464 /* Move iter to the top of the linked list */
465 iter->prev->next = iter->next;
466 if (iter->next)
467 iter->next->prev = iter->prev;
468 iter->next = ty->cast;
469 iter->prev = 0;
470 if (ty->cast) ty->cast->prev = iter;
471 ty->cast = iter;
472 return iter;
473 }
474 iter = iter->next;
475 }
476 }
477 return 0;
478 }
479
480 /*
481 Cast a pointer up an inheritance hierarchy
482 */
483 SWIGRUNTIMEINLINE void *
SWIG_TypeCast(swig_cast_info * ty,void * ptr,int * newmemory)484 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
485 return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
486 }
487
488 /*
489 Dynamic pointer casting. Down an inheritance hierarchy
490 */
491 SWIGRUNTIME swig_type_info *
SWIG_TypeDynamicCast(swig_type_info * ty,void ** ptr)492 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
493 swig_type_info *lastty = ty;
494 if (!ty || !ty->dcast) return ty;
495 while (ty && (ty->dcast)) {
496 ty = (*ty->dcast)(ptr);
497 if (ty) lastty = ty;
498 }
499 return lastty;
500 }
501
502 /*
503 Return the name associated with this type
504 */
505 SWIGRUNTIMEINLINE const char *
SWIG_TypeName(const swig_type_info * ty)506 SWIG_TypeName(const swig_type_info *ty) {
507 return ty->name;
508 }
509
510 /*
511 Return the pretty name associated with this type,
512 that is an unmangled type name in a form presentable to the user.
513 */
514 SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info * type)515 SWIG_TypePrettyName(const swig_type_info *type) {
516 /* The "str" field contains the equivalent pretty names of the
517 type, separated by vertical-bar characters. We choose
518 to print the last name, as it is often (?) the most
519 specific. */
520 if (!type) return NULL;
521 if (type->str != NULL) {
522 const char *last_name = type->str;
523 const char *s;
524 for (s = type->str; *s; s++)
525 if (*s == '|') last_name = s+1;
526 return last_name;
527 }
528 else
529 return type->name;
530 }
531
532 /*
533 Set the clientdata field for a type
534 */
535 SWIGRUNTIME void
SWIG_TypeClientData(swig_type_info * ti,void * clientdata)536 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
537 swig_cast_info *cast = ti->cast;
538 /* if (ti->clientdata == clientdata) return; */
539 ti->clientdata = clientdata;
540
541 while (cast) {
542 if (!cast->converter) {
543 swig_type_info *tc = cast->type;
544 if (!tc->clientdata) {
545 SWIG_TypeClientData(tc, clientdata);
546 }
547 }
548 cast = cast->next;
549 }
550 }
551 SWIGRUNTIME void
SWIG_TypeNewClientData(swig_type_info * ti,void * clientdata)552 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
553 SWIG_TypeClientData(ti, clientdata);
554 ti->owndata = 1;
555 }
556
557 /*
558 Search for a swig_type_info structure only by mangled name
559 Search is a O(log #types)
560
561 We start searching at module start, and finish searching when start == end.
562 Note: if start == end at the beginning of the function, we go all the way around
563 the circular list.
564 */
565 SWIGRUNTIME swig_type_info *
SWIG_MangledTypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)566 SWIG_MangledTypeQueryModule(swig_module_info *start,
567 swig_module_info *end,
568 const char *name) {
569 swig_module_info *iter = start;
570 do {
571 if (iter->size) {
572 size_t l = 0;
573 size_t r = iter->size - 1;
574 do {
575 /* since l+r >= 0, we can (>> 1) instead (/ 2) */
576 size_t i = (l + r) >> 1;
577 const char *iname = iter->types[i]->name;
578 if (iname) {
579 int compare = strcmp(name, iname);
580 if (compare == 0) {
581 return iter->types[i];
582 } else if (compare < 0) {
583 if (i) {
584 r = i - 1;
585 } else {
586 break;
587 }
588 } else if (compare > 0) {
589 l = i + 1;
590 }
591 } else {
592 break; /* should never happen */
593 }
594 } while (l <= r);
595 }
596 iter = iter->next;
597 } while (iter != end);
598 return 0;
599 }
600
601 /*
602 Search for a swig_type_info structure for either a mangled name or a human readable name.
603 It first searches the mangled names of the types, which is a O(log #types)
604 If a type is not found it then searches the human readable names, which is O(#types).
605
606 We start searching at module start, and finish searching when start == end.
607 Note: if start == end at the beginning of the function, we go all the way around
608 the circular list.
609 */
610 SWIGRUNTIME swig_type_info *
SWIG_TypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)611 SWIG_TypeQueryModule(swig_module_info *start,
612 swig_module_info *end,
613 const char *name) {
614 /* STEP 1: Search the name field using binary search */
615 swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
616 if (ret) {
617 return ret;
618 } else {
619 /* STEP 2: If the type hasn't been found, do a complete search
620 of the str field (the human readable name) */
621 swig_module_info *iter = start;
622 do {
623 size_t i = 0;
624 for (; i < iter->size; ++i) {
625 if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
626 return iter->types[i];
627 }
628 iter = iter->next;
629 } while (iter != end);
630 }
631
632 /* neither found a match */
633 return 0;
634 }
635
636 /*
637 Pack binary data into a string
638 */
639 SWIGRUNTIME char *
SWIG_PackData(char * c,void * ptr,size_t sz)640 SWIG_PackData(char *c, void *ptr, size_t sz) {
641 static const char hex[17] = "0123456789abcdef";
642 const unsigned char *u = (unsigned char *) ptr;
643 const unsigned char *eu = u + sz;
644 for (; u != eu; ++u) {
645 unsigned char uu = *u;
646 *(c++) = hex[(uu & 0xf0) >> 4];
647 *(c++) = hex[uu & 0xf];
648 }
649 return c;
650 }
651
652 /*
653 Unpack binary data from a string
654 */
655 SWIGRUNTIME const char *
SWIG_UnpackData(const char * c,void * ptr,size_t sz)656 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
657 unsigned char *u = (unsigned char *) ptr;
658 const unsigned char *eu = u + sz;
659 for (; u != eu; ++u) {
660 char d = *(c++);
661 unsigned char uu;
662 if ((d >= '0') && (d <= '9'))
663 uu = (unsigned char)((d - '0') << 4);
664 else if ((d >= 'a') && (d <= 'f'))
665 uu = (unsigned char)((d - ('a'-10)) << 4);
666 else
667 return (char *) 0;
668 d = *(c++);
669 if ((d >= '0') && (d <= '9'))
670 uu |= (unsigned char)(d - '0');
671 else if ((d >= 'a') && (d <= 'f'))
672 uu |= (unsigned char)(d - ('a'-10));
673 else
674 return (char *) 0;
675 *u = uu;
676 }
677 return c;
678 }
679
680 /*
681 Pack 'void *' into a string buffer.
682 */
683 SWIGRUNTIME char *
SWIG_PackVoidPtr(char * buff,void * ptr,const char * name,size_t bsz)684 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
685 char *r = buff;
686 if ((2*sizeof(void *) + 2) > bsz) return 0;
687 *(r++) = '_';
688 r = SWIG_PackData(r,&ptr,sizeof(void *));
689 if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
690 strcpy(r,name);
691 return buff;
692 }
693
694 SWIGRUNTIME const char *
SWIG_UnpackVoidPtr(const char * c,void ** ptr,const char * name)695 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
696 if (*c != '_') {
697 if (strcmp(c,"NULL") == 0) {
698 *ptr = (void *) 0;
699 return name;
700 } else {
701 return 0;
702 }
703 }
704 return SWIG_UnpackData(++c,ptr,sizeof(void *));
705 }
706
707 SWIGRUNTIME char *
SWIG_PackDataName(char * buff,void * ptr,size_t sz,const char * name,size_t bsz)708 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
709 char *r = buff;
710 size_t lname = (name ? strlen(name) : 0);
711 if ((2*sz + 2 + lname) > bsz) return 0;
712 *(r++) = '_';
713 r = SWIG_PackData(r,ptr,sz);
714 if (lname) {
715 strncpy(r,name,lname+1);
716 } else {
717 *r = 0;
718 }
719 return buff;
720 }
721
722 SWIGRUNTIME const char *
SWIG_UnpackDataName(const char * c,void * ptr,size_t sz,const char * name)723 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
724 if (*c != '_') {
725 if (strcmp(c,"NULL") == 0) {
726 memset(ptr,0,sz);
727 return name;
728 } else {
729 return 0;
730 }
731 }
732 return SWIG_UnpackData(++c,ptr,sz);
733 }
734
735 #ifdef __cplusplus
736 }
737 #endif
738
739 /* Errors in SWIG */
740 #define SWIG_UnknownError -1
741 #define SWIG_IOError -2
742 #define SWIG_RuntimeError -3
743 #define SWIG_IndexError -4
744 #define SWIG_TypeError -5
745 #define SWIG_DivisionByZero -6
746 #define SWIG_OverflowError -7
747 #define SWIG_SyntaxError -8
748 #define SWIG_ValueError -9
749 #define SWIG_SystemError -10
750 #define SWIG_AttributeError -11
751 #define SWIG_MemoryError -12
752 #define SWIG_NullReferenceError -13
753
754
755
756 #ifdef __cplusplus
757 /* Needed on some windows machines---since MS plays funny games with the header files under C++ */
758 #include <math.h>
759 #include <stdlib.h>
760 extern "C" {
761 #endif
762 #include "EXTERN.h"
763 #include "perl.h"
764 #include "XSUB.h"
765
766 /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
767
768 /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
769 #ifndef PERL_REVISION
770 # if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
771 # define PERL_PATCHLEVEL_H_IMPLICIT
772 # include <patchlevel.h>
773 # endif
774 # if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
775 # include <could_not_find_Perl_patchlevel.h>
776 # endif
777 # ifndef PERL_REVISION
778 # define PERL_REVISION (5)
779 # define PERL_VERSION PATCHLEVEL
780 # define PERL_SUBVERSION SUBVERSION
781 # endif
782 #endif
783
784 #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
785 #define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
786 #endif
787
788 #ifndef SvIOK_UV
789 # define SvIOK_UV(sv) (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
790 #endif
791
792 #ifndef SvUOK
793 # define SvUOK(sv) SvIOK_UV(sv)
794 #endif
795
796 #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
797 # define PL_sv_undef sv_undef
798 # define PL_na na
799 # define PL_errgv errgv
800 # define PL_sv_no sv_no
801 # define PL_sv_yes sv_yes
802 # define PL_markstack_ptr markstack_ptr
803 #endif
804
805 #ifndef IVSIZE
806 # ifdef LONGSIZE
807 # define IVSIZE LONGSIZE
808 # else
809 # define IVSIZE 4 /* A bold guess, but the best we can make. */
810 # endif
811 #endif
812
813 #ifndef INT2PTR
814 # if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
815 # define PTRV UV
816 # define INT2PTR(any,d) (any)(d)
817 # else
818 # if PTRSIZE == LONGSIZE
819 # define PTRV unsigned long
820 # else
821 # define PTRV unsigned
822 # endif
823 # define INT2PTR(any,d) (any)(PTRV)(d)
824 # endif
825
826 # define NUM2PTR(any,d) (any)(PTRV)(d)
827 # define PTR2IV(p) INT2PTR(IV,p)
828 # define PTR2UV(p) INT2PTR(UV,p)
829 # define PTR2NV(p) NUM2PTR(NV,p)
830
831 # if PTRSIZE == LONGSIZE
832 # define PTR2ul(p) (unsigned long)(p)
833 # else
834 # define PTR2ul(p) INT2PTR(unsigned long,p)
835 # endif
836 #endif /* !INT2PTR */
837
838 #ifndef SvPV_nolen
839 # define SvPV_nolen(x) SvPV(x,PL_na)
840 #endif
841
842 #ifndef get_sv
843 # define get_sv perl_get_sv
844 #endif
845
846 #ifndef ERRSV
847 # define ERRSV get_sv("@",FALSE)
848 #endif
849
850 #ifndef pTHX_
851 #define pTHX_
852 #endif
853
854 #include <string.h>
855 #ifdef __cplusplus
856 }
857 #endif
858
859 /* -----------------------------------------------------------------------------
860 * error manipulation
861 * ----------------------------------------------------------------------------- */
862
863 SWIGINTERN const char*
SWIG_Perl_ErrorType(int code)864 SWIG_Perl_ErrorType(int code) {
865 switch(code) {
866 case SWIG_MemoryError:
867 return "MemoryError";
868 case SWIG_IOError:
869 return "IOError";
870 case SWIG_RuntimeError:
871 return "RuntimeError";
872 case SWIG_IndexError:
873 return "IndexError";
874 case SWIG_TypeError:
875 return "TypeError";
876 case SWIG_DivisionByZero:
877 return "ZeroDivisionError";
878 case SWIG_OverflowError:
879 return "OverflowError";
880 case SWIG_SyntaxError:
881 return "SyntaxError";
882 case SWIG_ValueError:
883 return "ValueError";
884 case SWIG_SystemError:
885 return "SystemError";
886 case SWIG_AttributeError:
887 return "AttributeError";
888 default:
889 return "RuntimeError";
890 }
891 }
892
893
894 /* -----------------------------------------------------------------------------
895 * perlrun.swg
896 *
897 * This file contains the runtime support for Perl modules
898 * and includes code for managing global variables and pointer
899 * type checking.
900 * ----------------------------------------------------------------------------- */
901
902 #ifdef PERL_OBJECT
903 #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
904 #define SWIG_PERL_OBJECT_CALL pPerl,
905 #else
906 #define SWIG_PERL_OBJECT_DECL
907 #define SWIG_PERL_OBJECT_CALL
908 #endif
909
910 /* Common SWIG API */
911
912 /* for raw pointers */
913 #define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
914 #define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own)
915 #define SWIG_NewPointerObj(p, type, flags) SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
916 #define swig_owntype int
917
918 /* for raw packed data */
919 #define SWIG_ConvertPacked(obj, p, s, type) SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
920 #define SWIG_NewPackedObj(p, s, type) SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
921
922 /* for class or struct pointers */
923 #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)
924 #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)
925
926 /* for C or C++ function pointers */
927 #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_ConvertPtr(obj, pptr, type, 0)
928 #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_NewPointerObj(ptr, type, 0)
929
930 /* for C++ member pointers, ie, member methods */
931 #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_ConvertPacked(obj, ptr, sz, ty)
932 #define SWIG_NewMemberObj(ptr, sz, type) SWIG_NewPackedObj(ptr, sz, type)
933
934
935 /* Runtime API */
936
937 #define SWIG_GetModule(clientdata) SWIG_Perl_GetModule(clientdata)
938 #define SWIG_SetModule(clientdata, pointer) SWIG_Perl_SetModule(pointer)
939
940
941 /* Error manipulation */
942
943 #define SWIG_ErrorType(code) SWIG_Perl_ErrorType(code)
944 #define SWIG_Error(code, msg) sv_setpvf(get_sv("@", GV_ADD), "%s %s", SWIG_ErrorType(code), msg)
945 #define SWIG_fail goto fail
946
947 /* Perl-specific SWIG API */
948
949 #define SWIG_MakePtr(sv, ptr, type, flags) SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
950 #define SWIG_MakePackedObj(sv, p, s, type) SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
951 #define SWIG_SetError(str) SWIG_Error(SWIG_RuntimeError, str)
952
953
954 #define SWIG_PERL_DECL_ARGS_1(arg1) (SWIG_PERL_OBJECT_DECL arg1)
955 #define SWIG_PERL_CALL_ARGS_1(arg1) (SWIG_PERL_OBJECT_CALL arg1)
956 #define SWIG_PERL_DECL_ARGS_2(arg1, arg2) (SWIG_PERL_OBJECT_DECL arg1, arg2)
957 #define SWIG_PERL_CALL_ARGS_2(arg1, arg2) (SWIG_PERL_OBJECT_CALL arg1, arg2)
958
959 /* -----------------------------------------------------------------------------
960 * pointers/data manipulation
961 * ----------------------------------------------------------------------------- */
962
963 /* For backward compatibility only */
964 #define SWIG_POINTER_EXCEPTION 0
965
966 #ifdef __cplusplus
967 extern "C" {
968 #endif
969
970 #define SWIG_OWNER SWIG_POINTER_OWN
971 #define SWIG_SHADOW SWIG_OWNER << 1
972
973 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
974
975 /* SWIG Perl macros */
976
977 /* Macro to declare an XS function */
978 #ifndef XSPROTO
979 # define XSPROTO(name) void name(pTHX_ CV* cv)
980 #endif
981
982 /* Macro to call an XS function */
983 #ifdef PERL_OBJECT
984 # define SWIG_CALLXS(_name) _name(cv,pPerl)
985 #else
986 # ifndef MULTIPLICITY
987 # define SWIG_CALLXS(_name) _name(cv)
988 # else
989 # define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv)
990 # endif
991 #endif
992
993 #ifdef PERL_OBJECT
994 #define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this;
995
996 #ifdef __cplusplus
997 extern "C" {
998 #endif
999 typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
1000 #ifdef __cplusplus
1001 }
1002 #endif
1003
1004 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
1005 #define SWIGCLASS_STATIC
1006
1007 #else /* PERL_OBJECT */
1008
1009 #define MAGIC_PPERL
1010 #define SWIGCLASS_STATIC static SWIGUNUSED
1011
1012 #ifndef MULTIPLICITY
1013 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
1014
1015 #ifdef __cplusplus
1016 extern "C" {
1017 #endif
1018 typedef int (*SwigMagicFunc)(SV *, MAGIC *);
1019 #ifdef __cplusplus
1020 }
1021 #endif
1022
1023 #else /* MULTIPLICITY */
1024
1025 #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
1026
1027 #ifdef __cplusplus
1028 extern "C" {
1029 #endif
1030 typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1031 #ifdef __cplusplus
1032 }
1033 #endif
1034
1035 #endif /* MULTIPLICITY */
1036 #endif /* PERL_OBJECT */
1037
1038 # ifdef PERL_OBJECT
1039 # define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
SWIG_Perl_croak_null(CPerlObj * pPerl)1040 static void SWIGUNUSED SWIG_Perl_croak_null(CPerlObj *pPerl)
1041 # else
1042 static void SWIGUNUSED SWIG_croak_null()
1043 # endif
1044 {
1045 SV *err = get_sv("@", GV_ADD);
1046 # if (PERL_VERSION < 6)
1047 croak("%_", err);
1048 # else
1049 if (sv_isobject(err))
1050 croak(0);
1051 else
1052 croak("%s", SvPV_nolen(err));
1053 # endif
1054 }
1055
1056
1057 /*
1058 Define how strict is the cast between strings and integers/doubles
1059 when overloading between these types occurs.
1060
1061 The default is making it as strict as possible by using SWIG_AddCast
1062 when needed.
1063
1064 You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1065 disable the SWIG_AddCast, making the casting between string and
1066 numbers less strict.
1067
1068 In the end, we try to solve the overloading between strings and
1069 numerical types in the more natural way, but if you can avoid it,
1070 well, avoid it using %rename, for example.
1071 */
1072 #ifndef SWIG_PERL_NO_STRICT_STR2NUM
1073 # ifndef SWIG_PERL_STRICT_STR2NUM
1074 # define SWIG_PERL_STRICT_STR2NUM
1075 # endif
1076 #endif
1077 #ifdef SWIG_PERL_STRICT_STR2NUM
1078 /* string takes precedence */
1079 #define SWIG_Str2NumCast(x) SWIG_AddCast(x)
1080 #else
1081 /* number takes precedence */
1082 #define SWIG_Str2NumCast(x) x
1083 #endif
1084
1085
1086
1087 #include <stdlib.h>
1088
1089 SWIGRUNTIME const char *
SWIG_Perl_TypeProxyName(const swig_type_info * type)1090 SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1091 if (!type) return NULL;
1092 if (type->clientdata != NULL) {
1093 return (const char*) type->clientdata;
1094 }
1095 else {
1096 return type->name;
1097 }
1098 }
1099
1100 /* Identical to SWIG_TypeCheck, except for strcmp comparison */
1101 SWIGRUNTIME swig_cast_info *
SWIG_TypeProxyCheck(const char * c,swig_type_info * ty)1102 SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1103 if (ty) {
1104 swig_cast_info *iter = ty->cast;
1105 while (iter) {
1106 if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
1107 if (iter == ty->cast)
1108 return iter;
1109 /* Move iter to the top of the linked list */
1110 iter->prev->next = iter->next;
1111 if (iter->next)
1112 iter->next->prev = iter->prev;
1113 iter->next = ty->cast;
1114 iter->prev = 0;
1115 if (ty->cast) ty->cast->prev = iter;
1116 ty->cast = iter;
1117 return iter;
1118 }
1119 iter = iter->next;
1120 }
1121 }
1122 return 0;
1123 }
1124
1125 /* Function for getting a pointer value */
1126
1127 SWIGRUNTIME int
SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV * sv,void ** ptr,swig_type_info * _t,int flags,int * own)1128 SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags, int *own) {
1129 swig_cast_info *tc;
1130 void *voidptr = (void *)0;
1131 SV *tsv = 0;
1132
1133 if (own)
1134 *own = 0;
1135
1136 /* If magical, apply more magic */
1137 if (SvGMAGICAL(sv))
1138 mg_get(sv);
1139
1140 /* Check to see if this is an object */
1141 if (sv_isobject(sv)) {
1142 IV tmp = 0;
1143 tsv = (SV*) SvRV(sv);
1144 if ((SvTYPE(tsv) == SVt_PVHV)) {
1145 MAGIC *mg;
1146 if (SvMAGICAL(tsv)) {
1147 mg = mg_find(tsv,'P');
1148 if (mg) {
1149 sv = mg->mg_obj;
1150 if (sv_isobject(sv)) {
1151 tsv = (SV*)SvRV(sv);
1152 tmp = SvIV(tsv);
1153 }
1154 }
1155 } else {
1156 return SWIG_ERROR;
1157 }
1158 } else {
1159 tmp = SvIV(tsv);
1160 }
1161 voidptr = INT2PTR(void *,tmp);
1162 } else if (! SvOK(sv)) { /* Check for undef */
1163 *(ptr) = (void *) 0;
1164 return SWIG_OK;
1165 } else if (SvTYPE(sv) == SVt_RV) { /* Check for NULL pointer */
1166 if (!SvROK(sv)) {
1167 /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value. */
1168 if (SvIOK(sv)) {
1169 return SWIG_ERROR;
1170 } else {
1171 /* NULL pointer (reference to undef). */
1172 *(ptr) = (void *) 0;
1173 return SWIG_OK;
1174 }
1175 } else {
1176 return SWIG_ERROR;
1177 }
1178 } else { /* Don't know what it is */
1179 return SWIG_ERROR;
1180 }
1181 if (_t) {
1182 /* Now see if the types match */
1183 char *_c = HvNAME(SvSTASH(SvRV(sv)));
1184 tc = SWIG_TypeProxyCheck(_c,_t);
1185 #ifdef SWIG_DIRECTORS
1186 if (!tc && !sv_derived_from(sv,SWIG_Perl_TypeProxyName(_t))) {
1187 #else
1188 if (!tc) {
1189 #endif
1190 return SWIG_ERROR;
1191 }
1192 {
1193 int newmemory = 0;
1194 *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1195 if (newmemory == SWIG_CAST_NEW_MEMORY) {
1196 assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
1197 if (own)
1198 *own = *own | SWIG_CAST_NEW_MEMORY;
1199 }
1200 }
1201 } else {
1202 *ptr = voidptr;
1203 }
1204
1205 /*
1206 * DISOWN implementation: we need a perl guru to check this one.
1207 */
1208 if (tsv && (flags & SWIG_POINTER_DISOWN)) {
1209 /*
1210 * almost copy paste code from below SWIG_POINTER_OWN setting
1211 */
1212 SV *obj = sv;
1213 HV *stash = SvSTASH(SvRV(obj));
1214 GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1215 if (isGV(gv)) {
1216 HV *hv = GvHVn(gv);
1217 /*
1218 * To set ownership (see below), a newSViv(1) entry is added.
1219 * Hence, to remove ownership, we delete the entry.
1220 */
1221 if (hv_exists_ent(hv, obj, 0)) {
1222 hv_delete_ent(hv, obj, 0, 0);
1223 }
1224 }
1225 }
1226 return SWIG_OK;
1227 }
1228
1229 SWIGRUNTIME int
1230 SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1231 return SWIG_Perl_ConvertPtrAndOwn(sv, ptr, _t, flags, 0);
1232 }
1233
1234 SWIGRUNTIME void
1235 SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1236 if (ptr && (flags & (SWIG_SHADOW | SWIG_POINTER_OWN))) {
1237 SV *self;
1238 SV *obj=newSV(0);
1239 HV *hash=newHV();
1240 HV *stash;
1241 sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr);
1242 stash=SvSTASH(SvRV(obj));
1243 if (flags & SWIG_POINTER_OWN) {
1244 HV *hv;
1245 GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1246 if (!isGV(gv))
1247 gv_init(gv, stash, "OWNER", 5, FALSE);
1248 hv=GvHVn(gv);
1249 hv_store_ent(hv, obj, newSViv(1), 0);
1250 }
1251 sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
1252 SvREFCNT_dec(obj);
1253 self=newRV_noinc((SV *)hash);
1254 sv_setsv(sv, self);
1255 SvREFCNT_dec((SV *)self);
1256 sv_bless(sv, stash);
1257 }
1258 else {
1259 sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr);
1260 }
1261 }
1262
1263 SWIGRUNTIMEINLINE SV *
1264 SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1265 SV *result = sv_newmortal();
1266 SWIG_MakePtr(result, ptr, t, flags);
1267 return result;
1268 }
1269
1270 SWIGRUNTIME void
1271 SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1272 char result[1024];
1273 char *r = result;
1274 if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1275 *(r++) = '_';
1276 r = SWIG_PackData(r,ptr,sz);
1277 strcpy(r,SWIG_Perl_TypeProxyName(type));
1278 sv_setpv(sv, result);
1279 }
1280
1281 SWIGRUNTIME SV *
1282 SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1283 SV *result = sv_newmortal();
1284 SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1285 return result;
1286 }
1287
1288 /* Convert a packed value value */
1289 SWIGRUNTIME int
1290 SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1291 swig_cast_info *tc;
1292 const char *c = 0;
1293
1294 if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
1295 c = SvPV_nolen(obj);
1296 /* Pointer values must start with leading underscore */
1297 if (*c != '_') return SWIG_ERROR;
1298 c++;
1299 c = SWIG_UnpackData(c,ptr,sz);
1300 if (ty) {
1301 tc = SWIG_TypeCheck(c,ty);
1302 if (!tc) return SWIG_ERROR;
1303 }
1304 return SWIG_OK;
1305 }
1306
1307
1308 /* Macros for low-level exception handling */
1309 #define SWIG_croak(x) { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; }
1310
1311
1312 typedef XSPROTO(SwigPerlWrapper);
1313 typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1314
1315 /* Structure for command table */
1316 typedef struct {
1317 const char *name;
1318 SwigPerlWrapperPtr wrapper;
1319 } swig_command_info;
1320
1321 /* Information for constant table */
1322
1323 #define SWIG_INT 1
1324 #define SWIG_FLOAT 2
1325 #define SWIG_STRING 3
1326 #define SWIG_POINTER 4
1327 #define SWIG_BINARY 5
1328
1329 /* Constant information structure */
1330 typedef struct swig_constant_info {
1331 int type;
1332 const char *name;
1333 long lvalue;
1334 double dvalue;
1335 void *pvalue;
1336 swig_type_info **ptype;
1337 } swig_constant_info;
1338
1339
1340 /* Structure for variable table */
1341 typedef struct {
1342 const char *name;
1343 SwigMagicFunc set;
1344 SwigMagicFunc get;
1345 swig_type_info **type;
1346 } swig_variable_info;
1347
1348 /* Magic variable code */
1349 #ifndef PERL_OBJECT
1350 # ifdef __cplusplus
1351 # define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
1352 # else
1353 # define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
1354 # endif
1355 # ifndef MULTIPLICITY
1356 SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
1357 # else
1358 SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
1359 # endif
1360 #else
1361 # define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1362 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *))
1363 #endif
1364 {
1365 MAGIC *mg;
1366 sv_magic(sv,sv,'U',name,strlen(name));
1367 mg = mg_find(sv,'U');
1368 mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1369 mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1370 mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1371 mg->mg_virtual->svt_len = 0;
1372 mg->mg_virtual->svt_clear = 0;
1373 mg->mg_virtual->svt_free = 0;
1374 }
1375
1376
1377 SWIGRUNTIME swig_module_info *
1378 SWIG_Perl_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
1379 static void *type_pointer = (void *)0;
1380 SV *pointer;
1381
1382 /* first check if pointer already created */
1383 if (!type_pointer) {
1384 pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
1385 if (pointer && SvOK(pointer)) {
1386 type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
1387 }
1388 }
1389
1390 return (swig_module_info *) type_pointer;
1391 }
1392
1393 SWIGRUNTIME void
1394 SWIG_Perl_SetModule(swig_module_info *module) {
1395 SV *pointer;
1396
1397 /* create a new pointer */
1398 pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
1399 sv_setiv(pointer, PTR2IV(module));
1400 }
1401
1402 #ifdef __cplusplus
1403 }
1404 #endif
1405
1406 /* Workaround perl5 global namespace pollution. Note that undefining library
1407 * functions like fopen will not solve the problem on all platforms as fopen
1408 * might be a macro on Windows but not necessarily on other operating systems. */
1409 #ifdef do_open
1410 #undef do_open
1411 #endif
1412 #ifdef do_close
1413 #undef do_close
1414 #endif
1415 #ifdef do_exec
1416 #undef do_exec
1417 #endif
1418 #ifdef scalar
1419 #undef scalar
1420 #endif
1421 #ifdef list
1422 #undef list
1423 #endif
1424 #ifdef apply
1425 #undef apply
1426 #endif
1427 #ifdef convert
1428 #undef convert
1429 #endif
1430 #ifdef Error
1431 #undef Error
1432 #endif
1433 #ifdef form
1434 #undef form
1435 #endif
1436 #ifdef vform
1437 #undef vform
1438 #endif
1439 #ifdef LABEL
1440 #undef LABEL
1441 #endif
1442 #ifdef METHOD
1443 #undef METHOD
1444 #endif
1445 #ifdef Move
1446 #undef Move
1447 #endif
1448 #ifdef yylex
1449 #undef yylex
1450 #endif
1451 #ifdef yyparse
1452 #undef yyparse
1453 #endif
1454 #ifdef yyerror
1455 #undef yyerror
1456 #endif
1457 #ifdef invert
1458 #undef invert
1459 #endif
1460 #ifdef ref
1461 #undef ref
1462 #endif
1463 #ifdef read
1464 #undef read
1465 #endif
1466 #ifdef write
1467 #undef write
1468 #endif
1469 #ifdef eof
1470 #undef eof
1471 #endif
1472 #ifdef close
1473 #undef close
1474 #endif
1475 #ifdef rewind
1476 #undef rewind
1477 #endif
1478 #ifdef free
1479 #undef free
1480 #endif
1481 #ifdef malloc
1482 #undef malloc
1483 #endif
1484 #ifdef calloc
1485 #undef calloc
1486 #endif
1487 #ifdef Stat
1488 #undef Stat
1489 #endif
1490 #ifdef check
1491 #undef check
1492 #endif
1493 #ifdef seekdir
1494 #undef seekdir
1495 #endif
1496 #ifdef open
1497 #undef open
1498 #endif
1499 #ifdef readdir
1500 #undef readdir
1501 #endif
1502 #ifdef bind
1503 #undef bind
1504 #endif
1505 #ifdef access
1506 #undef access
1507 #endif
1508 #ifdef stat
1509 #undef stat
1510 #endif
1511 #ifdef seed
1512 #undef seed
1513 #endif
1514
1515 #ifdef bool
1516 /* Leave if macro is from C99 stdbool.h */
1517 #ifndef __bool_true_false_are_defined
1518 #undef bool
1519 #endif
1520 #endif
1521
1522
1523
1524
1525 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
1526
1527 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
1528
1529
1530
1531 #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0)
1532
1533
1534 /* -------- TYPES TABLE (BEGIN) -------- */
1535
1536 #define SWIGTYPE_p_GDALMajorObjectShadow swig_types[0]
1537 #define SWIGTYPE_p_GIntBig swig_types[1]
1538 #define SWIGTYPE_p_OGRFeatureDefnShadow swig_types[2]
1539 #define SWIGTYPE_p_OGRFeatureShadow swig_types[3]
1540 #define SWIGTYPE_p_OGRFieldDefnShadow swig_types[4]
1541 #define SWIGTYPE_p_OGRFieldDomainShadow swig_types[5]
1542 #define SWIGTYPE_p_OGRGeomFieldDefnShadow swig_types[6]
1543 #define SWIGTYPE_p_OGRGeomTransformerShadow swig_types[7]
1544 #define SWIGTYPE_p_OGRGeometryShadow swig_types[8]
1545 #define SWIGTYPE_p_OGRLayerShadow swig_types[9]
1546 #define SWIGTYPE_p_OGRPreparedGeometryShadow swig_types[10]
1547 #define SWIGTYPE_p_OGRStyleTableShadow swig_types[11]
1548 #define SWIGTYPE_p_OSRCoordinateTransformationShadow swig_types[12]
1549 #define SWIGTYPE_p_OSRSpatialReferenceShadow swig_types[13]
1550 #define SWIGTYPE_p_char swig_types[14]
1551 #define SWIGTYPE_p_double swig_types[15]
1552 #define SWIGTYPE_p_f_double_p_q_const__char_p_void__int swig_types[16]
1553 #define SWIGTYPE_p_float swig_types[17]
1554 #define SWIGTYPE_p_int swig_types[18]
1555 #define SWIGTYPE_p_p_GIntBig swig_types[19]
1556 #define SWIGTYPE_p_p_char swig_types[20]
1557 #define SWIGTYPE_p_p_double swig_types[21]
1558 #define SWIGTYPE_p_p_int swig_types[22]
1559 #define SWIGTYPE_p_p_p_char swig_types[23]
1560 static swig_type_info *swig_types[25];
1561 static swig_module_info swig_module = {swig_types, 24, 0, 0, 0, 0};
1562 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1563 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1564
1565 /* -------- TYPES TABLE (END) -------- */
1566
1567 #define SWIG_init boot_Geo__OGR
1568
1569 #define SWIG_name "Geo::OGRc::boot_Geo__OGR"
1570 #define SWIG_prefix "Geo::OGRc::"
1571
1572 #define SWIGVERSION 0x030012
1573 #define SWIG_VERSION SWIGVERSION
1574
1575
1576 #define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a))
1577 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a))
1578
1579
1580 #include <stdexcept>
1581
1582
1583 #ifdef __cplusplus
1584 extern "C"
1585 #endif
1586 #ifndef PERL_OBJECT
1587 #ifndef MULTIPLICITY
1588 SWIGEXPORT void SWIG_init (CV* cv);
1589 #else
1590 SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);
1591 #endif
1592 #else
1593 SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *);
1594 #endif
1595
1596
1597 typedef char retStringAndCPLFree;
1598
1599
1600 #include <iostream>
1601 using namespace std;
1602
1603 #define CPL_SUPRESS_CPLUSPLUS
1604
1605 #include "gdal.h"
1606 #include "ogr_api.h"
1607 #include "ogr_core.h"
1608 #include "cpl_port.h"
1609 #include "cpl_string.h"
1610 #include "ogr_srs_api.h"
1611
1612 #define FIELD_INDEX_ERROR_TMPL "Invalid field index: '%i'"
1613 #define FIELD_NAME_ERROR_TMPL "Invalid field name: '%s'"
1614
1615 typedef void GDALMajorObjectShadow;
1616
1617 #ifdef DEBUG
1618 typedef struct OGRSpatialReferenceHS OSRSpatialReferenceShadow;
1619 #ifndef SWIGPERL
1620 typedef struct OGRDriverHS OGRDriverShadow;
1621 typedef struct OGRDataSourceHS OGRDataSourceShadow;
1622 #endif
1623 typedef struct OGRLayerHS OGRLayerShadow;
1624 typedef struct OGRFeatureHS OGRFeatureShadow;
1625 typedef struct OGRFeatureDefnHS OGRFeatureDefnShadow;
1626 typedef struct OGRGeometryHS OGRGeometryShadow;
1627 typedef struct OGRCoordinateTransformationHS OSRCoordinateTransformationShadow;
1628 typedef struct OGRFieldDefnHS OGRFieldDefnShadow;
1629 #else
1630 typedef void OSRSpatialReferenceShadow;
1631 #ifndef SWIGPERL
1632 typedef void OGRDriverShadow;
1633 typedef void OGRDataSourceShadow;
1634 #endif
1635 typedef void OGRLayerShadow;
1636 typedef void OGRFeatureShadow;
1637 typedef void OGRFeatureDefnShadow;
1638 typedef void OGRGeometryShadow;
1639 typedef void OSRCoordinateTransformationShadow;
1640 typedef void OGRFieldDefnShadow;
1641 #endif
1642
1643 typedef struct OGRStyleTableHS OGRStyleTableShadow;
1644 typedef struct OGRGeomFieldDefnHS OGRGeomFieldDefnShadow;
1645 typedef struct OGRGeomTransformer OGRGeomTransformerShadow;
1646 typedef struct _OGRPreparedGeometry OGRPreparedGeometryShadow;
1647 typedef struct OGRFieldDomainHS OGRFieldDomainShadow;
1648
1649
1650 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(long value)1651 SWIG_From_long SWIG_PERL_DECL_ARGS_1(long value)
1652 {
1653 SV *sv;
1654 if (IVSIZE >= sizeof(value) || (value >= IV_MIN && value <= IV_MAX))
1655 sv = newSViv(value);
1656 else
1657 sv = newSVpvf("%ld", value);
1658 return sv_2mortal(sv);
1659 }
1660
1661
1662 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(int value)1663 SWIG_From_int SWIG_PERL_DECL_ARGS_1(int value)
1664 {
1665 return SWIG_From_long SWIG_PERL_CALL_ARGS_1(value);
1666 }
1667
1668
1669 SWIGINTERNINLINE SV *
SWIG_FromCharPtrAndSize(const char * carray,size_t size)1670 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1671 {
1672 SV *obj = sv_newmortal();
1673 if (carray) {
1674 sv_setpvn(obj, carray, size);
1675 } else {
1676 sv_setsv(obj, &PL_sv_undef);
1677 }
1678 return obj;
1679 }
1680
1681
1682 SWIGINTERNINLINE SV *
SWIG_FromCharPtr(const char * cptr)1683 SWIG_FromCharPtr(const char *cptr)
1684 {
1685 return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1686 }
1687
1688
1689 #ifndef SWIG
1690 typedef struct
1691 {
1692 SV *fct;
1693 SV *data;
1694 } SavedEnv;
1695 #endif
callback_d_cp_vp(double d,const char * cp,void * vp)1696 int callback_d_cp_vp(double d, const char *cp, void *vp)
1697 {
1698 int count, ret;
1699 SavedEnv *env_ptr = (SavedEnv *)vp;
1700 dSP;
1701 ENTER;
1702 SAVETMPS;
1703 PUSHMARK(SP);
1704 XPUSHs(sv_2mortal(newSVnv(d)));
1705 XPUSHs(sv_2mortal(newSVpv(cp, 0)));
1706 if (env_ptr->data)
1707 XPUSHs(env_ptr->data);
1708 PUTBACK;
1709 count = call_sv(env_ptr->fct, G_SCALAR);
1710 SPAGAIN;
1711 if (count != 1) {
1712 fprintf(stderr, "The callback must return only one value.\n");
1713 return 0; /* interrupt */
1714 }
1715 ret = POPi;
1716 PUTBACK;
1717 FREETMPS;
1718 LEAVE;
1719 return ret;
1720 }
1721 #ifndef SWIG
1722 static SV *VSIStdoutSetRedirectionFct = &PL_sv_undef;
1723 #endif
callback_fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream)1724 size_t callback_fwrite(const void *ptr, size_t size, size_t nmemb,
1725 FILE *stream)
1726 {
1727 dSP;
1728 ENTER;
1729 SAVETMPS;
1730 PUSHMARK(SP);
1731 XPUSHs(sv_2mortal(newSVpv((const char*)ptr, size*nmemb)));
1732 PUTBACK;
1733 call_sv(VSIStdoutSetRedirectionFct, G_DISCARD);
1734 FREETMPS;
1735 LEAVE;
1736 return size*nmemb;
1737 }
1738
1739
do_confess(const char * error,int push_to_error_stack)1740 void do_confess(const char *error, int push_to_error_stack) {
1741 SV *sv = newSVpv("", 0);
1742 sv_setpvf(sv, "%s\n", error);
1743 if (push_to_error_stack) {
1744 AV* error_stack = get_av("Geo::GDAL::error", 0);
1745 av_push(error_stack, sv);
1746 } else {
1747 sv = sv_2mortal(sv);
1748 }
1749 dSP;
1750 ENTER;
1751 SAVETMPS;
1752 PUSHMARK(SP);
1753 XPUSHs( sv );
1754 PUTBACK;
1755 call_pv("Carp::confess", G_DISCARD);
1756 /*
1757 confess never returns, so these will not get executed:
1758 FREETMPS;
1759 LEAVE;
1760 */
1761 }
1762 #define OUT_OF_MEMORY "Out of memory."
1763 #define CALL_FAILED "Call failed. Possible reason is an index out of range, mathematical problem, or something else."
1764 #define NEED_DEF "A parameter which must be defined or not empty, is not."
1765 #define WRONG_CLASS "Object has a wrong class."
1766 #define NEED_REF "A parameter which must be a reference, is not."
1767 #define NEED_HASH_REF "A parameter/item which must be a hash reference, is not."
1768 #define NEED_ARRAY_REF "A parameter/item which must be an array reference, is not."
1769 #define NEED_BINARY_DATA "A parameter which must be binary data, is not."
1770 #define NEED_CODE_REF "A parameter which must be an anonymous subroutine, is not."
1771 #define WRONG_ITEM_IN_ARRAY "An item in an array parameter has wrong type."
1772 #define ARRAY_TO_XML_FAILED "An array parameter cannot be converted to an XMLTree."
1773 #define NOT_ENOUGH_ELEMENTS "The supplied array does not have enough elements."
1774
1775
VeryQuietErrorHandler(CPLErr eclass,int code,const char * msg)1776 void VeryQuietErrorHandler(CPLErr eclass, int code, const char *msg ) {
1777 /* If the error class is CE_Fatal, we want to have a message issued
1778 because the CPL support code does an abort() before any exception
1779 can be generated */
1780 #if defined(SWIGPERL)
1781 AV* error_stack = get_av("Geo::GDAL::error", 0);
1782 SV *error = newSVpv(msg, 0);
1783 av_push(error_stack, error);
1784 #endif
1785 if (eclass == CE_Fatal ) {
1786 CPLDefaultErrorHandler(eclass, code, msg );
1787 }
1788 }
1789
1790
UseExceptions()1791 void UseExceptions() {
1792 CPLSetErrorHandler( (CPLErrorHandler) VeryQuietErrorHandler );
1793 }
1794
DontUseExceptions()1795 void DontUseExceptions() {
1796 CPLSetErrorHandler( CPLDefaultErrorHandler );
1797 }
1798
new_OGRStyleTableShadow()1799 SWIGINTERN OGRStyleTableShadow *new_OGRStyleTableShadow(){
1800 return (OGRStyleTableShadow*) OGR_STBL_Create();
1801 }
delete_OGRStyleTableShadow(OGRStyleTableShadow * self)1802 SWIGINTERN void delete_OGRStyleTableShadow(OGRStyleTableShadow *self){
1803 OGR_STBL_Destroy( (OGRStyleTableH) self );
1804 }
1805
1806 SWIGINTERN swig_type_info*
SWIG_pchar_descriptor(void)1807 SWIG_pchar_descriptor(void)
1808 {
1809 static int init = 0;
1810 static swig_type_info* info = 0;
1811 if (!init) {
1812 info = SWIG_TypeQuery("_p_char");
1813 init = 1;
1814 }
1815 return info;
1816 }
1817
1818
1819 SWIGINTERN int
SWIG_AsCharPtrAndSize(SV * obj,char ** cptr,size_t * psize,int * alloc)1820 SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1821 {
1822 if (SvMAGICAL(obj)) {
1823 SV *tmp = sv_newmortal();
1824 SvSetSV(tmp, obj);
1825 obj = tmp;
1826 }
1827 if (SvPOK(obj)) {
1828 STRLEN len = 0;
1829 char *cstr = SvPV(obj, len);
1830 size_t size = len + 1;
1831 if (cptr) {
1832 if (alloc) {
1833 if (*alloc == SWIG_NEWOBJ) {
1834 *cptr = reinterpret_cast< char* >(memcpy(new char[size], cstr, sizeof(char)*(size)));
1835 } else {
1836 *cptr = cstr;
1837 *alloc = SWIG_OLDOBJ;
1838 }
1839 }
1840 }
1841 if (psize) *psize = size;
1842 return SWIG_OK;
1843 } else {
1844 swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1845 if (pchar_descriptor) {
1846 char* vptr = 0;
1847 if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
1848 if (cptr) *cptr = vptr;
1849 if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1850 if (alloc) *alloc = SWIG_OLDOBJ;
1851 return SWIG_OK;
1852 }
1853 }
1854 }
1855 return SWIG_TypeError;
1856 }
1857
1858
1859
1860
OGRStyleTableShadow_AddStyle(OGRStyleTableShadow * self,char const * pszName,char const * pszStyleString)1861 SWIGINTERN int OGRStyleTableShadow_AddStyle(OGRStyleTableShadow *self,char const *pszName,char const *pszStyleString){
1862 return OGR_STBL_AddStyle( (OGRStyleTableH) self, pszName, pszStyleString);
1863 }
1864
sv_to_utf8_string(SV * sv,U8 ** tmpbuf,bool * safefree=NULL)1865 char *sv_to_utf8_string(SV *sv, U8 **tmpbuf, bool *safefree = NULL) {
1866 /* if tmpbuf is given, only tmpbuf needs to be freed, use Safefree!
1867 if not, ret needs to be freed, if safefree use Safefree else use free! */
1868 char *ret;
1869 if (safefree) *safefree = false;
1870 if (SvOK(sv)) {
1871 STRLEN len;
1872 ret = SvPV(sv, len);
1873 if (!SvUTF8(sv)) {
1874 if (tmpbuf) {
1875 *tmpbuf = bytes_to_utf8((const U8*)ret, &len);
1876 ret = (char *)(*tmpbuf);
1877 } else {
1878 ret = (char *)bytes_to_utf8((const U8*)ret, &len);
1879 }
1880 if (safefree) *safefree = true;
1881 } else {
1882 if (!tmpbuf)
1883 ret = strdup(ret);
1884 }
1885 } else {
1886 ret = (char*)""; /* avoid "Use of uninitialized value in subroutine entry" errors */
1887 if (!tmpbuf)
1888 ret = strdup(ret);
1889 }
1890 return ret;
1891 }
1892
OGRStyleTableShadow_LoadStyleTable(OGRStyleTableShadow * self,char const * utf8_path)1893 SWIGINTERN int OGRStyleTableShadow_LoadStyleTable(OGRStyleTableShadow *self,char const *utf8_path){
1894 return OGR_STBL_LoadStyleTable( (OGRStyleTableH) self, utf8_path );
1895 }
OGRStyleTableShadow_SaveStyleTable(OGRStyleTableShadow * self,char const * utf8_path)1896 SWIGINTERN int OGRStyleTableShadow_SaveStyleTable(OGRStyleTableShadow *self,char const *utf8_path){
1897 return OGR_STBL_SaveStyleTable( (OGRStyleTableH) self, utf8_path );
1898 }
OGRStyleTableShadow_Find(OGRStyleTableShadow * self,char const * pszName)1899 SWIGINTERN char const *OGRStyleTableShadow_Find(OGRStyleTableShadow *self,char const *pszName){
1900 return OGR_STBL_Find( (OGRStyleTableH) self, pszName );
1901 }
OGRStyleTableShadow_ResetStyleStringReading(OGRStyleTableShadow * self)1902 SWIGINTERN void OGRStyleTableShadow_ResetStyleStringReading(OGRStyleTableShadow *self){
1903 OGR_STBL_ResetStyleStringReading( (OGRStyleTableH) self );
1904 }
OGRStyleTableShadow_GetNextStyle(OGRStyleTableShadow * self)1905 SWIGINTERN char const *OGRStyleTableShadow_GetNextStyle(OGRStyleTableShadow *self){
1906 return OGR_STBL_GetNextStyle( (OGRStyleTableH) self );
1907 }
OGRStyleTableShadow_GetLastStyleName(OGRStyleTableShadow * self)1908 SWIGINTERN char const *OGRStyleTableShadow_GetLastStyleName(OGRStyleTableShadow *self){
1909 return OGR_STBL_GetLastStyleName( (OGRStyleTableH) self );
1910 }
OGRLayerShadow_GetRefCount(OGRLayerShadow * self)1911 SWIGINTERN int OGRLayerShadow_GetRefCount(OGRLayerShadow *self){
1912 return OGR_L_GetRefCount(self);
1913 }
OGRLayerShadow_SetSpatialFilter__SWIG_0(OGRLayerShadow * self,OGRGeometryShadow * filter)1914 SWIGINTERN void OGRLayerShadow_SetSpatialFilter__SWIG_0(OGRLayerShadow *self,OGRGeometryShadow *filter){
1915 OGR_L_SetSpatialFilter (self, filter);
1916 }
1917
1918 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,double * val)1919 SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
1920 {
1921 if (SvNIOK(obj)) {
1922 if (val) *val = SvNV(obj);
1923 return SWIG_OK;
1924 } else if (SvIOK(obj)) {
1925 if (val) *val = (double) SvIV(obj);
1926 return SWIG_AddCast(SWIG_OK);
1927 } else {
1928 const char *nptr = SvPV_nolen(obj);
1929 if (nptr) {
1930 char *endptr;
1931 double v;
1932 errno = 0;
1933 v = strtod(nptr, &endptr);
1934 if (errno == ERANGE) {
1935 errno = 0;
1936 return SWIG_OverflowError;
1937 } else {
1938 if (*endptr == '\0') {
1939 if (val) *val = v;
1940 return SWIG_Str2NumCast(SWIG_OK);
1941 }
1942 }
1943 }
1944 }
1945 return SWIG_TypeError;
1946 }
1947
OGRLayerShadow_SetSpatialFilterRect__SWIG_0(OGRLayerShadow * self,double minx,double miny,double maxx,double maxy)1948 SWIGINTERN void OGRLayerShadow_SetSpatialFilterRect__SWIG_0(OGRLayerShadow *self,double minx,double miny,double maxx,double maxy){
1949 OGR_L_SetSpatialFilterRect(self, minx, miny, maxx, maxy);
1950 }
1951
1952 #include <limits.h>
1953 #if !defined(SWIG_NO_LLONG_MAX)
1954 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1955 # define LLONG_MAX __LONG_LONG_MAX__
1956 # define LLONG_MIN (-LLONG_MAX - 1LL)
1957 # define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1958 # endif
1959 #endif
1960
1961
1962 #include <stdlib.h>
1963 #ifdef _MSC_VER
1964 # ifndef strtoull
1965 # define strtoull _strtoui64
1966 # endif
1967 # ifndef strtoll
1968 # define strtoll _strtoi64
1969 # endif
1970 #endif
1971
1972
1973 #include <float.h>
1974
1975
1976 #include <math.h>
1977
1978
1979 SWIGINTERNINLINE int
SWIG_CanCastAsInteger(double * d,double min,double max)1980 SWIG_CanCastAsInteger(double *d, double min, double max) {
1981 double x = *d;
1982 if ((min <= x && x <= max)) {
1983 double fx = floor(x);
1984 double cx = ceil(x);
1985 double rd = ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1986 if ((errno == EDOM) || (errno == ERANGE)) {
1987 errno = 0;
1988 } else {
1989 double summ, reps, diff;
1990 if (rd < x) {
1991 diff = x - rd;
1992 } else if (rd > x) {
1993 diff = rd - x;
1994 } else {
1995 return 1;
1996 }
1997 summ = rd + x;
1998 reps = diff/summ;
1999 if (reps < 8*DBL_EPSILON) {
2000 *d = rd;
2001 return 1;
2002 }
2003 }
2004 }
2005 return 0;
2006 }
2007
2008
2009 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,long * val)2010 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
2011 {
2012 if (SvUOK(obj)) {
2013 UV v = SvUV(obj);
2014 if (UVSIZE < sizeof(*val) || v <= LONG_MAX) {
2015 if (val) *val = v;
2016 return SWIG_OK;
2017 }
2018 return SWIG_OverflowError;
2019 } else if (SvIOK(obj)) {
2020 IV v = SvIV(obj);
2021 if (IVSIZE <= sizeof(*val) || (v >= LONG_MIN && v <= LONG_MAX)) {
2022 if(val) *val = v;
2023 return SWIG_OK;
2024 }
2025 return SWIG_OverflowError;
2026 } else {
2027 int dispatch = 0;
2028 const char *nptr = SvPV_nolen(obj);
2029 if (nptr) {
2030 char *endptr;
2031 long v;
2032 errno = 0;
2033 v = strtol(nptr, &endptr,0);
2034 if (errno == ERANGE) {
2035 errno = 0;
2036 return SWIG_OverflowError;
2037 } else {
2038 if (*endptr == '\0') {
2039 if (val) *val = v;
2040 return SWIG_Str2NumCast(SWIG_OK);
2041 }
2042 }
2043 }
2044 if (!dispatch) {
2045 double d;
2046 int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
2047 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
2048 if (val) *val = (long)(d);
2049 return res;
2050 }
2051 }
2052 }
2053 return SWIG_TypeError;
2054 }
2055
2056
2057 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,int * val)2058 SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)
2059 {
2060 long v;
2061 int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);
2062 if (SWIG_IsOK(res)) {
2063 if ((v < INT_MIN || v > INT_MAX)) {
2064 return SWIG_OverflowError;
2065 } else {
2066 if (val) *val = static_cast< int >(v);
2067 }
2068 }
2069 return res;
2070 }
2071
OGRLayerShadow_SetSpatialFilter__SWIG_1(OGRLayerShadow * self,int iGeomField,OGRGeometryShadow * filter)2072 SWIGINTERN void OGRLayerShadow_SetSpatialFilter__SWIG_1(OGRLayerShadow *self,int iGeomField,OGRGeometryShadow *filter){
2073 OGR_L_SetSpatialFilterEx (self, iGeomField, filter);
2074 }
OGRLayerShadow_SetSpatialFilterRect__SWIG_1(OGRLayerShadow * self,int iGeomField,double minx,double miny,double maxx,double maxy)2075 SWIGINTERN void OGRLayerShadow_SetSpatialFilterRect__SWIG_1(OGRLayerShadow *self,int iGeomField,double minx,double miny,double maxx,double maxy){
2076 OGR_L_SetSpatialFilterRectEx(self, iGeomField, minx, miny, maxx, maxy);
2077 }
OGRLayerShadow_GetSpatialFilter(OGRLayerShadow * self)2078 SWIGINTERN OGRGeometryShadow *OGRLayerShadow_GetSpatialFilter(OGRLayerShadow *self){
2079 return (OGRGeometryShadow *) OGR_L_GetSpatialFilter(self);
2080 }
OGRLayerShadow_SetAttributeFilter(OGRLayerShadow * self,char * filter_string)2081 SWIGINTERN OGRErr OGRLayerShadow_SetAttributeFilter(OGRLayerShadow *self,char *filter_string){
2082 return OGR_L_SetAttributeFilter((OGRLayerShadow*)self, filter_string);
2083 }
2084
2085
2086 #include "ogr_core.h"
2087 static char const *
OGRErrMessages(int rc)2088 OGRErrMessages( int rc ) {
2089 switch( rc ) {
2090 case OGRERR_NONE:
2091 return "OGR Error: None";
2092 case OGRERR_NOT_ENOUGH_DATA:
2093 return "OGR Error: Not enough data to deserialize";
2094 case OGRERR_NOT_ENOUGH_MEMORY:
2095 return "OGR Error: Not enough memory";
2096 case OGRERR_UNSUPPORTED_GEOMETRY_TYPE:
2097 return "OGR Error: Unsupported geometry type";
2098 case OGRERR_UNSUPPORTED_OPERATION:
2099 return "OGR Error: Unsupported operation";
2100 case OGRERR_CORRUPT_DATA:
2101 return "OGR Error: Corrupt data";
2102 case OGRERR_FAILURE:
2103 return "OGR Error: General Error";
2104 case OGRERR_UNSUPPORTED_SRS:
2105 return "OGR Error: Unsupported SRS";
2106 case OGRERR_INVALID_HANDLE:
2107 return "OGR Error: Invalid handle";
2108 case OGRERR_NON_EXISTING_FEATURE:
2109 return "OGR Error: Non existing feature";
2110 default:
2111 return "OGR Error: Unknown";
2112 }
2113 }
2114
OGRLayerShadow_ResetReading(OGRLayerShadow * self)2115 SWIGINTERN void OGRLayerShadow_ResetReading(OGRLayerShadow *self){
2116 OGR_L_ResetReading(self);
2117 }
OGRLayerShadow_GetName(OGRLayerShadow * self)2118 SWIGINTERN char const *OGRLayerShadow_GetName(OGRLayerShadow *self){
2119 return OGR_L_GetName(self);
2120 }
OGRLayerShadow_GetGeomType(OGRLayerShadow * self)2121 SWIGINTERN OGRwkbGeometryType OGRLayerShadow_GetGeomType(OGRLayerShadow *self){
2122 return (OGRwkbGeometryType) OGR_L_GetGeomType(self);
2123 }
OGRLayerShadow_GetGeometryColumn(OGRLayerShadow * self)2124 SWIGINTERN char const *OGRLayerShadow_GetGeometryColumn(OGRLayerShadow *self){
2125 return OGR_L_GetGeometryColumn(self);
2126 }
OGRLayerShadow_GetFIDColumn(OGRLayerShadow * self)2127 SWIGINTERN char const *OGRLayerShadow_GetFIDColumn(OGRLayerShadow *self){
2128 return OGR_L_GetFIDColumn(self);
2129 }
OGRLayerShadow_GetFeature(OGRLayerShadow * self,GIntBig fid)2130 SWIGINTERN OGRFeatureShadow *OGRLayerShadow_GetFeature(OGRLayerShadow *self,GIntBig fid){
2131 return (OGRFeatureShadow*) OGR_L_GetFeature(self, fid);
2132 }
OGRLayerShadow_GetNextFeature(OGRLayerShadow * self)2133 SWIGINTERN OGRFeatureShadow *OGRLayerShadow_GetNextFeature(OGRLayerShadow *self){
2134 return (OGRFeatureShadow*) OGR_L_GetNextFeature(self);
2135 }
OGRLayerShadow_SetNextByIndex(OGRLayerShadow * self,GIntBig new_index)2136 SWIGINTERN OGRErr OGRLayerShadow_SetNextByIndex(OGRLayerShadow *self,GIntBig new_index){
2137 return OGR_L_SetNextByIndex(self, new_index);
2138 }
OGRLayerShadow_SetFeature(OGRLayerShadow * self,OGRFeatureShadow * feature)2139 SWIGINTERN OGRErr OGRLayerShadow_SetFeature(OGRLayerShadow *self,OGRFeatureShadow *feature){
2140 return OGR_L_SetFeature(self, feature);
2141 }
OGRLayerShadow_CreateFeature(OGRLayerShadow * self,OGRFeatureShadow * feature)2142 SWIGINTERN OGRErr OGRLayerShadow_CreateFeature(OGRLayerShadow *self,OGRFeatureShadow *feature){
2143 return OGR_L_CreateFeature(self, feature);
2144 }
OGRLayerShadow_DeleteFeature(OGRLayerShadow * self,GIntBig fid)2145 SWIGINTERN OGRErr OGRLayerShadow_DeleteFeature(OGRLayerShadow *self,GIntBig fid){
2146 return OGR_L_DeleteFeature(self, fid);
2147 }
OGRLayerShadow_SyncToDisk(OGRLayerShadow * self)2148 SWIGINTERN OGRErr OGRLayerShadow_SyncToDisk(OGRLayerShadow *self){
2149 return OGR_L_SyncToDisk(self);
2150 }
OGRLayerShadow_GetLayerDefn(OGRLayerShadow * self)2151 SWIGINTERN OGRFeatureDefnShadow *OGRLayerShadow_GetLayerDefn(OGRLayerShadow *self){
2152 return (OGRFeatureDefnShadow*) OGR_L_GetLayerDefn(self);
2153 }
OGRLayerShadow_GetFeatureCount(OGRLayerShadow * self,int force=1)2154 SWIGINTERN GIntBig OGRLayerShadow_GetFeatureCount(OGRLayerShadow *self,int force=1){
2155 return OGR_L_GetFeatureCount(self, force);
2156 }
2157
2158 static SV *
CreateArrayFromDoubleArray(double * first,unsigned int size)2159 CreateArrayFromDoubleArray( double *first, unsigned int size ) {
2160 AV *av = (AV*)sv_2mortal((SV*)newAV());
2161 for( unsigned int i=0; i<size; i++ ) {
2162 av_store(av,i,newSVnv(*first));
2163 ++first;
2164 }
2165 return sv_2mortal(newRV((SV*)av));
2166 }
2167
OGRLayerShadow_GetExtent(OGRLayerShadow * self,double argout[4],int force=1)2168 SWIGINTERN OGRErr OGRLayerShadow_GetExtent(OGRLayerShadow *self,double argout[4],int force=1){
2169
2170
2171
2172 return OGR_L_GetExtent(self, (OGREnvelope*)argout, force);
2173 }
OGRLayerShadow_TestCapability(OGRLayerShadow * self,char const * cap)2174 SWIGINTERN bool OGRLayerShadow_TestCapability(OGRLayerShadow *self,char const *cap){
2175 return (OGR_L_TestCapability(self, cap) > 0);
2176 }
2177
2178 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(bool value)2179 SWIG_From_bool SWIG_PERL_DECL_ARGS_1(bool value)
2180 {
2181 return boolSV(value);
2182 }
2183
OGRLayerShadow_CreateField(OGRLayerShadow * self,OGRFieldDefnShadow * field_def,int approx_ok=1)2184 SWIGINTERN OGRErr OGRLayerShadow_CreateField(OGRLayerShadow *self,OGRFieldDefnShadow *field_def,int approx_ok=1){
2185 return OGR_L_CreateField(self, field_def, approx_ok);
2186 }
OGRLayerShadow_DeleteField(OGRLayerShadow * self,int iField)2187 SWIGINTERN OGRErr OGRLayerShadow_DeleteField(OGRLayerShadow *self,int iField){
2188 return OGR_L_DeleteField(self, iField);
2189 }
OGRLayerShadow_ReorderField(OGRLayerShadow * self,int iOldFieldPos,int iNewFieldPos)2190 SWIGINTERN OGRErr OGRLayerShadow_ReorderField(OGRLayerShadow *self,int iOldFieldPos,int iNewFieldPos){
2191 return OGR_L_ReorderField(self, iOldFieldPos, iNewFieldPos);
2192 }
OGRLayerShadow_ReorderFields(OGRLayerShadow * self,int nList,int * pList)2193 SWIGINTERN OGRErr OGRLayerShadow_ReorderFields(OGRLayerShadow *self,int nList,int *pList){
2194 if (nList != OGR_FD_GetFieldCount(OGR_L_GetLayerDefn(self)))
2195 {
2196 CPLError(CE_Failure, CPLE_IllegalArg,
2197 "List should have %d elements",
2198 OGR_FD_GetFieldCount(OGR_L_GetLayerDefn(self)));
2199 return OGRERR_FAILURE;
2200 }
2201 return OGR_L_ReorderFields(self, pList);
2202 }
OGRLayerShadow_AlterFieldDefn(OGRLayerShadow * self,int iField,OGRFieldDefnShadow * field_def,int nFlags)2203 SWIGINTERN OGRErr OGRLayerShadow_AlterFieldDefn(OGRLayerShadow *self,int iField,OGRFieldDefnShadow *field_def,int nFlags){
2204 return OGR_L_AlterFieldDefn(self, iField, field_def, nFlags);
2205 }
OGRLayerShadow_CreateGeomField(OGRLayerShadow * self,OGRGeomFieldDefnShadow * field_def,int approx_ok=1)2206 SWIGINTERN OGRErr OGRLayerShadow_CreateGeomField(OGRLayerShadow *self,OGRGeomFieldDefnShadow *field_def,int approx_ok=1){
2207 return OGR_L_CreateGeomField(self, field_def, approx_ok);
2208 }
OGRLayerShadow_StartTransaction(OGRLayerShadow * self)2209 SWIGINTERN OGRErr OGRLayerShadow_StartTransaction(OGRLayerShadow *self){
2210 return OGR_L_StartTransaction(self);
2211 }
OGRLayerShadow_CommitTransaction(OGRLayerShadow * self)2212 SWIGINTERN OGRErr OGRLayerShadow_CommitTransaction(OGRLayerShadow *self){
2213 return OGR_L_CommitTransaction(self);
2214 }
OGRLayerShadow_RollbackTransaction(OGRLayerShadow * self)2215 SWIGINTERN OGRErr OGRLayerShadow_RollbackTransaction(OGRLayerShadow *self){
2216 return OGR_L_RollbackTransaction(self);
2217 }
OGRLayerShadow_FindFieldIndex(OGRLayerShadow * self,char const * pszFieldName,int bExactMatch)2218 SWIGINTERN int OGRLayerShadow_FindFieldIndex(OGRLayerShadow *self,char const *pszFieldName,int bExactMatch){
2219 return OGR_L_FindFieldIndex(self, pszFieldName, bExactMatch );
2220 }
OGRLayerShadow_GetSpatialRef(OGRLayerShadow * self)2221 SWIGINTERN OSRSpatialReferenceShadow *OGRLayerShadow_GetSpatialRef(OGRLayerShadow *self){
2222 OGRSpatialReferenceH ref = OGR_L_GetSpatialRef(self);
2223 if( ref )
2224 OSRReference(ref);
2225 return (OSRSpatialReferenceShadow*) ref;
2226 }
OGRLayerShadow_GetFeaturesRead(OGRLayerShadow * self)2227 SWIGINTERN GIntBig OGRLayerShadow_GetFeaturesRead(OGRLayerShadow *self){
2228 return OGR_L_GetFeaturesRead(self);
2229 }
OGRLayerShadow_SetIgnoredFields(OGRLayerShadow * self,char const ** options)2230 SWIGINTERN OGRErr OGRLayerShadow_SetIgnoredFields(OGRLayerShadow *self,char const **options){
2231 return OGR_L_SetIgnoredFields( self, options );
2232 }
OGRLayerShadow_Intersection(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2233 SWIGINTERN OGRErr OGRLayerShadow_Intersection(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2234 return OGR_L_Intersection( self, method_layer, result_layer, options, callback, callback_data );
2235 }
OGRLayerShadow_Union(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2236 SWIGINTERN OGRErr OGRLayerShadow_Union(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2237 return OGR_L_Union( self, method_layer, result_layer, options, callback, callback_data );
2238 }
OGRLayerShadow_SymDifference(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2239 SWIGINTERN OGRErr OGRLayerShadow_SymDifference(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2240 return OGR_L_SymDifference( self, method_layer, result_layer, options, callback, callback_data );
2241 }
OGRLayerShadow_Identity(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2242 SWIGINTERN OGRErr OGRLayerShadow_Identity(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2243 return OGR_L_Identity( self, method_layer, result_layer, options, callback, callback_data );
2244 }
OGRLayerShadow_Update(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2245 SWIGINTERN OGRErr OGRLayerShadow_Update(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2246 return OGR_L_Update( self, method_layer, result_layer, options, callback, callback_data );
2247 }
OGRLayerShadow_Clip(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2248 SWIGINTERN OGRErr OGRLayerShadow_Clip(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2249 return OGR_L_Clip( self, method_layer, result_layer, options, callback, callback_data );
2250 }
OGRLayerShadow_Erase(OGRLayerShadow * self,OGRLayerShadow * method_layer,OGRLayerShadow * result_layer,char ** options=NULL,GDALProgressFunc callback=NULL,void * callback_data=NULL)2251 SWIGINTERN OGRErr OGRLayerShadow_Erase(OGRLayerShadow *self,OGRLayerShadow *method_layer,OGRLayerShadow *result_layer,char **options=NULL,GDALProgressFunc callback=NULL,void *callback_data=NULL){
2252 return OGR_L_Erase( self, method_layer, result_layer, options, callback, callback_data );
2253 }
OGRLayerShadow_GetStyleTable(OGRLayerShadow * self)2254 SWIGINTERN OGRStyleTableShadow *OGRLayerShadow_GetStyleTable(OGRLayerShadow *self){
2255 return (OGRStyleTableShadow*) OGR_L_GetStyleTable(self);
2256 }
OGRLayerShadow_SetStyleTable(OGRLayerShadow * self,OGRStyleTableShadow * table)2257 SWIGINTERN void OGRLayerShadow_SetStyleTable(OGRLayerShadow *self,OGRStyleTableShadow *table){
2258 if( table != NULL )
2259 OGR_L_SetStyleTable(self, (OGRStyleTableH) table);
2260 }
delete_OGRFeatureShadow(OGRFeatureShadow * self)2261 SWIGINTERN void delete_OGRFeatureShadow(OGRFeatureShadow *self){
2262 OGR_F_Destroy(self);
2263 }
new_OGRFeatureShadow(OGRFeatureDefnShadow * feature_def)2264 SWIGINTERN OGRFeatureShadow *new_OGRFeatureShadow(OGRFeatureDefnShadow *feature_def){
2265 return (OGRFeatureShadow*) OGR_F_Create( feature_def );
2266 }
OGRFeatureShadow_GetDefnRef(OGRFeatureShadow * self)2267 SWIGINTERN OGRFeatureDefnShadow *OGRFeatureShadow_GetDefnRef(OGRFeatureShadow *self){
2268 return (OGRFeatureDefnShadow*) OGR_F_GetDefnRef(self);
2269 }
OGRFeatureShadow_SetGeometry(OGRFeatureShadow * self,OGRGeometryShadow * geom)2270 SWIGINTERN OGRErr OGRFeatureShadow_SetGeometry(OGRFeatureShadow *self,OGRGeometryShadow *geom){
2271 return OGR_F_SetGeometry(self, geom);
2272 }
OGRFeatureShadow_SetGeometryDirectly(OGRFeatureShadow * self,OGRGeometryShadow * geom)2273 SWIGINTERN OGRErr OGRFeatureShadow_SetGeometryDirectly(OGRFeatureShadow *self,OGRGeometryShadow *geom){
2274 return OGR_F_SetGeometryDirectly(self, geom);
2275 }
OGRFeatureShadow_GetGeometryRef(OGRFeatureShadow * self)2276 SWIGINTERN OGRGeometryShadow *OGRFeatureShadow_GetGeometryRef(OGRFeatureShadow *self){
2277 return (OGRGeometryShadow*) OGR_F_GetGeometryRef(self);
2278 }
OGRFeatureShadow_SetGeomField__SWIG_0(OGRFeatureShadow * self,int iField,OGRGeometryShadow * geom)2279 SWIGINTERN OGRErr OGRFeatureShadow_SetGeomField__SWIG_0(OGRFeatureShadow *self,int iField,OGRGeometryShadow *geom){
2280 return OGR_F_SetGeomField(self, iField, geom);
2281 }
OGRFeatureShadow_SetGeomField__SWIG_1(OGRFeatureShadow * self,char const * field_name,OGRGeometryShadow * geom)2282 SWIGINTERN OGRErr OGRFeatureShadow_SetGeomField__SWIG_1(OGRFeatureShadow *self,char const *field_name,OGRGeometryShadow *geom){
2283 int iField = OGR_F_GetGeomFieldIndex(self, field_name);
2284 if (iField == -1)
2285 {
2286 CPLError(CE_Failure, 1, FIELD_NAME_ERROR_TMPL, field_name);
2287 return OGRERR_FAILURE;
2288 }
2289 else
2290 return OGR_F_SetGeomField(self, iField, geom);
2291 }
OGRFeatureShadow_SetGeomFieldDirectly__SWIG_0(OGRFeatureShadow * self,int iField,OGRGeometryShadow * geom)2292 SWIGINTERN OGRErr OGRFeatureShadow_SetGeomFieldDirectly__SWIG_0(OGRFeatureShadow *self,int iField,OGRGeometryShadow *geom){
2293 return OGR_F_SetGeomFieldDirectly(self, iField, geom);
2294 }
OGRFeatureShadow_SetGeomFieldDirectly__SWIG_1(OGRFeatureShadow * self,char const * field_name,OGRGeometryShadow * geom)2295 SWIGINTERN OGRErr OGRFeatureShadow_SetGeomFieldDirectly__SWIG_1(OGRFeatureShadow *self,char const *field_name,OGRGeometryShadow *geom){
2296 int iField = OGR_F_GetGeomFieldIndex(self, field_name);
2297 if (iField == -1)
2298 {
2299 CPLError(CE_Failure, 1, FIELD_NAME_ERROR_TMPL, field_name);
2300 return OGRERR_FAILURE;
2301 }
2302 else
2303 return OGR_F_SetGeomFieldDirectly(self, iField, geom);
2304 }
OGRFeatureShadow_GetGeomFieldRef__SWIG_0(OGRFeatureShadow * self,int iField)2305 SWIGINTERN OGRGeometryShadow *OGRFeatureShadow_GetGeomFieldRef__SWIG_0(OGRFeatureShadow *self,int iField){
2306 return (OGRGeometryShadow*) OGR_F_GetGeomFieldRef(self, iField);
2307 }
OGRFeatureShadow_GetGeomFieldRef__SWIG_1(OGRFeatureShadow * self,char const * field_name)2308 SWIGINTERN OGRGeometryShadow *OGRFeatureShadow_GetGeomFieldRef__SWIG_1(OGRFeatureShadow *self,char const *field_name){
2309 int i = OGR_F_GetGeomFieldIndex(self, field_name);
2310 if (i == -1)
2311 {
2312 CPLError(CE_Failure, 1, FIELD_NAME_ERROR_TMPL, field_name);
2313 return NULL;
2314 }
2315 else
2316 return (OGRGeometryShadow*) OGR_F_GetGeomFieldRef(self, i);
2317 }
OGRFeatureShadow_Clone(OGRFeatureShadow * self)2318 SWIGINTERN OGRFeatureShadow *OGRFeatureShadow_Clone(OGRFeatureShadow *self){
2319 return (OGRFeatureShadow*) OGR_F_Clone(self);
2320 }
OGRFeatureShadow_Equal(OGRFeatureShadow * self,OGRFeatureShadow * feature)2321 SWIGINTERN bool OGRFeatureShadow_Equal(OGRFeatureShadow *self,OGRFeatureShadow *feature){
2322 return (OGR_F_Equal(self, feature) > 0);
2323 }
OGRFeatureShadow_GetFieldCount(OGRFeatureShadow * self)2324 SWIGINTERN int OGRFeatureShadow_GetFieldCount(OGRFeatureShadow *self){
2325 return OGR_F_GetFieldCount(self);
2326 }
OGRFeatureShadow_GetFieldDefnRef(OGRFeatureShadow * self,int id)2327 SWIGINTERN OGRFieldDefnShadow *OGRFeatureShadow_GetFieldDefnRef(OGRFeatureShadow *self,int id){
2328 return (OGRFieldDefnShadow *) OGR_F_GetFieldDefnRef(self, id);
2329 }
OGRFeatureShadow_GetGeomFieldCount(OGRFeatureShadow * self)2330 SWIGINTERN int OGRFeatureShadow_GetGeomFieldCount(OGRFeatureShadow *self){
2331 return OGR_F_GetGeomFieldCount(self);
2332 }
OGRFeatureShadow_GetGeomFieldDefnRef(OGRFeatureShadow * self,int id)2333 SWIGINTERN OGRGeomFieldDefnShadow *OGRFeatureShadow_GetGeomFieldDefnRef(OGRFeatureShadow *self,int id){
2334 return (OGRGeomFieldDefnShadow *) OGR_F_GetGeomFieldDefnRef(self, id);
2335 }
OGRFeatureShadow_GetFieldAsString(OGRFeatureShadow * self,int id)2336 SWIGINTERN char const *OGRFeatureShadow_GetFieldAsString(OGRFeatureShadow *self,int id){
2337 return (const char *) OGR_F_GetFieldAsString(self, id);
2338 }
OGRFeatureShadow_GetFieldAsInteger(OGRFeatureShadow * self,int id)2339 SWIGINTERN int OGRFeatureShadow_GetFieldAsInteger(OGRFeatureShadow *self,int id){
2340 return OGR_F_GetFieldAsInteger(self, id);
2341 }
OGRFeatureShadow_GetFieldAsInteger64(OGRFeatureShadow * self,int id)2342 SWIGINTERN GIntBig OGRFeatureShadow_GetFieldAsInteger64(OGRFeatureShadow *self,int id){
2343 return OGR_F_GetFieldAsInteger64(self, id);
2344 }
OGRFeatureShadow_GetFieldAsDouble(OGRFeatureShadow * self,int id)2345 SWIGINTERN double OGRFeatureShadow_GetFieldAsDouble(OGRFeatureShadow *self,int id){
2346 return OGR_F_GetFieldAsDouble(self, id);
2347 }
2348
2349 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(double value)2350 SWIG_From_double SWIG_PERL_DECL_ARGS_1(double value)
2351 {
2352 return sv_2mortal(newSVnv(value));
2353 }
2354
2355
2356 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(float value)2357 SWIG_From_float SWIG_PERL_DECL_ARGS_1(float value)
2358 {
2359 return SWIG_From_double SWIG_PERL_CALL_ARGS_1(value);
2360 }
2361
OGRFeatureShadow_GetFieldAsDateTime(OGRFeatureShadow * self,int id,int * pnYear,int * pnMonth,int * pnDay,int * pnHour,int * pnMinute,float * pfSecond,int * pnTZFlag)2362 SWIGINTERN void OGRFeatureShadow_GetFieldAsDateTime(OGRFeatureShadow *self,int id,int *pnYear,int *pnMonth,int *pnDay,int *pnHour,int *pnMinute,float *pfSecond,int *pnTZFlag){
2363 OGR_F_GetFieldAsDateTimeEx(self, id, pnYear, pnMonth, pnDay,
2364 pnHour, pnMinute, pfSecond,
2365 pnTZFlag);
2366 }
2367
2368 static SV *
CreateArrayFromIntArray(int * first,unsigned int size)2369 CreateArrayFromIntArray( int *first, unsigned int size ) {
2370 AV *av = (AV*)sv_2mortal((SV*)newAV());
2371 for( unsigned int i=0; i<size; i++ ) {
2372 av_store(av,i,newSViv(*first));
2373 ++first;
2374 }
2375 return sv_2mortal(newRV((SV*)av));
2376 }
2377
OGRFeatureShadow_GetFieldAsIntegerList(OGRFeatureShadow * self,int id,int * nLen,int const ** pList)2378 SWIGINTERN void OGRFeatureShadow_GetFieldAsIntegerList(OGRFeatureShadow *self,int id,int *nLen,int const **pList){
2379 *pList = OGR_F_GetFieldAsIntegerList(self, id, nLen);
2380 }
2381
2382 #define LENGTH_OF_GIntBig_AS_STRING 30
2383 static SV *
CreateArrayFromGIntBigArray(GIntBig * first,unsigned int size)2384 CreateArrayFromGIntBigArray( GIntBig *first, unsigned int size ) {
2385 AV *av = (AV*)sv_2mortal((SV*)newAV());
2386 for( unsigned int i=0; i<size; i++ ) {
2387 char s[LENGTH_OF_GIntBig_AS_STRING];
2388 snprintf(s, LENGTH_OF_GIntBig_AS_STRING-1, CPL_FRMT_GIB, *first);
2389 av_store(av,i,newSVpv(s, 0));
2390 ++first;
2391 }
2392 return sv_2mortal(newRV((SV*)av));
2393 }
2394
OGRFeatureShadow_GetFieldAsInteger64List(OGRFeatureShadow * self,int id,int * nLen,GIntBig const ** pList)2395 SWIGINTERN void OGRFeatureShadow_GetFieldAsInteger64List(OGRFeatureShadow *self,int id,int *nLen,GIntBig const **pList){
2396 *pList = OGR_F_GetFieldAsInteger64List(self, id, nLen);
2397 }
OGRFeatureShadow_GetFieldAsDoubleList(OGRFeatureShadow * self,int id,int * nLen,double const ** pList)2398 SWIGINTERN void OGRFeatureShadow_GetFieldAsDoubleList(OGRFeatureShadow *self,int id,int *nLen,double const **pList){
2399 *pList = OGR_F_GetFieldAsDoubleList(self, id, nLen);
2400 }
2401
2402 static SV *
CreateArrayFromStringArray(char ** first)2403 CreateArrayFromStringArray( char **first ) {
2404 AV *av = (AV*)sv_2mortal((SV*)newAV());
2405 for( unsigned int i = 0; *first != NULL; i++ ) {
2406 SV *sv = newSVpv(*first, strlen(*first));
2407 SvUTF8_on(sv); /* expecting UTF-8 from GDAL */
2408 av_store(av,i,sv);
2409 ++first;
2410 }
2411 return sv_2mortal(newRV((SV*)av));
2412 }
2413
OGRFeatureShadow_GetFieldAsStringList(OGRFeatureShadow * self,int id,char *** pList)2414 SWIGINTERN void OGRFeatureShadow_GetFieldAsStringList(OGRFeatureShadow *self,int id,char ***pList){
2415 *pList = OGR_F_GetFieldAsStringList(self, id);
2416 }
OGRFeatureShadow_GetFieldAsBinary(OGRFeatureShadow * self,int id,int * nLen,char ** pBuf)2417 SWIGINTERN OGRErr OGRFeatureShadow_GetFieldAsBinary(OGRFeatureShadow *self,int id,int *nLen,char **pBuf){
2418 GByte* pabyBlob = OGR_F_GetFieldAsBinary(self, id, nLen);
2419 *pBuf = (char*)malloc(*nLen);
2420 memcpy(*pBuf, pabyBlob, *nLen);
2421 return OGRERR_NONE;
2422 }
OGRFeatureShadow_IsFieldSet(OGRFeatureShadow * self,int id)2423 SWIGINTERN bool OGRFeatureShadow_IsFieldSet(OGRFeatureShadow *self,int id){
2424 return (OGR_F_IsFieldSet(self, id) > 0);
2425 }
OGRFeatureShadow_IsFieldNull(OGRFeatureShadow * self,int id)2426 SWIGINTERN bool OGRFeatureShadow_IsFieldNull(OGRFeatureShadow *self,int id){
2427 return (OGR_F_IsFieldNull(self, id) > 0);
2428 }
OGRFeatureShadow_IsFieldSetAndNotNull(OGRFeatureShadow * self,int id)2429 SWIGINTERN bool OGRFeatureShadow_IsFieldSetAndNotNull(OGRFeatureShadow *self,int id){
2430 return (OGR_F_IsFieldSetAndNotNull(self, id) > 0);
2431 }
OGRFeatureShadow_GetFieldIndex(OGRFeatureShadow * self,char const * field_name)2432 SWIGINTERN int OGRFeatureShadow_GetFieldIndex(OGRFeatureShadow *self,char const *field_name){
2433 // Do not issue an error if the field doesn't exist. It is intended to be silent
2434 return OGR_F_GetFieldIndex(self, field_name);
2435 }
OGRFeatureShadow_GetGeomFieldIndex(OGRFeatureShadow * self,char const * field_name)2436 SWIGINTERN int OGRFeatureShadow_GetGeomFieldIndex(OGRFeatureShadow *self,char const *field_name){
2437 // Do not issue an error if the field doesn't exist. It is intended to be silent
2438 return OGR_F_GetGeomFieldIndex(self, field_name);
2439 }
OGRFeatureShadow_GetFID(OGRFeatureShadow * self)2440 SWIGINTERN GIntBig OGRFeatureShadow_GetFID(OGRFeatureShadow *self){
2441 return OGR_F_GetFID(self);
2442 }
OGRFeatureShadow_SetFID(OGRFeatureShadow * self,GIntBig fid)2443 SWIGINTERN OGRErr OGRFeatureShadow_SetFID(OGRFeatureShadow *self,GIntBig fid){
2444 return OGR_F_SetFID(self, fid);
2445 }
OGRFeatureShadow_DumpReadable(OGRFeatureShadow * self)2446 SWIGINTERN void OGRFeatureShadow_DumpReadable(OGRFeatureShadow *self){
2447 OGR_F_DumpReadable(self, NULL);
2448 }
OGRFeatureShadow_UnsetField(OGRFeatureShadow * self,int id)2449 SWIGINTERN void OGRFeatureShadow_UnsetField(OGRFeatureShadow *self,int id){
2450 OGR_F_UnsetField(self, id);
2451 }
OGRFeatureShadow_SetFieldNull(OGRFeatureShadow * self,int id)2452 SWIGINTERN void OGRFeatureShadow_SetFieldNull(OGRFeatureShadow *self,int id){
2453 OGR_F_SetFieldNull(self, id);
2454 }
OGRFeatureShadow_SetField__SWIG_0(OGRFeatureShadow * self,int id,char const * value)2455 SWIGINTERN void OGRFeatureShadow_SetField__SWIG_0(OGRFeatureShadow *self,int id,char const *value){
2456 OGR_F_SetFieldString(self, id, value);
2457 }
OGRFeatureShadow_SetFieldInteger64(OGRFeatureShadow * self,int id,GIntBig value)2458 SWIGINTERN void OGRFeatureShadow_SetFieldInteger64(OGRFeatureShadow *self,int id,GIntBig value){
2459 OGR_F_SetFieldInteger64(self, id, value);
2460 }
OGRFeatureShadow_SetField__SWIG_1(OGRFeatureShadow * self,int id,int value)2461 SWIGINTERN void OGRFeatureShadow_SetField__SWIG_1(OGRFeatureShadow *self,int id,int value){
2462 OGR_F_SetFieldInteger(self, id, value);
2463 }
OGRFeatureShadow_SetField__SWIG_2(OGRFeatureShadow * self,int id,double value)2464 SWIGINTERN void OGRFeatureShadow_SetField__SWIG_2(OGRFeatureShadow *self,int id,double value){
2465 OGR_F_SetFieldDouble(self, id, value);
2466 }
2467
2468 /* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */
2469 #ifndef SWIG_isfinite
2470 /* isfinite() is a macro for C99 */
2471 # if defined(isfinite)
2472 # define SWIG_isfinite(X) (isfinite(X))
2473 # elif defined __cplusplus && __cplusplus >= 201103L
2474 /* Use a template so that this works whether isfinite() is std::isfinite() or
2475 * in the global namespace. The reality seems to vary between compiler
2476 * versions.
2477 *
2478 * Make sure namespace std exists to avoid compiler warnings.
2479 *
2480 * extern "C++" is required as this fragment can end up inside an extern "C" { } block
2481 */
2482 namespace std { }
2483 extern "C++" template<typename T>
SWIG_isfinite_func(T x)2484 inline int SWIG_isfinite_func(T x) {
2485 using namespace std;
2486 return isfinite(x);
2487 }
2488 # define SWIG_isfinite(X) (SWIG_isfinite_func(X))
2489 # elif defined(_MSC_VER)
2490 # define SWIG_isfinite(X) (_finite(X))
2491 # elif defined(__sun) && defined(__SVR4)
2492 # include <ieeefp.h>
2493 # define SWIG_isfinite(X) (finite(X))
2494 # endif
2495 #endif
2496
2497
2498 /* Accept infinite as a valid float value unless we are unable to check if a value is finite */
2499 #ifdef SWIG_isfinite
2500 # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X))
2501 #else
2502 # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX))
2503 #endif
2504
2505
2506 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,float * val)2507 SWIG_AsVal_float SWIG_PERL_DECL_ARGS_2(SV * obj, float *val)
2508 {
2509 double v;
2510 int res = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj, &v);
2511 if (SWIG_IsOK(res)) {
2512 if (SWIG_Float_Overflow_Check(v)) {
2513 return SWIG_OverflowError;
2514 } else {
2515 if (val) *val = static_cast< float >(v);
2516 }
2517 }
2518 return res;
2519 }
2520
OGRFeatureShadow_SetField__SWIG_3(OGRFeatureShadow * self,int id,int year,int month,int day,int hour,int minute,float second,int tzflag)2521 SWIGINTERN void OGRFeatureShadow_SetField__SWIG_3(OGRFeatureShadow *self,int id,int year,int month,int day,int hour,int minute,float second,int tzflag){
2522 OGR_F_SetFieldDateTimeEx(self, id, year, month, day,
2523 hour, minute, second,
2524 tzflag);
2525 }
OGRFeatureShadow_SetFieldIntegerList(OGRFeatureShadow * self,int id,int nList,int * pList)2526 SWIGINTERN void OGRFeatureShadow_SetFieldIntegerList(OGRFeatureShadow *self,int id,int nList,int *pList){
2527 OGR_F_SetFieldIntegerList(self, id, nList, pList);
2528 }
OGRFeatureShadow_SetFieldInteger64List(OGRFeatureShadow * self,int id,int nList,GIntBig * pList)2529 SWIGINTERN void OGRFeatureShadow_SetFieldInteger64List(OGRFeatureShadow *self,int id,int nList,GIntBig *pList){
2530 OGR_F_SetFieldInteger64List(self, id, nList, pList);
2531 }
OGRFeatureShadow_SetFieldDoubleList(OGRFeatureShadow * self,int id,int nList,double * pList)2532 SWIGINTERN void OGRFeatureShadow_SetFieldDoubleList(OGRFeatureShadow *self,int id,int nList,double *pList){
2533 OGR_F_SetFieldDoubleList(self, id, nList, pList);
2534 }
OGRFeatureShadow_SetFieldStringList(OGRFeatureShadow * self,int id,char ** pList)2535 SWIGINTERN void OGRFeatureShadow_SetFieldStringList(OGRFeatureShadow *self,int id,char **pList){
2536 OGR_F_SetFieldStringList(self, id, pList);
2537 }
OGRFeatureShadow_SetFieldBinary(OGRFeatureShadow * self,int i,int nBytes,GByte * pabyBuf)2538 SWIGINTERN void OGRFeatureShadow_SetFieldBinary(OGRFeatureShadow *self,int i,int nBytes,GByte *pabyBuf){
2539 OGR_F_SetFieldBinary(self, i, nBytes, pabyBuf);
2540 }
OGRFeatureShadow_SetFieldBinaryFromHexString(OGRFeatureShadow * self,int id,char const * pszValue)2541 SWIGINTERN void OGRFeatureShadow_SetFieldBinaryFromHexString(OGRFeatureShadow *self,int id,char const *pszValue){
2542 int nBytes;
2543 GByte* pabyBuf = CPLHexToBinary(pszValue, &nBytes );
2544 OGR_F_SetFieldBinary(self, id, nBytes, pabyBuf);
2545 CPLFree(pabyBuf);
2546 }
OGRFeatureShadow_SetFrom(OGRFeatureShadow * self,OGRFeatureShadow * other,int forgiving=1)2547 SWIGINTERN OGRErr OGRFeatureShadow_SetFrom(OGRFeatureShadow *self,OGRFeatureShadow *other,int forgiving=1){
2548 return OGR_F_SetFrom(self, other, forgiving);
2549 }
OGRFeatureShadow_SetFromWithMap(OGRFeatureShadow * self,OGRFeatureShadow * other,int forgiving,int nList,int * pList)2550 SWIGINTERN OGRErr OGRFeatureShadow_SetFromWithMap(OGRFeatureShadow *self,OGRFeatureShadow *other,int forgiving,int nList,int *pList){
2551 if (nList != OGR_F_GetFieldCount(other))
2552 {
2553 CPLError(CE_Failure, CPLE_AppDefined,
2554 "The size of map doesn't match with the field count of the source feature");
2555 return OGRERR_FAILURE;
2556 }
2557 return OGR_F_SetFromWithMap(self, other, forgiving, pList);
2558 }
OGRFeatureShadow_GetStyleString(OGRFeatureShadow * self)2559 SWIGINTERN char const *OGRFeatureShadow_GetStyleString(OGRFeatureShadow *self){
2560 return (const char*) OGR_F_GetStyleString(self);
2561 }
OGRFeatureShadow_SetStyleString(OGRFeatureShadow * self,char const * the_string)2562 SWIGINTERN void OGRFeatureShadow_SetStyleString(OGRFeatureShadow *self,char const *the_string){
2563 OGR_F_SetStyleString(self, the_string);
2564 }
OGRFeatureShadow_GetFieldType(OGRFeatureShadow * self,int id)2565 SWIGINTERN OGRFieldType OGRFeatureShadow_GetFieldType(OGRFeatureShadow *self,int id){
2566 OGRFieldDefnH fd = OGR_F_GetFieldDefnRef( self, id );
2567 if (fd)
2568 return (OGRFieldType) OGR_Fld_GetType( fd );
2569 else
2570 return (OGRFieldType)0;
2571 }
OGRFeatureShadow_Validate(OGRFeatureShadow * self,int flags=OGR_F_VAL_ALL,int bEmitError=TRUE)2572 SWIGINTERN int OGRFeatureShadow_Validate(OGRFeatureShadow *self,int flags=OGR_F_VAL_ALL,int bEmitError=TRUE){
2573 return OGR_F_Validate(self, flags, bEmitError);
2574 }
OGRFeatureShadow_FillUnsetWithDefault(OGRFeatureShadow * self,int bNotNullableOnly=FALSE,char ** options=NULL)2575 SWIGINTERN void OGRFeatureShadow_FillUnsetWithDefault(OGRFeatureShadow *self,int bNotNullableOnly=FALSE,char **options=NULL){
2576 OGR_F_FillUnsetWithDefault(self, bNotNullableOnly, options );
2577 }
OGRFeatureShadow_GetNativeData(OGRFeatureShadow * self)2578 SWIGINTERN char const *OGRFeatureShadow_GetNativeData(OGRFeatureShadow *self){
2579 return OGR_F_GetNativeData(self);
2580 }
OGRFeatureShadow_GetNativeMediaType(OGRFeatureShadow * self)2581 SWIGINTERN char const *OGRFeatureShadow_GetNativeMediaType(OGRFeatureShadow *self){
2582 return OGR_F_GetNativeMediaType(self);
2583 }
OGRFeatureShadow_SetNativeData(OGRFeatureShadow * self,char const * nativeData)2584 SWIGINTERN void OGRFeatureShadow_SetNativeData(OGRFeatureShadow *self,char const *nativeData){
2585 OGR_F_SetNativeData(self, nativeData);
2586 }
OGRFeatureShadow_SetNativeMediaType(OGRFeatureShadow * self,char const * nativeMediaType)2587 SWIGINTERN void OGRFeatureShadow_SetNativeMediaType(OGRFeatureShadow *self,char const *nativeMediaType){
2588 OGR_F_SetNativeMediaType(self, nativeMediaType);
2589 }
2590
ValidateOGRGeometryType(OGRwkbGeometryType field_type)2591 static int ValidateOGRGeometryType(OGRwkbGeometryType field_type)
2592 {
2593 switch(field_type)
2594 {
2595 case wkbUnknown:
2596 case wkbPoint:
2597 case wkbLineString:
2598 case wkbPolygon:
2599 case wkbMultiPoint:
2600 case wkbMultiLineString:
2601 case wkbMultiPolygon:
2602 case wkbGeometryCollection:
2603 case wkbCircularString:
2604 case wkbCompoundCurve:
2605 case wkbCurvePolygon:
2606 case wkbMultiCurve:
2607 case wkbMultiSurface:
2608 case wkbCurve:
2609 case wkbSurface:
2610 case wkbTriangle:
2611 case wkbTIN:
2612 case wkbPolyhedralSurface:
2613 case wkbNone:
2614 /*case wkbLinearRing:*/
2615 case wkbCircularStringZ:
2616 case wkbCompoundCurveZ:
2617 case wkbCurvePolygonZ:
2618 case wkbMultiCurveZ:
2619 case wkbMultiSurfaceZ:
2620 case wkbCurveZ:
2621 case wkbSurfaceZ:
2622 case wkbTriangleZ:
2623 case wkbTINZ:
2624 case wkbPolyhedralSurfaceZ:
2625 case wkbPoint25D:
2626 case wkbLineString25D:
2627 case wkbPolygon25D:
2628 case wkbMultiPoint25D:
2629 case wkbMultiLineString25D:
2630 case wkbMultiPolygon25D:
2631 case wkbGeometryCollection25D:
2632 case wkbPointM:
2633 case wkbLineStringM:
2634 case wkbPolygonM:
2635 case wkbMultiPointM:
2636 case wkbMultiLineStringM:
2637 case wkbMultiPolygonM:
2638 case wkbGeometryCollectionM:
2639 case wkbCircularStringM:
2640 case wkbCompoundCurveM:
2641 case wkbCurvePolygonM:
2642 case wkbMultiCurveM:
2643 case wkbMultiSurfaceM:
2644 case wkbCurveM:
2645 case wkbSurfaceM:
2646 case wkbTriangleM:
2647 case wkbTINM:
2648 case wkbPolyhedralSurfaceM:
2649 case wkbPointZM:
2650 case wkbLineStringZM:
2651 case wkbPolygonZM:
2652 case wkbMultiPointZM:
2653 case wkbMultiLineStringZM:
2654 case wkbMultiPolygonZM:
2655 case wkbGeometryCollectionZM:
2656 case wkbCircularStringZM:
2657 case wkbCompoundCurveZM:
2658 case wkbCurvePolygonZM:
2659 case wkbMultiCurveZM:
2660 case wkbMultiSurfaceZM:
2661 case wkbCurveZM:
2662 case wkbSurfaceZM:
2663 case wkbTriangleZM:
2664 case wkbTINZM:
2665 case wkbPolyhedralSurfaceZM:
2666 return TRUE;
2667 default:
2668 CPLError(CE_Failure, CPLE_IllegalArg, "Illegal geometry type value");
2669 return FALSE;
2670 }
2671 }
2672
delete_OGRFeatureDefnShadow(OGRFeatureDefnShadow * self)2673 SWIGINTERN void delete_OGRFeatureDefnShadow(OGRFeatureDefnShadow *self){
2674 /*OGR_FD_Destroy(self);*/
2675 OGR_FD_Release( OGRFeatureDefnH(self) );
2676 }
new_OGRFeatureDefnShadow(char const * name_null_ok=NULL)2677 SWIGINTERN OGRFeatureDefnShadow *new_OGRFeatureDefnShadow(char const *name_null_ok=NULL){
2678 OGRFeatureDefnH h = OGR_FD_Create(name_null_ok);
2679 OGR_FD_Reference(h);
2680 return (OGRFeatureDefnShadow* )h;
2681 }
OGRFeatureDefnShadow_GetName(OGRFeatureDefnShadow * self)2682 SWIGINTERN char const *OGRFeatureDefnShadow_GetName(OGRFeatureDefnShadow *self){
2683 return OGR_FD_GetName(self);
2684 }
OGRFeatureDefnShadow_GetFieldCount(OGRFeatureDefnShadow * self)2685 SWIGINTERN int OGRFeatureDefnShadow_GetFieldCount(OGRFeatureDefnShadow *self){
2686 return OGR_FD_GetFieldCount(self);
2687 }
OGRFeatureDefnShadow_GetFieldDefn(OGRFeatureDefnShadow * self,int i)2688 SWIGINTERN OGRFieldDefnShadow *OGRFeatureDefnShadow_GetFieldDefn(OGRFeatureDefnShadow *self,int i){
2689 return (OGRFieldDefnShadow*) OGR_FD_GetFieldDefn(self, i);
2690 }
OGRFeatureDefnShadow_GetFieldIndex(OGRFeatureDefnShadow * self,char const * field_name)2691 SWIGINTERN int OGRFeatureDefnShadow_GetFieldIndex(OGRFeatureDefnShadow *self,char const *field_name){
2692 // Do not issue an error if the field doesn't exist. It is intended to be silent
2693 return OGR_FD_GetFieldIndex(self, field_name);
2694 }
OGRFeatureDefnShadow_AddFieldDefn(OGRFeatureDefnShadow * self,OGRFieldDefnShadow * defn)2695 SWIGINTERN void OGRFeatureDefnShadow_AddFieldDefn(OGRFeatureDefnShadow *self,OGRFieldDefnShadow *defn){
2696 OGR_FD_AddFieldDefn(self, defn);
2697 }
OGRFeatureDefnShadow_GetGeomFieldCount(OGRFeatureDefnShadow * self)2698 SWIGINTERN int OGRFeatureDefnShadow_GetGeomFieldCount(OGRFeatureDefnShadow *self){
2699 return OGR_FD_GetGeomFieldCount(self);
2700 }
OGRFeatureDefnShadow_GetGeomFieldDefn(OGRFeatureDefnShadow * self,int i)2701 SWIGINTERN OGRGeomFieldDefnShadow *OGRFeatureDefnShadow_GetGeomFieldDefn(OGRFeatureDefnShadow *self,int i){
2702 return (OGRGeomFieldDefnShadow*) OGR_FD_GetGeomFieldDefn(self, i);
2703 }
OGRFeatureDefnShadow_GetGeomFieldIndex(OGRFeatureDefnShadow * self,char const * field_name)2704 SWIGINTERN int OGRFeatureDefnShadow_GetGeomFieldIndex(OGRFeatureDefnShadow *self,char const *field_name){
2705 // Do not issue an error if the field doesn't exist. It is intended to be silent
2706 return OGR_FD_GetGeomFieldIndex(self, field_name);
2707 }
OGRFeatureDefnShadow_AddGeomFieldDefn(OGRFeatureDefnShadow * self,OGRGeomFieldDefnShadow * defn)2708 SWIGINTERN void OGRFeatureDefnShadow_AddGeomFieldDefn(OGRFeatureDefnShadow *self,OGRGeomFieldDefnShadow *defn){
2709 OGR_FD_AddGeomFieldDefn(self, defn);
2710 }
OGRFeatureDefnShadow_DeleteGeomFieldDefn(OGRFeatureDefnShadow * self,int idx)2711 SWIGINTERN OGRErr OGRFeatureDefnShadow_DeleteGeomFieldDefn(OGRFeatureDefnShadow *self,int idx){
2712 return OGR_FD_DeleteGeomFieldDefn(self, idx);
2713 }
OGRFeatureDefnShadow_GetGeomType(OGRFeatureDefnShadow * self)2714 SWIGINTERN OGRwkbGeometryType OGRFeatureDefnShadow_GetGeomType(OGRFeatureDefnShadow *self){
2715 return (OGRwkbGeometryType) OGR_FD_GetGeomType(self);
2716 }
OGRFeatureDefnShadow_SetGeomType(OGRFeatureDefnShadow * self,OGRwkbGeometryType geom_type)2717 SWIGINTERN void OGRFeatureDefnShadow_SetGeomType(OGRFeatureDefnShadow *self,OGRwkbGeometryType geom_type){
2718 if( ValidateOGRGeometryType(geom_type) )
2719 OGR_FD_SetGeomType(self, geom_type);
2720 }
OGRFeatureDefnShadow_GetReferenceCount(OGRFeatureDefnShadow * self)2721 SWIGINTERN int OGRFeatureDefnShadow_GetReferenceCount(OGRFeatureDefnShadow *self){
2722 return OGR_FD_GetReferenceCount(self);
2723 }
OGRFeatureDefnShadow_IsGeometryIgnored(OGRFeatureDefnShadow * self)2724 SWIGINTERN int OGRFeatureDefnShadow_IsGeometryIgnored(OGRFeatureDefnShadow *self){
2725 return OGR_FD_IsGeometryIgnored(self);
2726 }
OGRFeatureDefnShadow_SetGeometryIgnored(OGRFeatureDefnShadow * self,int bIgnored)2727 SWIGINTERN void OGRFeatureDefnShadow_SetGeometryIgnored(OGRFeatureDefnShadow *self,int bIgnored){
2728 return OGR_FD_SetGeometryIgnored(self,bIgnored);
2729 }
OGRFeatureDefnShadow_IsStyleIgnored(OGRFeatureDefnShadow * self)2730 SWIGINTERN int OGRFeatureDefnShadow_IsStyleIgnored(OGRFeatureDefnShadow *self){
2731 return OGR_FD_IsStyleIgnored(self);
2732 }
OGRFeatureDefnShadow_SetStyleIgnored(OGRFeatureDefnShadow * self,int bIgnored)2733 SWIGINTERN void OGRFeatureDefnShadow_SetStyleIgnored(OGRFeatureDefnShadow *self,int bIgnored){
2734 return OGR_FD_SetStyleIgnored(self,bIgnored);
2735 }
OGRFeatureDefnShadow_IsSame(OGRFeatureDefnShadow * self,OGRFeatureDefnShadow * other_defn)2736 SWIGINTERN int OGRFeatureDefnShadow_IsSame(OGRFeatureDefnShadow *self,OGRFeatureDefnShadow *other_defn){
2737 return OGR_FD_IsSame(self, other_defn);
2738 }
2739
ValidateOGRFieldType(OGRFieldType field_type)2740 static int ValidateOGRFieldType(OGRFieldType field_type)
2741 {
2742 switch(field_type)
2743 {
2744 case OFTInteger:
2745 case OFTIntegerList:
2746 case OFTReal:
2747 case OFTRealList:
2748 case OFTString:
2749 case OFTStringList:
2750 case OFTBinary:
2751 case OFTDate:
2752 case OFTTime:
2753 case OFTDateTime:
2754 case OFTInteger64:
2755 case OFTInteger64List:
2756 return TRUE;
2757 default:
2758 CPLError(CE_Failure, CPLE_IllegalArg, "Illegal field type value");
2759 return FALSE;
2760 }
2761 }
2762
2763
ValidateOGRFieldSubType(OGRFieldSubType field_subtype)2764 static int ValidateOGRFieldSubType(OGRFieldSubType field_subtype)
2765 {
2766 switch(field_subtype)
2767 {
2768 case OFSTNone:
2769 case OFSTBoolean:
2770 case OFSTInt16:
2771 case OFSTFloat32:
2772 case OFSTJSON:
2773 case OFSTUUID:
2774 return TRUE;
2775 default:
2776 CPLError(CE_Failure, CPLE_IllegalArg, "Illegal field subtype value");
2777 return FALSE;
2778 }
2779 }
2780
delete_OGRFieldDefnShadow(OGRFieldDefnShadow * self)2781 SWIGINTERN void delete_OGRFieldDefnShadow(OGRFieldDefnShadow *self){
2782 OGR_Fld_Destroy(self);
2783 }
new_OGRFieldDefnShadow(char const * name_null_ok="unnamed",OGRFieldType field_type=OFTString)2784 SWIGINTERN OGRFieldDefnShadow *new_OGRFieldDefnShadow(char const *name_null_ok="unnamed",OGRFieldType field_type=OFTString){
2785 if (ValidateOGRFieldType(field_type))
2786 return (OGRFieldDefnShadow*) OGR_Fld_Create(name_null_ok, field_type);
2787 else
2788 return NULL;
2789 }
OGRFieldDefnShadow_GetName(OGRFieldDefnShadow * self)2790 SWIGINTERN char const *OGRFieldDefnShadow_GetName(OGRFieldDefnShadow *self){
2791 return (const char *) OGR_Fld_GetNameRef(self);
2792 }
OGRFieldDefnShadow_GetNameRef(OGRFieldDefnShadow * self)2793 SWIGINTERN char const *OGRFieldDefnShadow_GetNameRef(OGRFieldDefnShadow *self){
2794 return (const char *) OGR_Fld_GetNameRef(self);
2795 }
OGRFieldDefnShadow_SetName(OGRFieldDefnShadow * self,char const * name)2796 SWIGINTERN void OGRFieldDefnShadow_SetName(OGRFieldDefnShadow *self,char const *name){
2797 OGR_Fld_SetName(self, name);
2798 }
OGRFieldDefnShadow_GetAlternativeName(OGRFieldDefnShadow * self)2799 SWIGINTERN char const *OGRFieldDefnShadow_GetAlternativeName(OGRFieldDefnShadow *self){
2800 return OGR_Fld_GetAlternativeNameRef(self);
2801 }
OGRFieldDefnShadow_GetAlternativeNameRef(OGRFieldDefnShadow * self)2802 SWIGINTERN char const *OGRFieldDefnShadow_GetAlternativeNameRef(OGRFieldDefnShadow *self){
2803 return OGR_Fld_GetAlternativeNameRef(self);
2804 }
OGRFieldDefnShadow_SetAlternativeName(OGRFieldDefnShadow * self,char const * alternativeName)2805 SWIGINTERN void OGRFieldDefnShadow_SetAlternativeName(OGRFieldDefnShadow *self,char const *alternativeName){
2806 OGR_Fld_SetAlternativeName(self, alternativeName);
2807 }
OGRFieldDefnShadow_GetType(OGRFieldDefnShadow * self)2808 SWIGINTERN OGRFieldType OGRFieldDefnShadow_GetType(OGRFieldDefnShadow *self){
2809 return OGR_Fld_GetType(self);
2810 }
OGRFieldDefnShadow_SetType(OGRFieldDefnShadow * self,OGRFieldType type)2811 SWIGINTERN void OGRFieldDefnShadow_SetType(OGRFieldDefnShadow *self,OGRFieldType type){
2812 if (ValidateOGRFieldType(type))
2813 OGR_Fld_SetType(self, type);
2814 }
OGRFieldDefnShadow_GetSubType(OGRFieldDefnShadow * self)2815 SWIGINTERN OGRFieldSubType OGRFieldDefnShadow_GetSubType(OGRFieldDefnShadow *self){
2816 return OGR_Fld_GetSubType(self);
2817 }
OGRFieldDefnShadow_SetSubType(OGRFieldDefnShadow * self,OGRFieldSubType type)2818 SWIGINTERN void OGRFieldDefnShadow_SetSubType(OGRFieldDefnShadow *self,OGRFieldSubType type){
2819 if (ValidateOGRFieldSubType(type))
2820 OGR_Fld_SetSubType(self, type);
2821 }
OGRFieldDefnShadow_GetJustify(OGRFieldDefnShadow * self)2822 SWIGINTERN OGRJustification OGRFieldDefnShadow_GetJustify(OGRFieldDefnShadow *self){
2823 return OGR_Fld_GetJustify(self);
2824 }
OGRFieldDefnShadow_SetJustify(OGRFieldDefnShadow * self,OGRJustification justify)2825 SWIGINTERN void OGRFieldDefnShadow_SetJustify(OGRFieldDefnShadow *self,OGRJustification justify){
2826 OGR_Fld_SetJustify(self, justify);
2827 }
OGRFieldDefnShadow_GetWidth(OGRFieldDefnShadow * self)2828 SWIGINTERN int OGRFieldDefnShadow_GetWidth(OGRFieldDefnShadow *self){
2829 return OGR_Fld_GetWidth(self);
2830 }
OGRFieldDefnShadow_SetWidth(OGRFieldDefnShadow * self,int width)2831 SWIGINTERN void OGRFieldDefnShadow_SetWidth(OGRFieldDefnShadow *self,int width){
2832 OGR_Fld_SetWidth(self, width);
2833 }
OGRFieldDefnShadow_GetPrecision(OGRFieldDefnShadow * self)2834 SWIGINTERN int OGRFieldDefnShadow_GetPrecision(OGRFieldDefnShadow *self){
2835 return OGR_Fld_GetPrecision(self);
2836 }
OGRFieldDefnShadow_SetPrecision(OGRFieldDefnShadow * self,int precision)2837 SWIGINTERN void OGRFieldDefnShadow_SetPrecision(OGRFieldDefnShadow *self,int precision){
2838 OGR_Fld_SetPrecision(self, precision);
2839 }
OGRFieldDefnShadow_GetTypeName(OGRFieldDefnShadow * self)2840 SWIGINTERN char const *OGRFieldDefnShadow_GetTypeName(OGRFieldDefnShadow *self){
2841 return OGR_GetFieldTypeName(OGR_Fld_GetType(self));
2842 }
OGRFieldDefnShadow_GetFieldTypeName(OGRFieldDefnShadow * self,OGRFieldType type)2843 SWIGINTERN char const *OGRFieldDefnShadow_GetFieldTypeName(OGRFieldDefnShadow *self,OGRFieldType type){
2844 return OGR_GetFieldTypeName(type);
2845 }
OGRFieldDefnShadow_IsIgnored(OGRFieldDefnShadow * self)2846 SWIGINTERN int OGRFieldDefnShadow_IsIgnored(OGRFieldDefnShadow *self){
2847 return OGR_Fld_IsIgnored( self );
2848 }
OGRFieldDefnShadow_SetIgnored(OGRFieldDefnShadow * self,int bIgnored)2849 SWIGINTERN void OGRFieldDefnShadow_SetIgnored(OGRFieldDefnShadow *self,int bIgnored){
2850 OGR_Fld_SetIgnored( self, bIgnored );
2851 }
OGRFieldDefnShadow_IsNullable(OGRFieldDefnShadow * self)2852 SWIGINTERN int OGRFieldDefnShadow_IsNullable(OGRFieldDefnShadow *self){
2853 return OGR_Fld_IsNullable( self );
2854 }
OGRFieldDefnShadow_SetNullable(OGRFieldDefnShadow * self,int bNullable)2855 SWIGINTERN void OGRFieldDefnShadow_SetNullable(OGRFieldDefnShadow *self,int bNullable){
2856 OGR_Fld_SetNullable( self, bNullable );
2857 }
OGRFieldDefnShadow_IsUnique(OGRFieldDefnShadow * self)2858 SWIGINTERN int OGRFieldDefnShadow_IsUnique(OGRFieldDefnShadow *self){
2859 return OGR_Fld_IsUnique( self );
2860 }
OGRFieldDefnShadow_SetUnique(OGRFieldDefnShadow * self,int bUnique)2861 SWIGINTERN void OGRFieldDefnShadow_SetUnique(OGRFieldDefnShadow *self,int bUnique){
2862 OGR_Fld_SetUnique( self, bUnique );
2863 }
OGRFieldDefnShadow_GetDefault(OGRFieldDefnShadow * self)2864 SWIGINTERN char const *OGRFieldDefnShadow_GetDefault(OGRFieldDefnShadow *self){
2865 return OGR_Fld_GetDefault( self );
2866 }
OGRFieldDefnShadow_SetDefault(OGRFieldDefnShadow * self,char const * pszValue)2867 SWIGINTERN void OGRFieldDefnShadow_SetDefault(OGRFieldDefnShadow *self,char const *pszValue){
2868 OGR_Fld_SetDefault( self, pszValue );
2869 }
OGRFieldDefnShadow_IsDefaultDriverSpecific(OGRFieldDefnShadow * self)2870 SWIGINTERN int OGRFieldDefnShadow_IsDefaultDriverSpecific(OGRFieldDefnShadow *self){
2871 return OGR_Fld_IsDefaultDriverSpecific( self );
2872 }
OGRFieldDefnShadow_GetDomainName(OGRFieldDefnShadow * self)2873 SWIGINTERN char const *OGRFieldDefnShadow_GetDomainName(OGRFieldDefnShadow *self){
2874 return OGR_Fld_GetDomainName(self);
2875 }
OGRFieldDefnShadow_SetDomainName(OGRFieldDefnShadow * self,char const * name)2876 SWIGINTERN void OGRFieldDefnShadow_SetDomainName(OGRFieldDefnShadow *self,char const *name){
2877 OGR_Fld_SetDomainName( self, name );
2878 }
delete_OGRGeomFieldDefnShadow(OGRGeomFieldDefnShadow * self)2879 SWIGINTERN void delete_OGRGeomFieldDefnShadow(OGRGeomFieldDefnShadow *self){
2880 OGR_GFld_Destroy(self);
2881 }
new_OGRGeomFieldDefnShadow(char const * name_null_ok="",OGRwkbGeometryType field_type=wkbUnknown)2882 SWIGINTERN OGRGeomFieldDefnShadow *new_OGRGeomFieldDefnShadow(char const *name_null_ok="",OGRwkbGeometryType field_type=wkbUnknown){
2883 if( ValidateOGRGeometryType(field_type) )
2884 return (OGRGeomFieldDefnShadow*) OGR_GFld_Create(name_null_ok, field_type);
2885 else
2886 return NULL;
2887 }
OGRGeomFieldDefnShadow_GetName(OGRGeomFieldDefnShadow * self)2888 SWIGINTERN char const *OGRGeomFieldDefnShadow_GetName(OGRGeomFieldDefnShadow *self){
2889 return (const char *) OGR_GFld_GetNameRef(self);
2890 }
OGRGeomFieldDefnShadow_GetNameRef(OGRGeomFieldDefnShadow * self)2891 SWIGINTERN char const *OGRGeomFieldDefnShadow_GetNameRef(OGRGeomFieldDefnShadow *self){
2892 return (const char *) OGR_GFld_GetNameRef(self);
2893 }
OGRGeomFieldDefnShadow_SetName(OGRGeomFieldDefnShadow * self,char const * name)2894 SWIGINTERN void OGRGeomFieldDefnShadow_SetName(OGRGeomFieldDefnShadow *self,char const *name){
2895 OGR_GFld_SetName(self, name);
2896 }
OGRGeomFieldDefnShadow_GetType(OGRGeomFieldDefnShadow * self)2897 SWIGINTERN OGRwkbGeometryType OGRGeomFieldDefnShadow_GetType(OGRGeomFieldDefnShadow *self){
2898 return OGR_GFld_GetType(self);
2899 }
OGRGeomFieldDefnShadow_SetType(OGRGeomFieldDefnShadow * self,OGRwkbGeometryType type)2900 SWIGINTERN void OGRGeomFieldDefnShadow_SetType(OGRGeomFieldDefnShadow *self,OGRwkbGeometryType type){
2901 if( ValidateOGRGeometryType(type) )
2902 OGR_GFld_SetType(self, type);
2903 }
OGRGeomFieldDefnShadow_GetSpatialRef(OGRGeomFieldDefnShadow * self)2904 SWIGINTERN OSRSpatialReferenceShadow *OGRGeomFieldDefnShadow_GetSpatialRef(OGRGeomFieldDefnShadow *self){
2905 OGRSpatialReferenceH ref = OGR_GFld_GetSpatialRef(self);
2906 if( ref )
2907 OSRReference(ref);
2908 return (OSRSpatialReferenceShadow*) ref;
2909 }
OGRGeomFieldDefnShadow_SetSpatialRef(OGRGeomFieldDefnShadow * self,OSRSpatialReferenceShadow * srs)2910 SWIGINTERN void OGRGeomFieldDefnShadow_SetSpatialRef(OGRGeomFieldDefnShadow *self,OSRSpatialReferenceShadow *srs){
2911 OGR_GFld_SetSpatialRef( self, (OGRSpatialReferenceH)srs );
2912 }
OGRGeomFieldDefnShadow_IsIgnored(OGRGeomFieldDefnShadow * self)2913 SWIGINTERN int OGRGeomFieldDefnShadow_IsIgnored(OGRGeomFieldDefnShadow *self){
2914 return OGR_GFld_IsIgnored( self );
2915 }
OGRGeomFieldDefnShadow_SetIgnored(OGRGeomFieldDefnShadow * self,int bIgnored)2916 SWIGINTERN void OGRGeomFieldDefnShadow_SetIgnored(OGRGeomFieldDefnShadow *self,int bIgnored){
2917 OGR_GFld_SetIgnored( self, bIgnored );
2918 }
OGRGeomFieldDefnShadow_IsNullable(OGRGeomFieldDefnShadow * self)2919 SWIGINTERN int OGRGeomFieldDefnShadow_IsNullable(OGRGeomFieldDefnShadow *self){
2920 return OGR_GFld_IsNullable( self );
2921 }
OGRGeomFieldDefnShadow_SetNullable(OGRGeomFieldDefnShadow * self,int bNullable)2922 SWIGINTERN void OGRGeomFieldDefnShadow_SetNullable(OGRGeomFieldDefnShadow *self,int bNullable){
2923 return OGR_GFld_SetNullable( self, bNullable );
2924 }
2925
CreateGeometryFromWkb(size_t len,char * bin_string,OSRSpatialReferenceShadow * reference=NULL)2926 OGRGeometryShadow* CreateGeometryFromWkb( size_t len, char *bin_string,
2927 OSRSpatialReferenceShadow *reference=NULL ) {
2928 OGRGeometryH geom = NULL;
2929 OGRErr err = OGR_G_CreateFromWkb( (unsigned char *) bin_string,
2930 reference,
2931 &geom,
2932 len );
2933 if (err != 0 ) {
2934 CPLError(CE_Failure, err, "%s", OGRErrMessages(err));
2935 return NULL;
2936 }
2937 return (OGRGeometryShadow*) geom;
2938 }
2939
2940
2941
2942 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,unsigned long * val)2943 SWIG_AsVal_unsigned_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long *val)
2944 {
2945 if (SvUOK(obj)) {
2946 UV v = SvUV(obj);
2947 if (UVSIZE <= sizeof(*val) || v <= ULONG_MAX) {
2948 if (val) *val = v;
2949 return SWIG_OK;
2950 }
2951 return SWIG_OverflowError;
2952 } else if (SvIOK(obj)) {
2953 IV v = SvIV(obj);
2954 if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULONG_MAX)) {
2955 if (val) *val = v;
2956 return SWIG_OK;
2957 }
2958 return SWIG_OverflowError;
2959 } else {
2960 int dispatch = 0;
2961 const char *nptr = SvPV_nolen(obj);
2962 if (nptr) {
2963 char *endptr;
2964 unsigned long v;
2965 errno = 0;
2966 v = strtoul(nptr, &endptr,0);
2967 if (errno == ERANGE) {
2968 errno = 0;
2969 return SWIG_OverflowError;
2970 } else {
2971 if (*endptr == '\0') {
2972 if (val) *val = v;
2973 return SWIG_Str2NumCast(SWIG_OK);
2974 }
2975 }
2976 }
2977 if (!dispatch) {
2978 double d;
2979 int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
2980 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
2981 if (val) *val = (unsigned long)(d);
2982 return res;
2983 }
2984 }
2985 }
2986 return SWIG_TypeError;
2987 }
2988
2989
2990 #if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE)
2991 # define SWIG_LONG_LONG_AVAILABLE
2992 #endif
2993
2994
2995 #ifdef SWIG_LONG_LONG_AVAILABLE
2996 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,unsigned long long * val)2997 SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long long *val)
2998 {
2999 if (SvUOK(obj)) {
3000 /* pretty sure this should be conditional on
3001 * (UVSIZE <= sizeof(*val) || v <= ULLONG_MAX) */
3002 if (val) *val = SvUV(obj);
3003 return SWIG_OK;
3004 } else if (SvIOK(obj)) {
3005 IV v = SvIV(obj);
3006 if (v >= 0 && (IVSIZE <= sizeof(*val) || v <= ULLONG_MAX)) {
3007 if (val) *val = v;
3008 return SWIG_OK;
3009 } else {
3010 return SWIG_OverflowError;
3011 }
3012 } else {
3013 int dispatch = 0;
3014 const char *nptr = SvPV_nolen(obj);
3015 if (nptr) {
3016 char *endptr;
3017 unsigned long long v;
3018 errno = 0;
3019 v = strtoull(nptr, &endptr,0);
3020 if (errno == ERANGE) {
3021 errno = 0;
3022 return SWIG_OverflowError;
3023 } else {
3024 if (*endptr == '\0') {
3025 if (val) *val = v;
3026 return SWIG_Str2NumCast(SWIG_OK);
3027 }
3028 }
3029 }
3030 if (!dispatch) {
3031 const double mant_max = 1LL << DBL_MANT_DIG;
3032 double d;
3033 int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
3034 if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) {
3035 if (val) *val = (unsigned long long)(d);
3036 return res;
3037 }
3038 }
3039 }
3040 return SWIG_TypeError;
3041 }
3042 #endif
3043
3044
3045 SWIGINTERNINLINE int
SWIG_PERL_DECL_ARGS_2(SV * obj,size_t * val)3046 SWIG_AsVal_size_t SWIG_PERL_DECL_ARGS_2(SV * obj, size_t *val)
3047 {
3048 int res = SWIG_TypeError;
3049 #ifdef SWIG_LONG_LONG_AVAILABLE
3050 if (sizeof(size_t) <= sizeof(unsigned long)) {
3051 #endif
3052 unsigned long v;
3053 res = SWIG_AsVal_unsigned_SS_long SWIG_PERL_CALL_ARGS_2(obj, val ? &v : 0);
3054 if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
3055 #ifdef SWIG_LONG_LONG_AVAILABLE
3056 } else if (sizeof(size_t) <= sizeof(unsigned long long)) {
3057 unsigned long long v;
3058 res = SWIG_AsVal_unsigned_SS_long_SS_long SWIG_PERL_CALL_ARGS_2(obj, val ? &v : 0);
3059 if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v);
3060 }
3061 #endif
3062 return res;
3063 }
3064
3065
CreateGeometryFromWkt(char ** val,OSRSpatialReferenceShadow * reference=NULL)3066 OGRGeometryShadow* CreateGeometryFromWkt( char **val,
3067 OSRSpatialReferenceShadow *reference=NULL ) {
3068 OGRGeometryH geom = NULL;
3069 OGRErr err = OGR_G_CreateFromWkt(val,
3070 reference,
3071 &geom);
3072 if (err != 0 ) {
3073 CPLError(CE_Failure, err, "%s", OGRErrMessages(err));
3074 return NULL;
3075 }
3076 return (OGRGeometryShadow*) geom;
3077 }
3078
3079
3080
CreateGeometryFromGML(const char * input_string)3081 OGRGeometryShadow *CreateGeometryFromGML( const char * input_string ) {
3082 OGRGeometryShadow* geom = (OGRGeometryShadow*)OGR_G_CreateFromGML(input_string);
3083 return geom;
3084 }
3085
3086
3087
CreateGeometryFromJson(const char * input_string)3088 OGRGeometryShadow *CreateGeometryFromJson( const char * input_string ) {
3089 OGRGeometryShadow* geom = (OGRGeometryShadow*)OGR_G_CreateGeometryFromJson(input_string);
3090 return geom;
3091 }
3092
3093
3094
CreateGeometryFromEsriJson(const char * input_string)3095 OGRGeometryShadow *CreateGeometryFromEsriJson( const char * input_string ) {
3096 OGRGeometryShadow* geom = (OGRGeometryShadow*)OGR_G_CreateGeometryFromEsriJson(input_string);
3097 return geom;
3098 }
3099
3100
3101
BuildPolygonFromEdges(OGRGeometryShadow * hLineCollection,int bBestEffort=0,int bAutoClose=0,double dfTolerance=0)3102 OGRGeometryShadow* BuildPolygonFromEdges( OGRGeometryShadow* hLineCollection,
3103 int bBestEffort = 0,
3104 int bAutoClose = 0,
3105 double dfTolerance=0) {
3106
3107 OGRGeometryH hPolygon = NULL;
3108
3109 OGRErr eErr;
3110
3111 hPolygon = OGRBuildPolygonFromEdges( hLineCollection, bBestEffort,
3112 bAutoClose, dfTolerance, &eErr );
3113
3114 if (eErr != OGRERR_NONE ) {
3115 CPLError(CE_Failure, eErr, "%s", OGRErrMessages(eErr));
3116 return NULL;
3117 }
3118
3119 return (OGRGeometryShadow* )hPolygon;
3120 }
3121
3122
ApproximateArcAngles(double dfCenterX,double dfCenterY,double dfZ,double dfPrimaryRadius,double dfSecondaryAxis,double dfRotation,double dfStartAngle,double dfEndAngle,double dfMaxAngleStepSizeDegrees)3123 OGRGeometryShadow* ApproximateArcAngles(
3124 double dfCenterX, double dfCenterY, double dfZ,
3125 double dfPrimaryRadius, double dfSecondaryAxis, double dfRotation,
3126 double dfStartAngle, double dfEndAngle,
3127 double dfMaxAngleStepSizeDegrees ) {
3128
3129 return (OGRGeometryShadow* )OGR_G_ApproximateArcAngles(
3130 dfCenterX, dfCenterY, dfZ,
3131 dfPrimaryRadius, dfSecondaryAxis, dfRotation,
3132 dfStartAngle, dfEndAngle, dfMaxAngleStepSizeDegrees );
3133 }
3134
3135
ForceToPolygon(OGRGeometryShadow * geom_in)3136 OGRGeometryShadow* ForceToPolygon( OGRGeometryShadow *geom_in ) {
3137 if (geom_in == NULL)
3138 return NULL;
3139 return (OGRGeometryShadow* )OGR_G_ForceToPolygon( OGR_G_Clone(geom_in) );
3140 }
3141
3142
ForceToLineString(OGRGeometryShadow * geom_in)3143 OGRGeometryShadow* ForceToLineString( OGRGeometryShadow *geom_in ) {
3144 if (geom_in == NULL)
3145 return NULL;
3146 return (OGRGeometryShadow* )OGR_G_ForceToLineString( OGR_G_Clone(geom_in) );
3147 }
3148
3149
ForceToMultiPolygon(OGRGeometryShadow * geom_in)3150 OGRGeometryShadow* ForceToMultiPolygon( OGRGeometryShadow *geom_in ) {
3151 if (geom_in == NULL)
3152 return NULL;
3153 return (OGRGeometryShadow* )OGR_G_ForceToMultiPolygon( OGR_G_Clone(geom_in) );
3154 }
3155
3156
ForceToMultiPoint(OGRGeometryShadow * geom_in)3157 OGRGeometryShadow* ForceToMultiPoint( OGRGeometryShadow *geom_in ) {
3158 if (geom_in == NULL)
3159 return NULL;
3160 return (OGRGeometryShadow* )OGR_G_ForceToMultiPoint( OGR_G_Clone(geom_in) );
3161 }
3162
3163
ForceToMultiLineString(OGRGeometryShadow * geom_in)3164 OGRGeometryShadow* ForceToMultiLineString( OGRGeometryShadow *geom_in ) {
3165 if (geom_in == NULL)
3166 return NULL;
3167 return (OGRGeometryShadow* )OGR_G_ForceToMultiLineString( OGR_G_Clone(geom_in) );
3168 }
3169
3170
ForceTo(OGRGeometryShadow * geom_in,OGRwkbGeometryType eTargetType,char ** options=NULL)3171 OGRGeometryShadow* ForceTo( OGRGeometryShadow *geom_in, OGRwkbGeometryType eTargetType, char** options = NULL ) {
3172 if (geom_in == NULL)
3173 return NULL;
3174 return (OGRGeometryShadow* )OGR_G_ForceTo( OGR_G_Clone(geom_in), eTargetType, options );
3175 }
3176
delete_OGRGeometryShadow(OGRGeometryShadow * self)3177 SWIGINTERN void delete_OGRGeometryShadow(OGRGeometryShadow *self){
3178 OGR_G_DestroyGeometry( self );
3179 }
new_OGRGeometryShadow(OGRwkbGeometryType type=wkbUnknown,char * wkt=0,int wkb=0,char * wkb_buf=0,char * gml=0)3180 SWIGINTERN OGRGeometryShadow *new_OGRGeometryShadow(OGRwkbGeometryType type=wkbUnknown,char *wkt=0,int wkb=0,char *wkb_buf=0,char *gml=0){
3181 if (type != wkbUnknown ) {
3182 return (OGRGeometryShadow*) OGR_G_CreateGeometry( type );
3183 }
3184 else if ( wkt != 0 ) {
3185 return CreateGeometryFromWkt( &wkt );
3186 }
3187 else if ( wkb != 0 ) {
3188 return CreateGeometryFromWkb( wkb, wkb_buf );
3189 }
3190 else if ( gml != 0 ) {
3191 return CreateGeometryFromGML( gml );
3192 }
3193 // throw?
3194 else {
3195 CPLError(CE_Failure, 1, "Empty geometries cannot be constructed");
3196 return NULL;}
3197
3198 }
OGRGeometryShadow_ExportToWkt(OGRGeometryShadow * self,char ** argout)3199 SWIGINTERN OGRErr OGRGeometryShadow_ExportToWkt(OGRGeometryShadow *self,char **argout){
3200 return OGR_G_ExportToWkt(self, argout);
3201 }
OGRGeometryShadow_ExportToIsoWkt(OGRGeometryShadow * self,char ** argout)3202 SWIGINTERN OGRErr OGRGeometryShadow_ExportToIsoWkt(OGRGeometryShadow *self,char **argout){
3203 return OGR_G_ExportToIsoWkt(self, argout);
3204 }
OGRGeometryShadow_ExportToWkb(OGRGeometryShadow * self,int * nLen,char ** pBuf,OGRwkbByteOrder byte_order=wkbXDR)3205 SWIGINTERN OGRErr OGRGeometryShadow_ExportToWkb(OGRGeometryShadow *self,int *nLen,char **pBuf,OGRwkbByteOrder byte_order=wkbXDR){
3206 *nLen = OGR_G_WkbSize( self );
3207 *pBuf = (char *) VSI_MALLOC_VERBOSE( *nLen );
3208 if( *pBuf == NULL )
3209 return OGRERR_FAILURE;
3210 return OGR_G_ExportToWkb(self, byte_order, (unsigned char*) *pBuf );
3211 }
OGRGeometryShadow_ExportToIsoWkb(OGRGeometryShadow * self,int * nLen,char ** pBuf,OGRwkbByteOrder byte_order=wkbXDR)3212 SWIGINTERN OGRErr OGRGeometryShadow_ExportToIsoWkb(OGRGeometryShadow *self,int *nLen,char **pBuf,OGRwkbByteOrder byte_order=wkbXDR){
3213 *nLen = OGR_G_WkbSize( self );
3214 *pBuf = (char *) VSI_MALLOC_VERBOSE( *nLen );
3215 if( *pBuf == NULL )
3216 return OGRERR_FAILURE;
3217 return OGR_G_ExportToIsoWkb(self, byte_order, (unsigned char*) *pBuf );
3218 }
OGRGeometryShadow_ExportToGML(OGRGeometryShadow * self,char ** options=0)3219 SWIGINTERN retStringAndCPLFree *OGRGeometryShadow_ExportToGML(OGRGeometryShadow *self,char **options=0){
3220 return (retStringAndCPLFree*) OGR_G_ExportToGMLEx(self, options);
3221 }
OGRGeometryShadow_ExportToKML(OGRGeometryShadow * self,char const * altitude_mode=NULL)3222 SWIGINTERN retStringAndCPLFree *OGRGeometryShadow_ExportToKML(OGRGeometryShadow *self,char const *altitude_mode=NULL){
3223 return (retStringAndCPLFree *) OGR_G_ExportToKML(self, altitude_mode);
3224 }
OGRGeometryShadow_ExportToJson(OGRGeometryShadow * self,char ** options=0)3225 SWIGINTERN retStringAndCPLFree *OGRGeometryShadow_ExportToJson(OGRGeometryShadow *self,char **options=0){
3226 return (retStringAndCPLFree *) OGR_G_ExportToJsonEx(self, options);
3227 }
OGRGeometryShadow_AddPoint(OGRGeometryShadow * self,double x,double y,double z=0)3228 SWIGINTERN void OGRGeometryShadow_AddPoint(OGRGeometryShadow *self,double x,double y,double z=0){
3229 OGR_G_AddPoint( self, x, y, z );
3230 }
OGRGeometryShadow_AddPointM(OGRGeometryShadow * self,double x,double y,double m)3231 SWIGINTERN void OGRGeometryShadow_AddPointM(OGRGeometryShadow *self,double x,double y,double m){
3232 OGR_G_AddPointM( self, x, y, m );
3233 }
OGRGeometryShadow_AddPointZM(OGRGeometryShadow * self,double x,double y,double z,double m)3234 SWIGINTERN void OGRGeometryShadow_AddPointZM(OGRGeometryShadow *self,double x,double y,double z,double m){
3235 OGR_G_AddPointZM( self, x, y, z, m );
3236 }
OGRGeometryShadow_AddPoint_2D(OGRGeometryShadow * self,double x,double y)3237 SWIGINTERN void OGRGeometryShadow_AddPoint_2D(OGRGeometryShadow *self,double x,double y){
3238 OGR_G_AddPoint_2D( self, x, y );
3239 }
OGRGeometryShadow_AddGeometryDirectly(OGRGeometryShadow * self,OGRGeometryShadow * other_disown)3240 SWIGINTERN OGRErr OGRGeometryShadow_AddGeometryDirectly(OGRGeometryShadow *self,OGRGeometryShadow *other_disown){
3241 return OGR_G_AddGeometryDirectly( self, other_disown );
3242 }
OGRGeometryShadow_AddGeometry(OGRGeometryShadow * self,OGRGeometryShadow * other)3243 SWIGINTERN OGRErr OGRGeometryShadow_AddGeometry(OGRGeometryShadow *self,OGRGeometryShadow *other){
3244 return OGR_G_AddGeometry( self, other );
3245 }
OGRGeometryShadow_RemoveGeometry(OGRGeometryShadow * self,int iSubGeom)3246 SWIGINTERN OGRErr OGRGeometryShadow_RemoveGeometry(OGRGeometryShadow *self,int iSubGeom){
3247 return OGR_G_RemoveGeometry( self, iSubGeom, TRUE );
3248 }
OGRGeometryShadow_Clone(OGRGeometryShadow * self)3249 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Clone(OGRGeometryShadow *self){
3250 return (OGRGeometryShadow*) OGR_G_Clone(self);
3251 }
OGRGeometryShadow_GetGeometryType(OGRGeometryShadow * self)3252 SWIGINTERN OGRwkbGeometryType OGRGeometryShadow_GetGeometryType(OGRGeometryShadow *self){
3253 return (OGRwkbGeometryType) OGR_G_GetGeometryType(self);
3254 }
OGRGeometryShadow_GetGeometryName(OGRGeometryShadow * self)3255 SWIGINTERN char const *OGRGeometryShadow_GetGeometryName(OGRGeometryShadow *self){
3256 return (const char *) OGR_G_GetGeometryName(self);
3257 }
OGRGeometryShadow_Length(OGRGeometryShadow * self)3258 SWIGINTERN double OGRGeometryShadow_Length(OGRGeometryShadow *self){
3259 return OGR_G_Length(self);
3260 }
OGRGeometryShadow_Area(OGRGeometryShadow * self)3261 SWIGINTERN double OGRGeometryShadow_Area(OGRGeometryShadow *self){
3262 return OGR_G_Area(self);
3263 }
OGRGeometryShadow_GetArea(OGRGeometryShadow * self)3264 SWIGINTERN double OGRGeometryShadow_GetArea(OGRGeometryShadow *self){
3265 return OGR_G_Area(self);
3266 }
OGRGeometryShadow_GetPointCount(OGRGeometryShadow * self)3267 SWIGINTERN int OGRGeometryShadow_GetPointCount(OGRGeometryShadow *self){
3268 return OGR_G_GetPointCount(self);
3269 }
OGRGeometryShadow_GetX(OGRGeometryShadow * self,int point=0)3270 SWIGINTERN double OGRGeometryShadow_GetX(OGRGeometryShadow *self,int point=0){
3271 return OGR_G_GetX(self, point);
3272 }
OGRGeometryShadow_GetY(OGRGeometryShadow * self,int point=0)3273 SWIGINTERN double OGRGeometryShadow_GetY(OGRGeometryShadow *self,int point=0){
3274 return OGR_G_GetY(self, point);
3275 }
OGRGeometryShadow_GetZ(OGRGeometryShadow * self,int point=0)3276 SWIGINTERN double OGRGeometryShadow_GetZ(OGRGeometryShadow *self,int point=0){
3277 return OGR_G_GetZ(self, point);
3278 }
OGRGeometryShadow_GetM(OGRGeometryShadow * self,int point=0)3279 SWIGINTERN double OGRGeometryShadow_GetM(OGRGeometryShadow *self,int point=0){
3280 return OGR_G_GetM(self, point);
3281 }
OGRGeometryShadow_GetPoint(OGRGeometryShadow * self,int iPoint=0,double argout[3]=NULL)3282 SWIGINTERN void OGRGeometryShadow_GetPoint(OGRGeometryShadow *self,int iPoint=0,double argout[3]=NULL){
3283
3284 OGR_G_GetPoint( self, iPoint, argout+0, argout+1, argout+2 );
3285 }
OGRGeometryShadow_GetPointZM(OGRGeometryShadow * self,int iPoint=0,double argout[4]=NULL)3286 SWIGINTERN void OGRGeometryShadow_GetPointZM(OGRGeometryShadow *self,int iPoint=0,double argout[4]=NULL){
3287
3288 OGR_G_GetPointZM( self, iPoint, argout+0, argout+1, argout+2, argout+3 );
3289 }
OGRGeometryShadow_GetPoint_2D(OGRGeometryShadow * self,int iPoint=0,double argout[2]=NULL)3290 SWIGINTERN void OGRGeometryShadow_GetPoint_2D(OGRGeometryShadow *self,int iPoint=0,double argout[2]=NULL){
3291
3292 OGR_G_GetPoint( self, iPoint, argout+0, argout+1, NULL );
3293 }
OGRGeometryShadow_GetGeometryCount(OGRGeometryShadow * self)3294 SWIGINTERN int OGRGeometryShadow_GetGeometryCount(OGRGeometryShadow *self){
3295 return OGR_G_GetGeometryCount(self);
3296 }
OGRGeometryShadow_SetPoint(OGRGeometryShadow * self,int point,double x,double y,double z=0)3297 SWIGINTERN void OGRGeometryShadow_SetPoint(OGRGeometryShadow *self,int point,double x,double y,double z=0){
3298 OGR_G_SetPoint(self, point, x, y, z);
3299 }
OGRGeometryShadow_SetPointM(OGRGeometryShadow * self,int point,double x,double y,double m)3300 SWIGINTERN void OGRGeometryShadow_SetPointM(OGRGeometryShadow *self,int point,double x,double y,double m){
3301 OGR_G_SetPointM(self, point, x, y, m);
3302 }
OGRGeometryShadow_SetPointZM(OGRGeometryShadow * self,int point,double x,double y,double z,double m)3303 SWIGINTERN void OGRGeometryShadow_SetPointZM(OGRGeometryShadow *self,int point,double x,double y,double z,double m){
3304 OGR_G_SetPointZM(self, point, x, y, z, m);
3305 }
OGRGeometryShadow_SetPoint_2D(OGRGeometryShadow * self,int point,double x,double y)3306 SWIGINTERN void OGRGeometryShadow_SetPoint_2D(OGRGeometryShadow *self,int point,double x,double y){
3307 OGR_G_SetPoint_2D(self, point, x, y);
3308 }
OGRGeometryShadow_SwapXY(OGRGeometryShadow * self)3309 SWIGINTERN void OGRGeometryShadow_SwapXY(OGRGeometryShadow *self){
3310 OGR_G_SwapXY(self);
3311 }
OGRGeometryShadow_GetGeometryRef(OGRGeometryShadow * self,int geom)3312 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_GetGeometryRef(OGRGeometryShadow *self,int geom){
3313 return (OGRGeometryShadow*) OGR_G_GetGeometryRef(self, geom);
3314 }
OGRGeometryShadow_Simplify(OGRGeometryShadow * self,double tolerance)3315 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Simplify(OGRGeometryShadow *self,double tolerance){
3316 return (OGRGeometryShadow*) OGR_G_Simplify(self, tolerance);
3317 }
OGRGeometryShadow_SimplifyPreserveTopology(OGRGeometryShadow * self,double tolerance)3318 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_SimplifyPreserveTopology(OGRGeometryShadow *self,double tolerance){
3319 return (OGRGeometryShadow*) OGR_G_SimplifyPreserveTopology(self, tolerance);
3320 }
OGRGeometryShadow_DelaunayTriangulation(OGRGeometryShadow * self,double dfTolerance=0.0,int bOnlyEdges=FALSE)3321 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_DelaunayTriangulation(OGRGeometryShadow *self,double dfTolerance=0.0,int bOnlyEdges=FALSE){
3322 return (OGRGeometryShadow*) OGR_G_DelaunayTriangulation(self, dfTolerance, bOnlyEdges);
3323 }
OGRGeometryShadow_Polygonize(OGRGeometryShadow * self)3324 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Polygonize(OGRGeometryShadow *self){
3325 return (OGRGeometryShadow*) OGR_G_Polygonize(self);
3326 }
OGRGeometryShadow_Boundary(OGRGeometryShadow * self)3327 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Boundary(OGRGeometryShadow *self){
3328 return (OGRGeometryShadow*) OGR_G_Boundary(self);
3329 }
OGRGeometryShadow_GetBoundary(OGRGeometryShadow * self)3330 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_GetBoundary(OGRGeometryShadow *self){
3331 return (OGRGeometryShadow*) OGR_G_Boundary(self);
3332 }
OGRGeometryShadow_ConvexHull(OGRGeometryShadow * self)3333 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_ConvexHull(OGRGeometryShadow *self){
3334 return (OGRGeometryShadow*) OGR_G_ConvexHull(self);
3335 }
OGRGeometryShadow_MakeValid(OGRGeometryShadow * self)3336 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_MakeValid(OGRGeometryShadow *self){
3337 return (OGRGeometryShadow*) OGR_G_MakeValid(self);
3338 }
OGRGeometryShadow_Normalize(OGRGeometryShadow * self)3339 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Normalize(OGRGeometryShadow *self){
3340 return (OGRGeometryShadow*) OGR_G_Normalize(self);
3341 }
OGRGeometryShadow_RemoveLowerDimensionSubGeoms(OGRGeometryShadow * self)3342 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_RemoveLowerDimensionSubGeoms(OGRGeometryShadow *self){
3343 return (OGRGeometryShadow*) OGR_G_RemoveLowerDimensionSubGeoms(self);
3344 }
OGRGeometryShadow_Buffer(OGRGeometryShadow * self,double distance,int quadsecs=30)3345 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Buffer(OGRGeometryShadow *self,double distance,int quadsecs=30){
3346 return (OGRGeometryShadow*) OGR_G_Buffer( self, distance, quadsecs );
3347 }
OGRGeometryShadow_Intersection(OGRGeometryShadow * self,OGRGeometryShadow * other)3348 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Intersection(OGRGeometryShadow *self,OGRGeometryShadow *other){
3349 return (OGRGeometryShadow*) OGR_G_Intersection( self, other );
3350 }
OGRGeometryShadow_Union(OGRGeometryShadow * self,OGRGeometryShadow * other)3351 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Union(OGRGeometryShadow *self,OGRGeometryShadow *other){
3352 return (OGRGeometryShadow*) OGR_G_Union( self, other );
3353 }
OGRGeometryShadow_UnionCascaded(OGRGeometryShadow * self)3354 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_UnionCascaded(OGRGeometryShadow *self){
3355 return (OGRGeometryShadow*) OGR_G_UnionCascaded( self );
3356 }
OGRGeometryShadow_Difference(OGRGeometryShadow * self,OGRGeometryShadow * other)3357 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_Difference(OGRGeometryShadow *self,OGRGeometryShadow *other){
3358 return (OGRGeometryShadow*) OGR_G_Difference( self, other );
3359 }
OGRGeometryShadow_SymDifference(OGRGeometryShadow * self,OGRGeometryShadow * other)3360 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_SymDifference(OGRGeometryShadow *self,OGRGeometryShadow *other){
3361 return (OGRGeometryShadow*) OGR_G_SymDifference( self, other );
3362 }
OGRGeometryShadow_SymmetricDifference(OGRGeometryShadow * self,OGRGeometryShadow * other)3363 SWIGINTERN OGRGeometryShadow *OGRGeometryShadow_SymmetricDifference(OGRGeometryShadow *self,OGRGeometryShadow *other){
3364 return (OGRGeometryShadow*) OGR_G_SymDifference( self, other );
3365 }
OGRGeometryShadow_Distance(OGRGeometryShadow * self,OGRGeometryShadow * other)3366 SWIGINTERN double OGRGeometryShadow_Distance(OGRGeometryShadow *self,OGRGeometryShadow *other){
3367 return OGR_G_Distance(self, other);
3368 }
OGRGeometryShadow_Distance3D(OGRGeometryShadow * self,OGRGeometryShadow * other)3369 SWIGINTERN double OGRGeometryShadow_Distance3D(OGRGeometryShadow *self,OGRGeometryShadow *other){
3370 return OGR_G_Distance3D(self, other);
3371 }
OGRGeometryShadow_Empty(OGRGeometryShadow * self)3372 SWIGINTERN void OGRGeometryShadow_Empty(OGRGeometryShadow *self){
3373 OGR_G_Empty(self);
3374 }
OGRGeometryShadow_IsEmpty(OGRGeometryShadow * self)3375 SWIGINTERN bool OGRGeometryShadow_IsEmpty(OGRGeometryShadow *self){
3376 return (OGR_G_IsEmpty(self) > 0);
3377 }
OGRGeometryShadow_IsValid(OGRGeometryShadow * self)3378 SWIGINTERN bool OGRGeometryShadow_IsValid(OGRGeometryShadow *self){
3379 return (OGR_G_IsValid(self) > 0);
3380 }
OGRGeometryShadow_IsSimple(OGRGeometryShadow * self)3381 SWIGINTERN bool OGRGeometryShadow_IsSimple(OGRGeometryShadow *self){
3382 return (OGR_G_IsSimple(self) > 0);
3383 }
OGRGeometryShadow_IsRing(OGRGeometryShadow * self)3384 SWIGINTERN bool OGRGeometryShadow_IsRing(OGRGeometryShadow *self){
3385 return (OGR_G_IsRing(self) > 0);
3386 }
OGRGeometryShadow_Intersects(OGRGeometryShadow * self,OGRGeometryShadow * other)3387 SWIGINTERN bool OGRGeometryShadow_Intersects(OGRGeometryShadow *self,OGRGeometryShadow *other){
3388 return (OGR_G_Intersects(self, other) > 0);
3389 }
OGRGeometryShadow_Intersect(OGRGeometryShadow * self,OGRGeometryShadow * other)3390 SWIGINTERN bool OGRGeometryShadow_Intersect(OGRGeometryShadow *self,OGRGeometryShadow *other){
3391 return (OGR_G_Intersects(self, other) > 0);
3392 }
OGRGeometryShadow_Equals(OGRGeometryShadow * self,OGRGeometryShadow * other)3393 SWIGINTERN bool OGRGeometryShadow_Equals(OGRGeometryShadow *self,OGRGeometryShadow *other){
3394 return (OGR_G_Equals(self, other) > 0);
3395 }
OGRGeometryShadow_Equal(OGRGeometryShadow * self,OGRGeometryShadow * other)3396 SWIGINTERN bool OGRGeometryShadow_Equal(OGRGeometryShadow *self,OGRGeometryShadow *other){
3397 return (OGR_G_Equals(self, other) > 0);
3398 }
OGRGeometryShadow_Disjoint(OGRGeometryShadow * self,OGRGeometryShadow * other)3399 SWIGINTERN bool OGRGeometryShadow_Disjoint(OGRGeometryShadow *self,OGRGeometryShadow *other){
3400 return (OGR_G_Disjoint(self, other) > 0);
3401 }
OGRGeometryShadow_Touches(OGRGeometryShadow * self,OGRGeometryShadow * other)3402 SWIGINTERN bool OGRGeometryShadow_Touches(OGRGeometryShadow *self,OGRGeometryShadow *other){
3403 return (OGR_G_Touches(self, other) > 0);
3404 }
OGRGeometryShadow_Crosses(OGRGeometryShadow * self,OGRGeometryShadow * other)3405 SWIGINTERN bool OGRGeometryShadow_Crosses(OGRGeometryShadow *self,OGRGeometryShadow *other){
3406 return (OGR_G_Crosses(self, other) > 0);
3407 }
OGRGeometryShadow_Within(OGRGeometryShadow * self,OGRGeometryShadow * other)3408 SWIGINTERN bool OGRGeometryShadow_Within(OGRGeometryShadow *self,OGRGeometryShadow *other){
3409 return (OGR_G_Within(self, other) > 0);
3410 }
OGRGeometryShadow_Contains(OGRGeometryShadow * self,OGRGeometryShadow * other)3411 SWIGINTERN bool OGRGeometryShadow_Contains(OGRGeometryShadow *self,OGRGeometryShadow *other){
3412 return (OGR_G_Contains(self, other) > 0);
3413 }
OGRGeometryShadow_Overlaps(OGRGeometryShadow * self,OGRGeometryShadow * other)3414 SWIGINTERN bool OGRGeometryShadow_Overlaps(OGRGeometryShadow *self,OGRGeometryShadow *other){
3415 return (OGR_G_Overlaps(self, other) > 0);
3416 }
OGRGeometryShadow_TransformTo(OGRGeometryShadow * self,OSRSpatialReferenceShadow * reference)3417 SWIGINTERN OGRErr OGRGeometryShadow_TransformTo(OGRGeometryShadow *self,OSRSpatialReferenceShadow *reference){
3418 return OGR_G_TransformTo(self, reference);
3419 }
OGRGeometryShadow_Transform__SWIG_0(OGRGeometryShadow * self,OSRCoordinateTransformationShadow * trans)3420 SWIGINTERN OGRErr OGRGeometryShadow_Transform__SWIG_0(OGRGeometryShadow *self,OSRCoordinateTransformationShadow *trans){
3421 return OGR_G_Transform(self, trans);
3422 }
OGRGeometryShadow_GetSpatialReference(OGRGeometryShadow * self)3423 SWIGINTERN OSRSpatialReferenceShadow *OGRGeometryShadow_GetSpatialReference(OGRGeometryShadow *self){
3424 OGRSpatialReferenceH ref = OGR_G_GetSpatialReference(self);
3425 if( ref )
3426 OSRReference(ref);
3427 return (OSRSpatialReferenceShadow*) ref;
3428 }
OGRGeometryShadow_AssignSpatialReference(OGRGeometryShadow * self,OSRSpatialReferenceShadow * reference)3429 SWIGINTERN void OGRGeometryShadow_AssignSpatialReference(OGRGeometryShadow *self,OSRSpatialReferenceShadow *reference){
3430 OGR_G_AssignSpatialReference(self, reference);
3431 }
OGRGeometryShadow_CloseRings(OGRGeometryShadow * self)3432 SWIGINTERN void OGRGeometryShadow_CloseRings(OGRGeometryShadow *self){
3433 OGR_G_CloseRings(self);
3434 }
OGRGeometryShadow_FlattenTo2D(OGRGeometryShadow * self)3435 SWIGINTERN void OGRGeometryShadow_FlattenTo2D(OGRGeometryShadow *self){
3436 OGR_G_FlattenTo2D(self);
3437 }
OGRGeometryShadow_Segmentize(OGRGeometryShadow * self,double dfMaxLength)3438 SWIGINTERN void OGRGeometryShadow_Segmentize(OGRGeometryShadow *self,double dfMaxLength){
3439 OGR_G_Segmentize(self, dfMaxLength);
3440 }
OGRGeometryShadow_GetEnvelope(OGRGeometryShadow * self,double argout[4])3441 SWIGINTERN void OGRGeometryShadow_GetEnvelope(OGRGeometryShadow *self,double argout[4]){
3442 OGR_G_GetEnvelope(self, (OGREnvelope*)argout);
3443 }
OGRGeometryShadow_GetEnvelope3D(OGRGeometryShadow * self,double argout[6])3444 SWIGINTERN void OGRGeometryShadow_GetEnvelope3D(OGRGeometryShadow *self,double argout[6]){
3445 OGR_G_GetEnvelope3D(self, (OGREnvelope3D*)argout);
3446 }
OGRGeometryShadow_Centroid(OGRGeometryShadow * self)3447