tumble_wrap.C

Go to the documentation of this file.
00001 /* ----------------------------------------------------------------------------
00002  * This file was automatically generated by SWIG (http://www.swig.org).
00003  * Version 1.3.21
00004  * 
00005  * This file is not intended to be easily readable and contains a number of 
00006  * coding conventions designed to improve portability and efficiency. Do not make
00007  * changes to this file unless you know what you are doing--modify the SWIG 
00008  * interface file instead. 
00009  * ----------------------------------------------------------------------------- */
00010 
00011 
00012 #ifdef __cplusplus
00013 template<class T> class SwigValueWrapper {
00014     T *tt;
00015 public:
00016     SwigValueWrapper() : tt(0) { }
00017     SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
00018     SwigValueWrapper(const T& t) : tt(new T(t)) { }
00019     ~SwigValueWrapper() { delete tt; } 
00020     SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
00021     operator T&() const { return *tt; }
00022     T *operator&() { return tt; }
00023 private:
00024     SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
00025 };                                                    
00026 #endif
00027 
00028 /* ruby.swg */
00029 /* Implementation : RUBY */
00030 #define SWIGRUBY 1
00031 
00032 #include "ruby.h"
00033 
00034 /* Flags for pointer conversion */
00035 #define SWIG_POINTER_EXCEPTION     0x1
00036 #define SWIG_POINTER_DISOWN        0x2
00037 
00038 #define NUM2USHRT(n) (\
00039     (0 <= NUM2UINT(n) && NUM2UINT(n) <= USHRT_MAX)\
00040     ? (unsigned short) NUM2UINT(n) \
00041     : (rb_raise(rb_eArgError, "integer %d out of range of `unsigned short'",\
00042                NUM2UINT(n)), (short)0)\
00043 )
00044 
00045 #define NUM2SHRT(n) (\
00046     (SHRT_MIN <= NUM2INT(n) && NUM2INT(n) <= SHRT_MAX)\
00047     ? (short)NUM2INT(n)\
00048     : (rb_raise(rb_eArgError, "integer %d out of range of `short'",\
00049                NUM2INT(n)), (short)0)\
00050 )
00051 
00052 /* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */
00053 #ifndef NUM2LL
00054 #define NUM2LL(x) NUM2LONG((x))
00055 #endif
00056 #ifndef LL2NUM
00057 #define LL2NUM(x) INT2NUM((long) (x))
00058 #endif
00059 #ifndef ULL2NUM
00060 #define ULL2NUM(x) UINT2NUM((unsigned long) (x))
00061 #endif
00062 
00063 /* Ruby 1.7 doesn't (yet) define NUM2ULL() */
00064 #ifndef NUM2ULL
00065 #ifdef HAVE_LONG_LONG
00066 #define NUM2ULL(x) rb_num2ull((x))
00067 #else
00068 #define NUM2ULL(x) NUM2ULONG(x)
00069 #endif
00070 #endif
00071 
00072 /*
00073  * Need to be very careful about how these macros are defined, especially
00074  * when compiling C++ code or C code with an ANSI C compiler.
00075  *
00076  * VALUEFUNC(f) is a macro used to typecast a C function that implements
00077  * a Ruby method so that it can be passed as an argument to API functions
00078  * like rb_define_method() and rb_define_singleton_method().
00079  *
00080  * VOIDFUNC(f) is a macro used to typecast a C function that implements
00081  * either the "mark" or "free" stuff for a Ruby Data object, so that it
00082  * can be passed as an argument to API functions like Data_Wrap_Struct()
00083  * and Data_Make_Struct().
00084  */
00085  
00086 #ifdef __cplusplus
00087 #  ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
00088 #    define VALUEFUNC(f) ((VALUE (*)()) f)
00089 #    define VOIDFUNC(f)  ((void (*)()) f)
00090 #  else
00091 #    ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
00092 #      define VALUEFUNC(f) ((VALUE (*)()) f)
00093 #      define VOIDFUNC(f)  ((RUBY_DATA_FUNC) f)
00094 #    else /* These definitions should work for Ruby 1.7 */
00095 #      define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
00096 #      define VOIDFUNC(f)  ((RUBY_DATA_FUNC) f)
00097 #    endif
00098 #  endif
00099 #else
00100 #  define VALUEFUNC(f) (f)
00101 #  define VOIDFUNC(f) (f)
00102 #endif
00103 
00104 typedef struct {
00105   VALUE klass;
00106   VALUE mImpl;
00107   void  (*mark)(void *);
00108   void  (*destroy)(void *);
00109 } swig_class;
00110 
00111 /* Don't use for expressions have side effect */
00112 #ifndef RB_STRING_VALUE
00113 #define RB_STRING_VALUE(s) (TYPE(s) == T_STRING ? (s) : (*(volatile VALUE *)&(s) = rb_str_to_str(s)))
00114 #endif
00115 #ifndef StringValue
00116 #define StringValue(s) RB_STRING_VALUE(s)
00117 #endif
00118 #ifndef StringValuePtr
00119 #define StringValuePtr(s) RSTRING(RB_STRING_VALUE(s))->ptr
00120 #endif
00121 #ifndef StringValueLen
00122 #define StringValueLen(s) RSTRING(RB_STRING_VALUE(s))->len
00123 #endif
00124 #ifndef SafeStringValue
00125 #define SafeStringValue(v) do {\
00126     StringValue(v);\
00127     rb_check_safe_str(v);\
00128 } while (0)
00129 #endif
00130 
00131 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
00132 #define rb_define_alloc_func(klass, func) rb_define_singleton_method((klass), "new", VALUEFUNC((func)), -1)
00133 #define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new")
00134 #endif
00135 
00136 /* Contract support */
00137 
00138 #define SWIG_contract_assert(expr, msg) if (!(expr)) { rb_raise(rb_eRuntimeError, (char *) msg ); } else
00139 
00140 
00141 /*************************************************************** -*- c -*-
00142  * ruby/precommon.swg
00143  *
00144  * Rename all exported symbols from common.swg, to avoid symbol
00145  * clashes if multiple interpreters are included
00146  *
00147  ************************************************************************/
00148 
00149 #define SWIG_TypeRegister    SWIG_Ruby_TypeRegister
00150 #define SWIG_TypeCheck       SWIG_Ruby_TypeCheck
00151 #define SWIG_TypeCast        SWIG_Ruby_TypeCast
00152 #define SWIG_TypeDynamicCast SWIG_Ruby_TypeDynamicCast
00153 #define SWIG_TypeName        SWIG_Ruby_TypeName
00154 #define SWIG_TypeQuery       SWIG_Ruby_TypeQuery
00155 #define SWIG_TypeClientData  SWIG_Ruby_TypeClientData
00156 #define SWIG_PackData        SWIG_Ruby_PackData 
00157 #define SWIG_UnpackData      SWIG_Ruby_UnpackData 
00158 
00159 /* Also rename all exported symbols from rubydef.swig */
00160 
00161 /* Common SWIG API */
00162 #define SWIG_ConvertPtr(obj, pp, type, flags) \
00163   SWIG_Ruby_ConvertPtr(obj, pp, type, flags)
00164 #define SWIG_NewPointerObj(p, type, flags) \
00165   SWIG_Ruby_NewPointerObj(p, type, flags)
00166 #define SWIG_MustGetPtr(p, type, argnum, flags) \
00167   SWIG_Ruby_MustGetPtr(p, type, argnum, flags)
00168 
00169 /* Ruby-specific SWIG API */
00170 
00171 #define SWIG_InitRuntime() \
00172   SWIG_Ruby_InitRuntime()
00173 #define SWIG_define_class(ty) \
00174   SWIG_Ruby_define_class(ty)
00175 #define SWIG_NewClassInstance(value, ty) \
00176   SWIG_Ruby_NewClassInstance(value, ty)
00177 #define SWIG_MangleStr(value) \
00178   SWIG_Ruby_MangleStr(value)
00179 #define SWIG_CheckConvert(value, ty) \
00180   SWIG_Ruby_CheckConvert(value, ty)
00181 #define SWIG_NewPackedObj(ptr, sz, ty) \
00182   SWIG_Ruby_NewPackedObj(ptr, sz, ty)
00183 #define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) \
00184   SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty, flags)
00185 
00186 
00187 /***********************************************************************
00188  * common.swg
00189  *
00190  *     This file contains generic SWIG runtime support for pointer
00191  *     type checking as well as a few commonly used macros to control
00192  *     external linkage.
00193  *
00194  * Author : David Beazley (beazley@cs.uchicago.edu)
00195  *
00196  * Copyright (c) 1999-2000, The University of Chicago
00197  * 
00198  * This file may be freely redistributed without license or fee provided
00199  * this copyright message remains intact.
00200  ************************************************************************/
00201 
00202 #include <string.h>
00203 
00204 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
00205 #  if defined(_MSC_VER) || defined(__GNUC__)
00206 #    if defined(STATIC_LINKED)
00207 #      define SWIGEXPORT(a) a
00208 #      define SWIGIMPORT(a) extern a
00209 #    else
00210 #      define SWIGEXPORT(a) __declspec(dllexport) a
00211 #      define SWIGIMPORT(a) extern a
00212 #    endif
00213 #  else
00214 #    if defined(__BORLANDC__)
00215 #      define SWIGEXPORT(a) a _export
00216 #      define SWIGIMPORT(a) a _export
00217 #    else
00218 #      define SWIGEXPORT(a) a
00219 #      define SWIGIMPORT(a) a
00220 #    endif
00221 #  endif
00222 #else
00223 #  define SWIGEXPORT(a) a
00224 #  define SWIGIMPORT(a) a
00225 #endif
00226 
00227 #ifdef SWIG_GLOBAL
00228 #  define SWIGRUNTIME(a) SWIGEXPORT(a)
00229 #else
00230 #  define SWIGRUNTIME(a) static a
00231 #endif
00232 
00233 #ifdef __cplusplus
00234 extern "C" {
00235 #endif
00236 
00237 typedef void *(*swig_converter_func)(void *);
00238 typedef struct swig_type_info *(*swig_dycast_func)(void **);
00239 
00240 typedef struct swig_type_info {
00241   const char             *name;
00242   swig_converter_func     converter;
00243   const char             *str;
00244   void                   *clientdata;
00245   swig_dycast_func        dcast;
00246   struct swig_type_info  *next;
00247   struct swig_type_info  *prev;
00248 } swig_type_info;
00249 
00250 #ifdef SWIG_NOINCLUDE
00251 
00252 SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
00253 SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
00254 SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
00255 SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
00256 SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
00257 SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
00258 SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
00259 SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
00260 SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);
00261 
00262 #else
00263 
00264 static swig_type_info *swig_type_list = 0;
00265 
00266 /* Register a type mapping with the type-checking */
00267 SWIGRUNTIME(swig_type_info *)
00268 SWIG_TypeRegister(swig_type_info *ti) {
00269   swig_type_info *tc, *head, *ret, *next;
00270   /* Check to see if this type has already been registered */
00271   tc = swig_type_list;
00272   while (tc) {
00273     if (strcmp(tc->name, ti->name) == 0) {
00274       /* Already exists in the table.  Just add additional types to the list */
00275       if (tc->clientdata) ti->clientdata = tc->clientdata;
00276       head = tc;
00277       next = tc->next;
00278       goto l1;
00279     }
00280     tc = tc->prev;
00281   }
00282   head = ti;
00283   next = 0;
00284 
00285   /* Place in list */
00286   ti->prev = swig_type_list;
00287   swig_type_list = ti;
00288 
00289   /* Build linked lists */
00290   l1:
00291   ret = head;
00292   tc = ti + 1;
00293   /* Patch up the rest of the links */
00294   while (tc->name) {
00295     head->next = tc;
00296     tc->prev = head;
00297     head = tc;
00298     tc++;
00299   }
00300   if (next) next->prev = head;
00301   head->next = next;
00302   return ret;
00303 }
00304 
00305 /* Check the typename */
00306 SWIGRUNTIME(swig_type_info *) 
00307 SWIG_TypeCheck(char *c, swig_type_info *ty) {
00308   swig_type_info *s;
00309   if (!ty) return 0;        /* Void pointer */
00310   s = ty->next;             /* First element always just a name */
00311   do {
00312     if (strcmp(s->name,c) == 0) {
00313       if (s == ty->next) return s;
00314       /* Move s to the top of the linked list */
00315       s->prev->next = s->next;
00316       if (s->next) {
00317         s->next->prev = s->prev;
00318       }
00319       /* Insert s as second element in the list */
00320       s->next = ty->next;
00321       if (ty->next) ty->next->prev = s;
00322       ty->next = s;
00323       s->prev = ty;
00324       return s;
00325     }
00326     s = s->next;
00327   } while (s && (s != ty->next));
00328   return 0;
00329 }
00330 
00331 /* Cast a pointer up an inheritance hierarchy */
00332 SWIGRUNTIME(void *) 
00333 SWIG_TypeCast(swig_type_info *ty, void *ptr) {
00334   if ((!ty) || (!ty->converter)) return ptr;
00335   return (*ty->converter)(ptr);
00336 }
00337 
00338 /* Dynamic pointer casting. Down an inheritance hierarchy */
00339 SWIGRUNTIME(swig_type_info *) 
00340 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
00341   swig_type_info *lastty = ty;
00342   if (!ty || !ty->dcast) return ty;
00343   while (ty && (ty->dcast)) {
00344     ty = (*ty->dcast)(ptr);
00345     if (ty) lastty = ty;
00346   }
00347   return lastty;
00348 }
00349 
00350 /* Return the name associated with this type */
00351 SWIGRUNTIME(const char *)
00352 SWIG_TypeName(const swig_type_info *ty) {
00353   return ty->name;
00354 }
00355 
00356 /* Search for a swig_type_info structure */
00357 SWIGRUNTIME(swig_type_info *)
00358 SWIG_TypeQuery(const char *name) {
00359   swig_type_info *ty = swig_type_list;
00360   while (ty) {
00361     if (ty->str && (strcmp(name,ty->str) == 0)) return ty;
00362     if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
00363     ty = ty->prev;
00364   }
00365   return 0;
00366 }
00367 
00368 /* Set the clientdata field for a type */
00369 SWIGRUNTIME(void)
00370 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
00371   swig_type_info *tc, *equiv;
00372   if (ti->clientdata == clientdata) return;
00373   ti->clientdata = clientdata;
00374   equiv = ti->next;
00375   while (equiv) {
00376     if (!equiv->converter) {
00377       tc = swig_type_list;
00378       while (tc) {
00379         if ((strcmp(tc->name, equiv->name) == 0))
00380           SWIG_TypeClientData(tc,clientdata);
00381         tc = tc->prev;
00382       }
00383     }
00384     equiv = equiv->next;
00385   }
00386 }
00387 
00388 /* Pack binary data into a string */
00389 SWIGRUNTIME(char *)
00390 SWIG_PackData(char *c, void *ptr, int sz) {
00391   static char hex[17] = "0123456789abcdef";
00392   int i;
00393   unsigned char *u = (unsigned char *) ptr;
00394   register unsigned char uu;
00395   for (i = 0; i < sz; i++,u++) {
00396     uu = *u;
00397     *(c++) = hex[(uu & 0xf0) >> 4];
00398     *(c++) = hex[uu & 0xf];
00399   }
00400   return c;
00401 }
00402 
00403 /* Unpack binary data from a string */
00404 SWIGRUNTIME(char *)
00405 SWIG_UnpackData(char *c, void *ptr, int sz) {
00406   register unsigned char uu = 0;
00407   register int d;
00408   unsigned char *u = (unsigned char *) ptr;
00409   int i;
00410   for (i = 0; i < sz; i++, u++) {
00411     d = *(c++);
00412     if ((d >= '0') && (d <= '9'))
00413       uu = ((d - '0') << 4);
00414     else if ((d >= 'a') && (d <= 'f'))
00415       uu = ((d - ('a'-10)) << 4);
00416     d = *(c++);
00417     if ((d >= '0') && (d <= '9'))
00418       uu |= (d - '0');
00419     else if ((d >= 'a') && (d <= 'f'))
00420       uu |= (d - ('a'-10));
00421     *u = uu;
00422   }
00423   return c;
00424 }
00425 
00426 #endif
00427 
00428 #ifdef __cplusplus
00429 }
00430 #endif
00431 
00432 /* rubydef.swg */
00433 #ifdef __cplusplus
00434 extern "C" {
00435 #endif
00436 
00437 static VALUE _mSWIG = Qnil;
00438 static VALUE _cSWIG_Pointer = Qnil;
00439 
00440 /* Initialize Ruby runtime support */
00441 SWIGRUNTIME(void)
00442 SWIG_Ruby_InitRuntime(void)
00443 {
00444     if (_mSWIG == Qnil) {
00445         _mSWIG = rb_define_module("SWIG");
00446     }
00447 }
00448 
00449 /* Define Ruby class for C type */
00450 SWIGRUNTIME(void)
00451 SWIG_Ruby_define_class(swig_type_info *type)
00452 {
00453     VALUE klass;
00454     char *klass_name = (char *) malloc(4 + strlen(type->name) + 1);
00455     sprintf(klass_name, "TYPE%s", type->name);
00456     if (NIL_P(_cSWIG_Pointer)) {
00457     _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject);
00458     rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new");
00459     }
00460     klass = rb_define_class_under(_mSWIG, klass_name, _cSWIG_Pointer);
00461     free((void *) klass_name);
00462 }
00463 
00464 /* Create a new pointer object */
00465 SWIGRUNTIME(VALUE)
00466 SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int own)
00467 {
00468     char *klass_name;
00469     swig_class *sklass;
00470     VALUE klass;
00471     VALUE obj;
00472     
00473     if (!ptr)
00474     return Qnil;
00475     
00476     if (type->clientdata) {
00477       sklass = (swig_class *) type->clientdata;
00478       obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark), (own ? VOIDFUNC(sklass->destroy) : 0), ptr);
00479     } else {
00480       klass_name = (char *) malloc(4 + strlen(type->name) + 1);
00481       sprintf(klass_name, "TYPE%s", type->name);
00482       klass = rb_const_get(_mSWIG, rb_intern(klass_name));
00483       free((void *) klass_name);
00484       obj = Data_Wrap_Struct(klass, 0, 0, ptr);
00485     }
00486     rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name));
00487     return obj;
00488 }
00489 
00490 /* Create a new class instance (always owned) */
00491 SWIGRUNTIME(VALUE)
00492 SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type)
00493 {
00494     VALUE obj;
00495     swig_class *sklass = (swig_class *) type->clientdata;
00496     obj = Data_Wrap_Struct(klass, VOIDFUNC(sklass->mark), VOIDFUNC(sklass->destroy), 0);
00497     rb_iv_set(obj, "__swigtype__", rb_str_new2(type->name));
00498     return obj;
00499 }
00500 
00501 /* Get type mangle from class name */
00502 SWIGRUNTIME(char *)
00503 SWIG_Ruby_MangleStr(VALUE obj)
00504 {
00505   VALUE stype = rb_iv_get(obj, "__swigtype__");
00506   return StringValuePtr(stype);
00507 }
00508 
00509 /* Convert a pointer value */
00510 SWIGRUNTIME(int)
00511 SWIG_Ruby_ConvertPtr(VALUE obj, void **ptr, swig_type_info *ty, int flags)
00512 {
00513   char *c;
00514   swig_type_info *tc;
00515 
00516   /* Grab the pointer */
00517   if (NIL_P(obj)) {
00518     *ptr = 0;
00519     return 0;
00520   } else {
00521     Data_Get_Struct(obj, void, *ptr);
00522   }
00523   
00524   /* Do type-checking if type info was provided */
00525   if (ty) {
00526     if (ty->clientdata) {
00527         if (rb_obj_is_kind_of(obj, ((swig_class *) (ty->clientdata))->klass)) {
00528           if (*ptr == 0)
00529             rb_raise(rb_eRuntimeError, "This %s already released", ty->str);
00530           return 0;
00531         }
00532     }
00533     if ((c = SWIG_MangleStr(obj)) == NULL) {
00534       if (flags & SWIG_POINTER_EXCEPTION)
00535         rb_raise(rb_eTypeError, "Expected %s", ty->str);
00536       else
00537         return -1;
00538     }
00539     tc = SWIG_TypeCheck(c, ty);
00540     if (!tc) {
00541       if (flags & SWIG_POINTER_EXCEPTION)
00542         rb_raise(rb_eTypeError, "Expected %s", ty->str);
00543       else
00544         return -1;
00545     }
00546     *ptr = SWIG_TypeCast(tc, *ptr);
00547   }
00548   return 0;
00549 }
00550 
00551 /* Convert a pointer value, signal an exception on a type mismatch */
00552 SWIGRUNTIME(void *)
00553 SWIG_Ruby_MustGetPtr(VALUE obj, swig_type_info *ty, int argnum, int flags)
00554 {
00555   void *result;
00556   SWIG_ConvertPtr(obj, &result, ty, flags | SWIG_POINTER_EXCEPTION);
00557   return result;
00558 }
00559 
00560 /* Check convert */
00561 SWIGRUNTIME(int)
00562 SWIG_Ruby_CheckConvert(VALUE obj, swig_type_info *ty)
00563 {
00564   char *c = SWIG_MangleStr(obj);
00565   if (!c)
00566     return 0;
00567   return SWIG_TypeCheck(c,ty) != 0;
00568 }
00569 
00570 SWIGRUNTIME(VALUE)
00571 SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
00572   char result[1024];
00573   char *r = result;
00574   if ((2*sz + 1 + strlen(type->name)) > 1000) return 0;
00575   *(r++) = '_';
00576   r = SWIG_PackData(r, ptr, sz);
00577   strcpy(r, type->name);
00578   return rb_str_new2(result);
00579 }
00580 
00581 /* Convert a packed value value */
00582 SWIGRUNTIME(void)
00583 SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty, int flags) {
00584   swig_type_info *tc;
00585   char  *c;
00586 
00587   if (TYPE(obj) != T_STRING) goto type_error;
00588   c = StringValuePtr(obj);
00589   /* Pointer values must start with leading underscore */
00590   if (*c != '_') goto type_error;
00591   c++;
00592   c = SWIG_UnpackData(c, ptr, sz);
00593   if (ty) {
00594     tc = SWIG_TypeCheck(c, ty);
00595     if (!tc) goto type_error;
00596   }
00597   return;
00598 
00599 type_error:
00600 
00601   if (flags) {
00602     if (ty) {
00603       rb_raise(rb_eTypeError, "Type error. Expected %s", ty->name);
00604     } else {
00605       rb_raise(rb_eTypeError, "Expected a pointer");
00606     }
00607   }
00608 }
00609 
00610 #ifdef __cplusplus
00611 }
00612 #endif
00613 
00614 
00615 
00616 /* -------- TYPES TABLE (BEGIN) -------- */
00617 
00618 #define  SWIGTYPE_p_GrayscaleMap swig_types[0] 
00619 #define  SWIGTYPE_p_Cell swig_types[1] 
00620 #define  SWIGTYPE_p_ControlPoint swig_types[2] 
00621 #define  SWIGTYPE_p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t swig_types[3] 
00622 #define  SWIGTYPE_p_BoundaryFace swig_types[4] 
00623 #define  SWIGTYPE_p_Color swig_types[5] 
00624 #define  SWIGTYPE_p_Pump swig_types[6] 
00625 #define  SWIGTYPE_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t swig_types[7] 
00626 #define  SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t swig_types[8] 
00627 #define  SWIGTYPE_p_SlitCavity swig_types[9] 
00628 #define  SWIGTYPE_p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t swig_types[10] 
00629 #define  SWIGTYPE_p_BezierVertex swig_types[11] 
00630 #define  SWIGTYPE_p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t swig_types[12] 
00631 #define  SWIGTYPE_p_Simulation swig_types[13] 
00632 #define  SWIGTYPE_p_Visualization swig_types[14] 
00633 #define  SWIGTYPE_p_PSCoord swig_types[15] 
00634 #define  SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t swig_types[16] 
00635 #define  SWIGTYPE_p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t swig_types[17] 
00636 #define  SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t swig_types[18] 
00637 #define  SWIGTYPE_p_FaceCell swig_types[19] 
00638 #define  SWIGTYPE_p_MeshConstructor swig_types[20] 
00639 #define  SWIGTYPE_p_Point2D swig_types[21] 
00640 #define  SWIGTYPE_p_p_void swig_types[22] 
00641 #define  SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t swig_types[23] 
00642 #define  SWIGTYPE_p_double swig_types[24] 
00643 #define  SWIGTYPE_p_p_double swig_types[25] 
00644 #define  SWIGTYPE_p_int swig_types[26] 
00645 #define  SWIGTYPE_p_MeshInput swig_types[27] 
00646 #define  SWIGTYPE_p_VertexCell swig_types[28] 
00647 #define  SWIGTYPE_p_dequeTBezierTriangle_p_t swig_types[29] 
00648 #define  SWIGTYPE_p_listTBezierTriangle_p_t swig_types[30] 
00649 #define  SWIGTYPE_p_vectorTBezierTriangle_p_t swig_types[31] 
00650 #define  SWIGTYPE_p_LinearData swig_types[32] 
00651 #define  SWIGTYPE_p_EdgeCell swig_types[33] 
00652 #define  SWIGTYPE_p_p_BezierEdge swig_types[34] 
00653 #define  SWIGTYPE_p_BezierEdge swig_types[35] 
00654 #define  SWIGTYPE_p_DataPoint swig_types[36] 
00655 #define  SWIGTYPE_p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t swig_types[37] 
00656 #define  SWIGTYPE_p_vectorTdouble_t swig_types[38] 
00657 #define  SWIGTYPE_p_Matrix5 swig_types[39] 
00658 #define  SWIGTYPE_p_TimeKeeper swig_types[40] 
00659 #define  SWIGTYPE_p_QBSpline swig_types[41] 
00660 #define  SWIGTYPE_p_ColorMap swig_types[42] 
00661 #define  SWIGTYPE_p_MeshOutput swig_types[43] 
00662 #define  SWIGTYPE_p_dequeTBoundaryFace_p_t swig_types[44] 
00663 #define  SWIGTYPE_p_listTBoundaryFace_p_t swig_types[45] 
00664 #define  SWIGTYPE_p_vectorTBoundaryFace_p_t swig_types[46] 
00665 #define  SWIGTYPE_p_BezierMesh swig_types[47] 
00666 #define  SWIGTYPE_p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t swig_types[48] 
00667 #define  SWIGTYPE_p_p_BoundaryEdge swig_types[49] 
00668 #define  SWIGTYPE_p_BoundaryEdge swig_types[50] 
00669 #define  SWIGTYPE_p_BezierTuple swig_types[51] 
00670 #define  SWIGTYPE_p_listTBoundaryVertex_p_t swig_types[52] 
00671 #define  SWIGTYPE_p_vectorTBoundaryVertex_p_t swig_types[53] 
00672 #define  SWIGTYPE_p_listTBezierVertex_p_t swig_types[54] 
00673 #define  SWIGTYPE_p_vectorTBezierVertex_p_t swig_types[55] 
00674 #define  SWIGTYPE_p_vectorTPoint2D_t swig_types[56] 
00675 #define  SWIGTYPE_p_listTPoint2D_t swig_types[57] 
00676 #define  SWIGTYPE_p_BoundaryVertex swig_types[58] 
00677 #define  SWIGTYPE_p_PSDrawMode swig_types[59] 
00678 #define  SWIGTYPE_p_Matrix swig_types[60] 
00679 #define  SWIGTYPE_p_BoundaryMesh swig_types[61] 
00680 #define  SWIGTYPE_p_EPSWrite swig_types[62] 
00681 #define  SWIGTYPE_p_float swig_types[63] 
00682 #define  SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t swig_types[64] 
00683 #define  SWIGTYPE_p_listTLinearData_t swig_types[65] 
00684 #define  SWIGTYPE_p_dequeTBoundaryEdge_p_t swig_types[66] 
00685 #define  SWIGTYPE_p_listTBoundaryEdge_p_t swig_types[67] 
00686 #define  SWIGTYPE_p_vectorTBoundaryEdge_p_t swig_types[68] 
00687 #define  SWIGTYPE_p_dequeTBezierEdge_p_t swig_types[69] 
00688 #define  SWIGTYPE_p_listTBezierEdge_p_t swig_types[70] 
00689 #define  SWIGTYPE_p_vectorTBezierEdge_p_t swig_types[71] 
00690 #define  SWIGTYPE_p_p_BezierTriangle swig_types[72] 
00691 #define  SWIGTYPE_p_CurvedTriangle swig_types[73] 
00692 #define  SWIGTYPE_p_BezierTriangle swig_types[74] 
00693 #define  SWIGTYPE_p_GhostTriangle swig_types[75] 
00694 #define  SWIGTYPE_p_BoundaryTuple swig_types[76] 
00695 static swig_type_info *swig_types[78];
00696 
00697 /* -------- TYPES TABLE (END) -------- */
00698 
00699 #define SWIG_init    Init_Tumble
00700 #define SWIG_name    "Tumble"
00701 
00702 static VALUE mTumble;
00703 
00704 #include "inc/globals.h"
00705 #include "inc/util.h"
00706 #include <ext/hash_set>
00707 #include <ext/hash_map>
00708 #include "inc/cell.h"
00709 #include "inc/beziermesh.h"
00710 #include "inc/boundarymesh.h"
00711 #include "inc/spline.h"
00712 #include "inc/meshio.h"
00713 #include "inc/simulation.h"
00714 #include "inc/visualization.h"
00715 #include "inc/color.h"
00716 #include "inc/epswrite.h"
00717 #include "inc/meshconstructor.h"
00718 #include "inc/pump.h"
00719 #include "inc/slitcavity.h"
00720 
00721 
00722 #ifdef __cplusplus
00723 extern "C" {
00724 #endif
00725 #ifdef HAVE_SYS_TIME_H
00726 # include <sys/time.h>
00727 struct timeval rb_time_timeval(VALUE);
00728 #endif
00729 #ifdef __cplusplus
00730 }
00731 #endif
00732 
00733 
00734 #ifdef __cplusplus
00735 extern "C" {
00736 #endif
00737 #include "rubyio.h"
00738 #ifdef __cplusplus
00739 }
00740 #endif
00741 
00742 extern double const ALPHA[7];
00743 extern double const BETA[7];
00744 extern double const WEIGHT[7];
00745 extern double const PI;
00746 extern double const TWOPI;
00747 extern double const HALFPI;
00748 
00749 swig_class cPoint2D;
00750 static void free_Point2D(Point2D *);
00751 
00752 swig_class cLinearData;
00753 static void free_LinearData(LinearData *);
00754 
00755 swig_class cMatrix;
00756 static void free_Matrix(Matrix *);
00757 
00758 swig_class cMatrix5;
00759 static void free_Matrix5(Matrix5 *);
00760 
00761 swig_class cCell;
00762 static void free_Cell(Cell *);
00763 
00764 swig_class cVertexCell;
00765 static void free_VertexCell(VertexCell *);
00766 
00767 swig_class cEdgeCell;
00768 static void free_EdgeCell(EdgeCell *);
00769 
00770 swig_class cFaceCell;
00771 static void free_FaceCell(FaceCell *);
00772 
00773 swig_class cBoundaryVertex;
00774 static void free_BoundaryVertex(BoundaryVertex *);
00775 
00776 swig_class cBoundaryEdge;
00777 static void free_BoundaryEdge(BoundaryEdge *);
00778 
00779 swig_class cBoundaryFace;
00780 static void free_BoundaryFace(BoundaryFace *);
00781 
00782 swig_class cBezierVertex;
00783 static void free_BezierVertex(BezierVertex *);
00784 
00785 swig_class cBezierEdge;
00786 static void free_BezierEdge(BezierEdge *);
00787 extern double const newton_optimal_tolerance;
00788 extern double const newton_zero_tolerance;
00789 extern double const newton_tolerance;
00790 extern unsigned int const newton_iterations;
00791 
00792 swig_class cCurvedTriangle;
00793 static void free_CurvedTriangle(CurvedTriangle *);
00794 
00795 swig_class cBezierTriangle;
00796 static void free_BezierTriangle(BezierTriangle *);
00797 
00798 swig_class cGhostTriangle;
00799 static void free_GhostTriangle(GhostTriangle *);
00800 
00801 swig_class cBezierTuple;
00802 static void free_CellTuplelBezierVertexcBezierEdgecBezierTriangle_g___(CellTuple<BezierVertex,BezierEdge,BezierTriangle > *);
00803 
00804 swig_class cBoundaryTuple;
00805 static void free_CellTuplelBoundaryVertexcBoundaryEdgecBoundaryFace_g___(CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *);
00806 
00807 swig_class cQBSpline;
00808 static void free_QBSpline(QBSpline *);
00809 
00810 swig_class cBezierComplex;
00811 static void free_CellComplexlBezierVertexcBezierEdgecBezierTrianglecBezierTuple_g___(CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *);
00812 
00813 swig_class cBoundaryComplex;
00814 static void free_CellComplexlBoundaryVertexcBoundaryEdgecBoundaryFacecBoundaryTuple_g___(CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *);
00815 
00816 swig_class cBoundaryMesh;
00817 static void free_BoundaryMesh(BoundaryMesh *);
00818 
00819 swig_class cBezierMesh;
00820 static void free_BezierMesh(BezierMesh *);
00821 
00822 swig_class cMeshInput;
00823 static void free_MeshInput(MeshInput *);
00824 
00825 swig_class cMeshOutput;
00826 static void free_MeshOutput(MeshOutput *);
00827 
00828 swig_class cSimulation;
00829 static void free_Simulation(Simulation *);
00830 
00831 swig_class cVisualization;
00832 static void free_Visualization(Visualization *);
00833 
00834 swig_class cColor;
00835 static void free_Color(Color *);
00836 
00837 swig_class cPSCoord;
00838 static void free_PSCoord(PSCoord *);
00839 
00840 swig_class cPSDrawMode;
00841 static void free_PSDrawMode(PSDrawMode *);
00842 
00843 swig_class cEPSWrite;
00844 static void free_EPSWrite(EPSWrite *);
00845 
00846 swig_class cMeshConstructor;
00847 static void free_MeshConstructor(MeshConstructor *);
00848 
00849 swig_class cPump;
00850 static void free_Pump(Pump *);
00851 
00852 swig_class cSlitCavity;
00853 static void free_SlitCavity(SlitCavity *);
00854 static VALUE
00855 ALPHA_get(VALUE self) {
00856     VALUE _val;
00857     
00858     _val = SWIG_NewPointerObj((void *) ALPHA, SWIGTYPE_p_double,0);    return _val;
00859 }
00860 
00861 
00862 static VALUE
00863 BETA_get(VALUE self) {
00864     VALUE _val;
00865     
00866     _val = SWIG_NewPointerObj((void *) BETA, SWIGTYPE_p_double,0);    return _val;
00867 }
00868 
00869 
00870 static VALUE
00871 WEIGHT_get(VALUE self) {
00872     VALUE _val;
00873     
00874     _val = SWIG_NewPointerObj((void *) WEIGHT, SWIGTYPE_p_double,0);    return _val;
00875 }
00876 
00877 
00878 static VALUE
00879 PI_get(VALUE self) {
00880     VALUE _val;
00881     
00882     _val = rb_float_new(PI);    return _val;
00883 }
00884 
00885 
00886 static VALUE
00887 TWOPI_get(VALUE self) {
00888     VALUE _val;
00889     
00890     _val = rb_float_new(TWOPI);    return _val;
00891 }
00892 
00893 
00894 static VALUE
00895 HALFPI_get(VALUE self) {
00896     VALUE _val;
00897     
00898     _val = rb_float_new(HALFPI);    return _val;
00899 }
00900 
00901 
00902 static VALUE
00903 _wrap_Point2D_coords_set(int argc, VALUE *argv, VALUE self) {
00904     Point2D *arg1 = (Point2D *) 0 ;
00905     double *arg2 ;
00906     
00907     if ((argc < 1) || (argc > 1))
00908     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
00909     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
00910     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
00911     {
00912         int ii;
00913         double *b = (double *) arg1->coords;
00914         for (ii = 0; ii < 2; ii++) b[ii] = *((double *) arg2 + ii);
00915     }
00916     return Qnil;
00917 }
00918 
00919 
00920 static VALUE
00921 _wrap_Point2D_coords_get(int argc, VALUE *argv, VALUE self) {
00922     Point2D *arg1 = (Point2D *) 0 ;
00923     double *result;
00924     VALUE vresult = Qnil;
00925     
00926     if ((argc < 0) || (argc > 0))
00927     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
00928     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
00929     result = (double *)(double *) ((arg1)->coords);
00930     
00931     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
00932     return vresult;
00933 }
00934 
00935 
00936 static VALUE
00937 _wrap_new_Point2D__SWIG_0(int argc, VALUE *argv, VALUE self) {
00938     Point2D *result;
00939     
00940     if ((argc < 0) || (argc > 0))
00941     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
00942     result = (Point2D *)new Point2D();
00943     DATA_PTR(self) = result;
00944     return self;
00945 }
00946 
00947 
00948 static VALUE
00949 _wrap_new_Point2D__SWIG_1(int argc, VALUE *argv, VALUE self) {
00950     double arg1 ;
00951     double arg2 ;
00952     Point2D *result;
00953     
00954     if ((argc < 2) || (argc > 2))
00955     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
00956     arg1 = (double) NUM2DBL(argv[0]);
00957     arg2 = (double) NUM2DBL(argv[1]);
00958     result = (Point2D *)new Point2D(arg1,arg2);
00959     DATA_PTR(self) = result;
00960     return self;
00961 }
00962 
00963 
00964 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
00965 static VALUE
00966 _wrap_Point2D_allocate(VALUE self) {
00967 #else
00968     static VALUE
00969     _wrap_Point2D_allocate(int argc, VALUE *argv, VALUE self) {
00970 #endif
00971         
00972         
00973         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Point2D);
00974 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
00975         rb_obj_call_init(vresult, argc, argv);
00976 #endif
00977         return vresult;
00978     }
00979     
00980 
00981 static VALUE
00982 _wrap_new_Point2D__SWIG_2(int argc, VALUE *argv, VALUE self) {
00983     Point2D *arg1 = 0 ;
00984     Point2D *result;
00985     
00986     if ((argc < 1) || (argc > 1))
00987     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
00988     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_Point2D, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
00989     result = (Point2D *)new Point2D((Point2D const &)*arg1);
00990     DATA_PTR(self) = result;
00991     return self;
00992 }
00993 
00994 
00995 static VALUE _wrap_new_Point2D(int nargs, VALUE *args, VALUE self) {
00996     int argc;
00997     VALUE argv[2];
00998     int ii;
00999     
01000     argc = nargs;
01001     for (ii = 0; (ii < argc) && (ii < 2); ii++) {
01002         argv[ii] = args[ii];
01003     }
01004     if (argc == 0) {
01005         return _wrap_new_Point2D__SWIG_0(nargs, args, self);
01006     }
01007     if (argc == 1) {
01008         int _v;
01009         {
01010             void *ptr;
01011             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
01012         }
01013         if (_v) {
01014             return _wrap_new_Point2D__SWIG_2(nargs, args, self);
01015         }
01016     }
01017     if (argc == 2) {
01018         int _v;
01019         {
01020             _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0;
01021         }
01022         if (_v) {
01023             {
01024                 _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
01025             }
01026             if (_v) {
01027                 return _wrap_new_Point2D__SWIG_1(nargs, args, self);
01028             }
01029         }
01030     }
01031     
01032     rb_raise(rb_eArgError, "No matching function for overloaded 'new_Point2D'");
01033     return Qnil;
01034 }
01035 
01036 
01037 static VALUE
01038 _wrap_Point2D_assign(int argc, VALUE *argv, VALUE self) {
01039     Point2D *arg1 = (Point2D *) 0 ;
01040     double arg2 ;
01041     double arg3 ;
01042     
01043     if ((argc < 2) || (argc > 2))
01044     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01045     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01046     arg2 = (double) NUM2DBL(argv[0]);
01047     arg3 = (double) NUM2DBL(argv[1]);
01048     (arg1)->assign(arg2,arg3);
01049     
01050     return Qnil;
01051 }
01052 
01053 
01054 static VALUE
01055 _wrap_Point2D_at(int argc, VALUE *argv, VALUE self) {
01056     Point2D *arg1 = (Point2D *) 0 ;
01057     int arg2 ;
01058     double result;
01059     VALUE vresult = Qnil;
01060     
01061     if ((argc < 1) || (argc > 1))
01062     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01063     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01064     arg2 = NUM2INT(argv[0]);
01065     result = (double)((Point2D const *)arg1)->operator [](arg2);
01066     
01067     vresult = rb_float_new(result);
01068     return vresult;
01069 }
01070 
01071 
01072 static VALUE
01073 _wrap_Point2D_x(int argc, VALUE *argv, VALUE self) {
01074     Point2D *arg1 = (Point2D *) 0 ;
01075     double result;
01076     VALUE vresult = Qnil;
01077     
01078     if ((argc < 0) || (argc > 0))
01079     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01080     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01081     result = (double)((Point2D const *)arg1)->x();
01082     
01083     vresult = rb_float_new(result);
01084     return vresult;
01085 }
01086 
01087 
01088 static VALUE
01089 _wrap_Point2D_y(int argc, VALUE *argv, VALUE self) {
01090     Point2D *arg1 = (Point2D *) 0 ;
01091     double result;
01092     VALUE vresult = Qnil;
01093     
01094     if ((argc < 0) || (argc > 0))
01095     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01096     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01097     result = (double)((Point2D const *)arg1)->y();
01098     
01099     vresult = rb_float_new(result);
01100     return vresult;
01101 }
01102 
01103 
01104 static VALUE
01105 _wrap_Point2D___eq__(int argc, VALUE *argv, VALUE self) {
01106     Point2D *arg1 = (Point2D *) 0 ;
01107     Point2D *arg2 = 0 ;
01108     bool result;
01109     VALUE vresult = Qnil;
01110     
01111     if ((argc < 1) || (argc > 1))
01112     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01113     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01114     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01115     result = (bool)((Point2D const *)arg1)->operator ==((Point2D const &)*arg2);
01116     
01117     vresult = result ? Qtrue : Qfalse;
01118     return vresult;
01119 }
01120 
01121 
01122 static VALUE
01123 _wrap_Point2D___lt__(int argc, VALUE *argv, VALUE self) {
01124     Point2D *arg1 = (Point2D *) 0 ;
01125     Point2D *arg2 = 0 ;
01126     bool result;
01127     VALUE vresult = Qnil;
01128     
01129     if ((argc < 1) || (argc > 1))
01130     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01131     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01132     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01133     result = (bool)((Point2D const *)arg1)->operator <((Point2D const &)*arg2);
01134     
01135     vresult = result ? Qtrue : Qfalse;
01136     return vresult;
01137 }
01138 
01139 
01140 static VALUE
01141 _wrap_Point2D___le__(int argc, VALUE *argv, VALUE self) {
01142     Point2D *arg1 = (Point2D *) 0 ;
01143     Point2D *arg2 = 0 ;
01144     bool result;
01145     VALUE vresult = Qnil;
01146     
01147     if ((argc < 1) || (argc > 1))
01148     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01149     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01150     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01151     result = (bool)((Point2D const *)arg1)->operator <=((Point2D const &)*arg2);
01152     
01153     vresult = result ? Qtrue : Qfalse;
01154     return vresult;
01155 }
01156 
01157 
01158 static VALUE
01159 _wrap_Point2D___gt__(int argc, VALUE *argv, VALUE self) {
01160     Point2D *arg1 = (Point2D *) 0 ;
01161     Point2D *arg2 = 0 ;
01162     bool result;
01163     VALUE vresult = Qnil;
01164     
01165     if ((argc < 1) || (argc > 1))
01166     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01167     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01168     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01169     result = (bool)((Point2D const *)arg1)->operator >((Point2D const &)*arg2);
01170     
01171     vresult = result ? Qtrue : Qfalse;
01172     return vresult;
01173 }
01174 
01175 
01176 static VALUE
01177 _wrap_Point2D___ge__(int argc, VALUE *argv, VALUE self) {
01178     Point2D *arg1 = (Point2D *) 0 ;
01179     Point2D *arg2 = 0 ;
01180     bool result;
01181     VALUE vresult = Qnil;
01182     
01183     if ((argc < 1) || (argc > 1))
01184     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01185     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01186     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01187     result = (bool)((Point2D const *)arg1)->operator >=((Point2D const &)*arg2);
01188     
01189     vresult = result ? Qtrue : Qfalse;
01190     return vresult;
01191 }
01192 
01193 
01194 static VALUE
01195 _wrap_Point2D___add__(int argc, VALUE *argv, VALUE self) {
01196     Point2D *arg1 = (Point2D *) 0 ;
01197     Point2D *arg2 = 0 ;
01198     Point2D result;
01199     VALUE vresult = Qnil;
01200     
01201     if ((argc < 1) || (argc > 1))
01202     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01203     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01204     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01205     result = ((Point2D const *)arg1)->operator +((Point2D const &)*arg2);
01206     
01207     {
01208         Point2D * resultptr;
01209         resultptr = new Point2D((Point2D &)result);
01210         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
01211     }
01212     return vresult;
01213 }
01214 
01215 
01216 static VALUE
01217 _wrap_Point2D___sub__(int argc, VALUE *argv, VALUE self) {
01218     Point2D *arg1 = (Point2D *) 0 ;
01219     Point2D *arg2 = 0 ;
01220     Point2D result;
01221     VALUE vresult = Qnil;
01222     
01223     if ((argc < 1) || (argc > 1))
01224     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01225     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01226     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01227     result = ((Point2D const *)arg1)->operator -((Point2D const &)*arg2);
01228     
01229     {
01230         Point2D * resultptr;
01231         resultptr = new Point2D((Point2D &)result);
01232         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
01233     }
01234     return vresult;
01235 }
01236 
01237 
01238 static VALUE
01239 _wrap_Point2D___mul__(int argc, VALUE *argv, VALUE self) {
01240     Point2D *arg1 = (Point2D *) 0 ;
01241     double arg2 ;
01242     Point2D result;
01243     VALUE vresult = Qnil;
01244     
01245     if ((argc < 1) || (argc > 1))
01246     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01247     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01248     arg2 = (double) NUM2DBL(argv[0]);
01249     result = ((Point2D const *)arg1)->operator *(arg2);
01250     
01251     {
01252         Point2D * resultptr;
01253         resultptr = new Point2D((Point2D &)result);
01254         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
01255     }
01256     return vresult;
01257 }
01258 
01259 
01260 static VALUE
01261 _wrap_Point2D___div__(int argc, VALUE *argv, VALUE self) {
01262     Point2D *arg1 = (Point2D *) 0 ;
01263     double arg2 ;
01264     Point2D result;
01265     VALUE vresult = Qnil;
01266     
01267     if ((argc < 1) || (argc > 1))
01268     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01269     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01270     arg2 = (double) NUM2DBL(argv[0]);
01271     result = ((Point2D const *)arg1)->operator /(arg2);
01272     
01273     {
01274         Point2D * resultptr;
01275         resultptr = new Point2D((Point2D &)result);
01276         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
01277     }
01278     return vresult;
01279 }
01280 
01281 
01282 static VALUE
01283 _wrap_Point2D_dot(int argc, VALUE *argv, VALUE self) {
01284     Point2D *arg1 = (Point2D *) 0 ;
01285     Point2D *arg2 = 0 ;
01286     double result;
01287     VALUE vresult = Qnil;
01288     
01289     if ((argc < 1) || (argc > 1))
01290     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01291     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01292     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01293     result = (double)((Point2D const *)arg1)->dot((Point2D const &)*arg2);
01294     
01295     vresult = rb_float_new(result);
01296     return vresult;
01297 }
01298 
01299 
01300 static VALUE
01301 _wrap_Point2D_magsq(int argc, VALUE *argv, VALUE self) {
01302     Point2D *arg1 = (Point2D *) 0 ;
01303     double result;
01304     VALUE vresult = Qnil;
01305     
01306     if ((argc < 0) || (argc > 0))
01307     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01308     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01309     result = (double)((Point2D const *)arg1)->magsq();
01310     
01311     vresult = rb_float_new(result);
01312     return vresult;
01313 }
01314 
01315 
01316 static VALUE
01317 _wrap_Point2D_mag(int argc, VALUE *argv, VALUE self) {
01318     Point2D *arg1 = (Point2D *) 0 ;
01319     double result;
01320     VALUE vresult = Qnil;
01321     
01322     if ((argc < 0) || (argc > 0))
01323     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01324     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01325     result = (double)((Point2D const *)arg1)->mag();
01326     
01327     vresult = rb_float_new(result);
01328     return vresult;
01329 }
01330 
01331 
01332 static VALUE
01333 _wrap_Point2D_cross(int argc, VALUE *argv, VALUE self) {
01334     Point2D *arg1 = (Point2D *) 0 ;
01335     Point2D *arg2 = 0 ;
01336     double result;
01337     VALUE vresult = Qnil;
01338     
01339     if ((argc < 1) || (argc > 1))
01340     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01341     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01342     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01343     result = (double)((Point2D const *)arg1)->cross((Point2D const &)*arg2);
01344     
01345     vresult = rb_float_new(result);
01346     return vresult;
01347 }
01348 
01349 
01350 static VALUE
01351 _wrap_Point2D_is_left_of(int argc, VALUE *argv, VALUE self) {
01352     Point2D *arg1 = (Point2D *) 0 ;
01353     Point2D *arg2 = 0 ;
01354     Point2D *arg3 = 0 ;
01355     bool result;
01356     VALUE vresult = Qnil;
01357     
01358     if ((argc < 2) || (argc > 2))
01359     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01360     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01361     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01362     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
01363     result = (bool)((Point2D const *)arg1)->is_left_of((Point2D const &)*arg2,(Point2D const &)*arg3);
01364     
01365     vresult = result ? Qtrue : Qfalse;
01366     return vresult;
01367 }
01368 
01369 
01370 static VALUE
01371 _wrap_Point2D_is_right_of(int argc, VALUE *argv, VALUE self) {
01372     Point2D *arg1 = (Point2D *) 0 ;
01373     Point2D *arg2 = 0 ;
01374     Point2D *arg3 = 0 ;
01375     bool result;
01376     VALUE vresult = Qnil;
01377     
01378     if ((argc < 2) || (argc > 2))
01379     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01380     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01381     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01382     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
01383     result = (bool)((Point2D const *)arg1)->is_right_of((Point2D const &)*arg2,(Point2D const &)*arg3);
01384     
01385     vresult = result ? Qtrue : Qfalse;
01386     return vresult;
01387 }
01388 
01389 
01390 static VALUE
01391 _wrap_Point2D_line_side_test(int argc, VALUE *argv, VALUE self) {
01392     Point2D *arg1 = (Point2D *) 0 ;
01393     Point2D *arg2 = 0 ;
01394     Point2D *arg3 = 0 ;
01395     double result;
01396     VALUE vresult = Qnil;
01397     
01398     if ((argc < 2) || (argc > 2))
01399     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01400     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01401     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01402     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
01403     result = (double)((Point2D const *)arg1)->line_side_test((Point2D const &)*arg2,(Point2D const &)*arg3);
01404     
01405     vresult = rb_float_new(result);
01406     return vresult;
01407 }
01408 
01409 
01410 static VALUE
01411 _wrap_Point2D_in_circle_test(int argc, VALUE *argv, VALUE self) {
01412     Point2D *arg1 = (Point2D *) 0 ;
01413     Point2D arg2 ;
01414     Point2D arg3 ;
01415     Point2D arg4 ;
01416     bool result;
01417     VALUE vresult = Qnil;
01418     
01419     if ((argc < 3) || (argc > 3))
01420     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
01421     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01422     {
01423         Point2D * ptr;
01424         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
01425         if (ptr) arg2 = *ptr;
01426     }
01427     {
01428         Point2D * ptr;
01429         SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
01430         if (ptr) arg3 = *ptr;
01431     }
01432     {
01433         Point2D * ptr;
01434         SWIG_ConvertPtr(argv[2], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
01435         if (ptr) arg4 = *ptr;
01436     }
01437     result = (bool)((Point2D const *)arg1)->in_circle_test(arg2,arg3,arg4);
01438     
01439     vresult = result ? Qtrue : Qfalse;
01440     return vresult;
01441 }
01442 
01443 
01444 static VALUE
01445 _wrap_Point2D_dist_from_line(int argc, VALUE *argv, VALUE self) {
01446     Point2D *arg1 = (Point2D *) 0 ;
01447     Point2D *arg2 = 0 ;
01448     Point2D *arg3 = 0 ;
01449     double result;
01450     VALUE vresult = Qnil;
01451     
01452     if ((argc < 2) || (argc > 2))
01453     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01454     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01455     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01456     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
01457     result = (double)((Point2D const *)arg1)->dist_from_line((Point2D const &)*arg2,(Point2D const &)*arg3);
01458     
01459     vresult = rb_float_new(result);
01460     return vresult;
01461 }
01462 
01463 
01464 static VALUE
01465 _wrap_Point2D_print(int argc, VALUE *argv, VALUE self) {
01466     Point2D *arg1 = (Point2D *) 0 ;
01467     
01468     if ((argc < 0) || (argc > 0))
01469     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01470     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Point2D, 1);
01471     (arg1)->print();
01472     
01473     return Qnil;
01474 }
01475 
01476 
01477 static void
01478 free_Point2D(Point2D *arg1) {
01479     delete arg1;
01480 }
01481 static VALUE
01482 _wrap_LinearData_fields_set(int argc, VALUE *argv, VALUE self) {
01483     LinearData *arg1 = (LinearData *) 0 ;
01484     double *arg2 = (double *) 0 ;
01485     
01486     if ((argc < 1) || (argc > 1))
01487     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01488     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01489     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
01490     if (arg1) (arg1)->fields = arg2;
01491     
01492     return Qnil;
01493 }
01494 
01495 
01496 static VALUE
01497 _wrap_LinearData_fields_get(int argc, VALUE *argv, VALUE self) {
01498     LinearData *arg1 = (LinearData *) 0 ;
01499     double *result;
01500     VALUE vresult = Qnil;
01501     
01502     if ((argc < 0) || (argc > 0))
01503     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01504     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01505     result = (double *) ((arg1)->fields);
01506     
01507     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
01508     return vresult;
01509 }
01510 
01511 
01512 static VALUE
01513 _wrap_LinearData_length_set(int argc, VALUE *argv, VALUE self) {
01514     LinearData *arg1 = (LinearData *) 0 ;
01515     int arg2 ;
01516     
01517     if ((argc < 1) || (argc > 1))
01518     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01519     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01520     arg2 = NUM2INT(argv[0]);
01521     if (arg1) (arg1)->length = arg2;
01522     
01523     return Qnil;
01524 }
01525 
01526 
01527 static VALUE
01528 _wrap_LinearData_length_get(int argc, VALUE *argv, VALUE self) {
01529     LinearData *arg1 = (LinearData *) 0 ;
01530     int result;
01531     VALUE vresult = Qnil;
01532     
01533     if ((argc < 0) || (argc > 0))
01534     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01535     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01536     result = (int) ((arg1)->length);
01537     
01538     vresult = INT2NUM(result);
01539     return vresult;
01540 }
01541 
01542 
01543 static VALUE
01544 _wrap_new_LinearData__SWIG_0(int argc, VALUE *argv, VALUE self) {
01545     LinearData *result;
01546     
01547     if ((argc < 0) || (argc > 0))
01548     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01549     result = (LinearData *)new LinearData();
01550     DATA_PTR(self) = result;
01551     return self;
01552 }
01553 
01554 
01555 static VALUE
01556 _wrap_new_LinearData__SWIG_1(int argc, VALUE *argv, VALUE self) {
01557     int arg1 ;
01558     LinearData *result;
01559     
01560     if ((argc < 1) || (argc > 1))
01561     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01562     arg1 = NUM2INT(argv[0]);
01563     result = (LinearData *)new LinearData(arg1);
01564     DATA_PTR(self) = result;
01565     return self;
01566 }
01567 
01568 
01569 static VALUE
01570 _wrap_new_LinearData__SWIG_2(int argc, VALUE *argv, VALUE self) {
01571     double *arg1 = (double *) 0 ;
01572     int arg2 ;
01573     LinearData *result;
01574     
01575     if ((argc < 2) || (argc > 2))
01576     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01577     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_double, 1);
01578     arg2 = NUM2INT(argv[1]);
01579     result = (LinearData *)new LinearData(arg1,arg2);
01580     DATA_PTR(self) = result;
01581     return self;
01582 }
01583 
01584 
01585 static VALUE
01586 _wrap_new_LinearData__SWIG_3(int argc, VALUE *argv, VALUE self) {
01587     vector<double > *arg1 = 0 ;
01588     LinearData *result;
01589     
01590     if ((argc < 1) || (argc > 1))
01591     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01592     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_vectorTdouble_t, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
01593     result = (LinearData *)new LinearData((vector<double > const &)*arg1);
01594     DATA_PTR(self) = result;
01595     return self;
01596 }
01597 
01598 
01599 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
01600 static VALUE
01601 _wrap_LinearData_allocate(VALUE self) {
01602 #else
01603     static VALUE
01604     _wrap_LinearData_allocate(int argc, VALUE *argv, VALUE self) {
01605 #endif
01606         
01607         
01608         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_LinearData);
01609 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
01610         rb_obj_call_init(vresult, argc, argv);
01611 #endif
01612         return vresult;
01613     }
01614     
01615 
01616 static VALUE
01617 _wrap_new_LinearData__SWIG_4(int argc, VALUE *argv, VALUE self) {
01618     LinearData *arg1 = 0 ;
01619     LinearData *result;
01620     
01621     if ((argc < 1) || (argc > 1))
01622     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01623     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_LinearData, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
01624     result = (LinearData *)new LinearData((LinearData const &)*arg1);
01625     DATA_PTR(self) = result;
01626     return self;
01627 }
01628 
01629 
01630 static VALUE _wrap_new_LinearData(int nargs, VALUE *args, VALUE self) {
01631     int argc;
01632     VALUE argv[2];
01633     int ii;
01634     
01635     argc = nargs;
01636     for (ii = 0; (ii < argc) && (ii < 2); ii++) {
01637         argv[ii] = args[ii];
01638     }
01639     if (argc == 0) {
01640         return _wrap_new_LinearData__SWIG_0(nargs, args, self);
01641     }
01642     if (argc == 1) {
01643         int _v;
01644         {
01645             void *ptr;
01646             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_vectorTdouble_t, 0) != -1)) ? 1 : 0;
01647         }
01648         if (_v) {
01649             return _wrap_new_LinearData__SWIG_3(nargs, args, self);
01650         }
01651     }
01652     if (argc == 1) {
01653         int _v;
01654         {
01655             void *ptr;
01656             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
01657         }
01658         if (_v) {
01659             return _wrap_new_LinearData__SWIG_4(nargs, args, self);
01660         }
01661     }
01662     if (argc == 1) {
01663         int _v;
01664         {
01665             _v = ((TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0;
01666         }
01667         if (_v) {
01668             return _wrap_new_LinearData__SWIG_1(nargs, args, self);
01669         }
01670     }
01671     if (argc == 2) {
01672         int _v;
01673         {
01674             void *ptr;
01675             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_double, 0) != -1)) ? 1 : 0;
01676         }
01677         if (_v) {
01678             {
01679                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
01680             }
01681             if (_v) {
01682                 return _wrap_new_LinearData__SWIG_2(nargs, args, self);
01683             }
01684         }
01685     }
01686     
01687     rb_raise(rb_eArgError, "No matching function for overloaded 'new_LinearData'");
01688     return Qnil;
01689 }
01690 
01691 
01692 static void
01693 free_LinearData(LinearData *arg1) {
01694     delete arg1;
01695 }
01696 static VALUE
01697 _wrap_LinearData_update__SWIG_0(int argc, VALUE *argv, VALUE self) {
01698     LinearData *arg1 = (LinearData *) 0 ;
01699     vector<double > *arg2 = 0 ;
01700     int result;
01701     VALUE vresult = Qnil;
01702     
01703     if ((argc < 1) || (argc > 1))
01704     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01705     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01706     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTdouble_t, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01707     result = (int)(arg1)->update((vector<double > const &)*arg2);
01708     
01709     vresult = INT2NUM(result);
01710     return vresult;
01711 }
01712 
01713 
01714 static VALUE
01715 _wrap_LinearData_update__SWIG_1(int argc, VALUE *argv, VALUE self) {
01716     LinearData *arg1 = (LinearData *) 0 ;
01717     double *arg2 = (double *) 0 ;
01718     int arg3 ;
01719     int result;
01720     VALUE vresult = Qnil;
01721     
01722     if ((argc < 2) || (argc > 2))
01723     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01724     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01725     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
01726     arg3 = NUM2INT(argv[1]);
01727     result = (int)(arg1)->update(arg2,arg3);
01728     
01729     vresult = INT2NUM(result);
01730     return vresult;
01731 }
01732 
01733 
01734 static VALUE _wrap_LinearData_update(int nargs, VALUE *args, VALUE self) {
01735     int argc;
01736     VALUE argv[4];
01737     int ii;
01738     
01739     argc = nargs + 1;
01740     argv[0] = self;
01741     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
01742         argv[ii] = args[ii-1];
01743     }
01744     if (argc == 2) {
01745         int _v;
01746         {
01747             void *ptr;
01748             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
01749         }
01750         if (_v) {
01751             {
01752                 void *ptr;
01753                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_vectorTdouble_t, 0) != -1)) ? 1 : 0;
01754             }
01755             if (_v) {
01756                 return _wrap_LinearData_update__SWIG_0(nargs, args, self);
01757             }
01758         }
01759     }
01760     if (argc == 3) {
01761         int _v;
01762         {
01763             void *ptr;
01764             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
01765         }
01766         if (_v) {
01767             {
01768                 void *ptr;
01769                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_double, 0) != -1)) ? 1 : 0;
01770             }
01771             if (_v) {
01772                 {
01773                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
01774                 }
01775                 if (_v) {
01776                     return _wrap_LinearData_update__SWIG_1(nargs, args, self);
01777                 }
01778             }
01779         }
01780     }
01781     
01782     rb_raise(rb_eArgError, "No matching function for overloaded 'LinearData_update'");
01783     return Qnil;
01784 }
01785 
01786 
01787 static VALUE
01788 _wrap_LinearData_zero(int argc, VALUE *argv, VALUE self) {
01789     LinearData *arg1 = (LinearData *) 0 ;
01790     
01791     if ((argc < 0) || (argc > 0))
01792     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01793     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01794     (arg1)->zero();
01795     
01796     return Qnil;
01797 }
01798 
01799 
01800 static VALUE
01801 _wrap_LinearData_set(int argc, VALUE *argv, VALUE self) {
01802     LinearData *arg1 = (LinearData *) 0 ;
01803     double arg2 ;
01804     int arg3 ;
01805     
01806     if ((argc < 2) || (argc > 2))
01807     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
01808     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01809     arg2 = (double) NUM2DBL(argv[0]);
01810     arg3 = NUM2INT(argv[1]);
01811     (arg1)->set(arg2,arg3);
01812     
01813     return Qnil;
01814 }
01815 
01816 
01817 static VALUE
01818 _wrap_LinearData_at(int argc, VALUE *argv, VALUE self) {
01819     LinearData *arg1 = (LinearData *) 0 ;
01820     int arg2 ;
01821     double result;
01822     VALUE vresult = Qnil;
01823     
01824     if ((argc < 1) || (argc > 1))
01825     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01826     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01827     arg2 = NUM2INT(argv[0]);
01828     result = (double)((LinearData const *)arg1)->operator [](arg2);
01829     
01830     vresult = rb_float_new(result);
01831     return vresult;
01832 }
01833 
01834 
01835 static VALUE
01836 _wrap_LinearData_get(int argc, VALUE *argv, VALUE self) {
01837     LinearData *arg1 = (LinearData *) 0 ;
01838     int arg2 ;
01839     double result;
01840     VALUE vresult = Qnil;
01841     
01842     if ((argc < 1) || (argc > 1))
01843     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01844     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01845     arg2 = NUM2INT(argv[0]);
01846     result = (double)((LinearData const *)arg1)->get(arg2);
01847     
01848     vresult = rb_float_new(result);
01849     return vresult;
01850 }
01851 
01852 
01853 static VALUE
01854 _wrap_LinearData___add__(int argc, VALUE *argv, VALUE self) {
01855     LinearData *arg1 = (LinearData *) 0 ;
01856     LinearData *arg2 = 0 ;
01857     LinearData result;
01858     VALUE vresult = Qnil;
01859     
01860     if ((argc < 1) || (argc > 1))
01861     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01862     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01863     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_LinearData, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01864     result = ((LinearData const *)arg1)->operator +((LinearData const &)*arg2);
01865     
01866     {
01867         LinearData * resultptr;
01868         resultptr = new LinearData((LinearData &)result);
01869         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
01870     }
01871     return vresult;
01872 }
01873 
01874 
01875 static VALUE
01876 _wrap_LinearData___sub__(int argc, VALUE *argv, VALUE self) {
01877     LinearData *arg1 = (LinearData *) 0 ;
01878     LinearData *arg2 = 0 ;
01879     LinearData result;
01880     VALUE vresult = Qnil;
01881     
01882     if ((argc < 1) || (argc > 1))
01883     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01884     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01885     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_LinearData, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
01886     result = ((LinearData const *)arg1)->operator -((LinearData const &)*arg2);
01887     
01888     {
01889         LinearData * resultptr;
01890         resultptr = new LinearData((LinearData &)result);
01891         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
01892     }
01893     return vresult;
01894 }
01895 
01896 
01897 static VALUE
01898 _wrap_LinearData___mul__(int argc, VALUE *argv, VALUE self) {
01899     LinearData *arg1 = (LinearData *) 0 ;
01900     double arg2 ;
01901     LinearData result;
01902     VALUE vresult = Qnil;
01903     
01904     if ((argc < 1) || (argc > 1))
01905     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01906     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01907     arg2 = (double) NUM2DBL(argv[0]);
01908     result = ((LinearData const *)arg1)->operator *(arg2);
01909     
01910     {
01911         LinearData * resultptr;
01912         resultptr = new LinearData((LinearData &)result);
01913         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
01914     }
01915     return vresult;
01916 }
01917 
01918 
01919 static VALUE
01920 _wrap_LinearData___div__(int argc, VALUE *argv, VALUE self) {
01921     LinearData *arg1 = (LinearData *) 0 ;
01922     double arg2 ;
01923     LinearData result;
01924     VALUE vresult = Qnil;
01925     
01926     if ((argc < 1) || (argc > 1))
01927     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01928     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01929     arg2 = (double) NUM2DBL(argv[0]);
01930     result = ((LinearData const *)arg1)->operator /(arg2);
01931     
01932     {
01933         LinearData * resultptr;
01934         resultptr = new LinearData((LinearData &)result);
01935         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
01936     }
01937     return vresult;
01938 }
01939 
01940 
01941 static VALUE
01942 _wrap_LinearData_print(int argc, VALUE *argv, VALUE self) {
01943     LinearData *arg1 = (LinearData *) 0 ;
01944     
01945     if ((argc < 0) || (argc > 0))
01946     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01947     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_LinearData, 1);
01948     (arg1)->print();
01949     
01950     return Qnil;
01951 }
01952 
01953 
01954 static VALUE
01955 _wrap_Matrix_m_set(int argc, VALUE *argv, VALUE self) {
01956     Matrix *arg1 = (Matrix *) 0 ;
01957     double **arg2 = (double **) 0 ;
01958     
01959     if ((argc < 1) || (argc > 1))
01960     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01961     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
01962     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_p_double, 1);
01963     if (arg1) (arg1)->m = arg2;
01964     
01965     return Qnil;
01966 }
01967 
01968 
01969 static VALUE
01970 _wrap_Matrix_m_get(int argc, VALUE *argv, VALUE self) {
01971     Matrix *arg1 = (Matrix *) 0 ;
01972     double **result;
01973     VALUE vresult = Qnil;
01974     
01975     if ((argc < 0) || (argc > 0))
01976     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
01977     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
01978     result = (double **) ((arg1)->m);
01979     
01980     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_double,0);
01981     return vresult;
01982 }
01983 
01984 
01985 static VALUE
01986 _wrap_Matrix_rows_set(int argc, VALUE *argv, VALUE self) {
01987     Matrix *arg1 = (Matrix *) 0 ;
01988     int arg2 ;
01989     
01990     if ((argc < 1) || (argc > 1))
01991     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
01992     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
01993     arg2 = NUM2INT(argv[0]);
01994     if (arg1) (arg1)->rows = arg2;
01995     
01996     return Qnil;
01997 }
01998 
01999 
02000 static VALUE
02001 _wrap_Matrix_rows_get(int argc, VALUE *argv, VALUE self) {
02002     Matrix *arg1 = (Matrix *) 0 ;
02003     int result;
02004     VALUE vresult = Qnil;
02005     
02006     if ((argc < 0) || (argc > 0))
02007     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02008     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02009     result = (int) ((arg1)->rows);
02010     
02011     vresult = INT2NUM(result);
02012     return vresult;
02013 }
02014 
02015 
02016 static VALUE
02017 _wrap_Matrix_cols_set(int argc, VALUE *argv, VALUE self) {
02018     Matrix *arg1 = (Matrix *) 0 ;
02019     int arg2 ;
02020     
02021     if ((argc < 1) || (argc > 1))
02022     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02023     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02024     arg2 = NUM2INT(argv[0]);
02025     if (arg1) (arg1)->cols = arg2;
02026     
02027     return Qnil;
02028 }
02029 
02030 
02031 static VALUE
02032 _wrap_Matrix_cols_get(int argc, VALUE *argv, VALUE self) {
02033     Matrix *arg1 = (Matrix *) 0 ;
02034     int result;
02035     VALUE vresult = Qnil;
02036     
02037     if ((argc < 0) || (argc > 0))
02038     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02039     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02040     result = (int) ((arg1)->cols);
02041     
02042     vresult = INT2NUM(result);
02043     return vresult;
02044 }
02045 
02046 
02047 static VALUE
02048 _wrap_new_Matrix__SWIG_0(int argc, VALUE *argv, VALUE self) {
02049     int arg1 ;
02050     int arg2 ;
02051     Matrix *result;
02052     
02053     if ((argc < 2) || (argc > 2))
02054     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
02055     arg1 = NUM2INT(argv[0]);
02056     arg2 = NUM2INT(argv[1]);
02057     result = (Matrix *)new Matrix(arg1,arg2);
02058     DATA_PTR(self) = result;
02059     return self;
02060 }
02061 
02062 
02063 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
02064 static VALUE
02065 _wrap_Matrix_allocate(VALUE self) {
02066 #else
02067     static VALUE
02068     _wrap_Matrix_allocate(int argc, VALUE *argv, VALUE self) {
02069 #endif
02070         
02071         
02072         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Matrix);
02073 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
02074         rb_obj_call_init(vresult, argc, argv);
02075 #endif
02076         return vresult;
02077     }
02078     
02079 
02080 static VALUE
02081 _wrap_new_Matrix__SWIG_1(int argc, VALUE *argv, VALUE self) {
02082     Matrix *arg1 = 0 ;
02083     Matrix *result;
02084     
02085     if ((argc < 1) || (argc > 1))
02086     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02087     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_Matrix, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
02088     result = (Matrix *)new Matrix((Matrix const &)*arg1);
02089     DATA_PTR(self) = result;
02090     return self;
02091 }
02092 
02093 
02094 static VALUE _wrap_new_Matrix(int nargs, VALUE *args, VALUE self) {
02095     int argc;
02096     VALUE argv[2];
02097     int ii;
02098     
02099     argc = nargs;
02100     for (ii = 0; (ii < argc) && (ii < 2); ii++) {
02101         argv[ii] = args[ii];
02102     }
02103     if (argc == 1) {
02104         int _v;
02105         {
02106             void *ptr;
02107             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Matrix, 0) != -1)) ? 1 : 0;
02108         }
02109         if (_v) {
02110             return _wrap_new_Matrix__SWIG_1(nargs, args, self);
02111         }
02112     }
02113     if (argc == 2) {
02114         int _v;
02115         {
02116             _v = ((TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0;
02117         }
02118         if (_v) {
02119             {
02120                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
02121             }
02122             if (_v) {
02123                 return _wrap_new_Matrix__SWIG_0(nargs, args, self);
02124             }
02125         }
02126     }
02127     
02128     rb_raise(rb_eArgError, "No matching function for overloaded 'new_Matrix'");
02129     return Qnil;
02130 }
02131 
02132 
02133 static void
02134 free_Matrix(Matrix *arg1) {
02135     delete arg1;
02136 }
02137 static VALUE
02138 _wrap_Matrix___call__(int argc, VALUE *argv, VALUE self) {
02139     Matrix *arg1 = (Matrix *) 0 ;
02140     int arg2 ;
02141     int arg3 ;
02142     double result;
02143     VALUE vresult = Qnil;
02144     
02145     if ((argc < 2) || (argc > 2))
02146     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
02147     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02148     arg2 = NUM2INT(argv[0]);
02149     arg3 = NUM2INT(argv[1]);
02150     result = (double)((Matrix const *)arg1)->operator ()(arg2,arg3);
02151     
02152     vresult = rb_float_new(result);
02153     return vresult;
02154 }
02155 
02156 
02157 static VALUE
02158 _wrap_Matrix_set(int argc, VALUE *argv, VALUE self) {
02159     Matrix *arg1 = (Matrix *) 0 ;
02160     int arg2 ;
02161     int arg3 ;
02162     double arg4 ;
02163     
02164     if ((argc < 3) || (argc > 3))
02165     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
02166     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02167     arg2 = NUM2INT(argv[0]);
02168     arg3 = NUM2INT(argv[1]);
02169     arg4 = (double) NUM2DBL(argv[2]);
02170     (arg1)->set(arg2,arg3,arg4);
02171     
02172     return Qnil;
02173 }
02174 
02175 
02176 static VALUE
02177 _wrap_Matrix_det(int argc, VALUE *argv, VALUE self) {
02178     Matrix *arg1 = (Matrix *) 0 ;
02179     double result;
02180     VALUE vresult = Qnil;
02181     
02182     if ((argc < 0) || (argc > 0))
02183     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02184     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02185     result = (double)(arg1)->det();
02186     
02187     vresult = rb_float_new(result);
02188     return vresult;
02189 }
02190 
02191 
02192 static VALUE
02193 _wrap_Matrix_transpose_times_self(int argc, VALUE *argv, VALUE self) {
02194     Matrix *arg1 = (Matrix *) 0 ;
02195     Matrix *result;
02196     VALUE vresult = Qnil;
02197     
02198     if ((argc < 0) || (argc > 0))
02199     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02200     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02201     result = (Matrix *)(arg1)->transpose_times_self();
02202     
02203     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Matrix,0);
02204     return vresult;
02205 }
02206 
02207 
02208 static VALUE
02209 _wrap_Matrix_inverse(int argc, VALUE *argv, VALUE self) {
02210     Matrix *arg1 = (Matrix *) 0 ;
02211     Matrix *result;
02212     VALUE vresult = Qnil;
02213     
02214     if ((argc < 0) || (argc > 0))
02215     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02216     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02217     result = (Matrix *)(arg1)->inverse();
02218     
02219     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Matrix,0);
02220     return vresult;
02221 }
02222 
02223 
02224 static VALUE
02225 _wrap_Matrix_transpose_times_vector(int argc, VALUE *argv, VALUE self) {
02226     Matrix *arg1 = (Matrix *) 0 ;
02227     double *arg2 = (double *) 0 ;
02228     double *result;
02229     VALUE vresult = Qnil;
02230     
02231     if ((argc < 1) || (argc > 1))
02232     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02233     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02234     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02235     result = (double *)(arg1)->transpose_times_vector(arg2);
02236     
02237     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02238     return vresult;
02239 }
02240 
02241 
02242 static VALUE
02243 _wrap_Matrix_times_vector(int argc, VALUE *argv, VALUE self) {
02244     Matrix *arg1 = (Matrix *) 0 ;
02245     double *arg2 = (double *) 0 ;
02246     double *result;
02247     VALUE vresult = Qnil;
02248     
02249     if ((argc < 1) || (argc > 1))
02250     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02251     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02252     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02253     result = (double *)(arg1)->times_vector(arg2);
02254     
02255     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02256     return vresult;
02257 }
02258 
02259 
02260 static VALUE
02261 _wrap_Matrix_print(int argc, VALUE *argv, VALUE self) {
02262     Matrix *arg1 = (Matrix *) 0 ;
02263     
02264     if ((argc < 0) || (argc > 0))
02265     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02266     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix, 1);
02267     (arg1)->print();
02268     
02269     return Qnil;
02270 }
02271 
02272 
02273 static VALUE
02274 _wrap_Matrix5_size_set(int argc, VALUE *argv, VALUE self) {
02275     Matrix5 *arg1 = (Matrix5 *) 0 ;
02276     int arg2 ;
02277     
02278     if ((argc < 1) || (argc > 1))
02279     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02280     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02281     arg2 = NUM2INT(argv[0]);
02282     if (arg1) (arg1)->size = arg2;
02283     
02284     return Qnil;
02285 }
02286 
02287 
02288 static VALUE
02289 _wrap_Matrix5_size_get(int argc, VALUE *argv, VALUE self) {
02290     Matrix5 *arg1 = (Matrix5 *) 0 ;
02291     int result;
02292     VALUE vresult = Qnil;
02293     
02294     if ((argc < 0) || (argc > 0))
02295     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02296     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02297     result = (int) ((arg1)->size);
02298     
02299     vresult = INT2NUM(result);
02300     return vresult;
02301 }
02302 
02303 
02304 static VALUE
02305 _wrap_Matrix5_d1_set(int argc, VALUE *argv, VALUE self) {
02306     Matrix5 *arg1 = (Matrix5 *) 0 ;
02307     double *arg2 = (double *) 0 ;
02308     
02309     if ((argc < 1) || (argc > 1))
02310     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02311     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02312     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02313     if (arg1) (arg1)->d1 = arg2;
02314     
02315     return Qnil;
02316 }
02317 
02318 
02319 static VALUE
02320 _wrap_Matrix5_d1_get(int argc, VALUE *argv, VALUE self) {
02321     Matrix5 *arg1 = (Matrix5 *) 0 ;
02322     double *result;
02323     VALUE vresult = Qnil;
02324     
02325     if ((argc < 0) || (argc > 0))
02326     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02327     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02328     result = (double *) ((arg1)->d1);
02329     
02330     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02331     return vresult;
02332 }
02333 
02334 
02335 static VALUE
02336 _wrap_Matrix5_d2_set(int argc, VALUE *argv, VALUE self) {
02337     Matrix5 *arg1 = (Matrix5 *) 0 ;
02338     double *arg2 = (double *) 0 ;
02339     
02340     if ((argc < 1) || (argc > 1))
02341     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02342     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02343     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02344     if (arg1) (arg1)->d2 = arg2;
02345     
02346     return Qnil;
02347 }
02348 
02349 
02350 static VALUE
02351 _wrap_Matrix5_d2_get(int argc, VALUE *argv, VALUE self) {
02352     Matrix5 *arg1 = (Matrix5 *) 0 ;
02353     double *result;
02354     VALUE vresult = Qnil;
02355     
02356     if ((argc < 0) || (argc > 0))
02357     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02358     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02359     result = (double *) ((arg1)->d2);
02360     
02361     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02362     return vresult;
02363 }
02364 
02365 
02366 static VALUE
02367 _wrap_Matrix5_d3_set(int argc, VALUE *argv, VALUE self) {
02368     Matrix5 *arg1 = (Matrix5 *) 0 ;
02369     double *arg2 = (double *) 0 ;
02370     
02371     if ((argc < 1) || (argc > 1))
02372     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02373     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02374     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02375     if (arg1) (arg1)->d3 = arg2;
02376     
02377     return Qnil;
02378 }
02379 
02380 
02381 static VALUE
02382 _wrap_Matrix5_d3_get(int argc, VALUE *argv, VALUE self) {
02383     Matrix5 *arg1 = (Matrix5 *) 0 ;
02384     double *result;
02385     VALUE vresult = Qnil;
02386     
02387     if ((argc < 0) || (argc > 0))
02388     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02389     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02390     result = (double *) ((arg1)->d3);
02391     
02392     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02393     return vresult;
02394 }
02395 
02396 
02397 static VALUE
02398 _wrap_Matrix5_d4_set(int argc, VALUE *argv, VALUE self) {
02399     Matrix5 *arg1 = (Matrix5 *) 0 ;
02400     double *arg2 = (double *) 0 ;
02401     
02402     if ((argc < 1) || (argc > 1))
02403     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02404     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02405     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02406     if (arg1) (arg1)->d4 = arg2;
02407     
02408     return Qnil;
02409 }
02410 
02411 
02412 static VALUE
02413 _wrap_Matrix5_d4_get(int argc, VALUE *argv, VALUE self) {
02414     Matrix5 *arg1 = (Matrix5 *) 0 ;
02415     double *result;
02416     VALUE vresult = Qnil;
02417     
02418     if ((argc < 0) || (argc > 0))
02419     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02420     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02421     result = (double *) ((arg1)->d4);
02422     
02423     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02424     return vresult;
02425 }
02426 
02427 
02428 static VALUE
02429 _wrap_Matrix5_d5_set(int argc, VALUE *argv, VALUE self) {
02430     Matrix5 *arg1 = (Matrix5 *) 0 ;
02431     double *arg2 = (double *) 0 ;
02432     
02433     if ((argc < 1) || (argc > 1))
02434     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02435     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02436     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02437     if (arg1) (arg1)->d5 = arg2;
02438     
02439     return Qnil;
02440 }
02441 
02442 
02443 static VALUE
02444 _wrap_Matrix5_d5_get(int argc, VALUE *argv, VALUE self) {
02445     Matrix5 *arg1 = (Matrix5 *) 0 ;
02446     double *result;
02447     VALUE vresult = Qnil;
02448     
02449     if ((argc < 0) || (argc > 0))
02450     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02451     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02452     result = (double *) ((arg1)->d5);
02453     
02454     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02455     return vresult;
02456 }
02457 
02458 
02459 static VALUE
02460 _wrap_Matrix5_factored_set(int argc, VALUE *argv, VALUE self) {
02461     Matrix5 *arg1 = (Matrix5 *) 0 ;
02462     bool arg2 ;
02463     
02464     if ((argc < 1) || (argc > 1))
02465     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02466     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02467     arg2 = RTEST(argv[0]);
02468     if (arg1) (arg1)->factored = arg2;
02469     
02470     return Qnil;
02471 }
02472 
02473 
02474 static VALUE
02475 _wrap_Matrix5_factored_get(int argc, VALUE *argv, VALUE self) {
02476     Matrix5 *arg1 = (Matrix5 *) 0 ;
02477     bool result;
02478     VALUE vresult = Qnil;
02479     
02480     if ((argc < 0) || (argc > 0))
02481     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02482     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02483     result = (bool) ((arg1)->factored);
02484     
02485     vresult = result ? Qtrue : Qfalse;
02486     return vresult;
02487 }
02488 
02489 
02490 static VALUE
02491 _wrap_new_Matrix5__SWIG_0(int argc, VALUE *argv, VALUE self) {
02492     Matrix *arg1 = 0 ;
02493     Matrix5 *result;
02494     
02495     if ((argc < 1) || (argc > 1))
02496     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02497     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_Matrix, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
02498     result = (Matrix5 *)new Matrix5((Matrix const &)*arg1);
02499     DATA_PTR(self) = result;
02500     return self;
02501 }
02502 
02503 
02504 static VALUE
02505 _wrap_new_Matrix5__SWIG_1(int argc, VALUE *argv, VALUE self) {
02506     Matrix5 *arg1 = 0 ;
02507     Matrix5 *result;
02508     
02509     if ((argc < 1) || (argc > 1))
02510     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02511     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_Matrix5, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
02512     result = (Matrix5 *)new Matrix5((Matrix5 const &)*arg1);
02513     DATA_PTR(self) = result;
02514     return self;
02515 }
02516 
02517 
02518 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
02519 static VALUE
02520 _wrap_Matrix5_allocate(VALUE self) {
02521 #else
02522     static VALUE
02523     _wrap_Matrix5_allocate(int argc, VALUE *argv, VALUE self) {
02524 #endif
02525         
02526         
02527         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Matrix5);
02528 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
02529         rb_obj_call_init(vresult, argc, argv);
02530 #endif
02531         return vresult;
02532     }
02533     
02534 
02535 static VALUE
02536 _wrap_new_Matrix5__SWIG_2(int argc, VALUE *argv, VALUE self) {
02537     int arg1 ;
02538     Matrix5 *result;
02539     
02540     if ((argc < 1) || (argc > 1))
02541     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02542     arg1 = NUM2INT(argv[0]);
02543     result = (Matrix5 *)new Matrix5(arg1);
02544     DATA_PTR(self) = result;
02545     return self;
02546 }
02547 
02548 
02549 static VALUE _wrap_new_Matrix5(int nargs, VALUE *args, VALUE self) {
02550     int argc;
02551     VALUE argv[1];
02552     int ii;
02553     
02554     argc = nargs;
02555     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
02556         argv[ii] = args[ii];
02557     }
02558     if (argc == 1) {
02559         int _v;
02560         {
02561             void *ptr;
02562             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Matrix, 0) != -1)) ? 1 : 0;
02563         }
02564         if (_v) {
02565             return _wrap_new_Matrix5__SWIG_0(nargs, args, self);
02566         }
02567     }
02568     if (argc == 1) {
02569         int _v;
02570         {
02571             void *ptr;
02572             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Matrix5, 0) != -1)) ? 1 : 0;
02573         }
02574         if (_v) {
02575             return _wrap_new_Matrix5__SWIG_1(nargs, args, self);
02576         }
02577     }
02578     if (argc == 1) {
02579         int _v;
02580         {
02581             _v = ((TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0;
02582         }
02583         if (_v) {
02584             return _wrap_new_Matrix5__SWIG_2(nargs, args, self);
02585         }
02586     }
02587     
02588     rb_raise(rb_eArgError, "No matching function for overloaded 'new_Matrix5'");
02589     return Qnil;
02590 }
02591 
02592 
02593 static void
02594 free_Matrix5(Matrix5 *arg1) {
02595     delete arg1;
02596 }
02597 static VALUE
02598 _wrap_Matrix5_LUsolve(int argc, VALUE *argv, VALUE self) {
02599     Matrix5 *arg1 = (Matrix5 *) 0 ;
02600     double *arg2 = (double *) 0 ;
02601     double *result;
02602     VALUE vresult = Qnil;
02603     
02604     if ((argc < 1) || (argc > 1))
02605     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02606     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Matrix5, 1);
02607     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
02608     result = (double *)(arg1)->LUsolve(arg2);
02609     
02610     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_double,0);
02611     return vresult;
02612 }
02613 
02614 
02615 static VALUE
02616 _wrap_add_filename_extension(int argc, VALUE *argv, VALUE self) {
02617     char *arg1 ;
02618     char *arg2 ;
02619     char *arg3 ;
02620     int arg4 ;
02621     int result;
02622     VALUE vresult = Qnil;
02623     
02624     if ((argc < 4) || (argc > 4))
02625     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
02626     arg1 = StringValuePtr(argv[0]);
02627     arg2 = StringValuePtr(argv[1]);
02628     arg3 = StringValuePtr(argv[2]);
02629     arg4 = NUM2INT(argv[3]);
02630     result = (int)add_filename_extension(arg1,arg2,arg3,arg4);
02631     
02632     vresult = INT2NUM(result);
02633     return vresult;
02634 }
02635 
02636 
02637 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
02638 static VALUE
02639 _wrap_Cell_allocate(VALUE self) {
02640 #else
02641     static VALUE
02642     _wrap_Cell_allocate(int argc, VALUE *argv, VALUE self) {
02643 #endif
02644         
02645         
02646         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Cell);
02647 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
02648         rb_obj_call_init(vresult, argc, argv);
02649 #endif
02650         return vresult;
02651     }
02652     
02653 
02654 static VALUE
02655 _wrap_new_Cell(int argc, VALUE *argv, VALUE self) {
02656     Cell *result;
02657     
02658     if ((argc < 0) || (argc > 0))
02659     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02660     result = (Cell *)new Cell();
02661     DATA_PTR(self) = result;
02662     return self;
02663 }
02664 
02665 
02666 static void
02667 free_Cell(Cell *arg1) {
02668     delete arg1;
02669 }
02670 static VALUE
02671 _wrap_VertexCell_num_edges_set(int argc, VALUE *argv, VALUE self) {
02672     VertexCell *arg1 = (VertexCell *) 0 ;
02673     int arg2 ;
02674     
02675     if ((argc < 1) || (argc > 1))
02676     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02677     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02678     arg2 = NUM2INT(argv[0]);
02679     if (arg1) (arg1)->num_edges = arg2;
02680     
02681     return Qnil;
02682 }
02683 
02684 
02685 static VALUE
02686 _wrap_VertexCell_num_edges_get(int argc, VALUE *argv, VALUE self) {
02687     VertexCell *arg1 = (VertexCell *) 0 ;
02688     int result;
02689     VALUE vresult = Qnil;
02690     
02691     if ((argc < 0) || (argc > 0))
02692     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02693     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02694     result = (int) ((arg1)->num_edges);
02695     
02696     vresult = INT2NUM(result);
02697     return vresult;
02698 }
02699 
02700 
02701 static VALUE
02702 _wrap_VertexCell_max_edges_set(int argc, VALUE *argv, VALUE self) {
02703     VertexCell *arg1 = (VertexCell *) 0 ;
02704     int arg2 ;
02705     
02706     if ((argc < 1) || (argc > 1))
02707     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02708     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02709     arg2 = NUM2INT(argv[0]);
02710     if (arg1) (arg1)->max_edges = arg2;
02711     
02712     return Qnil;
02713 }
02714 
02715 
02716 static VALUE
02717 _wrap_VertexCell_max_edges_get(int argc, VALUE *argv, VALUE self) {
02718     VertexCell *arg1 = (VertexCell *) 0 ;
02719     int result;
02720     VALUE vresult = Qnil;
02721     
02722     if ((argc < 0) || (argc > 0))
02723     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02724     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02725     result = (int) ((arg1)->max_edges);
02726     
02727     vresult = INT2NUM(result);
02728     return vresult;
02729 }
02730 
02731 
02732 static VALUE
02733 _wrap_VertexCell_edges_set(int argc, VALUE *argv, VALUE self) {
02734     VertexCell *arg1 = (VertexCell *) 0 ;
02735     void **arg2 = (void **) 0 ;
02736     
02737     if ((argc < 1) || (argc > 1))
02738     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02739     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02740     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_p_void, 1);
02741     if (arg1) (arg1)->edges = arg2;
02742     
02743     return Qnil;
02744 }
02745 
02746 
02747 static VALUE
02748 _wrap_VertexCell_edges_get(int argc, VALUE *argv, VALUE self) {
02749     VertexCell *arg1 = (VertexCell *) 0 ;
02750     void **result;
02751     VALUE vresult = Qnil;
02752     
02753     if ((argc < 0) || (argc > 0))
02754     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02755     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02756     result = (void **) ((arg1)->edges);
02757     
02758     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_void,0);
02759     return vresult;
02760 }
02761 
02762 
02763 static VALUE
02764 _wrap_new_VertexCell__SWIG_0(int argc, VALUE *argv, VALUE self) {
02765     VertexCell *result;
02766     
02767     if ((argc < 0) || (argc > 0))
02768     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02769     result = (VertexCell *)new VertexCell();
02770     DATA_PTR(self) = result;
02771     return self;
02772 }
02773 
02774 
02775 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
02776 static VALUE
02777 _wrap_VertexCell_allocate(VALUE self) {
02778 #else
02779     static VALUE
02780     _wrap_VertexCell_allocate(int argc, VALUE *argv, VALUE self) {
02781 #endif
02782         
02783         
02784         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_VertexCell);
02785 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
02786         rb_obj_call_init(vresult, argc, argv);
02787 #endif
02788         return vresult;
02789     }
02790     
02791 
02792 static VALUE
02793 _wrap_new_VertexCell__SWIG_1(int argc, VALUE *argv, VALUE self) {
02794     VertexCell *arg1 = 0 ;
02795     VertexCell *result;
02796     
02797     if ((argc < 1) || (argc > 1))
02798     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02799     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_VertexCell, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
02800     result = (VertexCell *)new VertexCell((VertexCell const &)*arg1);
02801     DATA_PTR(self) = result;
02802     return self;
02803 }
02804 
02805 
02806 static VALUE _wrap_new_VertexCell(int nargs, VALUE *args, VALUE self) {
02807     int argc;
02808     VALUE argv[1];
02809     int ii;
02810     
02811     argc = nargs;
02812     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
02813         argv[ii] = args[ii];
02814     }
02815     if (argc == 0) {
02816         return _wrap_new_VertexCell__SWIG_0(nargs, args, self);
02817     }
02818     if (argc == 1) {
02819         int _v;
02820         {
02821             void *ptr;
02822             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_VertexCell, 0) != -1)) ? 1 : 0;
02823         }
02824         if (_v) {
02825             return _wrap_new_VertexCell__SWIG_1(nargs, args, self);
02826         }
02827     }
02828     
02829     rb_raise(rb_eArgError, "No matching function for overloaded 'new_VertexCell'");
02830     return Qnil;
02831 }
02832 
02833 
02834 static void
02835 free_VertexCell(VertexCell *arg1) {
02836     delete arg1;
02837 }
02838 static VALUE
02839 _wrap_VertexCell_add_edge(int argc, VALUE *argv, VALUE self) {
02840     VertexCell *arg1 = (VertexCell *) 0 ;
02841     void *arg2 = (void *) 0 ;
02842     bool result;
02843     VALUE vresult = Qnil;
02844     
02845     if ((argc < 1) || (argc > 1))
02846     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02847     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02848     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
02849     result = (bool)(arg1)->add_edge(arg2);
02850     
02851     vresult = result ? Qtrue : Qfalse;
02852     return vresult;
02853 }
02854 
02855 
02856 static VALUE
02857 _wrap_VertexCell_delete_edge(int argc, VALUE *argv, VALUE self) {
02858     VertexCell *arg1 = (VertexCell *) 0 ;
02859     void *arg2 = (void *) 0 ;
02860     bool result;
02861     VALUE vresult = Qnil;
02862     
02863     if ((argc < 1) || (argc > 1))
02864     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02865     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_VertexCell, 1);
02866     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
02867     result = (bool)(arg1)->delete_edge(arg2);
02868     
02869     vresult = result ? Qtrue : Qfalse;
02870     return vresult;
02871 }
02872 
02873 
02874 static VALUE
02875 _wrap_EdgeCell_vertexs_set(int argc, VALUE *argv, VALUE self) {
02876     EdgeCell *arg1 = (EdgeCell *) 0 ;
02877     void **arg2 ;
02878     
02879     if ((argc < 1) || (argc > 1))
02880     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02881     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EdgeCell, 1);
02882     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_p_void, 1);
02883     {
02884         int ii;
02885         void * *b = (void * *) arg1->vertexs;
02886         for (ii = 0; ii < 2; ii++) b[ii] = *((void * *) arg2 + ii);
02887     }
02888     return Qnil;
02889 }
02890 
02891 
02892 static VALUE
02893 _wrap_EdgeCell_vertexs_get(int argc, VALUE *argv, VALUE self) {
02894     EdgeCell *arg1 = (EdgeCell *) 0 ;
02895     void **result;
02896     VALUE vresult = Qnil;
02897     
02898     if ((argc < 0) || (argc > 0))
02899     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02900     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EdgeCell, 1);
02901     result = (void **)(void **) ((arg1)->vertexs);
02902     
02903     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_void,0);
02904     return vresult;
02905 }
02906 
02907 
02908 static VALUE
02909 _wrap_EdgeCell_faces_set(int argc, VALUE *argv, VALUE self) {
02910     EdgeCell *arg1 = (EdgeCell *) 0 ;
02911     void **arg2 ;
02912     
02913     if ((argc < 1) || (argc > 1))
02914     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02915     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EdgeCell, 1);
02916     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_p_void, 1);
02917     {
02918         int ii;
02919         void * *b = (void * *) arg1->faces;
02920         for (ii = 0; ii < 2; ii++) b[ii] = *((void * *) arg2 + ii);
02921     }
02922     return Qnil;
02923 }
02924 
02925 
02926 static VALUE
02927 _wrap_EdgeCell_faces_get(int argc, VALUE *argv, VALUE self) {
02928     EdgeCell *arg1 = (EdgeCell *) 0 ;
02929     void **result;
02930     VALUE vresult = Qnil;
02931     
02932     if ((argc < 0) || (argc > 0))
02933     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02934     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EdgeCell, 1);
02935     result = (void **)(void **) ((arg1)->faces);
02936     
02937     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_void,0);
02938     return vresult;
02939 }
02940 
02941 
02942 static VALUE
02943 _wrap_new_EdgeCell__SWIG_0(int argc, VALUE *argv, VALUE self) {
02944     EdgeCell *result;
02945     
02946     if ((argc < 0) || (argc > 0))
02947     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
02948     result = (EdgeCell *)new EdgeCell();
02949     DATA_PTR(self) = result;
02950     return self;
02951 }
02952 
02953 
02954 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
02955 static VALUE
02956 _wrap_EdgeCell_allocate(VALUE self) {
02957 #else
02958     static VALUE
02959     _wrap_EdgeCell_allocate(int argc, VALUE *argv, VALUE self) {
02960 #endif
02961         
02962         
02963         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_EdgeCell);
02964 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
02965         rb_obj_call_init(vresult, argc, argv);
02966 #endif
02967         return vresult;
02968     }
02969     
02970 
02971 static VALUE
02972 _wrap_new_EdgeCell__SWIG_1(int argc, VALUE *argv, VALUE self) {
02973     EdgeCell *arg1 = 0 ;
02974     EdgeCell *result;
02975     
02976     if ((argc < 1) || (argc > 1))
02977     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
02978     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_EdgeCell, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
02979     result = (EdgeCell *)new EdgeCell((EdgeCell const &)*arg1);
02980     DATA_PTR(self) = result;
02981     return self;
02982 }
02983 
02984 
02985 static VALUE _wrap_new_EdgeCell(int nargs, VALUE *args, VALUE self) {
02986     int argc;
02987     VALUE argv[1];
02988     int ii;
02989     
02990     argc = nargs;
02991     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
02992         argv[ii] = args[ii];
02993     }
02994     if (argc == 0) {
02995         return _wrap_new_EdgeCell__SWIG_0(nargs, args, self);
02996     }
02997     if (argc == 1) {
02998         int _v;
02999         {
03000             void *ptr;
03001             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EdgeCell, 0) != -1)) ? 1 : 0;
03002         }
03003         if (_v) {
03004             return _wrap_new_EdgeCell__SWIG_1(nargs, args, self);
03005         }
03006     }
03007     
03008     rb_raise(rb_eArgError, "No matching function for overloaded 'new_EdgeCell'");
03009     return Qnil;
03010 }
03011 
03012 
03013 static void
03014 free_EdgeCell(EdgeCell *arg1) {
03015     delete arg1;
03016 }
03017 static VALUE
03018 _wrap_EdgeCell_add_face(int argc, VALUE *argv, VALUE self) {
03019     EdgeCell *arg1 = (EdgeCell *) 0 ;
03020     void *arg2 = (void *) 0 ;
03021     bool result;
03022     VALUE vresult = Qnil;
03023     
03024     if ((argc < 1) || (argc > 1))
03025     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03026     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EdgeCell, 1);
03027     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
03028     result = (bool)(arg1)->add_face(arg2);
03029     
03030     vresult = result ? Qtrue : Qfalse;
03031     return vresult;
03032 }
03033 
03034 
03035 static VALUE
03036 _wrap_EdgeCell_delete_face(int argc, VALUE *argv, VALUE self) {
03037     EdgeCell *arg1 = (EdgeCell *) 0 ;
03038     void *arg2 = (void *) 0 ;
03039     bool result;
03040     VALUE vresult = Qnil;
03041     
03042     if ((argc < 1) || (argc > 1))
03043     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03044     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EdgeCell, 1);
03045     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
03046     result = (bool)(arg1)->delete_face(arg2);
03047     
03048     vresult = result ? Qtrue : Qfalse;
03049     return vresult;
03050 }
03051 
03052 
03053 static VALUE
03054 _wrap_FaceCell_num_edges_set(int argc, VALUE *argv, VALUE self) {
03055     FaceCell *arg1 = (FaceCell *) 0 ;
03056     int arg2 ;
03057     
03058     if ((argc < 1) || (argc > 1))
03059     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03060     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03061     arg2 = NUM2INT(argv[0]);
03062     if (arg1) (arg1)->num_edges = arg2;
03063     
03064     return Qnil;
03065 }
03066 
03067 
03068 static VALUE
03069 _wrap_FaceCell_num_edges_get(int argc, VALUE *argv, VALUE self) {
03070     FaceCell *arg1 = (FaceCell *) 0 ;
03071     int result;
03072     VALUE vresult = Qnil;
03073     
03074     if ((argc < 0) || (argc > 0))
03075     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03076     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03077     result = (int) ((arg1)->num_edges);
03078     
03079     vresult = INT2NUM(result);
03080     return vresult;
03081 }
03082 
03083 
03084 static VALUE
03085 _wrap_FaceCell_max_edges_set(int argc, VALUE *argv, VALUE self) {
03086     FaceCell *arg1 = (FaceCell *) 0 ;
03087     int arg2 ;
03088     
03089     if ((argc < 1) || (argc > 1))
03090     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03091     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03092     arg2 = NUM2INT(argv[0]);
03093     if (arg1) (arg1)->max_edges = arg2;
03094     
03095     return Qnil;
03096 }
03097 
03098 
03099 static VALUE
03100 _wrap_FaceCell_max_edges_get(int argc, VALUE *argv, VALUE self) {
03101     FaceCell *arg1 = (FaceCell *) 0 ;
03102     int result;
03103     VALUE vresult = Qnil;
03104     
03105     if ((argc < 0) || (argc > 0))
03106     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03107     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03108     result = (int) ((arg1)->max_edges);
03109     
03110     vresult = INT2NUM(result);
03111     return vresult;
03112 }
03113 
03114 
03115 static VALUE
03116 _wrap_FaceCell_edges_set(int argc, VALUE *argv, VALUE self) {
03117     FaceCell *arg1 = (FaceCell *) 0 ;
03118     void **arg2 = (void **) 0 ;
03119     
03120     if ((argc < 1) || (argc > 1))
03121     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03122     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03123     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_p_void, 1);
03124     if (arg1) (arg1)->edges = arg2;
03125     
03126     return Qnil;
03127 }
03128 
03129 
03130 static VALUE
03131 _wrap_FaceCell_edges_get(int argc, VALUE *argv, VALUE self) {
03132     FaceCell *arg1 = (FaceCell *) 0 ;
03133     void **result;
03134     VALUE vresult = Qnil;
03135     
03136     if ((argc < 0) || (argc > 0))
03137     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03138     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03139     result = (void **) ((arg1)->edges);
03140     
03141     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_p_void,0);
03142     return vresult;
03143 }
03144 
03145 
03146 static VALUE
03147 _wrap_new_FaceCell__SWIG_0(int argc, VALUE *argv, VALUE self) {
03148     FaceCell *result;
03149     
03150     if ((argc < 0) || (argc > 0))
03151     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03152     result = (FaceCell *)new FaceCell();
03153     DATA_PTR(self) = result;
03154     return self;
03155 }
03156 
03157 
03158 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
03159 static VALUE
03160 _wrap_FaceCell_allocate(VALUE self) {
03161 #else
03162     static VALUE
03163     _wrap_FaceCell_allocate(int argc, VALUE *argv, VALUE self) {
03164 #endif
03165         
03166         
03167         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FaceCell);
03168 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
03169         rb_obj_call_init(vresult, argc, argv);
03170 #endif
03171         return vresult;
03172     }
03173     
03174 
03175 static VALUE
03176 _wrap_new_FaceCell__SWIG_1(int argc, VALUE *argv, VALUE self) {
03177     FaceCell *arg1 = 0 ;
03178     FaceCell *result;
03179     
03180     if ((argc < 1) || (argc > 1))
03181     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03182     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FaceCell, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
03183     result = (FaceCell *)new FaceCell((FaceCell const &)*arg1);
03184     DATA_PTR(self) = result;
03185     return self;
03186 }
03187 
03188 
03189 static VALUE _wrap_new_FaceCell(int nargs, VALUE *args, VALUE self) {
03190     int argc;
03191     VALUE argv[1];
03192     int ii;
03193     
03194     argc = nargs;
03195     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
03196         argv[ii] = args[ii];
03197     }
03198     if (argc == 0) {
03199         return _wrap_new_FaceCell__SWIG_0(nargs, args, self);
03200     }
03201     if (argc == 1) {
03202         int _v;
03203         {
03204             void *ptr;
03205             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FaceCell, 0) != -1)) ? 1 : 0;
03206         }
03207         if (_v) {
03208             return _wrap_new_FaceCell__SWIG_1(nargs, args, self);
03209         }
03210     }
03211     
03212     rb_raise(rb_eArgError, "No matching function for overloaded 'new_FaceCell'");
03213     return Qnil;
03214 }
03215 
03216 
03217 static void
03218 free_FaceCell(FaceCell *arg1) {
03219     delete arg1;
03220 }
03221 static VALUE
03222 _wrap_FaceCell_add_edge(int argc, VALUE *argv, VALUE self) {
03223     FaceCell *arg1 = (FaceCell *) 0 ;
03224     void *arg2 = (void *) 0 ;
03225     bool result;
03226     VALUE vresult = Qnil;
03227     
03228     if ((argc < 1) || (argc > 1))
03229     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03230     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03231     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
03232     result = (bool)(arg1)->add_edge(arg2);
03233     
03234     vresult = result ? Qtrue : Qfalse;
03235     return vresult;
03236 }
03237 
03238 
03239 static VALUE
03240 _wrap_FaceCell_delete_edge(int argc, VALUE *argv, VALUE self) {
03241     FaceCell *arg1 = (FaceCell *) 0 ;
03242     void *arg2 = (void *) 0 ;
03243     bool result;
03244     VALUE vresult = Qnil;
03245     
03246     if ((argc < 1) || (argc > 1))
03247     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03248     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03249     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
03250     result = (bool)(arg1)->delete_edge(arg2);
03251     
03252     vresult = result ? Qtrue : Qfalse;
03253     return vresult;
03254 }
03255 
03256 
03257 static VALUE
03258 _wrap_FaceCell_has_vertex(int argc, VALUE *argv, VALUE self) {
03259     FaceCell *arg1 = (FaceCell *) 0 ;
03260     void *arg2 = (void *) 0 ;
03261     bool result;
03262     VALUE vresult = Qnil;
03263     
03264     if ((argc < 1) || (argc > 1))
03265     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03266     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FaceCell, 1);
03267     SWIG_ConvertPtr(argv[0], (void **) &arg2, 0, 1);
03268     result = (bool)((FaceCell const *)arg1)->has_vertex(arg2);
03269     
03270     vresult = result ? Qtrue : Qfalse;
03271     return vresult;
03272 }
03273 
03274 
03275 static VALUE
03276 _wrap_BoundaryVertex_cp_set(int argc, VALUE *argv, VALUE self) {
03277     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03278     ControlPoint arg2 ;
03279     
03280     if ((argc < 1) || (argc > 1))
03281     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03282     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03283     {
03284         ControlPoint * ptr;
03285         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
03286         if (ptr) arg2 = *ptr;
03287     }
03288     if (arg1) (arg1)->cp = arg2;
03289     
03290     return Qnil;
03291 }
03292 
03293 
03294 static VALUE
03295 _wrap_BoundaryVertex_cp_get(int argc, VALUE *argv, VALUE self) {
03296     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03297     ControlPoint result;
03298     VALUE vresult = Qnil;
03299     
03300     if ((argc < 0) || (argc > 0))
03301     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03302     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03303     result =  ((arg1)->cp);
03304     
03305     {
03306         ControlPoint * resultptr;
03307         resultptr = new ControlPoint((ControlPoint &)result);
03308         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_ControlPoint, 1);
03309     }
03310     return vresult;
03311 }
03312 
03313 
03314 static VALUE
03315 _wrap_BoundaryVertex_fixed_set(int argc, VALUE *argv, VALUE self) {
03316     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03317     int arg2 ;
03318     
03319     if ((argc < 1) || (argc > 1))
03320     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03321     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03322     arg2 = NUM2INT(argv[0]);
03323     if (arg1) (arg1)->fixed = arg2;
03324     
03325     return Qnil;
03326 }
03327 
03328 
03329 static VALUE
03330 _wrap_BoundaryVertex_fixed_get(int argc, VALUE *argv, VALUE self) {
03331     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03332     int result;
03333     VALUE vresult = Qnil;
03334     
03335     if ((argc < 0) || (argc > 0))
03336     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03337     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03338     result = (int) ((arg1)->fixed);
03339     
03340     vresult = INT2NUM(result);
03341     return vresult;
03342 }
03343 
03344 
03345 static VALUE
03346 _wrap_BoundaryVertex_bezier_vertex_set(int argc, VALUE *argv, VALUE self) {
03347     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03348     BezierVertex *arg2 = (BezierVertex *) 0 ;
03349     
03350     if ((argc < 1) || (argc > 1))
03351     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03352     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03353     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
03354     if (arg1) (arg1)->bezier_vertex = arg2;
03355     
03356     return Qnil;
03357 }
03358 
03359 
03360 static VALUE
03361 _wrap_BoundaryVertex_bezier_vertex_get(int argc, VALUE *argv, VALUE self) {
03362     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03363     BezierVertex *result;
03364     VALUE vresult = Qnil;
03365     
03366     if ((argc < 0) || (argc > 0))
03367     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03368     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03369     result = (BezierVertex *) ((arg1)->bezier_vertex);
03370     
03371     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
03372     return vresult;
03373 }
03374 
03375 
03376 static VALUE
03377 _wrap_new_BoundaryVertex__SWIG_0(int argc, VALUE *argv, VALUE self) {
03378     BoundaryVertex *result;
03379     
03380     if ((argc < 0) || (argc > 0))
03381     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03382     result = (BoundaryVertex *)new BoundaryVertex();
03383     DATA_PTR(self) = result;
03384     return self;
03385 }
03386 
03387 
03388 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
03389 static VALUE
03390 _wrap_BoundaryVertex_allocate(VALUE self) {
03391 #else
03392     static VALUE
03393     _wrap_BoundaryVertex_allocate(int argc, VALUE *argv, VALUE self) {
03394 #endif
03395         
03396         
03397         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BoundaryVertex);
03398 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
03399         rb_obj_call_init(vresult, argc, argv);
03400 #endif
03401         return vresult;
03402     }
03403     
03404 
03405 static VALUE
03406 _wrap_new_BoundaryVertex__SWIG_1(int argc, VALUE *argv, VALUE self) {
03407     BoundaryVertex *arg1 = 0 ;
03408     BoundaryVertex *result;
03409     
03410     if ((argc < 1) || (argc > 1))
03411     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03412     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
03413     result = (BoundaryVertex *)new BoundaryVertex((BoundaryVertex const &)*arg1);
03414     DATA_PTR(self) = result;
03415     return self;
03416 }
03417 
03418 
03419 static VALUE _wrap_new_BoundaryVertex(int nargs, VALUE *args, VALUE self) {
03420     int argc;
03421     VALUE argv[1];
03422     int ii;
03423     
03424     argc = nargs;
03425     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
03426         argv[ii] = args[ii];
03427     }
03428     if (argc == 0) {
03429         return _wrap_new_BoundaryVertex__SWIG_0(nargs, args, self);
03430     }
03431     if (argc == 1) {
03432         int _v;
03433         {
03434             void *ptr;
03435             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
03436         }
03437         if (_v) {
03438             return _wrap_new_BoundaryVertex__SWIG_1(nargs, args, self);
03439         }
03440     }
03441     
03442     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BoundaryVertex'");
03443     return Qnil;
03444 }
03445 
03446 
03447 static void
03448 free_BoundaryVertex(BoundaryVertex *arg1) {
03449     delete arg1;
03450 }
03451 static VALUE
03452 _wrap_BoundaryVertex_set_fixed(int argc, VALUE *argv, VALUE self) {
03453     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03454     int arg2 ;
03455     
03456     if ((argc < 1) || (argc > 1))
03457     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03458     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03459     arg2 = NUM2INT(argv[0]);
03460     (arg1)->set_fixed(arg2);
03461     
03462     return Qnil;
03463 }
03464 
03465 
03466 static VALUE
03467 _wrap_BoundaryVertex_set_cp(int argc, VALUE *argv, VALUE self) {
03468     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03469     Point2D *arg2 = 0 ;
03470     
03471     if ((argc < 1) || (argc > 1))
03472     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03473     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03474     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
03475     (arg1)->set_cp((Point2D const &)*arg2);
03476     
03477     return Qnil;
03478 }
03479 
03480 
03481 static VALUE
03482 _wrap_BoundaryVertex_print(int argc, VALUE *argv, VALUE self) {
03483     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03484     
03485     if ((argc < 0) || (argc > 0))
03486     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03487     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03488     ((BoundaryVertex const *)arg1)->print();
03489     
03490     return Qnil;
03491 }
03492 
03493 
03494 static VALUE
03495 _wrap_BoundaryVertex_get_cp(int argc, VALUE *argv, VALUE self) {
03496     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03497     Point2D *result;
03498     VALUE vresult = Qnil;
03499     
03500     if ((argc < 0) || (argc > 0))
03501     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03502     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03503     {
03504         Point2D &_result_ref = ((BoundaryVertex const *)arg1)->get_cp();
03505         result = (Point2D *) &_result_ref;
03506     }
03507     
03508     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
03509     return vresult;
03510 }
03511 
03512 
03513 static VALUE
03514 _wrap_BoundaryVertex_get_edge(int argc, VALUE *argv, VALUE self) {
03515     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
03516     int arg2 ;
03517     BoundaryEdge *result;
03518     VALUE vresult = Qnil;
03519     
03520     if ((argc < 1) || (argc > 1))
03521     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03522     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
03523     arg2 = NUM2INT(argv[0]);
03524     result = (BoundaryEdge *)((BoundaryVertex const *)arg1)->get_edge(arg2);
03525     
03526     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
03527     return vresult;
03528 }
03529 
03530 
03531 static VALUE
03532 _wrap_BoundaryEdge_spline_set(int argc, VALUE *argv, VALUE self) {
03533     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03534     QBSpline *arg2 = (QBSpline *) 0 ;
03535     
03536     if ((argc < 1) || (argc > 1))
03537     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03538     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03539     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_QBSpline, 1);
03540     if (arg1) (arg1)->spline = arg2;
03541     
03542     return Qnil;
03543 }
03544 
03545 
03546 static VALUE
03547 _wrap_BoundaryEdge_spline_get(int argc, VALUE *argv, VALUE self) {
03548     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03549     QBSpline *result;
03550     VALUE vresult = Qnil;
03551     
03552     if ((argc < 0) || (argc > 0))
03553     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03554     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03555     result = (QBSpline *) ((arg1)->spline);
03556     
03557     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_QBSpline,0);
03558     return vresult;
03559 }
03560 
03561 
03562 static VALUE
03563 _wrap_BoundaryEdge_fixed_set(int argc, VALUE *argv, VALUE self) {
03564     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03565     int arg2 ;
03566     
03567     if ((argc < 1) || (argc > 1))
03568     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03569     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03570     arg2 = NUM2INT(argv[0]);
03571     if (arg1) (arg1)->fixed = arg2;
03572     
03573     return Qnil;
03574 }
03575 
03576 
03577 static VALUE
03578 _wrap_BoundaryEdge_fixed_get(int argc, VALUE *argv, VALUE self) {
03579     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03580     int result;
03581     VALUE vresult = Qnil;
03582     
03583     if ((argc < 0) || (argc > 0))
03584     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03585     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03586     result = (int) ((arg1)->fixed);
03587     
03588     vresult = INT2NUM(result);
03589     return vresult;
03590 }
03591 
03592 
03593 static VALUE
03594 _wrap_BoundaryEdge_color_set(int argc, VALUE *argv, VALUE self) {
03595     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03596     int arg2 ;
03597     
03598     if ((argc < 1) || (argc > 1))
03599     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03600     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03601     arg2 = NUM2INT(argv[0]);
03602     if (arg1) (arg1)->color = arg2;
03603     
03604     return Qnil;
03605 }
03606 
03607 
03608 static VALUE
03609 _wrap_BoundaryEdge_color_get(int argc, VALUE *argv, VALUE self) {
03610     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03611     int result;
03612     VALUE vresult = Qnil;
03613     
03614     if ((argc < 0) || (argc > 0))
03615     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03616     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03617     result = (int) ((arg1)->color);
03618     
03619     vresult = INT2NUM(result);
03620     return vresult;
03621 }
03622 
03623 
03624 static VALUE
03625 _wrap_new_BoundaryEdge__SWIG_0(int argc, VALUE *argv, VALUE self) {
03626     QBSpline *arg1 = (QBSpline *) 0 ;
03627     BoundaryEdge *result;
03628     
03629     if ((argc < 1) || (argc > 1))
03630     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03631     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
03632     result = (BoundaryEdge *)new BoundaryEdge(arg1);
03633     DATA_PTR(self) = result;
03634     return self;
03635 }
03636 
03637 
03638 static VALUE
03639 _wrap_new_BoundaryEdge__SWIG_1(int argc, VALUE *argv, VALUE self) {
03640     QBSpline *arg1 = (QBSpline *) 0 ;
03641     int arg2 ;
03642     int arg3 ;
03643     BoundaryEdge *result;
03644     
03645     if ((argc < 3) || (argc > 3))
03646     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
03647     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
03648     arg2 = NUM2INT(argv[1]);
03649     arg3 = NUM2INT(argv[2]);
03650     result = (BoundaryEdge *)new BoundaryEdge(arg1,arg2,arg3);
03651     DATA_PTR(self) = result;
03652     return self;
03653 }
03654 
03655 
03656 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
03657 static VALUE
03658 _wrap_BoundaryEdge_allocate(VALUE self) {
03659 #else
03660     static VALUE
03661     _wrap_BoundaryEdge_allocate(int argc, VALUE *argv, VALUE self) {
03662 #endif
03663         
03664         
03665         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BoundaryEdge);
03666 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
03667         rb_obj_call_init(vresult, argc, argv);
03668 #endif
03669         return vresult;
03670     }
03671     
03672 
03673 static VALUE
03674 _wrap_new_BoundaryEdge__SWIG_2(int argc, VALUE *argv, VALUE self) {
03675     BoundaryEdge *arg1 = 0 ;
03676     BoundaryEdge *result;
03677     
03678     if ((argc < 1) || (argc > 1))
03679     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03680     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
03681     result = (BoundaryEdge *)new BoundaryEdge((BoundaryEdge const &)*arg1);
03682     DATA_PTR(self) = result;
03683     return self;
03684 }
03685 
03686 
03687 static VALUE _wrap_new_BoundaryEdge(int nargs, VALUE *args, VALUE self) {
03688     int argc;
03689     VALUE argv[3];
03690     int ii;
03691     
03692     argc = nargs;
03693     for (ii = 0; (ii < argc) && (ii < 3); ii++) {
03694         argv[ii] = args[ii];
03695     }
03696     if (argc == 1) {
03697         int _v;
03698         {
03699             void *ptr;
03700             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_QBSpline, 0) != -1)) ? 1 : 0;
03701         }
03702         if (_v) {
03703             return _wrap_new_BoundaryEdge__SWIG_0(nargs, args, self);
03704         }
03705     }
03706     if (argc == 1) {
03707         int _v;
03708         {
03709             void *ptr;
03710             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
03711         }
03712         if (_v) {
03713             return _wrap_new_BoundaryEdge__SWIG_2(nargs, args, self);
03714         }
03715     }
03716     if (argc == 3) {
03717         int _v;
03718         {
03719             void *ptr;
03720             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_QBSpline, 0) != -1)) ? 1 : 0;
03721         }
03722         if (_v) {
03723             {
03724                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
03725             }
03726             if (_v) {
03727                 {
03728                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
03729                 }
03730                 if (_v) {
03731                     return _wrap_new_BoundaryEdge__SWIG_1(nargs, args, self);
03732                 }
03733             }
03734         }
03735     }
03736     
03737     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BoundaryEdge'");
03738     return Qnil;
03739 }
03740 
03741 
03742 static void
03743 free_BoundaryEdge(BoundaryEdge *arg1) {
03744     delete arg1;
03745 }
03746 static VALUE
03747 _wrap_BoundaryEdge_set_fixed(int argc, VALUE *argv, VALUE self) {
03748     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03749     int arg2 ;
03750     int result;
03751     VALUE vresult = Qnil;
03752     
03753     if ((argc < 1) || (argc > 1))
03754     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03755     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03756     arg2 = NUM2INT(argv[0]);
03757     result = (int)(arg1)->set_fixed(arg2);
03758     
03759     vresult = INT2NUM(result);
03760     return vresult;
03761 }
03762 
03763 
03764 static VALUE
03765 _wrap_BoundaryEdge_set_color(int argc, VALUE *argv, VALUE self) {
03766     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03767     int arg2 ;
03768     
03769     if ((argc < 1) || (argc > 1))
03770     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03771     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03772     arg2 = NUM2INT(argv[0]);
03773     (arg1)->set_color(arg2);
03774     
03775     return Qnil;
03776 }
03777 
03778 
03779 static VALUE
03780 _wrap_BoundaryEdge_set_restlength(int argc, VALUE *argv, VALUE self) {
03781     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03782     double arg2 ;
03783     
03784     if ((argc < 1) || (argc > 1))
03785     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03786     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03787     arg2 = (double) NUM2DBL(argv[0]);
03788     (arg1)->set_restlength(arg2);
03789     
03790     return Qnil;
03791 }
03792 
03793 
03794 static VALUE
03795 _wrap_BoundaryEdge_print(int argc, VALUE *argv, VALUE self) {
03796     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03797     
03798     if ((argc < 0) || (argc > 0))
03799     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03800     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03801     ((BoundaryEdge const *)arg1)->print();
03802     
03803     return Qnil;
03804 }
03805 
03806 
03807 static VALUE
03808 _wrap_BoundaryEdge_get_vertex(int argc, VALUE *argv, VALUE self) {
03809     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03810     int arg2 ;
03811     BoundaryVertex *result;
03812     VALUE vresult = Qnil;
03813     
03814     if ((argc < 1) || (argc > 1))
03815     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03816     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03817     arg2 = NUM2INT(argv[0]);
03818     result = (BoundaryVertex *)((BoundaryEdge const *)arg1)->get_vertex(arg2);
03819     
03820     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryVertex,0);
03821     return vresult;
03822 }
03823 
03824 
03825 static VALUE
03826 _wrap_BoundaryEdge_get_face(int argc, VALUE *argv, VALUE self) {
03827     BoundaryEdge *arg1 = (BoundaryEdge *) 0 ;
03828     int arg2 ;
03829     BoundaryFace *result;
03830     VALUE vresult = Qnil;
03831     
03832     if ((argc < 1) || (argc > 1))
03833     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03834     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryEdge, 1);
03835     arg2 = NUM2INT(argv[0]);
03836     result = (BoundaryFace *)((BoundaryEdge const *)arg1)->get_face(arg2);
03837     
03838     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
03839     return vresult;
03840 }
03841 
03842 
03843 static VALUE
03844 _wrap_BoundaryFace_min_angle_set(int argc, VALUE *argv, VALUE self) {
03845     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
03846     double arg2 ;
03847     
03848     if ((argc < 1) || (argc > 1))
03849     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03850     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
03851     arg2 = (double) NUM2DBL(argv[0]);
03852     if (arg1) (arg1)->min_angle = arg2;
03853     
03854     return Qnil;
03855 }
03856 
03857 
03858 static VALUE
03859 _wrap_BoundaryFace_min_angle_get(int argc, VALUE *argv, VALUE self) {
03860     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
03861     double result;
03862     VALUE vresult = Qnil;
03863     
03864     if ((argc < 0) || (argc > 0))
03865     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03866     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
03867     result = (double) ((arg1)->min_angle);
03868     
03869     vresult = rb_float_new(result);
03870     return vresult;
03871 }
03872 
03873 
03874 static VALUE
03875 _wrap_BoundaryFace_color_set(int argc, VALUE *argv, VALUE self) {
03876     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
03877     int arg2 ;
03878     
03879     if ((argc < 1) || (argc > 1))
03880     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03881     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
03882     arg2 = NUM2INT(argv[0]);
03883     if (arg1) (arg1)->color = arg2;
03884     
03885     return Qnil;
03886 }
03887 
03888 
03889 static VALUE
03890 _wrap_BoundaryFace_color_get(int argc, VALUE *argv, VALUE self) {
03891     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
03892     int result;
03893     VALUE vresult = Qnil;
03894     
03895     if ((argc < 0) || (argc > 0))
03896     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03897     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
03898     result = (int) ((arg1)->color);
03899     
03900     vresult = INT2NUM(result);
03901     return vresult;
03902 }
03903 
03904 
03905 static VALUE
03906 _wrap_new_BoundaryFace__SWIG_0(int argc, VALUE *argv, VALUE self) {
03907     BoundaryFace *result;
03908     
03909     if ((argc < 0) || (argc > 0))
03910     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
03911     result = (BoundaryFace *)new BoundaryFace();
03912     DATA_PTR(self) = result;
03913     return self;
03914 }
03915 
03916 
03917 static VALUE
03918 _wrap_new_BoundaryFace__SWIG_1(int argc, VALUE *argv, VALUE self) {
03919     double arg1 ;
03920     int arg2 ;
03921     BoundaryFace *result;
03922     
03923     if ((argc < 2) || (argc > 2))
03924     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
03925     arg1 = (double) NUM2DBL(argv[0]);
03926     arg2 = NUM2INT(argv[1]);
03927     result = (BoundaryFace *)new BoundaryFace(arg1,arg2);
03928     DATA_PTR(self) = result;
03929     return self;
03930 }
03931 
03932 
03933 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
03934 static VALUE
03935 _wrap_BoundaryFace_allocate(VALUE self) {
03936 #else
03937     static VALUE
03938     _wrap_BoundaryFace_allocate(int argc, VALUE *argv, VALUE self) {
03939 #endif
03940         
03941         
03942         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BoundaryFace);
03943 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
03944         rb_obj_call_init(vresult, argc, argv);
03945 #endif
03946         return vresult;
03947     }
03948     
03949 
03950 static VALUE
03951 _wrap_new_BoundaryFace__SWIG_2(int argc, VALUE *argv, VALUE self) {
03952     BoundaryFace *arg1 = 0 ;
03953     BoundaryFace *result;
03954     
03955     if ((argc < 1) || (argc > 1))
03956     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
03957     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
03958     result = (BoundaryFace *)new BoundaryFace((BoundaryFace const &)*arg1);
03959     DATA_PTR(self) = result;
03960     return self;
03961 }
03962 
03963 
03964 static VALUE _wrap_new_BoundaryFace(int nargs, VALUE *args, VALUE self) {
03965     int argc;
03966     VALUE argv[2];
03967     int ii;
03968     
03969     argc = nargs;
03970     for (ii = 0; (ii < argc) && (ii < 2); ii++) {
03971         argv[ii] = args[ii];
03972     }
03973     if (argc == 0) {
03974         return _wrap_new_BoundaryFace__SWIG_0(nargs, args, self);
03975     }
03976     if (argc == 1) {
03977         int _v;
03978         {
03979             void *ptr;
03980             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
03981         }
03982         if (_v) {
03983             return _wrap_new_BoundaryFace__SWIG_2(nargs, args, self);
03984         }
03985     }
03986     if (argc == 2) {
03987         int _v;
03988         {
03989             _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0;
03990         }
03991         if (_v) {
03992             {
03993                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
03994             }
03995             if (_v) {
03996                 return _wrap_new_BoundaryFace__SWIG_1(nargs, args, self);
03997             }
03998         }
03999     }
04000     
04001     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BoundaryFace'");
04002     return Qnil;
04003 }
04004 
04005 
04006 static void
04007 free_BoundaryFace(BoundaryFace *arg1) {
04008     delete arg1;
04009 }
04010 static VALUE
04011 _wrap_BoundaryFace_set_min_angle(int argc, VALUE *argv, VALUE self) {
04012     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
04013     double arg2 ;
04014     
04015     if ((argc < 1) || (argc > 1))
04016     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04017     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
04018     arg2 = (double) NUM2DBL(argv[0]);
04019     (arg1)->set_min_angle(arg2);
04020     
04021     return Qnil;
04022 }
04023 
04024 
04025 static VALUE
04026 _wrap_BoundaryFace_set_color(int argc, VALUE *argv, VALUE self) {
04027     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
04028     int arg2 ;
04029     
04030     if ((argc < 1) || (argc > 1))
04031     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04032     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
04033     arg2 = NUM2INT(argv[0]);
04034     (arg1)->set_color(arg2);
04035     
04036     return Qnil;
04037 }
04038 
04039 
04040 static VALUE
04041 _wrap_BoundaryFace_print(int argc, VALUE *argv, VALUE self) {
04042     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
04043     
04044     if ((argc < 0) || (argc > 0))
04045     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04046     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
04047     ((BoundaryFace const *)arg1)->print();
04048     
04049     return Qnil;
04050 }
04051 
04052 
04053 static VALUE
04054 _wrap_BoundaryFace_get_edge(int argc, VALUE *argv, VALUE self) {
04055     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
04056     int arg2 ;
04057     BoundaryEdge *result;
04058     VALUE vresult = Qnil;
04059     
04060     if ((argc < 1) || (argc > 1))
04061     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04062     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
04063     arg2 = NUM2INT(argv[0]);
04064     result = (BoundaryEdge *)((BoundaryFace const *)arg1)->get_edge(arg2);
04065     
04066     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
04067     return vresult;
04068 }
04069 
04070 
04071 static VALUE
04072 _wrap_BezierVertex_cp_set(int argc, VALUE *argv, VALUE self) {
04073     BezierVertex *arg1 = (BezierVertex *) 0 ;
04074     ControlPoint arg2 ;
04075     
04076     if ((argc < 1) || (argc > 1))
04077     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04078     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04079     {
04080         ControlPoint * ptr;
04081         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
04082         if (ptr) arg2 = *ptr;
04083     }
04084     if (arg1) (arg1)->cp = arg2;
04085     
04086     return Qnil;
04087 }
04088 
04089 
04090 static VALUE
04091 _wrap_BezierVertex_cp_get(int argc, VALUE *argv, VALUE self) {
04092     BezierVertex *arg1 = (BezierVertex *) 0 ;
04093     ControlPoint result;
04094     VALUE vresult = Qnil;
04095     
04096     if ((argc < 0) || (argc > 0))
04097     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04098     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04099     result =  ((arg1)->cp);
04100     
04101     {
04102         ControlPoint * resultptr;
04103         resultptr = new ControlPoint((ControlPoint &)result);
04104         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_ControlPoint, 1);
04105     }
04106     return vresult;
04107 }
04108 
04109 
04110 static VALUE
04111 _wrap_BezierVertex_dp_set(int argc, VALUE *argv, VALUE self) {
04112     BezierVertex *arg1 = (BezierVertex *) 0 ;
04113     DataPoint arg2 ;
04114     
04115     if ((argc < 1) || (argc > 1))
04116     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04117     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04118     {
04119         DataPoint * ptr;
04120         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_DataPoint, 1);
04121         if (ptr) arg2 = *ptr;
04122     }
04123     if (arg1) (arg1)->dp = arg2;
04124     
04125     return Qnil;
04126 }
04127 
04128 
04129 static VALUE
04130 _wrap_BezierVertex_dp_get(int argc, VALUE *argv, VALUE self) {
04131     BezierVertex *arg1 = (BezierVertex *) 0 ;
04132     DataPoint result;
04133     VALUE vresult = Qnil;
04134     
04135     if ((argc < 0) || (argc > 0))
04136     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04137     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04138     result =  ((arg1)->dp);
04139     
04140     {
04141         DataPoint * resultptr;
04142         resultptr = new DataPoint((DataPoint &)result);
04143         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_DataPoint, 1);
04144     }
04145     return vresult;
04146 }
04147 
04148 
04149 static VALUE
04150 _wrap_BezierVertex_bdry_edge_set(int argc, VALUE *argv, VALUE self) {
04151     BezierVertex *arg1 = (BezierVertex *) 0 ;
04152     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
04153     
04154     if ((argc < 1) || (argc > 1))
04155     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04156     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04157     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
04158     if (arg1) (arg1)->bdry_edge = arg2;
04159     
04160     return Qnil;
04161 }
04162 
04163 
04164 static VALUE
04165 _wrap_BezierVertex_bdry_edge_get(int argc, VALUE *argv, VALUE self) {
04166     BezierVertex *arg1 = (BezierVertex *) 0 ;
04167     BoundaryEdge *result;
04168     VALUE vresult = Qnil;
04169     
04170     if ((argc < 0) || (argc > 0))
04171     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04172     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04173     result = (BoundaryEdge *) ((arg1)->bdry_edge);
04174     
04175     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
04176     return vresult;
04177 }
04178 
04179 
04180 static VALUE
04181 _wrap_BezierVertex_bdry_vertex_set(int argc, VALUE *argv, VALUE self) {
04182     BezierVertex *arg1 = (BezierVertex *) 0 ;
04183     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
04184     
04185     if ((argc < 1) || (argc > 1))
04186     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04187     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04188     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
04189     if (arg1) (arg1)->bdry_vertex = arg2;
04190     
04191     return Qnil;
04192 }
04193 
04194 
04195 static VALUE
04196 _wrap_BezierVertex_bdry_vertex_get(int argc, VALUE *argv, VALUE self) {
04197     BezierVertex *arg1 = (BezierVertex *) 0 ;
04198     BoundaryVertex *result;
04199     VALUE vresult = Qnil;
04200     
04201     if ((argc < 0) || (argc > 0))
04202     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04203     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04204     result = (BoundaryVertex *) ((arg1)->bdry_vertex);
04205     
04206     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryVertex,0);
04207     return vresult;
04208 }
04209 
04210 
04211 static VALUE
04212 _wrap_BezierVertex_u_set(int argc, VALUE *argv, VALUE self) {
04213     BezierVertex *arg1 = (BezierVertex *) 0 ;
04214     double arg2 ;
04215     
04216     if ((argc < 1) || (argc > 1))
04217     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04218     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04219     arg2 = (double) NUM2DBL(argv[0]);
04220     if (arg1) (arg1)->u = arg2;
04221     
04222     return Qnil;
04223 }
04224 
04225 
04226 static VALUE
04227 _wrap_BezierVertex_u_get(int argc, VALUE *argv, VALUE self) {
04228     BezierVertex *arg1 = (BezierVertex *) 0 ;
04229     double result;
04230     VALUE vresult = Qnil;
04231     
04232     if ((argc < 0) || (argc > 0))
04233     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04234     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04235     result = (double) ((arg1)->u);
04236     
04237     vresult = rb_float_new(result);
04238     return vresult;
04239 }
04240 
04241 
04242 static VALUE
04243 _wrap_BezierVertex_is_removeable_set(int argc, VALUE *argv, VALUE self) {
04244     BezierVertex *arg1 = (BezierVertex *) 0 ;
04245     bool arg2 ;
04246     
04247     if ((argc < 1) || (argc > 1))
04248     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04249     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04250     arg2 = RTEST(argv[0]);
04251     if (arg1) (arg1)->is_removeable = arg2;
04252     
04253     return Qnil;
04254 }
04255 
04256 
04257 static VALUE
04258 _wrap_BezierVertex_is_removeable_get(int argc, VALUE *argv, VALUE self) {
04259     BezierVertex *arg1 = (BezierVertex *) 0 ;
04260     bool result;
04261     VALUE vresult = Qnil;
04262     
04263     if ((argc < 0) || (argc > 0))
04264     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04265     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04266     result = (bool) ((arg1)->is_removeable);
04267     
04268     vresult = result ? Qtrue : Qfalse;
04269     return vresult;
04270 }
04271 
04272 
04273 static VALUE
04274 _wrap_new_BezierVertex__SWIG_0(int argc, VALUE *argv, VALUE self) {
04275     BezierVertex *result;
04276     
04277     if ((argc < 0) || (argc > 0))
04278     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04279     result = (BezierVertex *)new BezierVertex();
04280     DATA_PTR(self) = result;
04281     return self;
04282 }
04283 
04284 
04285 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
04286 static VALUE
04287 _wrap_BezierVertex_allocate(VALUE self) {
04288 #else
04289     static VALUE
04290     _wrap_BezierVertex_allocate(int argc, VALUE *argv, VALUE self) {
04291 #endif
04292         
04293         
04294         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BezierVertex);
04295 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
04296         rb_obj_call_init(vresult, argc, argv);
04297 #endif
04298         return vresult;
04299     }
04300     
04301 
04302 static VALUE
04303 _wrap_new_BezierVertex__SWIG_1(int argc, VALUE *argv, VALUE self) {
04304     BezierVertex *arg1 = 0 ;
04305     BezierVertex *result;
04306     
04307     if ((argc < 1) || (argc > 1))
04308     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04309     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierVertex, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
04310     result = (BezierVertex *)new BezierVertex((BezierVertex const &)*arg1);
04311     DATA_PTR(self) = result;
04312     return self;
04313 }
04314 
04315 
04316 static VALUE _wrap_new_BezierVertex(int nargs, VALUE *args, VALUE self) {
04317     int argc;
04318     VALUE argv[1];
04319     int ii;
04320     
04321     argc = nargs;
04322     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
04323         argv[ii] = args[ii];
04324     }
04325     if (argc == 0) {
04326         return _wrap_new_BezierVertex__SWIG_0(nargs, args, self);
04327     }
04328     if (argc == 1) {
04329         int _v;
04330         {
04331             void *ptr;
04332             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
04333         }
04334         if (_v) {
04335             return _wrap_new_BezierVertex__SWIG_1(nargs, args, self);
04336         }
04337     }
04338     
04339     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BezierVertex'");
04340     return Qnil;
04341 }
04342 
04343 
04344 static void
04345 free_BezierVertex(BezierVertex *arg1) {
04346     delete arg1;
04347 }
04348 static VALUE
04349 _wrap_BezierVertex_set_bdry__SWIG_0(int argc, VALUE *argv, VALUE self) {
04350     BezierVertex *arg1 = (BezierVertex *) 0 ;
04351     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
04352     double arg3 ;
04353     
04354     if ((argc < 2) || (argc > 2))
04355     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
04356     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04357     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
04358     arg3 = (double) NUM2DBL(argv[1]);
04359     (arg1)->set_bdry(arg2,arg3);
04360     
04361     return Qnil;
04362 }
04363 
04364 
04365 static VALUE
04366 _wrap_BezierVertex_set_bdry__SWIG_1(int argc, VALUE *argv, VALUE self) {
04367     BezierVertex *arg1 = (BezierVertex *) 0 ;
04368     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
04369     
04370     if ((argc < 1) || (argc > 1))
04371     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04372     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04373     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
04374     (arg1)->set_bdry(arg2);
04375     
04376     return Qnil;
04377 }
04378 
04379 
04380 static VALUE _wrap_BezierVertex_set_bdry(int nargs, VALUE *args, VALUE self) {
04381     int argc;
04382     VALUE argv[4];
04383     int ii;
04384     
04385     argc = nargs + 1;
04386     argv[0] = self;
04387     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
04388         argv[ii] = args[ii-1];
04389     }
04390     if (argc == 2) {
04391         int _v;
04392         {
04393             void *ptr;
04394             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
04395         }
04396         if (_v) {
04397             {
04398                 void *ptr;
04399                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
04400             }
04401             if (_v) {
04402                 return _wrap_BezierVertex_set_bdry__SWIG_1(nargs, args, self);
04403             }
04404         }
04405     }
04406     if (argc == 3) {
04407         int _v;
04408         {
04409             void *ptr;
04410             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
04411         }
04412         if (_v) {
04413             {
04414                 void *ptr;
04415                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
04416             }
04417             if (_v) {
04418                 {
04419                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
04420                 }
04421                 if (_v) {
04422                     return _wrap_BezierVertex_set_bdry__SWIG_0(nargs, args, self);
04423                 }
04424             }
04425         }
04426     }
04427     
04428     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierVertex_set_bdry'");
04429     return Qnil;
04430 }
04431 
04432 
04433 static VALUE
04434 _wrap_BezierVertex_set_cp(int argc, VALUE *argv, VALUE self) {
04435     BezierVertex *arg1 = (BezierVertex *) 0 ;
04436     Point2D *arg2 = 0 ;
04437     
04438     if ((argc < 1) || (argc > 1))
04439     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04440     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04441     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
04442     (arg1)->set_cp((Point2D const &)*arg2);
04443     
04444     return Qnil;
04445 }
04446 
04447 
04448 static VALUE
04449 _wrap_BezierVertex_set_dp(int argc, VALUE *argv, VALUE self) {
04450     BezierVertex *arg1 = (BezierVertex *) 0 ;
04451     LinearData *arg2 = 0 ;
04452     
04453     if ((argc < 1) || (argc > 1))
04454     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04455     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04456     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_LinearData, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
04457     (arg1)->set_dp((LinearData const &)*arg2);
04458     
04459     return Qnil;
04460 }
04461 
04462 
04463 static VALUE
04464 _wrap_BezierVertex_get_cp(int argc, VALUE *argv, VALUE self) {
04465     BezierVertex *arg1 = (BezierVertex *) 0 ;
04466     Point2D *result;
04467     VALUE vresult = Qnil;
04468     
04469     if ((argc < 0) || (argc > 0))
04470     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04471     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04472     {
04473         Point2D &_result_ref = ((BezierVertex const *)arg1)->get_cp();
04474         result = (Point2D *) &_result_ref;
04475     }
04476     
04477     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
04478     return vresult;
04479 }
04480 
04481 
04482 static VALUE
04483 _wrap_BezierVertex_get_dp(int argc, VALUE *argv, VALUE self) {
04484     BezierVertex *arg1 = (BezierVertex *) 0 ;
04485     LinearData *result;
04486     VALUE vresult = Qnil;
04487     
04488     if ((argc < 0) || (argc > 0))
04489     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04490     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04491     {
04492         LinearData &_result_ref = ((BezierVertex const *)arg1)->get_dp();
04493         result = (LinearData *) &_result_ref;
04494     }
04495     
04496     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_LinearData,0);
04497     return vresult;
04498 }
04499 
04500 
04501 static VALUE
04502 _wrap_BezierVertex_get_edge(int argc, VALUE *argv, VALUE self) {
04503     BezierVertex *arg1 = (BezierVertex *) 0 ;
04504     int arg2 ;
04505     BezierEdge *result;
04506     VALUE vresult = Qnil;
04507     
04508     if ((argc < 1) || (argc > 1))
04509     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04510     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04511     arg2 = NUM2INT(argv[0]);
04512     result = (BezierEdge *)((BezierVertex const *)arg1)->get_edge(arg2);
04513     
04514     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
04515     return vresult;
04516 }
04517 
04518 
04519 static VALUE
04520 _wrap_BezierVertex_get_u__SWIG_0(int argc, VALUE *argv, VALUE self) {
04521     BezierVertex *arg1 = (BezierVertex *) 0 ;
04522     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
04523     BezierVertex *arg3 = (BezierVertex *) 0 ;
04524     double result;
04525     VALUE vresult = Qnil;
04526     
04527     if ((argc < 2) || (argc > 2))
04528     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
04529     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04530     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
04531     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
04532     result = (double)((BezierVertex const *)arg1)->get_u(arg2,arg3);
04533     
04534     vresult = rb_float_new(result);
04535     return vresult;
04536 }
04537 
04538 
04539 static VALUE
04540 _wrap_BezierVertex_get_u__SWIG_1(int argc, VALUE *argv, VALUE self) {
04541     BezierVertex *arg1 = (BezierVertex *) 0 ;
04542     BezierEdge *arg2 = (BezierEdge *) 0 ;
04543     double result;
04544     VALUE vresult = Qnil;
04545     
04546     if ((argc < 1) || (argc > 1))
04547     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04548     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04549     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
04550     result = (double)((BezierVertex const *)arg1)->get_u(arg2);
04551     
04552     vresult = rb_float_new(result);
04553     return vresult;
04554 }
04555 
04556 
04557 static VALUE _wrap_BezierVertex_get_u(int nargs, VALUE *args, VALUE self) {
04558     int argc;
04559     VALUE argv[4];
04560     int ii;
04561     
04562     argc = nargs + 1;
04563     argv[0] = self;
04564     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
04565         argv[ii] = args[ii-1];
04566     }
04567     if (argc == 2) {
04568         int _v;
04569         {
04570             void *ptr;
04571             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
04572         }
04573         if (_v) {
04574             {
04575                 void *ptr;
04576                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
04577             }
04578             if (_v) {
04579                 return _wrap_BezierVertex_get_u__SWIG_1(nargs, args, self);
04580             }
04581         }
04582     }
04583     if (argc == 3) {
04584         int _v;
04585         {
04586             void *ptr;
04587             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
04588         }
04589         if (_v) {
04590             {
04591                 void *ptr;
04592                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
04593             }
04594             if (_v) {
04595                 {
04596                     void *ptr;
04597                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
04598                 }
04599                 if (_v) {
04600                     return _wrap_BezierVertex_get_u__SWIG_0(nargs, args, self);
04601                 }
04602             }
04603         }
04604     }
04605     
04606     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierVertex_get_u'");
04607     return Qnil;
04608 }
04609 
04610 
04611 static VALUE
04612 _wrap_BezierVertex_print(int argc, VALUE *argv, VALUE self) {
04613     BezierVertex *arg1 = (BezierVertex *) 0 ;
04614     
04615     if ((argc < 0) || (argc > 0))
04616     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04617     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
04618     ((BezierVertex const *)arg1)->print();
04619     
04620     return Qnil;
04621 }
04622 
04623 
04624 static VALUE
04625 _wrap_BezierEdge_cp_set(int argc, VALUE *argv, VALUE self) {
04626     BezierEdge *arg1 = (BezierEdge *) 0 ;
04627     ControlPoint *arg2 ;
04628     
04629     if ((argc < 1) || (argc > 1))
04630     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04631     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04632     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_ControlPoint, 1);
04633     {
04634         int ii;
04635         ControlPoint *b = (ControlPoint *) arg1->cp;
04636         for (ii = 0; ii < 3; ii++) b[ii] = *((ControlPoint *) arg2 + ii);
04637     }
04638     return Qnil;
04639 }
04640 
04641 
04642 static VALUE
04643 _wrap_BezierEdge_cp_get(int argc, VALUE *argv, VALUE self) {
04644     BezierEdge *arg1 = (BezierEdge *) 0 ;
04645     ControlPoint *result;
04646     VALUE vresult = Qnil;
04647     
04648     if ((argc < 0) || (argc > 0))
04649     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04650     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04651     result = (ControlPoint *)(ControlPoint *) ((arg1)->cp);
04652     
04653     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_ControlPoint,0);
04654     return vresult;
04655 }
04656 
04657 
04658 static VALUE
04659 _wrap_BezierEdge_dp_set(int argc, VALUE *argv, VALUE self) {
04660     BezierEdge *arg1 = (BezierEdge *) 0 ;
04661     DataPoint *arg2 ;
04662     
04663     if ((argc < 1) || (argc > 1))
04664     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04665     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04666     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_DataPoint, 1);
04667     {
04668         int ii;
04669         DataPoint *b = (DataPoint *) arg1->dp;
04670         for (ii = 0; ii < 3; ii++) b[ii] = *((DataPoint *) arg2 + ii);
04671     }
04672     return Qnil;
04673 }
04674 
04675 
04676 static VALUE
04677 _wrap_BezierEdge_dp_get(int argc, VALUE *argv, VALUE self) {
04678     BezierEdge *arg1 = (BezierEdge *) 0 ;
04679     DataPoint *result;
04680     VALUE vresult = Qnil;
04681     
04682     if ((argc < 0) || (argc > 0))
04683     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04684     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04685     result = (DataPoint *)(DataPoint *) ((arg1)->dp);
04686     
04687     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_DataPoint,0);
04688     return vresult;
04689 }
04690 
04691 
04692 static VALUE
04693 _wrap_BezierEdge_bdry_set(int argc, VALUE *argv, VALUE self) {
04694     BezierEdge *arg1 = (BezierEdge *) 0 ;
04695     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
04696     
04697     if ((argc < 1) || (argc > 1))
04698     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04699     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04700     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
04701     if (arg1) (arg1)->bdry = arg2;
04702     
04703     return Qnil;
04704 }
04705 
04706 
04707 static VALUE
04708 _wrap_BezierEdge_bdry_get(int argc, VALUE *argv, VALUE self) {
04709     BezierEdge *arg1 = (BezierEdge *) 0 ;
04710     BoundaryEdge *result;
04711     VALUE vresult = Qnil;
04712     
04713     if ((argc < 0) || (argc > 0))
04714     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04715     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04716     result = (BoundaryEdge *) ((arg1)->bdry);
04717     
04718     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
04719     return vresult;
04720 }
04721 
04722 
04723 static VALUE
04724 _wrap_BezierEdge_u0_set(int argc, VALUE *argv, VALUE self) {
04725     BezierEdge *arg1 = (BezierEdge *) 0 ;
04726     double arg2 ;
04727     
04728     if ((argc < 1) || (argc > 1))
04729     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04730     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04731     arg2 = (double) NUM2DBL(argv[0]);
04732     if (arg1) (arg1)->u0 = arg2;
04733     
04734     return Qnil;
04735 }
04736 
04737 
04738 static VALUE
04739 _wrap_BezierEdge_u0_get(int argc, VALUE *argv, VALUE self) {
04740     BezierEdge *arg1 = (BezierEdge *) 0 ;
04741     double result;
04742     VALUE vresult = Qnil;
04743     
04744     if ((argc < 0) || (argc > 0))
04745     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04746     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04747     result = (double) ((arg1)->u0);
04748     
04749     vresult = rb_float_new(result);
04750     return vresult;
04751 }
04752 
04753 
04754 static VALUE
04755 _wrap_BezierEdge_u1_set(int argc, VALUE *argv, VALUE self) {
04756     BezierEdge *arg1 = (BezierEdge *) 0 ;
04757     double arg2 ;
04758     
04759     if ((argc < 1) || (argc > 1))
04760     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04761     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04762     arg2 = (double) NUM2DBL(argv[0]);
04763     if (arg1) (arg1)->u1 = arg2;
04764     
04765     return Qnil;
04766 }
04767 
04768 
04769 static VALUE
04770 _wrap_BezierEdge_u1_get(int argc, VALUE *argv, VALUE self) {
04771     BezierEdge *arg1 = (BezierEdge *) 0 ;
04772     double result;
04773     VALUE vresult = Qnil;
04774     
04775     if ((argc < 0) || (argc > 0))
04776     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04777     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04778     result = (double) ((arg1)->u1);
04779     
04780     vresult = rb_float_new(result);
04781     return vresult;
04782 }
04783 
04784 
04785 static VALUE
04786 _wrap_new_BezierEdge__SWIG_0(int argc, VALUE *argv, VALUE self) {
04787     BezierEdge *result;
04788     
04789     if ((argc < 0) || (argc > 0))
04790     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
04791     result = (BezierEdge *)new BezierEdge();
04792     DATA_PTR(self) = result;
04793     return self;
04794 }
04795 
04796 
04797 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
04798 static VALUE
04799 _wrap_BezierEdge_allocate(VALUE self) {
04800 #else
04801     static VALUE
04802     _wrap_BezierEdge_allocate(int argc, VALUE *argv, VALUE self) {
04803 #endif
04804         
04805         
04806         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BezierEdge);
04807 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
04808         rb_obj_call_init(vresult, argc, argv);
04809 #endif
04810         return vresult;
04811     }
04812     
04813 
04814 static VALUE
04815 _wrap_new_BezierEdge__SWIG_1(int argc, VALUE *argv, VALUE self) {
04816     BezierEdge *arg1 = 0 ;
04817     BezierEdge *result;
04818     
04819     if ((argc < 1) || (argc > 1))
04820     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04821     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierEdge, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
04822     result = (BezierEdge *)new BezierEdge((BezierEdge const &)*arg1);
04823     DATA_PTR(self) = result;
04824     return self;
04825 }
04826 
04827 
04828 static VALUE _wrap_new_BezierEdge(int nargs, VALUE *args, VALUE self) {
04829     int argc;
04830     VALUE argv[1];
04831     int ii;
04832     
04833     argc = nargs;
04834     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
04835         argv[ii] = args[ii];
04836     }
04837     if (argc == 0) {
04838         return _wrap_new_BezierEdge__SWIG_0(nargs, args, self);
04839     }
04840     if (argc == 1) {
04841         int _v;
04842         {
04843             void *ptr;
04844             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
04845         }
04846         if (_v) {
04847             return _wrap_new_BezierEdge__SWIG_1(nargs, args, self);
04848         }
04849     }
04850     
04851     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BezierEdge'");
04852     return Qnil;
04853 }
04854 
04855 
04856 static void
04857 free_BezierEdge(BezierEdge *arg1) {
04858     delete arg1;
04859 }
04860 static VALUE
04861 _wrap_BezierEdge_set_bdry(int argc, VALUE *argv, VALUE self) {
04862     BezierEdge *arg1 = (BezierEdge *) 0 ;
04863     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
04864     double arg3 ;
04865     double arg4 ;
04866     
04867     if ((argc < 3) || (argc > 3))
04868     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
04869     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04870     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
04871     arg3 = (double) NUM2DBL(argv[1]);
04872     arg4 = (double) NUM2DBL(argv[2]);
04873     (arg1)->set_bdry(arg2,arg3,arg4);
04874     
04875     return Qnil;
04876 }
04877 
04878 
04879 static VALUE
04880 _wrap_BezierEdge_set_cp(int argc, VALUE *argv, VALUE self) {
04881     BezierEdge *arg1 = (BezierEdge *) 0 ;
04882     Point2D *arg2 = 0 ;
04883     int arg3 ;
04884     
04885     if ((argc < 2) || (argc > 2))
04886     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
04887     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04888     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
04889     arg3 = NUM2INT(argv[1]);
04890     (arg1)->set_cp((Point2D const &)*arg2,arg3);
04891     
04892     return Qnil;
04893 }
04894 
04895 
04896 static VALUE
04897 _wrap_BezierEdge_set_dp(int argc, VALUE *argv, VALUE self) {
04898     BezierEdge *arg1 = (BezierEdge *) 0 ;
04899     LinearData *arg2 = 0 ;
04900     int arg3 ;
04901     
04902     if ((argc < 2) || (argc > 2))
04903     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
04904     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04905     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_LinearData, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
04906     arg3 = NUM2INT(argv[1]);
04907     (arg1)->set_dp((LinearData const &)*arg2,arg3);
04908     
04909     return Qnil;
04910 }
04911 
04912 
04913 static VALUE
04914 _wrap_BezierEdge_get_cp(int argc, VALUE *argv, VALUE self) {
04915     BezierEdge *arg1 = (BezierEdge *) 0 ;
04916     int arg2 ;
04917     Point2D *result;
04918     VALUE vresult = Qnil;
04919     
04920     if ((argc < 1) || (argc > 1))
04921     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04922     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04923     arg2 = NUM2INT(argv[0]);
04924     {
04925         Point2D &_result_ref = ((BezierEdge const *)arg1)->get_cp(arg2);
04926         result = (Point2D *) &_result_ref;
04927     }
04928     
04929     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
04930     return vresult;
04931 }
04932 
04933 
04934 static VALUE
04935 _wrap_BezierEdge_get_dp(int argc, VALUE *argv, VALUE self) {
04936     BezierEdge *arg1 = (BezierEdge *) 0 ;
04937     int arg2 ;
04938     LinearData *result;
04939     VALUE vresult = Qnil;
04940     
04941     if ((argc < 1) || (argc > 1))
04942     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04943     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04944     arg2 = NUM2INT(argv[0]);
04945     {
04946         LinearData &_result_ref = ((BezierEdge const *)arg1)->get_dp(arg2);
04947         result = (LinearData *) &_result_ref;
04948     }
04949     
04950     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_LinearData,0);
04951     return vresult;
04952 }
04953 
04954 
04955 static VALUE
04956 _wrap_BezierEdge_get_vertex(int argc, VALUE *argv, VALUE self) {
04957     BezierEdge *arg1 = (BezierEdge *) 0 ;
04958     int arg2 ;
04959     BezierVertex *result;
04960     VALUE vresult = Qnil;
04961     
04962     if ((argc < 1) || (argc > 1))
04963     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04964     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04965     arg2 = NUM2INT(argv[0]);
04966     result = (BezierVertex *)((BezierEdge const *)arg1)->get_vertex(arg2);
04967     
04968     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
04969     return vresult;
04970 }
04971 
04972 
04973 static VALUE
04974 _wrap_BezierEdge_get_face(int argc, VALUE *argv, VALUE self) {
04975     BezierEdge *arg1 = (BezierEdge *) 0 ;
04976     int arg2 ;
04977     BezierTriangle *result;
04978     VALUE vresult = Qnil;
04979     
04980     if ((argc < 1) || (argc > 1))
04981     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
04982     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
04983     arg2 = NUM2INT(argv[0]);
04984     result = (BezierTriangle *)((BezierEdge const *)arg1)->get_face(arg2);
04985     
04986     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierTriangle,0);
04987     return vresult;
04988 }
04989 
04990 
04991 static VALUE
04992 _wrap_BezierEdge_eval(int argc, VALUE *argv, VALUE self) {
04993     BezierEdge *arg1 = (BezierEdge *) 0 ;
04994     double arg2 ;
04995     Point2D result;
04996     VALUE vresult = Qnil;
04997     
04998     if ((argc < 1) || (argc > 1))
04999     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05000     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05001     arg2 = (double) NUM2DBL(argv[0]);
05002     result = ((BezierEdge const *)arg1)->eval(arg2);
05003     
05004     {
05005         Point2D * resultptr;
05006         resultptr = new Point2D((Point2D &)result);
05007         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
05008     }
05009     return vresult;
05010 }
05011 
05012 
05013 static VALUE
05014 _wrap_BezierEdge_dataeval(int argc, VALUE *argv, VALUE self) {
05015     BezierEdge *arg1 = (BezierEdge *) 0 ;
05016     double arg2 ;
05017     LinearData result;
05018     VALUE vresult = Qnil;
05019     
05020     if ((argc < 1) || (argc > 1))
05021     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05022     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05023     arg2 = (double) NUM2DBL(argv[0]);
05024     result = ((BezierEdge const *)arg1)->dataeval(arg2);
05025     
05026     {
05027         LinearData * resultptr;
05028         resultptr = new LinearData((LinearData &)result);
05029         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
05030     }
05031     return vresult;
05032 }
05033 
05034 
05035 static VALUE
05036 _wrap_BezierEdge_evalIntermediate(int argc, VALUE *argv, VALUE self) {
05037     BezierEdge *arg1 = (BezierEdge *) 0 ;
05038     double arg2 ;
05039     Point2D *arg3 = 0 ;
05040     Point2D *arg4 = 0 ;
05041     Point2D *arg5 = 0 ;
05042     
05043     if ((argc < 4) || (argc > 4))
05044     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
05045     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05046     arg2 = (double) NUM2DBL(argv[0]);
05047     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
05048     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05049     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05050     ((BezierEdge const *)arg1)->evalIntermediate(arg2,*arg3,*arg4,*arg5);
05051     
05052     return Qnil;
05053 }
05054 
05055 
05056 static VALUE
05057 _wrap_BezierEdge_dataevalIntermediate(int argc, VALUE *argv, VALUE self) {
05058     BezierEdge *arg1 = (BezierEdge *) 0 ;
05059     double arg2 ;
05060     LinearData *arg3 = 0 ;
05061     LinearData *arg4 = 0 ;
05062     LinearData *arg5 = 0 ;
05063     
05064     if ((argc < 4) || (argc > 4))
05065     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
05066     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05067     arg2 = (double) NUM2DBL(argv[0]);
05068     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
05069     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_LinearData, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05070     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_LinearData, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05071     ((BezierEdge const *)arg1)->dataevalIntermediate(arg2,*arg3,*arg4,*arg5);
05072     
05073     return Qnil;
05074 }
05075 
05076 
05077 static VALUE
05078 _wrap_BezierEdge_is_encroached(int argc, VALUE *argv, VALUE self) {
05079     BezierEdge *arg1 = (BezierEdge *) 0 ;
05080     Point2D *arg2 = 0 ;
05081     bool result;
05082     VALUE vresult = Qnil;
05083     
05084     if ((argc < 1) || (argc > 1))
05085     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05086     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05087     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
05088     result = (bool)((BezierEdge const *)arg1)->is_encroached(*arg2);
05089     
05090     vresult = result ? Qtrue : Qfalse;
05091     return vresult;
05092 }
05093 
05094 
05095 static VALUE
05096 _wrap_BezierEdge_left_of_curve(int argc, VALUE *argv, VALUE self) {
05097     BezierEdge *arg1 = (BezierEdge *) 0 ;
05098     Point2D *arg2 = 0 ;
05099     int arg3 ;
05100     double *arg4 = 0 ;
05101     int result;
05102     VALUE vresult = Qnil;
05103     
05104     if ((argc < 3) || (argc > 3))
05105     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
05106     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05107     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
05108     arg3 = NUM2INT(argv[1]);
05109     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_double, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05110     result = (int)((BezierEdge const *)arg1)->left_of_curve(*arg2,arg3,*arg4);
05111     
05112     vresult = INT2NUM(result);
05113     return vresult;
05114 }
05115 
05116 
05117 static VALUE
05118 _wrap_BezierEdge_print(int argc, VALUE *argv, VALUE self) {
05119     BezierEdge *arg1 = (BezierEdge *) 0 ;
05120     
05121     if ((argc < 0) || (argc > 0))
05122     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05123     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierEdge, 1);
05124     ((BezierEdge const *)arg1)->print();
05125     
05126     return Qnil;
05127 }
05128 
05129 
05130 static VALUE
05131 newton_optimal_tolerance_get(VALUE self) {
05132     VALUE _val;
05133     
05134     _val = rb_float_new(newton_optimal_tolerance);    return _val;
05135 }
05136 
05137 
05138 static VALUE
05139 newton_zero_tolerance_get(VALUE self) {
05140     VALUE _val;
05141     
05142     _val = rb_float_new(newton_zero_tolerance);    return _val;
05143 }
05144 
05145 
05146 static VALUE
05147 newton_tolerance_get(VALUE self) {
05148     VALUE _val;
05149     
05150     _val = rb_float_new(newton_tolerance);    return _val;
05151 }
05152 
05153 
05154 static VALUE
05155 newton_iterations_get(VALUE self) {
05156     VALUE _val;
05157     
05158     _val = UINT2NUM(newton_iterations);    return _val;
05159 }
05160 
05161 
05162 static VALUE
05163 _wrap_CurvedTriangle_newton_find(int argc, VALUE *argv, VALUE self) {
05164     CurvedTriangle *arg1 = (CurvedTriangle *) 0 ;
05165     Point2D *arg2 = 0 ;
05166     double *arg3 = 0 ;
05167     double *arg4 = 0 ;
05168     int result;
05169     VALUE vresult = Qnil;
05170     
05171     if ((argc < 3) || (argc > 3))
05172     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
05173     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CurvedTriangle, 1);
05174     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
05175     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_double, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
05176     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_double, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05177     result = (int)((CurvedTriangle const *)arg1)->newton_find((Point2D const &)*arg2,*arg3,*arg4);
05178     
05179     vresult = INT2NUM(result);
05180     return vresult;
05181 }
05182 
05183 
05184 static VALUE
05185 _wrap_CurvedTriangle_jacobian_matrix(int argc, VALUE *argv, VALUE self) {
05186     CurvedTriangle *arg1 = (CurvedTriangle *) 0 ;
05187     double arg2 ;
05188     double arg3 ;
05189     Point2D *arg4 = 0 ;
05190     Point2D *arg5 = 0 ;
05191     
05192     if ((argc < 4) || (argc > 4))
05193     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
05194     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CurvedTriangle, 1);
05195     arg2 = (double) NUM2DBL(argv[0]);
05196     arg3 = (double) NUM2DBL(argv[1]);
05197     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05198     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05199     ((CurvedTriangle const *)arg1)->jacobian_matrix(arg2,arg3,*arg4,*arg5);
05200     
05201     return Qnil;
05202 }
05203 
05204 
05205 static VALUE
05206 _wrap_CurvedTriangle_eval(int argc, VALUE *argv, VALUE self) {
05207     CurvedTriangle *arg1 = (CurvedTriangle *) 0 ;
05208     double arg2 ;
05209     double arg3 ;
05210     Point2D result;
05211     VALUE vresult = Qnil;
05212     
05213     if ((argc < 2) || (argc > 2))
05214     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05215     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CurvedTriangle, 1);
05216     arg2 = (double) NUM2DBL(argv[0]);
05217     arg3 = (double) NUM2DBL(argv[1]);
05218     result = ((CurvedTriangle const *)arg1)->eval(arg2,arg3);
05219     
05220     {
05221         Point2D * resultptr;
05222         resultptr = new Point2D((Point2D &)result);
05223         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
05224     }
05225     return vresult;
05226 }
05227 
05228 
05229 static void
05230 free_CurvedTriangle(CurvedTriangle *arg1) {
05231     delete arg1;
05232 }
05233 static VALUE
05234 _wrap_BezierTriangle_cp_set(int argc, VALUE *argv, VALUE self) {
05235     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05236     ControlPoint *arg2 ;
05237     
05238     if ((argc < 1) || (argc > 1))
05239     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05240     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05241     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_ControlPoint, 1);
05242     {
05243         int ii;
05244         ControlPoint *b = (ControlPoint *) arg1->cp;
05245         for (ii = 0; ii < 6; ii++) b[ii] = *((ControlPoint *) arg2 + ii);
05246     }
05247     return Qnil;
05248 }
05249 
05250 
05251 static VALUE
05252 _wrap_BezierTriangle_cp_get(int argc, VALUE *argv, VALUE self) {
05253     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05254     ControlPoint *result;
05255     VALUE vresult = Qnil;
05256     
05257     if ((argc < 0) || (argc > 0))
05258     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05259     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05260     result = (ControlPoint *)(ControlPoint *) ((arg1)->cp);
05261     
05262     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_ControlPoint,0);
05263     return vresult;
05264 }
05265 
05266 
05267 static VALUE
05268 _wrap_BezierTriangle_dp_set(int argc, VALUE *argv, VALUE self) {
05269     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05270     DataPoint *arg2 ;
05271     
05272     if ((argc < 1) || (argc > 1))
05273     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05274     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05275     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_DataPoint, 1);
05276     {
05277         int ii;
05278         DataPoint *b = (DataPoint *) arg1->dp;
05279         for (ii = 0; ii < 6; ii++) b[ii] = *((DataPoint *) arg2 + ii);
05280     }
05281     return Qnil;
05282 }
05283 
05284 
05285 static VALUE
05286 _wrap_BezierTriangle_dp_get(int argc, VALUE *argv, VALUE self) {
05287     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05288     DataPoint *result;
05289     VALUE vresult = Qnil;
05290     
05291     if ((argc < 0) || (argc > 0))
05292     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05293     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05294     result = (DataPoint *)(DataPoint *) ((arg1)->dp);
05295     
05296     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_DataPoint,0);
05297     return vresult;
05298 }
05299 
05300 
05301 static VALUE
05302 _wrap_BezierTriangle_bdry_face_set(int argc, VALUE *argv, VALUE self) {
05303     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05304     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
05305     
05306     if ((argc < 1) || (argc > 1))
05307     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05308     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05309     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
05310     if (arg1) (arg1)->bdry_face = arg2;
05311     
05312     return Qnil;
05313 }
05314 
05315 
05316 static VALUE
05317 _wrap_BezierTriangle_bdry_face_get(int argc, VALUE *argv, VALUE self) {
05318     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05319     BoundaryFace *result;
05320     VALUE vresult = Qnil;
05321     
05322     if ((argc < 0) || (argc > 0))
05323     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05324     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05325     result = (BoundaryFace *) ((arg1)->bdry_face);
05326     
05327     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
05328     return vresult;
05329 }
05330 
05331 
05332 static VALUE
05333 _wrap_new_BezierTriangle__SWIG_0(int argc, VALUE *argv, VALUE self) {
05334     BoundaryFace *arg1 = (BoundaryFace *) 0 ;
05335     BezierTriangle *result;
05336     
05337     if ((argc < 1) || (argc > 1))
05338     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05339     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BoundaryFace, 1);
05340     result = (BezierTriangle *)new BezierTriangle(arg1);
05341     DATA_PTR(self) = result;
05342     return self;
05343 }
05344 
05345 
05346 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
05347 static VALUE
05348 _wrap_BezierTriangle_allocate(VALUE self) {
05349 #else
05350     static VALUE
05351     _wrap_BezierTriangle_allocate(int argc, VALUE *argv, VALUE self) {
05352 #endif
05353         
05354         
05355         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BezierTriangle);
05356 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
05357         rb_obj_call_init(vresult, argc, argv);
05358 #endif
05359         return vresult;
05360     }
05361     
05362 
05363 static VALUE
05364 _wrap_new_BezierTriangle__SWIG_1(int argc, VALUE *argv, VALUE self) {
05365     BezierTriangle *arg1 = 0 ;
05366     BezierTriangle *result;
05367     
05368     if ((argc < 1) || (argc > 1))
05369     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05370     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
05371     result = (BezierTriangle *)new BezierTriangle((BezierTriangle const &)*arg1);
05372     DATA_PTR(self) = result;
05373     return self;
05374 }
05375 
05376 
05377 static VALUE _wrap_new_BezierTriangle(int nargs, VALUE *args, VALUE self) {
05378     int argc;
05379     VALUE argv[1];
05380     int ii;
05381     
05382     argc = nargs;
05383     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
05384         argv[ii] = args[ii];
05385     }
05386     if (argc == 1) {
05387         int _v;
05388         {
05389             void *ptr;
05390             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
05391         }
05392         if (_v) {
05393             return _wrap_new_BezierTriangle__SWIG_0(nargs, args, self);
05394         }
05395     }
05396     if (argc == 1) {
05397         int _v;
05398         {
05399             void *ptr;
05400             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
05401         }
05402         if (_v) {
05403             return _wrap_new_BezierTriangle__SWIG_1(nargs, args, self);
05404         }
05405     }
05406     
05407     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BezierTriangle'");
05408     return Qnil;
05409 }
05410 
05411 
05412 static void
05413 free_BezierTriangle(BezierTriangle *arg1) {
05414     delete arg1;
05415 }
05416 static VALUE
05417 _wrap_BezierTriangle_set_cp(int argc, VALUE *argv, VALUE self) {
05418     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05419     Point2D *arg2 = 0 ;
05420     int arg3 ;
05421     
05422     if ((argc < 2) || (argc > 2))
05423     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05424     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05425     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
05426     arg3 = NUM2INT(argv[1]);
05427     (arg1)->set_cp((Point2D const &)*arg2,arg3);
05428     
05429     return Qnil;
05430 }
05431 
05432 
05433 static VALUE
05434 _wrap_BezierTriangle_set_dp(int argc, VALUE *argv, VALUE self) {
05435     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05436     LinearData *arg2 = 0 ;
05437     int arg3 ;
05438     
05439     if ((argc < 2) || (argc > 2))
05440     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05441     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05442     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_LinearData, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
05443     arg3 = NUM2INT(argv[1]);
05444     (arg1)->set_dp((LinearData const &)*arg2,arg3);
05445     
05446     return Qnil;
05447 }
05448 
05449 
05450 static VALUE
05451 _wrap_BezierTriangle_get_cp(int argc, VALUE *argv, VALUE self) {
05452     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05453     int arg2 ;
05454     Point2D *result;
05455     VALUE vresult = Qnil;
05456     
05457     if ((argc < 1) || (argc > 1))
05458     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05459     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05460     arg2 = NUM2INT(argv[0]);
05461     {
05462         Point2D &_result_ref = ((BezierTriangle const *)arg1)->get_cp(arg2);
05463         result = (Point2D *) &_result_ref;
05464     }
05465     
05466     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
05467     return vresult;
05468 }
05469 
05470 
05471 static VALUE
05472 _wrap_BezierTriangle_get_dp(int argc, VALUE *argv, VALUE self) {
05473     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05474     int arg2 ;
05475     LinearData *result;
05476     VALUE vresult = Qnil;
05477     
05478     if ((argc < 1) || (argc > 1))
05479     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05480     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05481     arg2 = NUM2INT(argv[0]);
05482     {
05483         LinearData &_result_ref = ((BezierTriangle const *)arg1)->get_dp(arg2);
05484         result = (LinearData *) &_result_ref;
05485     }
05486     
05487     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_LinearData,0);
05488     return vresult;
05489 }
05490 
05491 
05492 static VALUE
05493 _wrap_BezierTriangle_get_edge(int argc, VALUE *argv, VALUE self) {
05494     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05495     int arg2 ;
05496     BezierEdge *result;
05497     VALUE vresult = Qnil;
05498     
05499     if ((argc < 1) || (argc > 1))
05500     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05501     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05502     arg2 = NUM2INT(argv[0]);
05503     result = (BezierEdge *)((BezierTriangle const *)arg1)->get_edge(arg2);
05504     
05505     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
05506     return vresult;
05507 }
05508 
05509 
05510 static VALUE
05511 _wrap_BezierTriangle_eval(int argc, VALUE *argv, VALUE self) {
05512     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05513     double arg2 ;
05514     double arg3 ;
05515     Point2D result;
05516     VALUE vresult = Qnil;
05517     
05518     if ((argc < 2) || (argc > 2))
05519     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05520     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05521     arg2 = (double) NUM2DBL(argv[0]);
05522     arg3 = (double) NUM2DBL(argv[1]);
05523     result = ((BezierTriangle const *)arg1)->eval(arg2,arg3);
05524     
05525     {
05526         Point2D * resultptr;
05527         resultptr = new Point2D((Point2D &)result);
05528         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
05529     }
05530     return vresult;
05531 }
05532 
05533 
05534 static VALUE
05535 _wrap_BezierTriangle_dataeval(int argc, VALUE *argv, VALUE self) {
05536     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05537     double arg2 ;
05538     double arg3 ;
05539     LinearData result;
05540     VALUE vresult = Qnil;
05541     
05542     if ((argc < 2) || (argc > 2))
05543     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05544     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05545     arg2 = (double) NUM2DBL(argv[0]);
05546     arg3 = (double) NUM2DBL(argv[1]);
05547     result = ((BezierTriangle const *)arg1)->dataeval(arg2,arg3);
05548     
05549     {
05550         LinearData * resultptr;
05551         resultptr = new LinearData((LinearData &)result);
05552         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
05553     }
05554     return vresult;
05555 }
05556 
05557 
05558 static VALUE
05559 _wrap_BezierTriangle_dataevalIntermediate(int argc, VALUE *argv, VALUE self) {
05560     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05561     double arg2 ;
05562     double arg3 ;
05563     LinearData *arg4 = 0 ;
05564     LinearData *arg5 = 0 ;
05565     LinearData *arg6 = 0 ;
05566     LinearData *arg7 = 0 ;
05567     
05568     if ((argc < 6) || (argc > 6))
05569     rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc);
05570     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05571     arg2 = (double) NUM2DBL(argv[0]);
05572     arg3 = (double) NUM2DBL(argv[1]);
05573     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_LinearData, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05574     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_LinearData, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05575     SWIG_ConvertPtr(argv[4], (void **) &arg6, SWIGTYPE_p_LinearData, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
05576     SWIG_ConvertPtr(argv[5], (void **) &arg7, SWIGTYPE_p_LinearData, 1); if (arg7 == NULL) rb_raise(rb_eTypeError, "null reference");
05577     ((BezierTriangle const *)arg1)->dataevalIntermediate(arg2,arg3,*arg4,*arg5,*arg6,*arg7);
05578     
05579     return Qnil;
05580 }
05581 
05582 
05583 static VALUE
05584 _wrap_BezierTriangle_evalIntermediate(int argc, VALUE *argv, VALUE self) {
05585     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05586     double arg2 ;
05587     double arg3 ;
05588     Point2D *arg4 = 0 ;
05589     Point2D *arg5 = 0 ;
05590     Point2D *arg6 = 0 ;
05591     Point2D *arg7 = 0 ;
05592     
05593     if ((argc < 6) || (argc > 6))
05594     rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc);
05595     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05596     arg2 = (double) NUM2DBL(argv[0]);
05597     arg3 = (double) NUM2DBL(argv[1]);
05598     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05599     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05600     SWIG_ConvertPtr(argv[4], (void **) &arg6, SWIGTYPE_p_Point2D, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
05601     SWIG_ConvertPtr(argv[5], (void **) &arg7, SWIGTYPE_p_Point2D, 1); if (arg7 == NULL) rb_raise(rb_eTypeError, "null reference");
05602     ((BezierTriangle const *)arg1)->evalIntermediate(arg2,arg3,*arg4,*arg5,*arg6,*arg7);
05603     
05604     return Qnil;
05605 }
05606 
05607 
05608 static VALUE
05609 _wrap_BezierTriangle_jacobian(int argc, VALUE *argv, VALUE self) {
05610     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05611     double arg2 ;
05612     double arg3 ;
05613     double result;
05614     VALUE vresult = Qnil;
05615     
05616     if ((argc < 2) || (argc > 2))
05617     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05618     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05619     arg2 = (double) NUM2DBL(argv[0]);
05620     arg3 = (double) NUM2DBL(argv[1]);
05621     result = (double)((BezierTriangle const *)arg1)->jacobian(arg2,arg3);
05622     
05623     vresult = rb_float_new(result);
05624     return vresult;
05625 }
05626 
05627 
05628 static VALUE
05629 _wrap_BezierTriangle_jacobian_matrix(int argc, VALUE *argv, VALUE self) {
05630     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05631     double arg2 ;
05632     double arg3 ;
05633     Point2D *arg4 = 0 ;
05634     Point2D *arg5 = 0 ;
05635     
05636     if ((argc < 4) || (argc > 4))
05637     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
05638     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05639     arg2 = (double) NUM2DBL(argv[0]);
05640     arg3 = (double) NUM2DBL(argv[1]);
05641     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05642     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05643     ((BezierTriangle const *)arg1)->jacobian_matrix(arg2,arg3,*arg4,*arg5);
05644     
05645     return Qnil;
05646 }
05647 
05648 
05649 static VALUE
05650 _wrap_BezierTriangle_bound_jacobian(int argc, VALUE *argv, VALUE self) {
05651     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05652     double *arg2 = 0 ;
05653     double *arg3 = 0 ;
05654     double *arg4 = 0 ;
05655     
05656     if ((argc < 3) || (argc > 3))
05657     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
05658     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05659     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
05660     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_double, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
05661     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_double, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05662     ((BezierTriangle const *)arg1)->bound_jacobian(*arg2,*arg3,*arg4);
05663     
05664     return Qnil;
05665 }
05666 
05667 
05668 static VALUE
05669 _wrap_BezierTriangle_small_angle(int argc, VALUE *argv, VALUE self) {
05670     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05671     bool result;
05672     VALUE vresult = Qnil;
05673     
05674     if ((argc < 0) || (argc > 0))
05675     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05676     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05677     result = (bool)((BezierTriangle const *)arg1)->small_angle();
05678     
05679     vresult = result ? Qtrue : Qfalse;
05680     return vresult;
05681 }
05682 
05683 
05684 static VALUE
05685 _wrap_BezierTriangle_is_inverted(int argc, VALUE *argv, VALUE self) {
05686     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05687     bool result;
05688     VALUE vresult = Qnil;
05689     
05690     if ((argc < 0) || (argc > 0))
05691     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05692     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05693     result = (bool)((BezierTriangle const *)arg1)->is_inverted();
05694     
05695     vresult = result ? Qtrue : Qfalse;
05696     return vresult;
05697 }
05698 
05699 
05700 static VALUE
05701 _wrap_BezierTriangle_circumcenter(int argc, VALUE *argv, VALUE self) {
05702     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05703     Point2D result;
05704     VALUE vresult = Qnil;
05705     
05706     if ((argc < 0) || (argc > 0))
05707     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05708     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05709     result = ((BezierTriangle const *)arg1)->circumcenter();
05710     
05711     {
05712         Point2D * resultptr;
05713         resultptr = new Point2D((Point2D &)result);
05714         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
05715     }
05716     return vresult;
05717 }
05718 
05719 
05720 static VALUE
05721 _wrap_BezierTriangle_print(int argc, VALUE *argv, VALUE self) {
05722     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05723     
05724     if ((argc < 0) || (argc > 0))
05725     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05726     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05727     ((BezierTriangle const *)arg1)->print();
05728     
05729     return Qnil;
05730 }
05731 
05732 
05733 static VALUE
05734 _wrap_BezierTriangle_print_mathematica(int argc, VALUE *argv, VALUE self) {
05735     BezierTriangle *arg1 = (BezierTriangle *) 0 ;
05736     
05737     if ((argc < 0) || (argc > 0))
05738     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05739     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1);
05740     ((BezierTriangle const *)arg1)->print_mathematica();
05741     
05742     return Qnil;
05743 }
05744 
05745 
05746 static VALUE
05747 _wrap_GhostTriangle_cp_set(int argc, VALUE *argv, VALUE self) {
05748     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05749     Point2D *arg2 ;
05750     
05751     if ((argc < 1) || (argc > 1))
05752     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05753     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05754     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
05755     {
05756         int ii;
05757         Point2D *b = (Point2D *) arg1->cp;
05758         for (ii = 0; ii < 6; ii++) b[ii] = *((Point2D *) arg2 + ii);
05759     }
05760     return Qnil;
05761 }
05762 
05763 
05764 static VALUE
05765 _wrap_GhostTriangle_cp_get(int argc, VALUE *argv, VALUE self) {
05766     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05767     Point2D *result;
05768     VALUE vresult = Qnil;
05769     
05770     if ((argc < 0) || (argc > 0))
05771     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05772     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05773     result = (Point2D *)(Point2D *) ((arg1)->cp);
05774     
05775     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
05776     return vresult;
05777 }
05778 
05779 
05780 static VALUE
05781 _wrap_GhostTriangle_dp_set(int argc, VALUE *argv, VALUE self) {
05782     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05783     LinearData *arg2 ;
05784     
05785     if ((argc < 1) || (argc > 1))
05786     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05787     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05788     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_LinearData, 1);
05789     {
05790         int ii;
05791         LinearData *b = (LinearData *) arg1->dp;
05792         for (ii = 0; ii < 6; ii++) b[ii] = *((LinearData *) arg2 + ii);
05793     }
05794     return Qnil;
05795 }
05796 
05797 
05798 static VALUE
05799 _wrap_GhostTriangle_dp_get(int argc, VALUE *argv, VALUE self) {
05800     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05801     LinearData *result;
05802     VALUE vresult = Qnil;
05803     
05804     if ((argc < 0) || (argc > 0))
05805     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05806     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05807     result = (LinearData *)(LinearData *) ((arg1)->dp);
05808     
05809     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_LinearData,0);
05810     return vresult;
05811 }
05812 
05813 
05814 static VALUE
05815 _wrap_new_GhostTriangle__SWIG_0(int argc, VALUE *argv, VALUE self) {
05816     BezierTriangle *arg1 = 0 ;
05817     GhostTriangle *result;
05818     
05819     if ((argc < 1) || (argc > 1))
05820     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05821     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierTriangle, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
05822     result = (GhostTriangle *)new GhostTriangle((BezierTriangle const &)*arg1);
05823     DATA_PTR(self) = result;
05824     return self;
05825 }
05826 
05827 
05828 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
05829 static VALUE
05830 _wrap_GhostTriangle_allocate(VALUE self) {
05831 #else
05832     static VALUE
05833     _wrap_GhostTriangle_allocate(int argc, VALUE *argv, VALUE self) {
05834 #endif
05835         
05836         
05837         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_GhostTriangle);
05838 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
05839         rb_obj_call_init(vresult, argc, argv);
05840 #endif
05841         return vresult;
05842     }
05843     
05844 
05845 static VALUE
05846 _wrap_new_GhostTriangle__SWIG_1(int argc, VALUE *argv, VALUE self) {
05847     GhostTriangle *result;
05848     
05849     if ((argc < 0) || (argc > 0))
05850     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
05851     result = (GhostTriangle *)new GhostTriangle();
05852     DATA_PTR(self) = result;
05853     return self;
05854 }
05855 
05856 
05857 static VALUE _wrap_new_GhostTriangle(int nargs, VALUE *args, VALUE self) {
05858     int argc;
05859     VALUE argv[1];
05860     int ii;
05861     
05862     argc = nargs;
05863     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
05864         argv[ii] = args[ii];
05865     }
05866     if (argc == 0) {
05867         return _wrap_new_GhostTriangle__SWIG_1(nargs, args, self);
05868     }
05869     if (argc == 1) {
05870         int _v;
05871         {
05872             void *ptr;
05873             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
05874         }
05875         if (_v) {
05876             return _wrap_new_GhostTriangle__SWIG_0(nargs, args, self);
05877         }
05878     }
05879     
05880     rb_raise(rb_eArgError, "No matching function for overloaded 'new_GhostTriangle'");
05881     return Qnil;
05882 }
05883 
05884 
05885 static void
05886 free_GhostTriangle(GhostTriangle *arg1) {
05887     delete arg1;
05888 }
05889 static VALUE
05890 _wrap_GhostTriangle_set_cp(int argc, VALUE *argv, VALUE self) {
05891     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05892     int arg2 ;
05893     Point2D arg3 ;
05894     
05895     if ((argc < 2) || (argc > 2))
05896     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05897     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05898     arg2 = NUM2INT(argv[0]);
05899     {
05900         Point2D * ptr;
05901         SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
05902         if (ptr) arg3 = *ptr;
05903     }
05904     (arg1)->set_cp(arg2,arg3);
05905     
05906     return Qnil;
05907 }
05908 
05909 
05910 static VALUE
05911 _wrap_GhostTriangle_get_cp(int argc, VALUE *argv, VALUE self) {
05912     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05913     int arg2 ;
05914     Point2D result;
05915     VALUE vresult = Qnil;
05916     
05917     if ((argc < 1) || (argc > 1))
05918     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
05919     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05920     arg2 = NUM2INT(argv[0]);
05921     result = ((GhostTriangle const *)arg1)->get_cp(arg2);
05922     
05923     {
05924         Point2D * resultptr;
05925         resultptr = new Point2D((Point2D &)result);
05926         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
05927     }
05928     return vresult;
05929 }
05930 
05931 
05932 static VALUE
05933 _wrap_GhostTriangle_jacobian_matrix(int argc, VALUE *argv, VALUE self) {
05934     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05935     double arg2 ;
05936     double arg3 ;
05937     Point2D *arg4 = 0 ;
05938     Point2D *arg5 = 0 ;
05939     
05940     if ((argc < 4) || (argc > 4))
05941     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
05942     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05943     arg2 = (double) NUM2DBL(argv[0]);
05944     arg3 = (double) NUM2DBL(argv[1]);
05945     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
05946     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
05947     ((GhostTriangle const *)arg1)->jacobian_matrix(arg2,arg3,*arg4,*arg5);
05948     
05949     return Qnil;
05950 }
05951 
05952 
05953 static VALUE
05954 _wrap_GhostTriangle_jacobian(int argc, VALUE *argv, VALUE self) {
05955     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05956     double arg2 ;
05957     double arg3 ;
05958     double result;
05959     VALUE vresult = Qnil;
05960     
05961     if ((argc < 2) || (argc > 2))
05962     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05963     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05964     arg2 = (double) NUM2DBL(argv[0]);
05965     arg3 = (double) NUM2DBL(argv[1]);
05966     result = (double)((GhostTriangle const *)arg1)->jacobian(arg2,arg3);
05967     
05968     vresult = rb_float_new(result);
05969     return vresult;
05970 }
05971 
05972 
05973 static VALUE
05974 _wrap_GhostTriangle_dataeval(int argc, VALUE *argv, VALUE self) {
05975     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
05976     double arg2 ;
05977     double arg3 ;
05978     LinearData result;
05979     VALUE vresult = Qnil;
05980     
05981     if ((argc < 2) || (argc > 2))
05982     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
05983     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
05984     arg2 = (double) NUM2DBL(argv[0]);
05985     arg3 = (double) NUM2DBL(argv[1]);
05986     result = ((GhostTriangle const *)arg1)->dataeval(arg2,arg3);
05987     
05988     {
05989         LinearData * resultptr;
05990         resultptr = new LinearData((LinearData &)result);
05991         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_LinearData, 1);
05992     }
05993     return vresult;
05994 }
05995 
05996 
05997 static VALUE
05998 _wrap_GhostTriangle_eval(int argc, VALUE *argv, VALUE self) {
05999     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
06000     double arg2 ;
06001     double arg3 ;
06002     Point2D result;
06003     VALUE vresult = Qnil;
06004     
06005     if ((argc < 2) || (argc > 2))
06006     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
06007     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
06008     arg2 = (double) NUM2DBL(argv[0]);
06009     arg3 = (double) NUM2DBL(argv[1]);
06010     result = ((GhostTriangle const *)arg1)->eval(arg2,arg3);
06011     
06012     {
06013         Point2D * resultptr;
06014         resultptr = new Point2D((Point2D &)result);
06015         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
06016     }
06017     return vresult;
06018 }
06019 
06020 
06021 static VALUE
06022 _wrap_GhostTriangle_print(int argc, VALUE *argv, VALUE self) {
06023     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
06024     
06025     if ((argc < 0) || (argc > 0))
06026     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06027     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
06028     ((GhostTriangle const *)arg1)->print();
06029     
06030     return Qnil;
06031 }
06032 
06033 
06034 static VALUE
06035 _wrap_GhostTriangle_print_mathematica(int argc, VALUE *argv, VALUE self) {
06036     GhostTriangle *arg1 = (GhostTriangle *) 0 ;
06037     
06038     if ((argc < 0) || (argc > 0))
06039     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06040     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_GhostTriangle, 1);
06041     ((GhostTriangle const *)arg1)->print_mathematica();
06042     
06043     return Qnil;
06044 }
06045 
06046 
06047 static VALUE
06048 _wrap_BezierTuple_v_set(int argc, VALUE *argv, VALUE self) {
06049     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06050     BezierVertex *arg2 = (BezierVertex *) 0 ;
06051     
06052     if ((argc < 1) || (argc > 1))
06053     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06054     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06055     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
06056     if (arg1) (arg1)->v = arg2;
06057     
06058     return Qnil;
06059 }
06060 
06061 
06062 static VALUE
06063 _wrap_BezierTuple_v_get(int argc, VALUE *argv, VALUE self) {
06064     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06065     BezierVertex *result;
06066     VALUE vresult = Qnil;
06067     
06068     if ((argc < 0) || (argc > 0))
06069     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06070     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06071     result = (BezierVertex *) ((arg1)->v);
06072     
06073     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
06074     return vresult;
06075 }
06076 
06077 
06078 static VALUE
06079 _wrap_BezierTuple_e_set(int argc, VALUE *argv, VALUE self) {
06080     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06081     BezierEdge *arg2 = (BezierEdge *) 0 ;
06082     
06083     if ((argc < 1) || (argc > 1))
06084     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06085     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06086     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
06087     if (arg1) (arg1)->e = arg2;
06088     
06089     return Qnil;
06090 }
06091 
06092 
06093 static VALUE
06094 _wrap_BezierTuple_e_get(int argc, VALUE *argv, VALUE self) {
06095     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06096     BezierEdge *result;
06097     VALUE vresult = Qnil;
06098     
06099     if ((argc < 0) || (argc > 0))
06100     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06101     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06102     result = (BezierEdge *) ((arg1)->e);
06103     
06104     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
06105     return vresult;
06106 }
06107 
06108 
06109 static VALUE
06110 _wrap_BezierTuple_f_set(int argc, VALUE *argv, VALUE self) {
06111     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06112     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
06113     
06114     if ((argc < 1) || (argc > 1))
06115     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06116     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06117     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
06118     if (arg1) (arg1)->f = arg2;
06119     
06120     return Qnil;
06121 }
06122 
06123 
06124 static VALUE
06125 _wrap_BezierTuple_f_get(int argc, VALUE *argv, VALUE self) {
06126     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06127     BezierTriangle *result;
06128     VALUE vresult = Qnil;
06129     
06130     if ((argc < 0) || (argc > 0))
06131     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06132     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06133     result = (BezierTriangle *) ((arg1)->f);
06134     
06135     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierTriangle,0);
06136     return vresult;
06137 }
06138 
06139 
06140 static VALUE
06141 _wrap_new_BezierTuple__SWIG_0(int argc, VALUE *argv, VALUE self) {
06142     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *result;
06143     
06144     if ((argc < 0) || (argc > 0))
06145     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06146     result = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *)new CellTuple<BezierVertex,BezierEdge,BezierTriangle >();
06147     DATA_PTR(self) = result;
06148     return self;
06149 }
06150 
06151 
06152 static VALUE
06153 _wrap_new_BezierTuple__SWIG_1(int argc, VALUE *argv, VALUE self) {
06154     BezierVertex *arg1 = (BezierVertex *) 0 ;
06155     BezierEdge *arg2 = (BezierEdge *) 0 ;
06156     BezierTriangle *arg3 = (BezierTriangle *) 0 ;
06157     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *result;
06158     
06159     if ((argc < 3) || (argc > 3))
06160     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
06161     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierVertex, 1);
06162     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
06163     SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_BezierTriangle, 1);
06164     result = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *)new CellTuple<BezierVertex,BezierEdge,BezierTriangle >(arg1,arg2,arg3);
06165     DATA_PTR(self) = result;
06166     return self;
06167 }
06168 
06169 
06170 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
06171 static VALUE
06172 _wrap_BezierTuple_allocate(VALUE self) {
06173 #else
06174     static VALUE
06175     _wrap_BezierTuple_allocate(int argc, VALUE *argv, VALUE self) {
06176 #endif
06177         
06178         
06179         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t);
06180 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
06181         rb_obj_call_init(vresult, argc, argv);
06182 #endif
06183         return vresult;
06184     }
06185     
06186 
06187 static VALUE
06188 _wrap_new_BezierTuple__SWIG_2(int argc, VALUE *argv, VALUE self) {
06189     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = 0 ;
06190     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *result;
06191     
06192     if ((argc < 1) || (argc > 1))
06193     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06194     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
06195     result = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *)new CellTuple<BezierVertex,BezierEdge,BezierTriangle >((CellTuple<BezierVertex,BezierEdge,BezierTriangle > const &)*arg1);
06196     DATA_PTR(self) = result;
06197     return self;
06198 }
06199 
06200 
06201 static VALUE _wrap_new_BezierTuple(int nargs, VALUE *args, VALUE self) {
06202     int argc;
06203     VALUE argv[3];
06204     int ii;
06205     
06206     argc = nargs;
06207     for (ii = 0; (ii < argc) && (ii < 3); ii++) {
06208         argv[ii] = args[ii];
06209     }
06210     if (argc == 0) {
06211         return _wrap_new_BezierTuple__SWIG_0(nargs, args, self);
06212     }
06213     if (argc == 1) {
06214         int _v;
06215         {
06216             void *ptr;
06217             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 0) != -1)) ? 1 : 0;
06218         }
06219         if (_v) {
06220             return _wrap_new_BezierTuple__SWIG_2(nargs, args, self);
06221         }
06222     }
06223     if (argc == 3) {
06224         int _v;
06225         {
06226             void *ptr;
06227             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
06228         }
06229         if (_v) {
06230             {
06231                 void *ptr;
06232                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
06233             }
06234             if (_v) {
06235                 {
06236                     void *ptr;
06237                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
06238                 }
06239                 if (_v) {
06240                     return _wrap_new_BezierTuple__SWIG_1(nargs, args, self);
06241                 }
06242             }
06243         }
06244     }
06245     
06246     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BezierTuple'");
06247     return Qnil;
06248 }
06249 
06250 
06251 static VALUE
06252 _wrap_BezierTuple_print(int argc, VALUE *argv, VALUE self) {
06253     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06254     
06255     if ((argc < 0) || (argc > 0))
06256     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06257     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06258     (arg1)->print();
06259     
06260     return Qnil;
06261 }
06262 
06263 
06264 static VALUE
06265 _wrap_BezierTuple_print_detail(int argc, VALUE *argv, VALUE self) {
06266     CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1 = (CellTuple<BezierVertex,BezierEdge,BezierTriangle > *) 0 ;
06267     
06268     if ((argc < 0) || (argc > 0))
06269     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06270     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 1);
06271     (arg1)->print_detail();
06272     
06273     return Qnil;
06274 }
06275 
06276 
06277 static void
06278 free_CellTuplelBezierVertexcBezierEdgecBezierTriangle_g___(CellTuple<BezierVertex,BezierEdge,BezierTriangle > *arg1) {
06279     delete arg1;
06280 }
06281 static VALUE
06282 _wrap_BoundaryTuple_v_set(int argc, VALUE *argv, VALUE self) {
06283     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06284     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
06285     
06286     if ((argc < 1) || (argc > 1))
06287     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06288     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06289     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
06290     if (arg1) (arg1)->v = arg2;
06291     
06292     return Qnil;
06293 }
06294 
06295 
06296 static VALUE
06297 _wrap_BoundaryTuple_v_get(int argc, VALUE *argv, VALUE self) {
06298     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06299     BoundaryVertex *result;
06300     VALUE vresult = Qnil;
06301     
06302     if ((argc < 0) || (argc > 0))
06303     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06304     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06305     result = (BoundaryVertex *) ((arg1)->v);
06306     
06307     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryVertex,0);
06308     return vresult;
06309 }
06310 
06311 
06312 static VALUE
06313 _wrap_BoundaryTuple_e_set(int argc, VALUE *argv, VALUE self) {
06314     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06315     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
06316     
06317     if ((argc < 1) || (argc > 1))
06318     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06319     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06320     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
06321     if (arg1) (arg1)->e = arg2;
06322     
06323     return Qnil;
06324 }
06325 
06326 
06327 static VALUE
06328 _wrap_BoundaryTuple_e_get(int argc, VALUE *argv, VALUE self) {
06329     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06330     BoundaryEdge *result;
06331     VALUE vresult = Qnil;
06332     
06333     if ((argc < 0) || (argc > 0))
06334     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06335     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06336     result = (BoundaryEdge *) ((arg1)->e);
06337     
06338     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
06339     return vresult;
06340 }
06341 
06342 
06343 static VALUE
06344 _wrap_BoundaryTuple_f_set(int argc, VALUE *argv, VALUE self) {
06345     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06346     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
06347     
06348     if ((argc < 1) || (argc > 1))
06349     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06350     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06351     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
06352     if (arg1) (arg1)->f = arg2;
06353     
06354     return Qnil;
06355 }
06356 
06357 
06358 static VALUE
06359 _wrap_BoundaryTuple_f_get(int argc, VALUE *argv, VALUE self) {
06360     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06361     BoundaryFace *result;
06362     VALUE vresult = Qnil;
06363     
06364     if ((argc < 0) || (argc > 0))
06365     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06366     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06367     result = (BoundaryFace *) ((arg1)->f);
06368     
06369     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
06370     return vresult;
06371 }
06372 
06373 
06374 static VALUE
06375 _wrap_new_BoundaryTuple__SWIG_0(int argc, VALUE *argv, VALUE self) {
06376     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *result;
06377     
06378     if ((argc < 0) || (argc > 0))
06379     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06380     result = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *)new CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace >();
06381     DATA_PTR(self) = result;
06382     return self;
06383 }
06384 
06385 
06386 static VALUE
06387 _wrap_new_BoundaryTuple__SWIG_1(int argc, VALUE *argv, VALUE self) {
06388     BoundaryVertex *arg1 = (BoundaryVertex *) 0 ;
06389     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
06390     BoundaryFace *arg3 = (BoundaryFace *) 0 ;
06391     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *result;
06392     
06393     if ((argc < 3) || (argc > 3))
06394     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
06395     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BoundaryVertex, 1);
06396     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
06397     SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_BoundaryFace, 1);
06398     result = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *)new CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace >(arg1,arg2,arg3);
06399     DATA_PTR(self) = result;
06400     return self;
06401 }
06402 
06403 
06404 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
06405 static VALUE
06406 _wrap_BoundaryTuple_allocate(VALUE self) {
06407 #else
06408     static VALUE
06409     _wrap_BoundaryTuple_allocate(int argc, VALUE *argv, VALUE self) {
06410 #endif
06411         
06412         
06413         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t);
06414 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
06415         rb_obj_call_init(vresult, argc, argv);
06416 #endif
06417         return vresult;
06418     }
06419     
06420 
06421 static VALUE
06422 _wrap_new_BoundaryTuple__SWIG_2(int argc, VALUE *argv, VALUE self) {
06423     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = 0 ;
06424     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *result;
06425     
06426     if ((argc < 1) || (argc > 1))
06427     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06428     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
06429     result = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *)new CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace >((CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > const &)*arg1);
06430     DATA_PTR(self) = result;
06431     return self;
06432 }
06433 
06434 
06435 static VALUE _wrap_new_BoundaryTuple(int nargs, VALUE *args, VALUE self) {
06436     int argc;
06437     VALUE argv[3];
06438     int ii;
06439     
06440     argc = nargs;
06441     for (ii = 0; (ii < argc) && (ii < 3); ii++) {
06442         argv[ii] = args[ii];
06443     }
06444     if (argc == 0) {
06445         return _wrap_new_BoundaryTuple__SWIG_0(nargs, args, self);
06446     }
06447     if (argc == 1) {
06448         int _v;
06449         {
06450             void *ptr;
06451             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 0) != -1)) ? 1 : 0;
06452         }
06453         if (_v) {
06454             return _wrap_new_BoundaryTuple__SWIG_2(nargs, args, self);
06455         }
06456     }
06457     if (argc == 3) {
06458         int _v;
06459         {
06460             void *ptr;
06461             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
06462         }
06463         if (_v) {
06464             {
06465                 void *ptr;
06466                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
06467             }
06468             if (_v) {
06469                 {
06470                     void *ptr;
06471                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
06472                 }
06473                 if (_v) {
06474                     return _wrap_new_BoundaryTuple__SWIG_1(nargs, args, self);
06475                 }
06476             }
06477         }
06478     }
06479     
06480     rb_raise(rb_eArgError, "No matching function for overloaded 'new_BoundaryTuple'");
06481     return Qnil;
06482 }
06483 
06484 
06485 static VALUE
06486 _wrap_BoundaryTuple_print(int argc, VALUE *argv, VALUE self) {
06487     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06488     
06489     if ((argc < 0) || (argc > 0))
06490     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06491     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06492     (arg1)->print();
06493     
06494     return Qnil;
06495 }
06496 
06497 
06498 static VALUE
06499 _wrap_BoundaryTuple_print_detail(int argc, VALUE *argv, VALUE self) {
06500     CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1 = (CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *) 0 ;
06501     
06502     if ((argc < 0) || (argc > 0))
06503     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06504     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 1);
06505     (arg1)->print_detail();
06506     
06507     return Qnil;
06508 }
06509 
06510 
06511 static void
06512 free_CellTuplelBoundaryVertexcBoundaryEdgecBoundaryFace_g___(CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *arg1) {
06513     delete arg1;
06514 }
06515 static VALUE
06516 _wrap_QBSpline_b_set(int argc, VALUE *argv, VALUE self) {
06517     QBSpline *arg1 = (QBSpline *) 0 ;
06518     vector<ControlPoint > arg2 ;
06519     
06520     if ((argc < 1) || (argc > 1))
06521     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06522     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06523     {
06524         vector<ControlPoint > * ptr;
06525         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 1);
06526         if (ptr) arg2 = *ptr;
06527     }
06528     if (arg1) (arg1)->b = arg2;
06529     
06530     return Qnil;
06531 }
06532 
06533 
06534 static VALUE
06535 _wrap_QBSpline_b_get(int argc, VALUE *argv, VALUE self) {
06536     QBSpline *arg1 = (QBSpline *) 0 ;
06537     vector<ControlPoint > result;
06538     VALUE vresult = Qnil;
06539     
06540     if ((argc < 0) || (argc > 0))
06541     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06542     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06543     result =  ((arg1)->b);
06544     
06545     {
06546         vector<ControlPoint > * resultptr;
06547         resultptr = new vector<ControlPoint >((vector<ControlPoint > &)result);
06548         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 1);
06549     }
06550     return vresult;
06551 }
06552 
06553 
06554 static VALUE
06555 _wrap_QBSpline_k_set(int argc, VALUE *argv, VALUE self) {
06556     QBSpline *arg1 = (QBSpline *) 0 ;
06557     vector<double > arg2 ;
06558     
06559     if ((argc < 1) || (argc > 1))
06560     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06561     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06562     {
06563         vector<double > * ptr;
06564         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_vectorTdouble_t, 1);
06565         if (ptr) arg2 = *ptr;
06566     }
06567     if (arg1) (arg1)->k = arg2;
06568     
06569     return Qnil;
06570 }
06571 
06572 
06573 static VALUE
06574 _wrap_QBSpline_k_get(int argc, VALUE *argv, VALUE self) {
06575     QBSpline *arg1 = (QBSpline *) 0 ;
06576     vector<double > result;
06577     VALUE vresult = Qnil;
06578     
06579     if ((argc < 0) || (argc > 0))
06580     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06581     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06582     result =  ((arg1)->k);
06583     
06584     {
06585         vector<double > * resultptr;
06586         resultptr = new vector<double >((vector<double > &)result);
06587         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_vectorTdouble_t, 1);
06588     }
06589     return vresult;
06590 }
06591 
06592 
06593 static VALUE
06594 _wrap_QBSpline_vertexs_set(int argc, VALUE *argv, VALUE self) {
06595     QBSpline *arg1 = (QBSpline *) 0 ;
06596     vector<BezierVertex * > *arg2 = (vector<BezierVertex * > *) 0 ;
06597     
06598     if ((argc < 1) || (argc > 1))
06599     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06600     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06601     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBezierVertex_p_t, 1);
06602     if (arg1) (arg1)->vertexs = *arg2;
06603     
06604     return Qnil;
06605 }
06606 
06607 
06608 static VALUE
06609 _wrap_QBSpline_vertexs_get(int argc, VALUE *argv, VALUE self) {
06610     QBSpline *arg1 = (QBSpline *) 0 ;
06611     vector<BezierVertex * > *result;
06612     VALUE vresult = Qnil;
06613     
06614     if ((argc < 0) || (argc > 0))
06615     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06616     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06617     result = (vector<BezierVertex * > *)& ((arg1)->vertexs);
06618     
06619     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBezierVertex_p_t,0);
06620     return vresult;
06621 }
06622 
06623 
06624 static VALUE
06625 _wrap_QBSpline_closed_set(int argc, VALUE *argv, VALUE self) {
06626     QBSpline *arg1 = (QBSpline *) 0 ;
06627     bool arg2 ;
06628     
06629     if ((argc < 1) || (argc > 1))
06630     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06631     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06632     arg2 = RTEST(argv[0]);
06633     if (arg1) (arg1)->closed = arg2;
06634     
06635     return Qnil;
06636 }
06637 
06638 
06639 static VALUE
06640 _wrap_QBSpline_closed_get(int argc, VALUE *argv, VALUE self) {
06641     QBSpline *arg1 = (QBSpline *) 0 ;
06642     bool result;
06643     VALUE vresult = Qnil;
06644     
06645     if ((argc < 0) || (argc > 0))
06646     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06647     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06648     result = (bool) ((arg1)->closed);
06649     
06650     vresult = result ? Qtrue : Qfalse;
06651     return vresult;
06652 }
06653 
06654 
06655 static VALUE
06656 _wrap_QBSpline_restlength_set(int argc, VALUE *argv, VALUE self) {
06657     QBSpline *arg1 = (QBSpline *) 0 ;
06658     double arg2 ;
06659     
06660     if ((argc < 1) || (argc > 1))
06661     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06662     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06663     arg2 = (double) NUM2DBL(argv[0]);
06664     if (arg1) (arg1)->restlength = arg2;
06665     
06666     return Qnil;
06667 }
06668 
06669 
06670 static VALUE
06671 _wrap_QBSpline_restlength_get(int argc, VALUE *argv, VALUE self) {
06672     QBSpline *arg1 = (QBSpline *) 0 ;
06673     double result;
06674     VALUE vresult = Qnil;
06675     
06676     if ((argc < 0) || (argc > 0))
06677     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06678     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06679     result = (double) ((arg1)->restlength);
06680     
06681     vresult = rb_float_new(result);
06682     return vresult;
06683 }
06684 
06685 
06686 static VALUE
06687 _wrap_QBSpline_bdry_mesh_set(int argc, VALUE *argv, VALUE self) {
06688     QBSpline *arg1 = (QBSpline *) 0 ;
06689     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
06690     
06691     if ((argc < 1) || (argc > 1))
06692     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06693     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06694     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
06695     if (arg1) (arg1)->bdry_mesh = arg2;
06696     
06697     return Qnil;
06698 }
06699 
06700 
06701 static VALUE
06702 _wrap_QBSpline_bdry_mesh_get(int argc, VALUE *argv, VALUE self) {
06703     QBSpline *arg1 = (QBSpline *) 0 ;
06704     BoundaryMesh *result;
06705     VALUE vresult = Qnil;
06706     
06707     if ((argc < 0) || (argc > 0))
06708     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06709     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06710     result = (BoundaryMesh *) ((arg1)->bdry_mesh);
06711     
06712     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryMesh,0);
06713     return vresult;
06714 }
06715 
06716 
06717 static VALUE
06718 _wrap_new_QBSpline__SWIG_0(int argc, VALUE *argv, VALUE self) {
06719     vector<ControlPoint > *arg1 = 0 ;
06720     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
06721     QBSpline *result;
06722     
06723     if ((argc < 2) || (argc > 2))
06724     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
06725     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
06726     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
06727     result = (QBSpline *)new QBSpline((vector<ControlPoint > const &)*arg1,arg2);
06728     DATA_PTR(self) = result;
06729     return self;
06730 }
06731 
06732 
06733 static VALUE
06734 _wrap_new_QBSpline__SWIG_1(int argc, VALUE *argv, VALUE self) {
06735     vector<ControlPoint > *arg1 = 0 ;
06736     vector<double > *arg2 = 0 ;
06737     BoundaryMesh *arg3 = (BoundaryMesh *) 0 ;
06738     QBSpline *result;
06739     
06740     if ((argc < 3) || (argc > 3))
06741     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
06742     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
06743     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_vectorTdouble_t, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
06744     SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_BoundaryMesh, 1);
06745     result = (QBSpline *)new QBSpline((vector<ControlPoint > const &)*arg1,(vector<double > const &)*arg2,arg3);
06746     DATA_PTR(self) = result;
06747     return self;
06748 }
06749 
06750 
06751 static VALUE
06752 _wrap_new_QBSpline__SWIG_2(int argc, VALUE *argv, VALUE self) {
06753     vector<ControlPoint > *arg1 = 0 ;
06754     vector<double > *arg2 = 0 ;
06755     BoundaryMesh *arg3 = (BoundaryMesh *) 0 ;
06756     double arg4 ;
06757     QBSpline *result;
06758     
06759     if ((argc < 4) || (argc > 4))
06760     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
06761     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
06762     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_vectorTdouble_t, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
06763     SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_BoundaryMesh, 1);
06764     arg4 = (double) NUM2DBL(argv[3]);
06765     result = (QBSpline *)new QBSpline((vector<ControlPoint > const &)*arg1,(vector<double > const &)*arg2,arg3,arg4);
06766     DATA_PTR(self) = result;
06767     return self;
06768 }
06769 
06770 
06771 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
06772 static VALUE
06773 _wrap_QBSpline_allocate(VALUE self) {
06774 #else
06775     static VALUE
06776     _wrap_QBSpline_allocate(int argc, VALUE *argv, VALUE self) {
06777 #endif
06778         
06779         
06780         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_QBSpline);
06781 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
06782         rb_obj_call_init(vresult, argc, argv);
06783 #endif
06784         return vresult;
06785     }
06786     
06787 
06788 static VALUE
06789 _wrap_new_QBSpline__SWIG_3(int argc, VALUE *argv, VALUE self) {
06790     QBSpline *arg1 = 0 ;
06791     QBSpline *result;
06792     
06793     if ((argc < 1) || (argc > 1))
06794     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
06795     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_QBSpline, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
06796     result = (QBSpline *)new QBSpline((QBSpline const &)*arg1);
06797     DATA_PTR(self) = result;
06798     return self;
06799 }
06800 
06801 
06802 static VALUE _wrap_new_QBSpline(int nargs, VALUE *args, VALUE self) {
06803     int argc;
06804     VALUE argv[4];
06805     int ii;
06806     
06807     argc = nargs;
06808     for (ii = 0; (ii < argc) && (ii < 4); ii++) {
06809         argv[ii] = args[ii];
06810     }
06811     if (argc == 1) {
06812         int _v;
06813         {
06814             void *ptr;
06815             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_QBSpline, 0) != -1)) ? 1 : 0;
06816         }
06817         if (_v) {
06818             return _wrap_new_QBSpline__SWIG_3(nargs, args, self);
06819         }
06820     }
06821     if (argc == 2) {
06822         int _v;
06823         {
06824             void *ptr;
06825             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 0) != -1)) ? 1 : 0;
06826         }
06827         if (_v) {
06828             {
06829                 void *ptr;
06830                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
06831             }
06832             if (_v) {
06833                 return _wrap_new_QBSpline__SWIG_0(nargs, args, self);
06834             }
06835         }
06836     }
06837     if (argc == 3) {
06838         int _v;
06839         {
06840             void *ptr;
06841             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 0) != -1)) ? 1 : 0;
06842         }
06843         if (_v) {
06844             {
06845                 void *ptr;
06846                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_vectorTdouble_t, 0) != -1)) ? 1 : 0;
06847             }
06848             if (_v) {
06849                 {
06850                     void *ptr;
06851                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
06852                 }
06853                 if (_v) {
06854                     return _wrap_new_QBSpline__SWIG_1(nargs, args, self);
06855                 }
06856             }
06857         }
06858     }
06859     if (argc == 4) {
06860         int _v;
06861         {
06862             void *ptr;
06863             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_vectorTlistTPoint2D_t__iterator_t, 0) != -1)) ? 1 : 0;
06864         }
06865         if (_v) {
06866             {
06867                 void *ptr;
06868                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_vectorTdouble_t, 0) != -1)) ? 1 : 0;
06869             }
06870             if (_v) {
06871                 {
06872                     void *ptr;
06873                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
06874                 }
06875                 if (_v) {
06876                     {
06877                         _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
06878                     }
06879                     if (_v) {
06880                         return _wrap_new_QBSpline__SWIG_2(nargs, args, self);
06881                     }
06882                 }
06883             }
06884         }
06885     }
06886     
06887     rb_raise(rb_eArgError, "No matching function for overloaded 'new_QBSpline'");
06888     return Qnil;
06889 }
06890 
06891 
06892 static void
06893 free_QBSpline(QBSpline *arg1) {
06894     delete arg1;
06895 }
06896 static VALUE
06897 _wrap_QBSpline_set_bezier_vertex(int argc, VALUE *argv, VALUE self) {
06898     QBSpline *arg1 = (QBSpline *) 0 ;
06899     double arg2 ;
06900     BezierVertex *arg3 = (BezierVertex *) 0 ;
06901     
06902     if ((argc < 2) || (argc > 2))
06903     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
06904     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06905     arg2 = (double) NUM2DBL(argv[0]);
06906     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
06907     (arg1)->set_bezier_vertex(arg2,arg3);
06908     
06909     return Qnil;
06910 }
06911 
06912 
06913 static VALUE
06914 _wrap_QBSpline_move(int argc, VALUE *argv, VALUE self) {
06915     QBSpline *arg1 = (QBSpline *) 0 ;
06916     Point2D *arg2 = (Point2D *) 0 ;
06917     Point2D *arg3 = (Point2D *) 0 ;
06918     
06919     if ((argc < 2) || (argc > 2))
06920     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
06921     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06922     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
06923     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1);
06924     (arg1)->move(arg2,arg3);
06925     
06926     return Qnil;
06927 }
06928 
06929 
06930 static VALUE
06931 _wrap_QBSpline_add_knot(int argc, VALUE *argv, VALUE self) {
06932     QBSpline *arg1 = (QBSpline *) 0 ;
06933     double arg2 ;
06934     ControlPoint *arg3 = 0 ;
06935     ControlPoint *arg4 = 0 ;
06936     ControlPoint *arg5 = 0 ;
06937     
06938     if ((argc < 4) || (argc > 4))
06939     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
06940     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06941     arg2 = (double) NUM2DBL(argv[0]);
06942     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_ControlPoint, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
06943     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_ControlPoint, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
06944     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_ControlPoint, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
06945     (arg1)->add_knot(arg2,*arg3,*arg4,*arg5);
06946     
06947     return Qnil;
06948 }
06949 
06950 
06951 static VALUE
06952 _wrap_QBSpline_remove_knot(int argc, VALUE *argv, VALUE self) {
06953     QBSpline *arg1 = (QBSpline *) 0 ;
06954     double arg2 ;
06955     ControlPoint *arg3 = 0 ;
06956     double *arg4 = 0 ;
06957     double *arg5 = 0 ;
06958     bool result;
06959     VALUE vresult = Qnil;
06960     
06961     if ((argc < 4) || (argc > 4))
06962     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
06963     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06964     arg2 = (double) NUM2DBL(argv[0]);
06965     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_ControlPoint, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
06966     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_double, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
06967     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_double, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
06968     result = (bool)(arg1)->remove_knot(arg2,*arg3,*arg4,*arg5);
06969     
06970     vresult = result ? Qtrue : Qfalse;
06971     return vresult;
06972 }
06973 
06974 
06975 static VALUE
06976 _wrap_QBSpline_get_num_segments(int argc, VALUE *argv, VALUE self) {
06977     QBSpline *arg1 = (QBSpline *) 0 ;
06978     int result;
06979     VALUE vresult = Qnil;
06980     
06981     if ((argc < 0) || (argc > 0))
06982     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06983     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
06984     result = (int)((QBSpline const *)arg1)->get_num_segments();
06985     
06986     vresult = INT2NUM(result);
06987     return vresult;
06988 }
06989 
06990 
06991 static VALUE
06992 _wrap_QBSpline_get_num_deboor(int argc, VALUE *argv, VALUE self) {
06993     QBSpline *arg1 = (QBSpline *) 0 ;
06994     int result;
06995     VALUE vresult = Qnil;
06996     
06997     if ((argc < 0) || (argc > 0))
06998     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
06999     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07000     result = (int)((QBSpline const *)arg1)->get_num_deboor();
07001     
07002     vresult = INT2NUM(result);
07003     return vresult;
07004 }
07005 
07006 
07007 static VALUE
07008 _wrap_QBSpline_get_deboor(int argc, VALUE *argv, VALUE self) {
07009     QBSpline *arg1 = (QBSpline *) 0 ;
07010     int arg2 ;
07011     ControlPoint result;
07012     VALUE vresult = Qnil;
07013     
07014     if ((argc < 1) || (argc > 1))
07015     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07016     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07017     arg2 = NUM2INT(argv[0]);
07018     result = ((QBSpline const *)arg1)->get_deboor(arg2);
07019     
07020     {
07021         ControlPoint * resultptr;
07022         resultptr = new ControlPoint((ControlPoint &)result);
07023         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_ControlPoint, 1);
07024     }
07025     return vresult;
07026 }
07027 
07028 
07029 static VALUE
07030 _wrap_QBSpline_getip(int argc, VALUE *argv, VALUE self) {
07031     QBSpline *arg1 = (QBSpline *) 0 ;
07032     double arg2 ;
07033     int *arg3 = (int *) 0 ;
07034     double *arg4 = (double *) 0 ;
07035     
07036     if ((argc < 3) || (argc > 3))
07037     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
07038     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07039     arg2 = (double) NUM2DBL(argv[0]);
07040     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_int, 1);
07041     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_double, 1);
07042     ((QBSpline const *)arg1)->getip(arg2,arg3,arg4);
07043     
07044     return Qnil;
07045 }
07046 
07047 
07048 static VALUE
07049 _wrap_QBSpline_evaluate(int argc, VALUE *argv, VALUE self) {
07050     QBSpline *arg1 = (QBSpline *) 0 ;
07051     double arg2 ;
07052     Point2D result;
07053     VALUE vresult = Qnil;
07054     
07055     if ((argc < 1) || (argc > 1))
07056     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07057     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07058     arg2 = (double) NUM2DBL(argv[0]);
07059     result = ((QBSpline const *)arg1)->evaluate(arg2);
07060     
07061     {
07062         Point2D * resultptr;
07063         resultptr = new Point2D((Point2D &)result);
07064         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
07065     }
07066     return vresult;
07067 }
07068 
07069 
07070 static VALUE
07071 _wrap_QBSpline_evaluate_segment(int argc, VALUE *argv, VALUE self) {
07072     QBSpline *arg1 = (QBSpline *) 0 ;
07073     int arg2 ;
07074     double arg3 ;
07075     Point2D result;
07076     VALUE vresult = Qnil;
07077     
07078     if ((argc < 2) || (argc > 2))
07079     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07080     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07081     arg2 = NUM2INT(argv[0]);
07082     arg3 = (double) NUM2DBL(argv[1]);
07083     result = ((QBSpline const *)arg1)->evaluate_segment(arg2,arg3);
07084     
07085     {
07086         Point2D * resultptr;
07087         resultptr = new Point2D((Point2D &)result);
07088         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
07089     }
07090     return vresult;
07091 }
07092 
07093 
07094 static VALUE
07095 _wrap_QBSpline_get_closest_knot(int argc, VALUE *argv, VALUE self) {
07096     QBSpline *arg1 = (QBSpline *) 0 ;
07097     double arg2 ;
07098     int result;
07099     VALUE vresult = Qnil;
07100     
07101     if ((argc < 1) || (argc > 1))
07102     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07103     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07104     arg2 = (double) NUM2DBL(argv[0]);
07105     result = (int)((QBSpline const *)arg1)->get_closest_knot(arg2);
07106     
07107     vresult = INT2NUM(result);
07108     return vresult;
07109 }
07110 
07111 
07112 static VALUE
07113 _wrap_QBSpline_get_closest_bezier(int argc, VALUE *argv, VALUE self) {
07114     QBSpline *arg1 = (QBSpline *) 0 ;
07115     double arg2 ;
07116     int result;
07117     VALUE vresult = Qnil;
07118     
07119     if ((argc < 1) || (argc > 1))
07120     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07121     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07122     arg2 = (double) NUM2DBL(argv[0]);
07123     result = (int)((QBSpline const *)arg1)->get_closest_bezier(arg2);
07124     
07125     vresult = INT2NUM(result);
07126     return vresult;
07127 }
07128 
07129 
07130 static VALUE
07131 _wrap_QBSpline_get_edge_cps(int argc, VALUE *argv, VALUE self) {
07132     QBSpline *arg1 = (QBSpline *) 0 ;
07133     double arg2 ;
07134     double arg3 ;
07135     ControlPoint *arg4 = 0 ;
07136     ControlPoint *arg5 = 0 ;
07137     ControlPoint *arg6 = 0 ;
07138     int *arg7 = 0 ;
07139     int *arg8 = 0 ;
07140     int result;
07141     VALUE vresult = Qnil;
07142     
07143     if ((argc < 7) || (argc > 7))
07144     rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc);
07145     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07146     arg2 = (double) NUM2DBL(argv[0]);
07147     arg3 = (double) NUM2DBL(argv[1]);
07148     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_ControlPoint, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
07149     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_ControlPoint, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
07150     SWIG_ConvertPtr(argv[4], (void **) &arg6, SWIGTYPE_p_ControlPoint, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
07151     SWIG_ConvertPtr(argv[5], (void **) &arg7, SWIGTYPE_p_int, 1); if (arg7 == NULL) rb_raise(rb_eTypeError, "null reference");
07152     SWIG_ConvertPtr(argv[6], (void **) &arg8, SWIGTYPE_p_int, 1); if (arg8 == NULL) rb_raise(rb_eTypeError, "null reference");
07153     result = (int)((QBSpline const *)arg1)->get_edge_cps(arg2,arg3,*arg4,*arg5,*arg6,*arg7,*arg8);
07154     
07155     vresult = INT2NUM(result);
07156     return vresult;
07157 }
07158 
07159 
07160 static VALUE
07161 _wrap_QBSpline_get_segment_center(int argc, VALUE *argv, VALUE self) {
07162     QBSpline *arg1 = (QBSpline *) 0 ;
07163     double arg2 ;
07164     double arg3 ;
07165     ControlPoint result;
07166     VALUE vresult = Qnil;
07167     
07168     if ((argc < 2) || (argc > 2))
07169     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07170     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07171     arg2 = (double) NUM2DBL(argv[0]);
07172     arg3 = (double) NUM2DBL(argv[1]);
07173     result = ((QBSpline const *)arg1)->get_segment_center(arg2,arg3);
07174     
07175     {
07176         ControlPoint * resultptr;
07177         resultptr = new ControlPoint((ControlPoint &)result);
07178         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_ControlPoint, 1);
07179     }
07180     return vresult;
07181 }
07182 
07183 
07184 static VALUE
07185 _wrap_QBSpline_douglas_peucker(int argc, VALUE *argv, VALUE self) {
07186     QBSpline *arg1 = (QBSpline *) 0 ;
07187     double arg2 ;
07188     hash_set<BezierVertex *,CellHasher<BezierVertex >,CellEqual<BezierVertex > > *arg3 = 0 ;
07189     
07190     if ((argc < 2) || (argc > 2))
07191     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07192     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07193     arg2 = (double) NUM2DBL(argv[0]);
07194     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07195     ((QBSpline const *)arg1)->douglas_peucker(arg2,*arg3);
07196     
07197     return Qnil;
07198 }
07199 
07200 
07201 static VALUE
07202 _wrap_QBSpline_bbox(int argc, VALUE *argv, VALUE self) {
07203     QBSpline *arg1 = (QBSpline *) 0 ;
07204     double *arg2 = (double *) 0 ;
07205     double *arg3 = (double *) 0 ;
07206     double *arg4 = (double *) 0 ;
07207     double *arg5 = (double *) 0 ;
07208     
07209     if ((argc < 4) || (argc > 4))
07210     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
07211     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07212     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_double, 1);
07213     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_double, 1);
07214     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_double, 1);
07215     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_double, 1);
07216     ((QBSpline const *)arg1)->bbox(arg2,arg3,arg4,arg5);
07217     
07218     return Qnil;
07219 }
07220 
07221 
07222 static VALUE
07223 _wrap_QBSpline_print(int argc, VALUE *argv, VALUE self) {
07224     QBSpline *arg1 = (QBSpline *) 0 ;
07225     
07226     if ((argc < 0) || (argc > 0))
07227     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
07228     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_QBSpline, 1);
07229     ((QBSpline const *)arg1)->print();
07230     
07231     return Qnil;
07232 }
07233 
07234 
07235 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
07236 static VALUE
07237 _wrap_BezierComplex_allocate(VALUE self) {
07238 #else
07239     static VALUE
07240     _wrap_BezierComplex_allocate(int argc, VALUE *argv, VALUE self) {
07241 #endif
07242         
07243         
07244         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t);
07245 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
07246         rb_obj_call_init(vresult, argc, argv);
07247 #endif
07248         return vresult;
07249     }
07250     
07251 
07252 static VALUE
07253 _wrap_new_BezierComplex(int argc, VALUE *argv, VALUE self) {
07254     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *result;
07255     
07256     if ((argc < 0) || (argc > 0))
07257     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
07258     result = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *)new CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple >();
07259     DATA_PTR(self) = result;
07260     return self;
07261 }
07262 
07263 
07264 static void
07265 free_CellComplexlBezierVertexcBezierEdgecBezierTrianglecBezierTuple_g___(CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1) {
07266     delete arg1;
07267 }
07268 static VALUE
07269 _wrap_BezierComplex_import_mesh(int argc, VALUE *argv, VALUE self) {
07270     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07271     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg2 = 0 ;
07272     
07273     if ((argc < 1) || (argc > 1))
07274     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07275     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07276     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
07277     (arg1)->import_mesh((CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > const &)*arg2);
07278     
07279     return Qnil;
07280 }
07281 
07282 
07283 static VALUE
07284 _wrap_BezierComplex_add_cp(int argc, VALUE *argv, VALUE self) {
07285     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07286     Point2D *arg2 = 0 ;
07287     ControlPoint result;
07288     VALUE vresult = Qnil;
07289     
07290     if ((argc < 1) || (argc > 1))
07291     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07292     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07293     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
07294     result = (arg1)->add_cp((Point2D const &)*arg2);
07295     
07296     {
07297         ControlPoint * resultptr;
07298         resultptr = new ControlPoint((ControlPoint &)result);
07299         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_ControlPoint, 1);
07300     }
07301     return vresult;
07302 }
07303 
07304 
07305 static VALUE
07306 _wrap_BezierComplex_rem_cp(int argc, VALUE *argv, VALUE self) {
07307     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07308     ControlPoint arg2 ;
07309     
07310     if ((argc < 1) || (argc > 1))
07311     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07312     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07313     {
07314         ControlPoint * ptr;
07315         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
07316         if (ptr) arg2 = *ptr;
07317     }
07318     (arg1)->rem_cp(arg2);
07319     
07320     return Qnil;
07321 }
07322 
07323 
07324 static VALUE
07325 _wrap_BezierComplex_add_dp(int argc, VALUE *argv, VALUE self) {
07326     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07327     ControlPoint arg2 ;
07328     LinearData *arg3 = 0 ;
07329     DataPoint result;
07330     VALUE vresult = Qnil;
07331     
07332     if ((argc < 2) || (argc > 2))
07333     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07334     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07335     {
07336         ControlPoint * ptr;
07337         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
07338         if (ptr) arg2 = *ptr;
07339     }
07340     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07341     result = (arg1)->add_dp(arg2,(LinearData const &)*arg3);
07342     
07343     {
07344         DataPoint * resultptr;
07345         resultptr = new DataPoint((DataPoint &)result);
07346         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_DataPoint, 1);
07347     }
07348     return vresult;
07349 }
07350 
07351 
07352 static VALUE
07353 _wrap_BezierComplex_rem_dp(int argc, VALUE *argv, VALUE self) {
07354     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07355     ControlPoint arg2 ;
07356     DataPoint arg3 ;
07357     
07358     if ((argc < 2) || (argc > 2))
07359     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07360     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07361     {
07362         ControlPoint * ptr;
07363         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
07364         if (ptr) arg2 = *ptr;
07365     }
07366     {
07367         DataPoint * ptr;
07368         SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_DataPoint, 1);
07369         if (ptr) arg3 = *ptr;
07370     }
07371     (arg1)->rem_dp(arg2,arg3);
07372     
07373     return Qnil;
07374 }
07375 
07376 
07377 static VALUE
07378 _wrap_BezierComplex_add_vertex(int argc, VALUE *argv, VALUE self) {
07379     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07380     BezierVertex *arg2 = (BezierVertex *) 0 ;
07381     
07382     if ((argc < 1) || (argc > 1))
07383     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07384     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07385     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
07386     (arg1)->add_vertex(arg2);
07387     
07388     return Qnil;
07389 }
07390 
07391 
07392 static VALUE
07393 _wrap_BezierComplex_add_edge(int argc, VALUE *argv, VALUE self) {
07394     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07395     BezierEdge *arg2 = (BezierEdge *) 0 ;
07396     BezierVertex *arg3 = (BezierVertex *) 0 ;
07397     BezierVertex *arg4 = (BezierVertex *) 0 ;
07398     
07399     if ((argc < 3) || (argc > 3))
07400     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
07401     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07402     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07403     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
07404     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BezierVertex, 1);
07405     (arg1)->add_edge(arg2,arg3,arg4);
07406     
07407     return Qnil;
07408 }
07409 
07410 
07411 static VALUE
07412 _wrap_BezierComplex_add_face(int argc, VALUE *argv, VALUE self) {
07413     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07414     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
07415     BezierEdge **arg3 = (BezierEdge **) 0 ;
07416     int arg4 ;
07417     
07418     if ((argc < 3) || (argc > 3))
07419     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
07420     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07421     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
07422     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_p_BezierEdge, 1);
07423     arg4 = NUM2INT(argv[2]);
07424     (arg1)->add_face(arg2,arg3,arg4);
07425     
07426     return Qnil;
07427 }
07428 
07429 
07430 static VALUE
07431 _wrap_BezierComplex_delete_vertex(int argc, VALUE *argv, VALUE self) {
07432     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07433     BezierVertex *arg2 = (BezierVertex *) 0 ;
07434     
07435     if ((argc < 1) || (argc > 1))
07436     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07437     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07438     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
07439     (arg1)->delete_vertex(arg2);
07440     
07441     return Qnil;
07442 }
07443 
07444 
07445 static VALUE
07446 _wrap_BezierComplex_delete_edge(int argc, VALUE *argv, VALUE self) {
07447     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07448     BezierEdge *arg2 = (BezierEdge *) 0 ;
07449     
07450     if ((argc < 1) || (argc > 1))
07451     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07452     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07453     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07454     (arg1)->delete_edge(arg2);
07455     
07456     return Qnil;
07457 }
07458 
07459 
07460 static VALUE
07461 _wrap_BezierComplex_delete_face(int argc, VALUE *argv, VALUE self) {
07462     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07463     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
07464     
07465     if ((argc < 1) || (argc > 1))
07466     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07467     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07468     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
07469     (arg1)->delete_face(arg2);
07470     
07471     return Qnil;
07472 }
07473 
07474 
07475 static VALUE
07476 _wrap_BezierComplex_is_member__SWIG_0(int argc, VALUE *argv, VALUE self) {
07477     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07478     BezierVertex *arg2 = (BezierVertex *) 0 ;
07479     bool result;
07480     VALUE vresult = Qnil;
07481     
07482     if ((argc < 1) || (argc > 1))
07483     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07484     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07485     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
07486     result = (bool)(arg1)->is_member(arg2);
07487     
07488     vresult = result ? Qtrue : Qfalse;
07489     return vresult;
07490 }
07491 
07492 
07493 static VALUE
07494 _wrap_BezierComplex_is_member__SWIG_1(int argc, VALUE *argv, VALUE self) {
07495     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07496     BezierEdge *arg2 = (BezierEdge *) 0 ;
07497     bool result;
07498     VALUE vresult = Qnil;
07499     
07500     if ((argc < 1) || (argc > 1))
07501     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07502     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07503     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07504     result = (bool)(arg1)->is_member(arg2);
07505     
07506     vresult = result ? Qtrue : Qfalse;
07507     return vresult;
07508 }
07509 
07510 
07511 static VALUE
07512 _wrap_BezierComplex_is_member__SWIG_2(int argc, VALUE *argv, VALUE self) {
07513     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07514     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
07515     bool result;
07516     VALUE vresult = Qnil;
07517     
07518     if ((argc < 1) || (argc > 1))
07519     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
07520     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07521     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
07522     result = (bool)(arg1)->is_member(arg2);
07523     
07524     vresult = result ? Qtrue : Qfalse;
07525     return vresult;
07526 }
07527 
07528 
07529 static VALUE _wrap_BezierComplex_is_member(int nargs, VALUE *args, VALUE self) {
07530     int argc;
07531     VALUE argv[3];
07532     int ii;
07533     
07534     argc = nargs + 1;
07535     argv[0] = self;
07536     for (ii = 1; (ii < argc) && (ii < 2); ii++) {
07537         argv[ii] = args[ii-1];
07538     }
07539     if (argc == 2) {
07540         int _v;
07541         {
07542             void *ptr;
07543             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07544         }
07545         if (_v) {
07546             {
07547                 void *ptr;
07548                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
07549             }
07550             if (_v) {
07551                 return _wrap_BezierComplex_is_member__SWIG_0(nargs, args, self);
07552             }
07553         }
07554     }
07555     if (argc == 2) {
07556         int _v;
07557         {
07558             void *ptr;
07559             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07560         }
07561         if (_v) {
07562             {
07563                 void *ptr;
07564                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
07565             }
07566             if (_v) {
07567                 return _wrap_BezierComplex_is_member__SWIG_1(nargs, args, self);
07568             }
07569         }
07570     }
07571     if (argc == 2) {
07572         int _v;
07573         {
07574             void *ptr;
07575             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07576         }
07577         if (_v) {
07578             {
07579                 void *ptr;
07580                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
07581             }
07582             if (_v) {
07583                 return _wrap_BezierComplex_is_member__SWIG_2(nargs, args, self);
07584             }
07585         }
07586     }
07587     
07588     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_is_member'");
07589     return Qnil;
07590 }
07591 
07592 
07593 static VALUE
07594 _wrap_BezierComplex_lower__SWIG_0(int argc, VALUE *argv, VALUE self) {
07595     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07596     BezierEdge *arg2 = (BezierEdge *) 0 ;
07597     vector<BezierVertex * > *arg3 = 0 ;
07598     int result;
07599     VALUE vresult = Qnil;
07600     
07601     if ((argc < 2) || (argc > 2))
07602     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07603     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07604     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07605     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBezierVertex_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07606     result = (int)(arg1)->lower(arg2,*arg3);
07607     
07608     vresult = INT2NUM(result);
07609     return vresult;
07610 }
07611 
07612 
07613 static VALUE
07614 _wrap_BezierComplex_lower__SWIG_1(int argc, VALUE *argv, VALUE self) {
07615     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07616     BezierEdge *arg2 = (BezierEdge *) 0 ;
07617     list<BezierVertex * > *arg3 = 0 ;
07618     int result;
07619     VALUE vresult = Qnil;
07620     
07621     if ((argc < 2) || (argc > 2))
07622     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07623     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07624     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07625     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBezierVertex_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07626     result = (int)(arg1)->lower(arg2,*arg3);
07627     
07628     vresult = INT2NUM(result);
07629     return vresult;
07630 }
07631 
07632 
07633 static VALUE
07634 _wrap_BezierComplex_lower__SWIG_2(int argc, VALUE *argv, VALUE self) {
07635     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07636     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
07637     vector<BezierEdge * > *arg3 = 0 ;
07638     int result;
07639     VALUE vresult = Qnil;
07640     
07641     if ((argc < 2) || (argc > 2))
07642     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07643     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07644     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
07645     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07646     result = (int)(arg1)->lower(arg2,*arg3);
07647     
07648     vresult = INT2NUM(result);
07649     return vresult;
07650 }
07651 
07652 
07653 static VALUE
07654 _wrap_BezierComplex_lower__SWIG_3(int argc, VALUE *argv, VALUE self) {
07655     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07656     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
07657     list<BezierEdge * > *arg3 = 0 ;
07658     int result;
07659     VALUE vresult = Qnil;
07660     
07661     if ((argc < 2) || (argc > 2))
07662     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07663     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07664     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
07665     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07666     result = (int)(arg1)->lower(arg2,*arg3);
07667     
07668     vresult = INT2NUM(result);
07669     return vresult;
07670 }
07671 
07672 
07673 static VALUE _wrap_BezierComplex_lower(int nargs, VALUE *args, VALUE self) {
07674     int argc;
07675     VALUE argv[4];
07676     int ii;
07677     
07678     argc = nargs + 1;
07679     argv[0] = self;
07680     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
07681         argv[ii] = args[ii-1];
07682     }
07683     if (argc == 3) {
07684         int _v;
07685         {
07686             void *ptr;
07687             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07688         }
07689         if (_v) {
07690             {
07691                 void *ptr;
07692                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
07693             }
07694             if (_v) {
07695                 {
07696                     void *ptr;
07697                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBezierVertex_p_t, 0) != -1)) ? 1 : 0;
07698                 }
07699                 if (_v) {
07700                     return _wrap_BezierComplex_lower__SWIG_0(nargs, args, self);
07701                 }
07702             }
07703         }
07704     }
07705     if (argc == 3) {
07706         int _v;
07707         {
07708             void *ptr;
07709             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07710         }
07711         if (_v) {
07712             {
07713                 void *ptr;
07714                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
07715             }
07716             if (_v) {
07717                 {
07718                     void *ptr;
07719                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBezierVertex_p_t, 0) != -1)) ? 1 : 0;
07720                 }
07721                 if (_v) {
07722                     return _wrap_BezierComplex_lower__SWIG_1(nargs, args, self);
07723                 }
07724             }
07725         }
07726     }
07727     if (argc == 3) {
07728         int _v;
07729         {
07730             void *ptr;
07731             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07732         }
07733         if (_v) {
07734             {
07735                 void *ptr;
07736                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
07737             }
07738             if (_v) {
07739                 {
07740                     void *ptr;
07741                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBezierEdge_p_t, 0) != -1)) ? 1 : 0;
07742                 }
07743                 if (_v) {
07744                     return _wrap_BezierComplex_lower__SWIG_2(nargs, args, self);
07745                 }
07746             }
07747         }
07748     }
07749     if (argc == 3) {
07750         int _v;
07751         {
07752             void *ptr;
07753             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07754         }
07755         if (_v) {
07756             {
07757                 void *ptr;
07758                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
07759             }
07760             if (_v) {
07761                 {
07762                     void *ptr;
07763                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBezierEdge_p_t, 0) != -1)) ? 1 : 0;
07764                 }
07765                 if (_v) {
07766                     return _wrap_BezierComplex_lower__SWIG_3(nargs, args, self);
07767                 }
07768             }
07769         }
07770     }
07771     
07772     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_lower'");
07773     return Qnil;
07774 }
07775 
07776 
07777 static VALUE
07778 _wrap_BezierComplex_upper__SWIG_0(int argc, VALUE *argv, VALUE self) {
07779     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07780     BezierEdge *arg2 = (BezierEdge *) 0 ;
07781     vector<BezierTriangle * > *arg3 = 0 ;
07782     int result;
07783     VALUE vresult = Qnil;
07784     
07785     if ((argc < 2) || (argc > 2))
07786     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07787     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07788     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07789     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBezierTriangle_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07790     result = (int)(arg1)->upper(arg2,*arg3);
07791     
07792     vresult = INT2NUM(result);
07793     return vresult;
07794 }
07795 
07796 
07797 static VALUE
07798 _wrap_BezierComplex_upper__SWIG_1(int argc, VALUE *argv, VALUE self) {
07799     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07800     BezierEdge *arg2 = (BezierEdge *) 0 ;
07801     list<BezierTriangle * > *arg3 = 0 ;
07802     int result;
07803     VALUE vresult = Qnil;
07804     
07805     if ((argc < 2) || (argc > 2))
07806     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07807     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07808     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07809     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBezierTriangle_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07810     result = (int)(arg1)->upper(arg2,*arg3);
07811     
07812     vresult = INT2NUM(result);
07813     return vresult;
07814 }
07815 
07816 
07817 static VALUE
07818 _wrap_BezierComplex_upper__SWIG_2(int argc, VALUE *argv, VALUE self) {
07819     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07820     BezierVertex *arg2 = (BezierVertex *) 0 ;
07821     vector<BezierEdge * > *arg3 = 0 ;
07822     int result;
07823     VALUE vresult = Qnil;
07824     
07825     if ((argc < 2) || (argc > 2))
07826     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07827     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07828     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
07829     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07830     result = (int)(arg1)->upper(arg2,*arg3);
07831     
07832     vresult = INT2NUM(result);
07833     return vresult;
07834 }
07835 
07836 
07837 static VALUE
07838 _wrap_BezierComplex_upper__SWIG_3(int argc, VALUE *argv, VALUE self) {
07839     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07840     BezierVertex *arg2 = (BezierVertex *) 0 ;
07841     list<BezierEdge * > *arg3 = 0 ;
07842     int result;
07843     VALUE vresult = Qnil;
07844     
07845     if ((argc < 2) || (argc > 2))
07846     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07847     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07848     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
07849     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
07850     result = (int)(arg1)->upper(arg2,*arg3);
07851     
07852     vresult = INT2NUM(result);
07853     return vresult;
07854 }
07855 
07856 
07857 static VALUE _wrap_BezierComplex_upper(int nargs, VALUE *args, VALUE self) {
07858     int argc;
07859     VALUE argv[4];
07860     int ii;
07861     
07862     argc = nargs + 1;
07863     argv[0] = self;
07864     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
07865         argv[ii] = args[ii-1];
07866     }
07867     if (argc == 3) {
07868         int _v;
07869         {
07870             void *ptr;
07871             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07872         }
07873         if (_v) {
07874             {
07875                 void *ptr;
07876                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
07877             }
07878             if (_v) {
07879                 {
07880                     void *ptr;
07881                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBezierTriangle_p_t, 0) != -1)) ? 1 : 0;
07882                 }
07883                 if (_v) {
07884                     return _wrap_BezierComplex_upper__SWIG_0(nargs, args, self);
07885                 }
07886             }
07887         }
07888     }
07889     if (argc == 3) {
07890         int _v;
07891         {
07892             void *ptr;
07893             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07894         }
07895         if (_v) {
07896             {
07897                 void *ptr;
07898                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
07899             }
07900             if (_v) {
07901                 {
07902                     void *ptr;
07903                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBezierTriangle_p_t, 0) != -1)) ? 1 : 0;
07904                 }
07905                 if (_v) {
07906                     return _wrap_BezierComplex_upper__SWIG_1(nargs, args, self);
07907                 }
07908             }
07909         }
07910     }
07911     if (argc == 3) {
07912         int _v;
07913         {
07914             void *ptr;
07915             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07916         }
07917         if (_v) {
07918             {
07919                 void *ptr;
07920                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
07921             }
07922             if (_v) {
07923                 {
07924                     void *ptr;
07925                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBezierEdge_p_t, 0) != -1)) ? 1 : 0;
07926                 }
07927                 if (_v) {
07928                     return _wrap_BezierComplex_upper__SWIG_2(nargs, args, self);
07929                 }
07930             }
07931         }
07932     }
07933     if (argc == 3) {
07934         int _v;
07935         {
07936             void *ptr;
07937             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
07938         }
07939         if (_v) {
07940             {
07941                 void *ptr;
07942                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
07943             }
07944             if (_v) {
07945                 {
07946                     void *ptr;
07947                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBezierEdge_p_t, 0) != -1)) ? 1 : 0;
07948                 }
07949                 if (_v) {
07950                     return _wrap_BezierComplex_upper__SWIG_3(nargs, args, self);
07951                 }
07952             }
07953         }
07954     }
07955     
07956     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_upper'");
07957     return Qnil;
07958 }
07959 
07960 
07961 static VALUE
07962 _wrap_BezierComplex_get_opposite_vertex(int argc, VALUE *argv, VALUE self) {
07963     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07964     BezierEdge *arg2 = (BezierEdge *) 0 ;
07965     BezierVertex *arg3 = (BezierVertex *) 0 ;
07966     BezierVertex *result;
07967     VALUE vresult = Qnil;
07968     
07969     if ((argc < 2) || (argc > 2))
07970     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07971     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07972     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07973     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
07974     result = (BezierVertex *)(arg1)->get_opposite_vertex(arg2,arg3);
07975     
07976     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
07977     return vresult;
07978 }
07979 
07980 
07981 static VALUE
07982 _wrap_BezierComplex_get_opposite_face(int argc, VALUE *argv, VALUE self) {
07983     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
07984     BezierEdge *arg2 = (BezierEdge *) 0 ;
07985     BezierTriangle *arg3 = (BezierTriangle *) 0 ;
07986     BezierTriangle *result;
07987     VALUE vresult = Qnil;
07988     
07989     if ((argc < 2) || (argc > 2))
07990     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
07991     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
07992     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
07993     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTriangle, 1);
07994     result = (BezierTriangle *)(arg1)->get_opposite_face(arg2,arg3);
07995     
07996     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierTriangle,0);
07997     return vresult;
07998 }
07999 
08000 
08001 static VALUE
08002 _wrap_BezierComplex_enqueue_faces(int argc, VALUE *argv, VALUE self) {
08003     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08004     BezierVertex *arg2 = (BezierVertex *) 0 ;
08005     deque<BezierTriangle * > *arg3 = 0 ;
08006     
08007     if ((argc < 2) || (argc > 2))
08008     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08009     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08010     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
08011     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBezierTriangle_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08012     (arg1)->enqueue_faces(arg2,*arg3);
08013     
08014     return Qnil;
08015 }
08016 
08017 
08018 static VALUE
08019 _wrap_BezierComplex_enqueue_edges(int argc, VALUE *argv, VALUE self) {
08020     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08021     BezierVertex *arg2 = (BezierVertex *) 0 ;
08022     deque<BezierEdge * > *arg3 = 0 ;
08023     
08024     if ((argc < 2) || (argc > 2))
08025     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08026     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08027     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
08028     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08029     (arg1)->enqueue_edges(arg2,*arg3);
08030     
08031     return Qnil;
08032 }
08033 
08034 
08035 static VALUE
08036 _wrap_BezierComplex_find_common_edge__SWIG_0(int argc, VALUE *argv, VALUE self) {
08037     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08038     BezierVertex *arg2 = (BezierVertex *) 0 ;
08039     BezierVertex *arg3 = (BezierVertex *) 0 ;
08040     BezierEdge *result;
08041     VALUE vresult = Qnil;
08042     
08043     if ((argc < 2) || (argc > 2))
08044     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08045     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08046     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
08047     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
08048     result = (BezierEdge *)(arg1)->find_common_edge(arg2,arg3);
08049     
08050     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
08051     return vresult;
08052 }
08053 
08054 
08055 static VALUE
08056 _wrap_BezierComplex_find_common_edge__SWIG_1(int argc, VALUE *argv, VALUE self) {
08057     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08058     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
08059     BezierTriangle *arg3 = (BezierTriangle *) 0 ;
08060     BezierEdge *result;
08061     VALUE vresult = Qnil;
08062     
08063     if ((argc < 2) || (argc > 2))
08064     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08065     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08066     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
08067     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTriangle, 1);
08068     result = (BezierEdge *)(arg1)->find_common_edge(arg2,arg3);
08069     
08070     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
08071     return vresult;
08072 }
08073 
08074 
08075 static VALUE _wrap_BezierComplex_find_common_edge(int nargs, VALUE *args, VALUE self) {
08076     int argc;
08077     VALUE argv[4];
08078     int ii;
08079     
08080     argc = nargs + 1;
08081     argv[0] = self;
08082     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
08083         argv[ii] = args[ii-1];
08084     }
08085     if (argc == 3) {
08086         int _v;
08087         {
08088             void *ptr;
08089             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08090         }
08091         if (_v) {
08092             {
08093                 void *ptr;
08094                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
08095             }
08096             if (_v) {
08097                 {
08098                     void *ptr;
08099                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
08100                 }
08101                 if (_v) {
08102                     return _wrap_BezierComplex_find_common_edge__SWIG_0(nargs, args, self);
08103                 }
08104             }
08105         }
08106     }
08107     if (argc == 3) {
08108         int _v;
08109         {
08110             void *ptr;
08111             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08112         }
08113         if (_v) {
08114             {
08115                 void *ptr;
08116                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08117             }
08118             if (_v) {
08119                 {
08120                     void *ptr;
08121                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08122                 }
08123                 if (_v) {
08124                     return _wrap_BezierComplex_find_common_edge__SWIG_1(nargs, args, self);
08125                 }
08126             }
08127         }
08128     }
08129     
08130     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_find_common_edge'");
08131     return Qnil;
08132 }
08133 
08134 
08135 static VALUE
08136 _wrap_BezierComplex_find_adjacent_faces__SWIG_0(int argc, VALUE *argv, VALUE self) {
08137     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08138     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
08139     list<BezierTriangle * > *arg3 = 0 ;
08140     
08141     if ((argc < 2) || (argc > 2))
08142     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08143     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08144     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
08145     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBezierTriangle_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08146     (arg1)->find_adjacent_faces(arg2,*arg3);
08147     
08148     return Qnil;
08149 }
08150 
08151 
08152 static VALUE
08153 _wrap_BezierComplex_find_adjacent_edges__SWIG_0(int argc, VALUE *argv, VALUE self) {
08154     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08155     BezierEdge *arg2 = (BezierEdge *) 0 ;
08156     list<BezierEdge * > *arg3 = 0 ;
08157     
08158     if ((argc < 2) || (argc > 2))
08159     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08160     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08161     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
08162     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08163     (arg1)->find_adjacent_edges(arg2,*arg3);
08164     
08165     return Qnil;
08166 }
08167 
08168 
08169 static VALUE
08170 _wrap_BezierComplex_find_adjacent_faces__SWIG_1(int argc, VALUE *argv, VALUE self) {
08171     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08172     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
08173     deque<BezierTriangle * > *arg3 = 0 ;
08174     
08175     if ((argc < 2) || (argc > 2))
08176     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08177     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08178     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
08179     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBezierTriangle_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08180     (arg1)->find_adjacent_faces(arg2,*arg3);
08181     
08182     return Qnil;
08183 }
08184 
08185 
08186 static VALUE _wrap_BezierComplex_find_adjacent_faces(int nargs, VALUE *args, VALUE self) {
08187     int argc;
08188     VALUE argv[4];
08189     int ii;
08190     
08191     argc = nargs + 1;
08192     argv[0] = self;
08193     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
08194         argv[ii] = args[ii-1];
08195     }
08196     if (argc == 3) {
08197         int _v;
08198         {
08199             void *ptr;
08200             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08201         }
08202         if (_v) {
08203             {
08204                 void *ptr;
08205                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08206             }
08207             if (_v) {
08208                 {
08209                     void *ptr;
08210                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBezierTriangle_p_t, 0) != -1)) ? 1 : 0;
08211                 }
08212                 if (_v) {
08213                     return _wrap_BezierComplex_find_adjacent_faces__SWIG_0(nargs, args, self);
08214                 }
08215             }
08216         }
08217     }
08218     if (argc == 3) {
08219         int _v;
08220         {
08221             void *ptr;
08222             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08223         }
08224         if (_v) {
08225             {
08226                 void *ptr;
08227                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08228             }
08229             if (_v) {
08230                 {
08231                     void *ptr;
08232                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_dequeTBezierTriangle_p_t, 0) != -1)) ? 1 : 0;
08233                 }
08234                 if (_v) {
08235                     return _wrap_BezierComplex_find_adjacent_faces__SWIG_1(nargs, args, self);
08236                 }
08237             }
08238         }
08239     }
08240     
08241     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_find_adjacent_faces'");
08242     return Qnil;
08243 }
08244 
08245 
08246 static VALUE
08247 _wrap_BezierComplex_find_adjacent_edges__SWIG_1(int argc, VALUE *argv, VALUE self) {
08248     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08249     BezierEdge *arg2 = (BezierEdge *) 0 ;
08250     deque<BezierEdge * > *arg3 = 0 ;
08251     
08252     if ((argc < 2) || (argc > 2))
08253     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08254     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08255     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
08256     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBezierEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08257     (arg1)->find_adjacent_edges(arg2,*arg3);
08258     
08259     return Qnil;
08260 }
08261 
08262 
08263 static VALUE _wrap_BezierComplex_find_adjacent_edges(int nargs, VALUE *args, VALUE self) {
08264     int argc;
08265     VALUE argv[4];
08266     int ii;
08267     
08268     argc = nargs + 1;
08269     argv[0] = self;
08270     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
08271         argv[ii] = args[ii-1];
08272     }
08273     if (argc == 3) {
08274         int _v;
08275         {
08276             void *ptr;
08277             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08278         }
08279         if (_v) {
08280             {
08281                 void *ptr;
08282                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
08283             }
08284             if (_v) {
08285                 {
08286                     void *ptr;
08287                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBezierEdge_p_t, 0) != -1)) ? 1 : 0;
08288                 }
08289                 if (_v) {
08290                     return _wrap_BezierComplex_find_adjacent_edges__SWIG_0(nargs, args, self);
08291                 }
08292             }
08293         }
08294     }
08295     if (argc == 3) {
08296         int _v;
08297         {
08298             void *ptr;
08299             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08300         }
08301         if (_v) {
08302             {
08303                 void *ptr;
08304                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
08305             }
08306             if (_v) {
08307                 {
08308                     void *ptr;
08309                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_dequeTBezierEdge_p_t, 0) != -1)) ? 1 : 0;
08310                 }
08311                 if (_v) {
08312                     return _wrap_BezierComplex_find_adjacent_edges__SWIG_1(nargs, args, self);
08313                 }
08314             }
08315         }
08316     }
08317     
08318     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_find_adjacent_edges'");
08319     return Qnil;
08320 }
08321 
08322 
08323 static VALUE
08324 _wrap_BezierComplex_Switch(int argc, VALUE *argv, VALUE self) {
08325     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08326     int arg2 ;
08327     BezierTuple *arg3 = 0 ;
08328     BezierTuple result;
08329     VALUE vresult = Qnil;
08330     
08331     if ((argc < 2) || (argc > 2))
08332     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08333     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08334     arg2 = NUM2INT(argv[0]);
08335     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTuple, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
08336     result = (arg1)->Switch(arg2,(BezierTuple const &)*arg3);
08337     
08338     {
08339         BezierTuple * resultptr;
08340         resultptr = new BezierTuple((BezierTuple &)result);
08341         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08342     }
08343     return vresult;
08344 }
08345 
08346 
08347 static VALUE
08348 _wrap_BezierComplex_get_tuple__SWIG_0(int argc, VALUE *argv, VALUE self) {
08349     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08350     BezierTuple result;
08351     VALUE vresult = Qnil;
08352     
08353     if ((argc < 0) || (argc > 0))
08354     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08355     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08356     result = (arg1)->get_tuple();
08357     
08358     {
08359         BezierTuple * resultptr;
08360         resultptr = new BezierTuple((BezierTuple &)result);
08361         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08362     }
08363     return vresult;
08364 }
08365 
08366 
08367 static VALUE
08368 _wrap_BezierComplex_get_tuple__SWIG_1(int argc, VALUE *argv, VALUE self) {
08369     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08370     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
08371     BezierTuple result;
08372     VALUE vresult = Qnil;
08373     
08374     if ((argc < 1) || (argc > 1))
08375     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08376     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08377     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
08378     result = (arg1)->get_tuple(arg2);
08379     
08380     {
08381         BezierTuple * resultptr;
08382         resultptr = new BezierTuple((BezierTuple &)result);
08383         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08384     }
08385     return vresult;
08386 }
08387 
08388 
08389 static VALUE
08390 _wrap_BezierComplex_get_tuple__SWIG_2(int argc, VALUE *argv, VALUE self) {
08391     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08392     BezierVertex *arg2 = (BezierVertex *) 0 ;
08393     BezierTriangle *arg3 = (BezierTriangle *) 0 ;
08394     BezierTuple result;
08395     VALUE vresult = Qnil;
08396     
08397     if ((argc < 2) || (argc > 2))
08398     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08399     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08400     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
08401     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTriangle, 1);
08402     result = (arg1)->get_tuple(arg2,arg3);
08403     
08404     {
08405         BezierTuple * resultptr;
08406         resultptr = new BezierTuple((BezierTuple &)result);
08407         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08408     }
08409     return vresult;
08410 }
08411 
08412 
08413 static VALUE
08414 _wrap_BezierComplex_get_tuple__SWIG_3(int argc, VALUE *argv, VALUE self) {
08415     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08416     BezierEdge *arg2 = (BezierEdge *) 0 ;
08417     BezierTriangle *arg3 = (BezierTriangle *) 0 ;
08418     BezierTuple result;
08419     VALUE vresult = Qnil;
08420     
08421     if ((argc < 2) || (argc > 2))
08422     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08423     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08424     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
08425     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTriangle, 1);
08426     result = (arg1)->get_tuple(arg2,arg3);
08427     
08428     {
08429         BezierTuple * resultptr;
08430         resultptr = new BezierTuple((BezierTuple &)result);
08431         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08432     }
08433     return vresult;
08434 }
08435 
08436 
08437 static VALUE
08438 _wrap_BezierComplex_get_tuple__SWIG_4(int argc, VALUE *argv, VALUE self) {
08439     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08440     BezierVertex *arg2 = (BezierVertex *) 0 ;
08441     BezierTuple result;
08442     VALUE vresult = Qnil;
08443     
08444     if ((argc < 1) || (argc > 1))
08445     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08446     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08447     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
08448     result = (arg1)->get_tuple(arg2);
08449     
08450     {
08451         BezierTuple * resultptr;
08452         resultptr = new BezierTuple((BezierTuple &)result);
08453         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08454     }
08455     return vresult;
08456 }
08457 
08458 
08459 static VALUE
08460 _wrap_BezierComplex_get_tuple__SWIG_5(int argc, VALUE *argv, VALUE self) {
08461     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08462     BezierEdge *arg2 = (BezierEdge *) 0 ;
08463     BezierTuple result;
08464     VALUE vresult = Qnil;
08465     
08466     if ((argc < 1) || (argc > 1))
08467     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08468     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08469     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
08470     result = (arg1)->get_tuple(arg2);
08471     
08472     {
08473         BezierTuple * resultptr;
08474         resultptr = new BezierTuple((BezierTuple &)result);
08475         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08476     }
08477     return vresult;
08478 }
08479 
08480 
08481 static VALUE
08482 _wrap_BezierComplex_get_tuple__SWIG_6(int argc, VALUE *argv, VALUE self) {
08483     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08484     BezierVertex *arg2 = (BezierVertex *) 0 ;
08485     BezierEdge *arg3 = (BezierEdge *) 0 ;
08486     BezierTuple result;
08487     VALUE vresult = Qnil;
08488     
08489     if ((argc < 2) || (argc > 2))
08490     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
08491     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08492     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
08493     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierEdge, 1);
08494     result = (arg1)->get_tuple(arg2,arg3);
08495     
08496     {
08497         BezierTuple * resultptr;
08498         resultptr = new BezierTuple((BezierTuple &)result);
08499         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
08500     }
08501     return vresult;
08502 }
08503 
08504 
08505 static VALUE _wrap_BezierComplex_get_tuple(int nargs, VALUE *args, VALUE self) {
08506     int argc;
08507     VALUE argv[4];
08508     int ii;
08509     
08510     argc = nargs + 1;
08511     argv[0] = self;
08512     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
08513         argv[ii] = args[ii-1];
08514     }
08515     if (argc == 1) {
08516         int _v;
08517         {
08518             void *ptr;
08519             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08520         }
08521         if (_v) {
08522             return _wrap_BezierComplex_get_tuple__SWIG_0(nargs, args, self);
08523         }
08524     }
08525     if (argc == 2) {
08526         int _v;
08527         {
08528             void *ptr;
08529             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08530         }
08531         if (_v) {
08532             {
08533                 void *ptr;
08534                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08535             }
08536             if (_v) {
08537                 return _wrap_BezierComplex_get_tuple__SWIG_1(nargs, args, self);
08538             }
08539         }
08540     }
08541     if (argc == 2) {
08542         int _v;
08543         {
08544             void *ptr;
08545             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08546         }
08547         if (_v) {
08548             {
08549                 void *ptr;
08550                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
08551             }
08552             if (_v) {
08553                 return _wrap_BezierComplex_get_tuple__SWIG_4(nargs, args, self);
08554             }
08555         }
08556     }
08557     if (argc == 2) {
08558         int _v;
08559         {
08560             void *ptr;
08561             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08562         }
08563         if (_v) {
08564             {
08565                 void *ptr;
08566                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
08567             }
08568             if (_v) {
08569                 return _wrap_BezierComplex_get_tuple__SWIG_5(nargs, args, self);
08570             }
08571         }
08572     }
08573     if (argc == 3) {
08574         int _v;
08575         {
08576             void *ptr;
08577             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08578         }
08579         if (_v) {
08580             {
08581                 void *ptr;
08582                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
08583             }
08584             if (_v) {
08585                 {
08586                     void *ptr;
08587                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08588                 }
08589                 if (_v) {
08590                     return _wrap_BezierComplex_get_tuple__SWIG_2(nargs, args, self);
08591                 }
08592             }
08593         }
08594     }
08595     if (argc == 3) {
08596         int _v;
08597         {
08598             void *ptr;
08599             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08600         }
08601         if (_v) {
08602             {
08603                 void *ptr;
08604                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
08605             }
08606             if (_v) {
08607                 {
08608                     void *ptr;
08609                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
08610                 }
08611                 if (_v) {
08612                     return _wrap_BezierComplex_get_tuple__SWIG_3(nargs, args, self);
08613                 }
08614             }
08615         }
08616     }
08617     if (argc == 3) {
08618         int _v;
08619         {
08620             void *ptr;
08621             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 0) != -1)) ? 1 : 0;
08622         }
08623         if (_v) {
08624             {
08625                 void *ptr;
08626                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
08627             }
08628             if (_v) {
08629                 {
08630                     void *ptr;
08631                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
08632                 }
08633                 if (_v) {
08634                     return _wrap_BezierComplex_get_tuple__SWIG_6(nargs, args, self);
08635                 }
08636             }
08637         }
08638     }
08639     
08640     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierComplex_get_tuple'");
08641     return Qnil;
08642 }
08643 
08644 
08645 static VALUE
08646 _wrap_BezierComplex_is_ccw_tuple(int argc, VALUE *argv, VALUE self) {
08647     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08648     BezierTuple arg2 ;
08649     bool result;
08650     VALUE vresult = Qnil;
08651     
08652     if ((argc < 1) || (argc > 1))
08653     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08654     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08655     {
08656         BezierTuple * ptr;
08657         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_BezierTuple, 1);
08658         if (ptr) arg2 = *ptr;
08659     }
08660     result = (bool)(arg1)->is_ccw_tuple(arg2);
08661     
08662     vresult = result ? Qtrue : Qfalse;
08663     return vresult;
08664 }
08665 
08666 
08667 static VALUE
08668 _wrap_BezierComplex_is_inverted(int argc, VALUE *argv, VALUE self) {
08669     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08670     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
08671     bool result;
08672     VALUE vresult = Qnil;
08673     
08674     if ((argc < 1) || (argc > 1))
08675     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08676     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08677     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
08678     result = (bool)(arg1)->is_inverted(arg2);
08679     
08680     vresult = result ? Qtrue : Qfalse;
08681     return vresult;
08682 }
08683 
08684 
08685 static VALUE
08686 _wrap_BezierComplex_print(int argc, VALUE *argv, VALUE self) {
08687     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08688     
08689     if ((argc < 0) || (argc > 0))
08690     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08691     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08692     (arg1)->print();
08693     
08694     return Qnil;
08695 }
08696 
08697 
08698 static VALUE
08699 _wrap_BezierComplex_print_statistics(int argc, VALUE *argv, VALUE self) {
08700     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08701     
08702     if ((argc < 0) || (argc > 0))
08703     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08704     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08705     (arg1)->print_statistics();
08706     
08707     return Qnil;
08708 }
08709 
08710 
08711 static VALUE
08712 _wrap_BezierComplex_num_vertexs_set(int argc, VALUE *argv, VALUE self) {
08713     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08714     int arg2 ;
08715     
08716     if ((argc < 1) || (argc > 1))
08717     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08718     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08719     arg2 = NUM2INT(argv[0]);
08720     if (arg1) (arg1)->num_vertexs = arg2;
08721     
08722     return Qnil;
08723 }
08724 
08725 
08726 static VALUE
08727 _wrap_BezierComplex_num_vertexs_get(int argc, VALUE *argv, VALUE self) {
08728     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08729     int result;
08730     VALUE vresult = Qnil;
08731     
08732     if ((argc < 0) || (argc > 0))
08733     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08734     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08735     result = (int) ((arg1)->num_vertexs);
08736     
08737     vresult = INT2NUM(result);
08738     return vresult;
08739 }
08740 
08741 
08742 static VALUE
08743 _wrap_BezierComplex_num_edges_set(int argc, VALUE *argv, VALUE self) {
08744     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08745     int arg2 ;
08746     
08747     if ((argc < 1) || (argc > 1))
08748     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08749     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08750     arg2 = NUM2INT(argv[0]);
08751     if (arg1) (arg1)->num_edges = arg2;
08752     
08753     return Qnil;
08754 }
08755 
08756 
08757 static VALUE
08758 _wrap_BezierComplex_num_edges_get(int argc, VALUE *argv, VALUE self) {
08759     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08760     int result;
08761     VALUE vresult = Qnil;
08762     
08763     if ((argc < 0) || (argc > 0))
08764     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08765     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08766     result = (int) ((arg1)->num_edges);
08767     
08768     vresult = INT2NUM(result);
08769     return vresult;
08770 }
08771 
08772 
08773 static VALUE
08774 _wrap_BezierComplex_num_faces_set(int argc, VALUE *argv, VALUE self) {
08775     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08776     int arg2 ;
08777     
08778     if ((argc < 1) || (argc > 1))
08779     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08780     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08781     arg2 = NUM2INT(argv[0]);
08782     if (arg1) (arg1)->num_faces = arg2;
08783     
08784     return Qnil;
08785 }
08786 
08787 
08788 static VALUE
08789 _wrap_BezierComplex_num_faces_get(int argc, VALUE *argv, VALUE self) {
08790     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08791     int result;
08792     VALUE vresult = Qnil;
08793     
08794     if ((argc < 0) || (argc > 0))
08795     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08796     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08797     result = (int) ((arg1)->num_faces);
08798     
08799     vresult = INT2NUM(result);
08800     return vresult;
08801 }
08802 
08803 
08804 static VALUE
08805 _wrap_BezierComplex_control_points_set(int argc, VALUE *argv, VALUE self) {
08806     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08807     list<Point2D > *arg2 = (list<Point2D > *) 0 ;
08808     
08809     if ((argc < 1) || (argc > 1))
08810     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08811     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08812     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_listTPoint2D_t, 1);
08813     if (arg1) (arg1)->control_points = *arg2;
08814     
08815     return Qnil;
08816 }
08817 
08818 
08819 static VALUE
08820 _wrap_BezierComplex_control_points_get(int argc, VALUE *argv, VALUE self) {
08821     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08822     list<Point2D > *result;
08823     VALUE vresult = Qnil;
08824     
08825     if ((argc < 0) || (argc > 0))
08826     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08827     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08828     result = (list<Point2D > *)& ((arg1)->control_points);
08829     
08830     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_listTPoint2D_t,0);
08831     return vresult;
08832 }
08833 
08834 
08835 static VALUE
08836 _wrap_BezierComplex_data_points_set(int argc, VALUE *argv, VALUE self) {
08837     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08838     list<LinearData > *arg2 = (list<LinearData > *) 0 ;
08839     
08840     if ((argc < 1) || (argc > 1))
08841     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08842     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08843     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_listTLinearData_t, 1);
08844     if (arg1) (arg1)->data_points = *arg2;
08845     
08846     return Qnil;
08847 }
08848 
08849 
08850 static VALUE
08851 _wrap_BezierComplex_data_points_get(int argc, VALUE *argv, VALUE self) {
08852     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08853     list<LinearData > *result;
08854     VALUE vresult = Qnil;
08855     
08856     if ((argc < 0) || (argc > 0))
08857     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08858     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08859     result = (list<LinearData > *)& ((arg1)->data_points);
08860     
08861     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_listTLinearData_t,0);
08862     return vresult;
08863 }
08864 
08865 
08866 static VALUE
08867 _wrap_BezierComplex_data_hash_set(int argc, VALUE *argv, VALUE self) {
08868     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08869     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Data_Hash_T arg2 ;
08870     
08871     if ((argc < 1) || (argc > 1))
08872     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08873     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08874     {
08875         CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Data_Hash_T * ptr;
08876         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t, 1);
08877         if (ptr) arg2 = *ptr;
08878     }
08879     if (arg1) (arg1)->data_hash = arg2;
08880     
08881     return Qnil;
08882 }
08883 
08884 
08885 static VALUE
08886 _wrap_BezierComplex_data_hash_get(int argc, VALUE *argv, VALUE self) {
08887     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08888     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Data_Hash_T result;
08889     VALUE vresult = Qnil;
08890     
08891     if ((argc < 0) || (argc > 0))
08892     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08893     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08894     result =  ((arg1)->data_hash);
08895     
08896     {
08897         CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Data_Hash_T * resultptr;
08898         resultptr = new CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Data_Hash_T((CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Data_Hash_T &)result);
08899         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t, 1);
08900     }
08901     return vresult;
08902 }
08903 
08904 
08905 static VALUE
08906 _wrap_BezierComplex_vertexs_set(int argc, VALUE *argv, VALUE self) {
08907     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08908     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Vertex_Hash_T *arg2 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Vertex_Hash_T *) 0 ;
08909     
08910     if ((argc < 1) || (argc > 1))
08911     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08912     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08913     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t, 1);
08914     if (arg1) (arg1)->vertexs = *arg2;
08915     
08916     return Qnil;
08917 }
08918 
08919 
08920 static VALUE
08921 _wrap_BezierComplex_vertexs_get(int argc, VALUE *argv, VALUE self) {
08922     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08923     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Vertex_Hash_T *result;
08924     VALUE vresult = Qnil;
08925     
08926     if ((argc < 0) || (argc > 0))
08927     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08928     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08929     result = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Vertex_Hash_T *)& ((arg1)->vertexs);
08930     
08931     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t,0);
08932     return vresult;
08933 }
08934 
08935 
08936 static VALUE
08937 _wrap_BezierComplex_edges_set(int argc, VALUE *argv, VALUE self) {
08938     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08939     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Edge_Hash_T *arg2 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Edge_Hash_T *) 0 ;
08940     
08941     if ((argc < 1) || (argc > 1))
08942     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08943     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08944     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t, 1);
08945     if (arg1) (arg1)->edges = *arg2;
08946     
08947     return Qnil;
08948 }
08949 
08950 
08951 static VALUE
08952 _wrap_BezierComplex_edges_get(int argc, VALUE *argv, VALUE self) {
08953     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08954     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Edge_Hash_T *result;
08955     VALUE vresult = Qnil;
08956     
08957     if ((argc < 0) || (argc > 0))
08958     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08959     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08960     result = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Edge_Hash_T *)& ((arg1)->edges);
08961     
08962     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t,0);
08963     return vresult;
08964 }
08965 
08966 
08967 static VALUE
08968 _wrap_BezierComplex_faces_set(int argc, VALUE *argv, VALUE self) {
08969     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08970     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Face_Hash_T *arg2 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Face_Hash_T *) 0 ;
08971     
08972     if ((argc < 1) || (argc > 1))
08973     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
08974     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08975     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t, 1);
08976     if (arg1) (arg1)->faces = *arg2;
08977     
08978     return Qnil;
08979 }
08980 
08981 
08982 static VALUE
08983 _wrap_BezierComplex_faces_get(int argc, VALUE *argv, VALUE self) {
08984     CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *arg1 = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *) 0 ;
08985     CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Face_Hash_T *result;
08986     VALUE vresult = Qnil;
08987     
08988     if ((argc < 0) || (argc > 0))
08989     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
08990     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 1);
08991     result = (CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Face_Hash_T *)& ((arg1)->faces);
08992     
08993     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t,0);
08994     return vresult;
08995 }
08996 
08997 
08998 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
08999 static VALUE
09000 _wrap_BoundaryComplex_allocate(VALUE self) {
09001 #else
09002     static VALUE
09003     _wrap_BoundaryComplex_allocate(int argc, VALUE *argv, VALUE self) {
09004 #endif
09005         
09006         
09007         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t);
09008 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
09009         rb_obj_call_init(vresult, argc, argv);
09010 #endif
09011         return vresult;
09012     }
09013     
09014 
09015 static VALUE
09016 _wrap_new_BoundaryComplex(int argc, VALUE *argv, VALUE self) {
09017     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *result;
09018     
09019     if ((argc < 0) || (argc > 0))
09020     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
09021     result = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *)new CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple >();
09022     DATA_PTR(self) = result;
09023     return self;
09024 }
09025 
09026 
09027 static void
09028 free_CellComplexlBoundaryVertexcBoundaryEdgecBoundaryFacecBoundaryTuple_g___(CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1) {
09029     delete arg1;
09030 }
09031 static VALUE
09032 _wrap_BoundaryComplex_import_mesh(int argc, VALUE *argv, VALUE self) {
09033     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09034     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg2 = 0 ;
09035     
09036     if ((argc < 1) || (argc > 1))
09037     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09038     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09039     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
09040     (arg1)->import_mesh((CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > const &)*arg2);
09041     
09042     return Qnil;
09043 }
09044 
09045 
09046 static VALUE
09047 _wrap_BoundaryComplex_add_cp(int argc, VALUE *argv, VALUE self) {
09048     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09049     Point2D *arg2 = 0 ;
09050     ControlPoint result;
09051     VALUE vresult = Qnil;
09052     
09053     if ((argc < 1) || (argc > 1))
09054     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09055     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09056     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
09057     result = (arg1)->add_cp((Point2D const &)*arg2);
09058     
09059     {
09060         ControlPoint * resultptr;
09061         resultptr = new ControlPoint((ControlPoint &)result);
09062         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_ControlPoint, 1);
09063     }
09064     return vresult;
09065 }
09066 
09067 
09068 static VALUE
09069 _wrap_BoundaryComplex_rem_cp(int argc, VALUE *argv, VALUE self) {
09070     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09071     ControlPoint arg2 ;
09072     
09073     if ((argc < 1) || (argc > 1))
09074     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09075     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09076     {
09077         ControlPoint * ptr;
09078         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
09079         if (ptr) arg2 = *ptr;
09080     }
09081     (arg1)->rem_cp(arg2);
09082     
09083     return Qnil;
09084 }
09085 
09086 
09087 static VALUE
09088 _wrap_BoundaryComplex_add_dp(int argc, VALUE *argv, VALUE self) {
09089     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09090     ControlPoint arg2 ;
09091     LinearData *arg3 = 0 ;
09092     DataPoint result;
09093     VALUE vresult = Qnil;
09094     
09095     if ((argc < 2) || (argc > 2))
09096     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09097     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09098     {
09099         ControlPoint * ptr;
09100         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
09101         if (ptr) arg2 = *ptr;
09102     }
09103     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09104     result = (arg1)->add_dp(arg2,(LinearData const &)*arg3);
09105     
09106     {
09107         DataPoint * resultptr;
09108         resultptr = new DataPoint((DataPoint &)result);
09109         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_DataPoint, 1);
09110     }
09111     return vresult;
09112 }
09113 
09114 
09115 static VALUE
09116 _wrap_BoundaryComplex_rem_dp(int argc, VALUE *argv, VALUE self) {
09117     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09118     ControlPoint arg2 ;
09119     DataPoint arg3 ;
09120     
09121     if ((argc < 2) || (argc > 2))
09122     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09123     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09124     {
09125         ControlPoint * ptr;
09126         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
09127         if (ptr) arg2 = *ptr;
09128     }
09129     {
09130         DataPoint * ptr;
09131         SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_DataPoint, 1);
09132         if (ptr) arg3 = *ptr;
09133     }
09134     (arg1)->rem_dp(arg2,arg3);
09135     
09136     return Qnil;
09137 }
09138 
09139 
09140 static VALUE
09141 _wrap_BoundaryComplex_add_vertex(int argc, VALUE *argv, VALUE self) {
09142     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09143     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09144     
09145     if ((argc < 1) || (argc > 1))
09146     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09147     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09148     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09149     (arg1)->add_vertex(arg2);
09150     
09151     return Qnil;
09152 }
09153 
09154 
09155 static VALUE
09156 _wrap_BoundaryComplex_add_edge(int argc, VALUE *argv, VALUE self) {
09157     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09158     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09159     BoundaryVertex *arg3 = (BoundaryVertex *) 0 ;
09160     BoundaryVertex *arg4 = (BoundaryVertex *) 0 ;
09161     
09162     if ((argc < 3) || (argc > 3))
09163     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
09164     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09165     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09166     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryVertex, 1);
09167     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BoundaryVertex, 1);
09168     (arg1)->add_edge(arg2,arg3,arg4);
09169     
09170     return Qnil;
09171 }
09172 
09173 
09174 static VALUE
09175 _wrap_BoundaryComplex_add_face(int argc, VALUE *argv, VALUE self) {
09176     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09177     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09178     BoundaryEdge **arg3 = (BoundaryEdge **) 0 ;
09179     int arg4 ;
09180     
09181     if ((argc < 3) || (argc > 3))
09182     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
09183     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09184     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09185     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_p_BoundaryEdge, 1);
09186     arg4 = NUM2INT(argv[2]);
09187     (arg1)->add_face(arg2,arg3,arg4);
09188     
09189     return Qnil;
09190 }
09191 
09192 
09193 static VALUE
09194 _wrap_BoundaryComplex_delete_vertex(int argc, VALUE *argv, VALUE self) {
09195     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09196     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09197     
09198     if ((argc < 1) || (argc > 1))
09199     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09200     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09201     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09202     (arg1)->delete_vertex(arg2);
09203     
09204     return Qnil;
09205 }
09206 
09207 
09208 static VALUE
09209 _wrap_BoundaryComplex_delete_edge(int argc, VALUE *argv, VALUE self) {
09210     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09211     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09212     
09213     if ((argc < 1) || (argc > 1))
09214     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09215     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09216     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09217     (arg1)->delete_edge(arg2);
09218     
09219     return Qnil;
09220 }
09221 
09222 
09223 static VALUE
09224 _wrap_BoundaryComplex_delete_face(int argc, VALUE *argv, VALUE self) {
09225     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09226     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09227     
09228     if ((argc < 1) || (argc > 1))
09229     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09230     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09231     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09232     (arg1)->delete_face(arg2);
09233     
09234     return Qnil;
09235 }
09236 
09237 
09238 static VALUE
09239 _wrap_BoundaryComplex_is_member__SWIG_0(int argc, VALUE *argv, VALUE self) {
09240     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09241     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09242     bool result;
09243     VALUE vresult = Qnil;
09244     
09245     if ((argc < 1) || (argc > 1))
09246     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09247     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09248     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09249     result = (bool)(arg1)->is_member(arg2);
09250     
09251     vresult = result ? Qtrue : Qfalse;
09252     return vresult;
09253 }
09254 
09255 
09256 static VALUE
09257 _wrap_BoundaryComplex_is_member__SWIG_1(int argc, VALUE *argv, VALUE self) {
09258     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09259     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09260     bool result;
09261     VALUE vresult = Qnil;
09262     
09263     if ((argc < 1) || (argc > 1))
09264     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09265     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09266     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09267     result = (bool)(arg1)->is_member(arg2);
09268     
09269     vresult = result ? Qtrue : Qfalse;
09270     return vresult;
09271 }
09272 
09273 
09274 static VALUE
09275 _wrap_BoundaryComplex_is_member__SWIG_2(int argc, VALUE *argv, VALUE self) {
09276     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09277     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09278     bool result;
09279     VALUE vresult = Qnil;
09280     
09281     if ((argc < 1) || (argc > 1))
09282     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
09283     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09284     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09285     result = (bool)(arg1)->is_member(arg2);
09286     
09287     vresult = result ? Qtrue : Qfalse;
09288     return vresult;
09289 }
09290 
09291 
09292 static VALUE _wrap_BoundaryComplex_is_member(int nargs, VALUE *args, VALUE self) {
09293     int argc;
09294     VALUE argv[3];
09295     int ii;
09296     
09297     argc = nargs + 1;
09298     argv[0] = self;
09299     for (ii = 1; (ii < argc) && (ii < 2); ii++) {
09300         argv[ii] = args[ii-1];
09301     }
09302     if (argc == 2) {
09303         int _v;
09304         {
09305             void *ptr;
09306             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09307         }
09308         if (_v) {
09309             {
09310                 void *ptr;
09311                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
09312             }
09313             if (_v) {
09314                 return _wrap_BoundaryComplex_is_member__SWIG_0(nargs, args, self);
09315             }
09316         }
09317     }
09318     if (argc == 2) {
09319         int _v;
09320         {
09321             void *ptr;
09322             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09323         }
09324         if (_v) {
09325             {
09326                 void *ptr;
09327                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
09328             }
09329             if (_v) {
09330                 return _wrap_BoundaryComplex_is_member__SWIG_1(nargs, args, self);
09331             }
09332         }
09333     }
09334     if (argc == 2) {
09335         int _v;
09336         {
09337             void *ptr;
09338             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09339         }
09340         if (_v) {
09341             {
09342                 void *ptr;
09343                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09344             }
09345             if (_v) {
09346                 return _wrap_BoundaryComplex_is_member__SWIG_2(nargs, args, self);
09347             }
09348         }
09349     }
09350     
09351     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_is_member'");
09352     return Qnil;
09353 }
09354 
09355 
09356 static VALUE
09357 _wrap_BoundaryComplex_lower__SWIG_0(int argc, VALUE *argv, VALUE self) {
09358     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09359     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09360     vector<BoundaryVertex * > *arg3 = 0 ;
09361     int result;
09362     VALUE vresult = Qnil;
09363     
09364     if ((argc < 2) || (argc > 2))
09365     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09366     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09367     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09368     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBoundaryVertex_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09369     result = (int)(arg1)->lower(arg2,*arg3);
09370     
09371     vresult = INT2NUM(result);
09372     return vresult;
09373 }
09374 
09375 
09376 static VALUE
09377 _wrap_BoundaryComplex_lower__SWIG_1(int argc, VALUE *argv, VALUE self) {
09378     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09379     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09380     list<BoundaryVertex * > *arg3 = 0 ;
09381     int result;
09382     VALUE vresult = Qnil;
09383     
09384     if ((argc < 2) || (argc > 2))
09385     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09386     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09387     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09388     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBoundaryVertex_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09389     result = (int)(arg1)->lower(arg2,*arg3);
09390     
09391     vresult = INT2NUM(result);
09392     return vresult;
09393 }
09394 
09395 
09396 static VALUE
09397 _wrap_BoundaryComplex_lower__SWIG_2(int argc, VALUE *argv, VALUE self) {
09398     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09399     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09400     vector<BoundaryEdge * > *arg3 = 0 ;
09401     int result;
09402     VALUE vresult = Qnil;
09403     
09404     if ((argc < 2) || (argc > 2))
09405     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09406     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09407     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09408     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09409     result = (int)(arg1)->lower(arg2,*arg3);
09410     
09411     vresult = INT2NUM(result);
09412     return vresult;
09413 }
09414 
09415 
09416 static VALUE
09417 _wrap_BoundaryComplex_lower__SWIG_3(int argc, VALUE *argv, VALUE self) {
09418     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09419     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09420     list<BoundaryEdge * > *arg3 = 0 ;
09421     int result;
09422     VALUE vresult = Qnil;
09423     
09424     if ((argc < 2) || (argc > 2))
09425     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09426     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09427     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09428     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09429     result = (int)(arg1)->lower(arg2,*arg3);
09430     
09431     vresult = INT2NUM(result);
09432     return vresult;
09433 }
09434 
09435 
09436 static VALUE _wrap_BoundaryComplex_lower(int nargs, VALUE *args, VALUE self) {
09437     int argc;
09438     VALUE argv[4];
09439     int ii;
09440     
09441     argc = nargs + 1;
09442     argv[0] = self;
09443     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
09444         argv[ii] = args[ii-1];
09445     }
09446     if (argc == 3) {
09447         int _v;
09448         {
09449             void *ptr;
09450             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09451         }
09452         if (_v) {
09453             {
09454                 void *ptr;
09455                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
09456             }
09457             if (_v) {
09458                 {
09459                     void *ptr;
09460                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBoundaryVertex_p_t, 0) != -1)) ? 1 : 0;
09461                 }
09462                 if (_v) {
09463                     return _wrap_BoundaryComplex_lower__SWIG_0(nargs, args, self);
09464                 }
09465             }
09466         }
09467     }
09468     if (argc == 3) {
09469         int _v;
09470         {
09471             void *ptr;
09472             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09473         }
09474         if (_v) {
09475             {
09476                 void *ptr;
09477                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
09478             }
09479             if (_v) {
09480                 {
09481                     void *ptr;
09482                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBoundaryVertex_p_t, 0) != -1)) ? 1 : 0;
09483                 }
09484                 if (_v) {
09485                     return _wrap_BoundaryComplex_lower__SWIG_1(nargs, args, self);
09486                 }
09487             }
09488         }
09489     }
09490     if (argc == 3) {
09491         int _v;
09492         {
09493             void *ptr;
09494             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09495         }
09496         if (_v) {
09497             {
09498                 void *ptr;
09499                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09500             }
09501             if (_v) {
09502                 {
09503                     void *ptr;
09504                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 0) != -1)) ? 1 : 0;
09505                 }
09506                 if (_v) {
09507                     return _wrap_BoundaryComplex_lower__SWIG_2(nargs, args, self);
09508                 }
09509             }
09510         }
09511     }
09512     if (argc == 3) {
09513         int _v;
09514         {
09515             void *ptr;
09516             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09517         }
09518         if (_v) {
09519             {
09520                 void *ptr;
09521                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09522             }
09523             if (_v) {
09524                 {
09525                     void *ptr;
09526                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBoundaryEdge_p_t, 0) != -1)) ? 1 : 0;
09527                 }
09528                 if (_v) {
09529                     return _wrap_BoundaryComplex_lower__SWIG_3(nargs, args, self);
09530                 }
09531             }
09532         }
09533     }
09534     
09535     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_lower'");
09536     return Qnil;
09537 }
09538 
09539 
09540 static VALUE
09541 _wrap_BoundaryComplex_upper__SWIG_0(int argc, VALUE *argv, VALUE self) {
09542     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09543     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09544     vector<BoundaryFace * > *arg3 = 0 ;
09545     int result;
09546     VALUE vresult = Qnil;
09547     
09548     if ((argc < 2) || (argc > 2))
09549     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09550     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09551     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09552     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBoundaryFace_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09553     result = (int)(arg1)->upper(arg2,*arg3);
09554     
09555     vresult = INT2NUM(result);
09556     return vresult;
09557 }
09558 
09559 
09560 static VALUE
09561 _wrap_BoundaryComplex_upper__SWIG_1(int argc, VALUE *argv, VALUE self) {
09562     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09563     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09564     list<BoundaryFace * > *arg3 = 0 ;
09565     int result;
09566     VALUE vresult = Qnil;
09567     
09568     if ((argc < 2) || (argc > 2))
09569     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09570     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09571     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09572     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBoundaryFace_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09573     result = (int)(arg1)->upper(arg2,*arg3);
09574     
09575     vresult = INT2NUM(result);
09576     return vresult;
09577 }
09578 
09579 
09580 static VALUE
09581 _wrap_BoundaryComplex_upper__SWIG_2(int argc, VALUE *argv, VALUE self) {
09582     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09583     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09584     vector<BoundaryEdge * > *arg3 = 0 ;
09585     int result;
09586     VALUE vresult = Qnil;
09587     
09588     if ((argc < 2) || (argc > 2))
09589     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09590     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09591     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09592     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09593     result = (int)(arg1)->upper(arg2,*arg3);
09594     
09595     vresult = INT2NUM(result);
09596     return vresult;
09597 }
09598 
09599 
09600 static VALUE
09601 _wrap_BoundaryComplex_upper__SWIG_3(int argc, VALUE *argv, VALUE self) {
09602     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09603     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09604     list<BoundaryEdge * > *arg3 = 0 ;
09605     int result;
09606     VALUE vresult = Qnil;
09607     
09608     if ((argc < 2) || (argc > 2))
09609     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09610     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09611     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09612     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09613     result = (int)(arg1)->upper(arg2,*arg3);
09614     
09615     vresult = INT2NUM(result);
09616     return vresult;
09617 }
09618 
09619 
09620 static VALUE _wrap_BoundaryComplex_upper(int nargs, VALUE *args, VALUE self) {
09621     int argc;
09622     VALUE argv[4];
09623     int ii;
09624     
09625     argc = nargs + 1;
09626     argv[0] = self;
09627     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
09628         argv[ii] = args[ii-1];
09629     }
09630     if (argc == 3) {
09631         int _v;
09632         {
09633             void *ptr;
09634             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09635         }
09636         if (_v) {
09637             {
09638                 void *ptr;
09639                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
09640             }
09641             if (_v) {
09642                 {
09643                     void *ptr;
09644                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBoundaryFace_p_t, 0) != -1)) ? 1 : 0;
09645                 }
09646                 if (_v) {
09647                     return _wrap_BoundaryComplex_upper__SWIG_0(nargs, args, self);
09648                 }
09649             }
09650         }
09651     }
09652     if (argc == 3) {
09653         int _v;
09654         {
09655             void *ptr;
09656             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09657         }
09658         if (_v) {
09659             {
09660                 void *ptr;
09661                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
09662             }
09663             if (_v) {
09664                 {
09665                     void *ptr;
09666                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBoundaryFace_p_t, 0) != -1)) ? 1 : 0;
09667                 }
09668                 if (_v) {
09669                     return _wrap_BoundaryComplex_upper__SWIG_1(nargs, args, self);
09670                 }
09671             }
09672         }
09673     }
09674     if (argc == 3) {
09675         int _v;
09676         {
09677             void *ptr;
09678             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09679         }
09680         if (_v) {
09681             {
09682                 void *ptr;
09683                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
09684             }
09685             if (_v) {
09686                 {
09687                     void *ptr;
09688                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 0) != -1)) ? 1 : 0;
09689                 }
09690                 if (_v) {
09691                     return _wrap_BoundaryComplex_upper__SWIG_2(nargs, args, self);
09692                 }
09693             }
09694         }
09695     }
09696     if (argc == 3) {
09697         int _v;
09698         {
09699             void *ptr;
09700             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09701         }
09702         if (_v) {
09703             {
09704                 void *ptr;
09705                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
09706             }
09707             if (_v) {
09708                 {
09709                     void *ptr;
09710                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBoundaryEdge_p_t, 0) != -1)) ? 1 : 0;
09711                 }
09712                 if (_v) {
09713                     return _wrap_BoundaryComplex_upper__SWIG_3(nargs, args, self);
09714                 }
09715             }
09716         }
09717     }
09718     
09719     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_upper'");
09720     return Qnil;
09721 }
09722 
09723 
09724 static VALUE
09725 _wrap_BoundaryComplex_get_opposite_vertex(int argc, VALUE *argv, VALUE self) {
09726     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09727     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09728     BoundaryVertex *arg3 = (BoundaryVertex *) 0 ;
09729     BoundaryVertex *result;
09730     VALUE vresult = Qnil;
09731     
09732     if ((argc < 2) || (argc > 2))
09733     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09734     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09735     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09736     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryVertex, 1);
09737     result = (BoundaryVertex *)(arg1)->get_opposite_vertex(arg2,arg3);
09738     
09739     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryVertex,0);
09740     return vresult;
09741 }
09742 
09743 
09744 static VALUE
09745 _wrap_BoundaryComplex_get_opposite_face(int argc, VALUE *argv, VALUE self) {
09746     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09747     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09748     BoundaryFace *arg3 = (BoundaryFace *) 0 ;
09749     BoundaryFace *result;
09750     VALUE vresult = Qnil;
09751     
09752     if ((argc < 2) || (argc > 2))
09753     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09754     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09755     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09756     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryFace, 1);
09757     result = (BoundaryFace *)(arg1)->get_opposite_face(arg2,arg3);
09758     
09759     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
09760     return vresult;
09761 }
09762 
09763 
09764 static VALUE
09765 _wrap_BoundaryComplex_enqueue_faces(int argc, VALUE *argv, VALUE self) {
09766     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09767     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09768     deque<BoundaryFace * > *arg3 = 0 ;
09769     
09770     if ((argc < 2) || (argc > 2))
09771     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09772     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09773     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09774     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBoundaryFace_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09775     (arg1)->enqueue_faces(arg2,*arg3);
09776     
09777     return Qnil;
09778 }
09779 
09780 
09781 static VALUE
09782 _wrap_BoundaryComplex_enqueue_edges(int argc, VALUE *argv, VALUE self) {
09783     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09784     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09785     deque<BoundaryEdge * > *arg3 = 0 ;
09786     
09787     if ((argc < 2) || (argc > 2))
09788     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09789     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09790     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09791     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09792     (arg1)->enqueue_edges(arg2,*arg3);
09793     
09794     return Qnil;
09795 }
09796 
09797 
09798 static VALUE
09799 _wrap_BoundaryComplex_find_common_edge__SWIG_0(int argc, VALUE *argv, VALUE self) {
09800     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09801     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
09802     BoundaryVertex *arg3 = (BoundaryVertex *) 0 ;
09803     BoundaryEdge *result;
09804     VALUE vresult = Qnil;
09805     
09806     if ((argc < 2) || (argc > 2))
09807     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09808     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09809     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
09810     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryVertex, 1);
09811     result = (BoundaryEdge *)(arg1)->find_common_edge(arg2,arg3);
09812     
09813     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
09814     return vresult;
09815 }
09816 
09817 
09818 static VALUE
09819 _wrap_BoundaryComplex_find_common_edge__SWIG_1(int argc, VALUE *argv, VALUE self) {
09820     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09821     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09822     BoundaryFace *arg3 = (BoundaryFace *) 0 ;
09823     BoundaryEdge *result;
09824     VALUE vresult = Qnil;
09825     
09826     if ((argc < 2) || (argc > 2))
09827     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09828     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09829     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09830     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryFace, 1);
09831     result = (BoundaryEdge *)(arg1)->find_common_edge(arg2,arg3);
09832     
09833     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
09834     return vresult;
09835 }
09836 
09837 
09838 static VALUE _wrap_BoundaryComplex_find_common_edge(int nargs, VALUE *args, VALUE self) {
09839     int argc;
09840     VALUE argv[4];
09841     int ii;
09842     
09843     argc = nargs + 1;
09844     argv[0] = self;
09845     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
09846         argv[ii] = args[ii-1];
09847     }
09848     if (argc == 3) {
09849         int _v;
09850         {
09851             void *ptr;
09852             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09853         }
09854         if (_v) {
09855             {
09856                 void *ptr;
09857                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
09858             }
09859             if (_v) {
09860                 {
09861                     void *ptr;
09862                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
09863                 }
09864                 if (_v) {
09865                     return _wrap_BoundaryComplex_find_common_edge__SWIG_0(nargs, args, self);
09866                 }
09867             }
09868         }
09869     }
09870     if (argc == 3) {
09871         int _v;
09872         {
09873             void *ptr;
09874             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09875         }
09876         if (_v) {
09877             {
09878                 void *ptr;
09879                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09880             }
09881             if (_v) {
09882                 {
09883                     void *ptr;
09884                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09885                 }
09886                 if (_v) {
09887                     return _wrap_BoundaryComplex_find_common_edge__SWIG_1(nargs, args, self);
09888                 }
09889             }
09890         }
09891     }
09892     
09893     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_find_common_edge'");
09894     return Qnil;
09895 }
09896 
09897 
09898 static VALUE
09899 _wrap_BoundaryComplex_find_adjacent_faces__SWIG_0(int argc, VALUE *argv, VALUE self) {
09900     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09901     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09902     list<BoundaryFace * > *arg3 = 0 ;
09903     
09904     if ((argc < 2) || (argc > 2))
09905     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09906     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09907     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09908     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBoundaryFace_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09909     (arg1)->find_adjacent_faces(arg2,*arg3);
09910     
09911     return Qnil;
09912 }
09913 
09914 
09915 static VALUE
09916 _wrap_BoundaryComplex_find_adjacent_edges__SWIG_0(int argc, VALUE *argv, VALUE self) {
09917     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09918     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
09919     list<BoundaryEdge * > *arg3 = 0 ;
09920     
09921     if ((argc < 2) || (argc > 2))
09922     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09923     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09924     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
09925     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_listTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09926     (arg1)->find_adjacent_edges(arg2,*arg3);
09927     
09928     return Qnil;
09929 }
09930 
09931 
09932 static VALUE
09933 _wrap_BoundaryComplex_find_adjacent_faces__SWIG_1(int argc, VALUE *argv, VALUE self) {
09934     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
09935     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
09936     deque<BoundaryFace * > *arg3 = 0 ;
09937     
09938     if ((argc < 2) || (argc > 2))
09939     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
09940     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
09941     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
09942     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBoundaryFace_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
09943     (arg1)->find_adjacent_faces(arg2,*arg3);
09944     
09945     return Qnil;
09946 }
09947 
09948 
09949 static VALUE _wrap_BoundaryComplex_find_adjacent_faces(int nargs, VALUE *args, VALUE self) {
09950     int argc;
09951     VALUE argv[4];
09952     int ii;
09953     
09954     argc = nargs + 1;
09955     argv[0] = self;
09956     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
09957         argv[ii] = args[ii-1];
09958     }
09959     if (argc == 3) {
09960         int _v;
09961         {
09962             void *ptr;
09963             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09964         }
09965         if (_v) {
09966             {
09967                 void *ptr;
09968                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09969             }
09970             if (_v) {
09971                 {
09972                     void *ptr;
09973                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBoundaryFace_p_t, 0) != -1)) ? 1 : 0;
09974                 }
09975                 if (_v) {
09976                     return _wrap_BoundaryComplex_find_adjacent_faces__SWIG_0(nargs, args, self);
09977                 }
09978             }
09979         }
09980     }
09981     if (argc == 3) {
09982         int _v;
09983         {
09984             void *ptr;
09985             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
09986         }
09987         if (_v) {
09988             {
09989                 void *ptr;
09990                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
09991             }
09992             if (_v) {
09993                 {
09994                     void *ptr;
09995                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_dequeTBoundaryFace_p_t, 0) != -1)) ? 1 : 0;
09996                 }
09997                 if (_v) {
09998                     return _wrap_BoundaryComplex_find_adjacent_faces__SWIG_1(nargs, args, self);
09999                 }
10000             }
10001         }
10002     }
10003     
10004     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_find_adjacent_faces'");
10005     return Qnil;
10006 }
10007 
10008 
10009 static VALUE
10010 _wrap_BoundaryComplex_find_adjacent_edges__SWIG_1(int argc, VALUE *argv, VALUE self) {
10011     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10012     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
10013     deque<BoundaryEdge * > *arg3 = 0 ;
10014     
10015     if ((argc < 2) || (argc > 2))
10016     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
10017     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10018     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
10019     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_dequeTBoundaryEdge_p_t, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
10020     (arg1)->find_adjacent_edges(arg2,*arg3);
10021     
10022     return Qnil;
10023 }
10024 
10025 
10026 static VALUE _wrap_BoundaryComplex_find_adjacent_edges(int nargs, VALUE *args, VALUE self) {
10027     int argc;
10028     VALUE argv[4];
10029     int ii;
10030     
10031     argc = nargs + 1;
10032     argv[0] = self;
10033     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
10034         argv[ii] = args[ii-1];
10035     }
10036     if (argc == 3) {
10037         int _v;
10038         {
10039             void *ptr;
10040             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10041         }
10042         if (_v) {
10043             {
10044                 void *ptr;
10045                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
10046             }
10047             if (_v) {
10048                 {
10049                     void *ptr;
10050                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_listTBoundaryEdge_p_t, 0) != -1)) ? 1 : 0;
10051                 }
10052                 if (_v) {
10053                     return _wrap_BoundaryComplex_find_adjacent_edges__SWIG_0(nargs, args, self);
10054                 }
10055             }
10056         }
10057     }
10058     if (argc == 3) {
10059         int _v;
10060         {
10061             void *ptr;
10062             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10063         }
10064         if (_v) {
10065             {
10066                 void *ptr;
10067                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
10068             }
10069             if (_v) {
10070                 {
10071                     void *ptr;
10072                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_dequeTBoundaryEdge_p_t, 0) != -1)) ? 1 : 0;
10073                 }
10074                 if (_v) {
10075                     return _wrap_BoundaryComplex_find_adjacent_edges__SWIG_1(nargs, args, self);
10076                 }
10077             }
10078         }
10079     }
10080     
10081     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_find_adjacent_edges'");
10082     return Qnil;
10083 }
10084 
10085 
10086 static VALUE
10087 _wrap_BoundaryComplex_Switch(int argc, VALUE *argv, VALUE self) {
10088     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10089     int arg2 ;
10090     BoundaryTuple *arg3 = 0 ;
10091     BoundaryTuple result;
10092     VALUE vresult = Qnil;
10093     
10094     if ((argc < 2) || (argc > 2))
10095     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
10096     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10097     arg2 = NUM2INT(argv[0]);
10098     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryTuple, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
10099     result = (arg1)->Switch(arg2,(BoundaryTuple const &)*arg3);
10100     
10101     {
10102         BoundaryTuple * resultptr;
10103         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10104         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10105     }
10106     return vresult;
10107 }
10108 
10109 
10110 static VALUE
10111 _wrap_BoundaryComplex_get_tuple__SWIG_0(int argc, VALUE *argv, VALUE self) {
10112     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10113     BoundaryTuple result;
10114     VALUE vresult = Qnil;
10115     
10116     if ((argc < 0) || (argc > 0))
10117     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10118     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10119     result = (arg1)->get_tuple();
10120     
10121     {
10122         BoundaryTuple * resultptr;
10123         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10124         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10125     }
10126     return vresult;
10127 }
10128 
10129 
10130 static VALUE
10131 _wrap_BoundaryComplex_get_tuple__SWIG_1(int argc, VALUE *argv, VALUE self) {
10132     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10133     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
10134     BoundaryTuple result;
10135     VALUE vresult = Qnil;
10136     
10137     if ((argc < 1) || (argc > 1))
10138     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10139     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10140     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
10141     result = (arg1)->get_tuple(arg2);
10142     
10143     {
10144         BoundaryTuple * resultptr;
10145         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10146         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10147     }
10148     return vresult;
10149 }
10150 
10151 
10152 static VALUE
10153 _wrap_BoundaryComplex_get_tuple__SWIG_2(int argc, VALUE *argv, VALUE self) {
10154     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10155     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
10156     BoundaryFace *arg3 = (BoundaryFace *) 0 ;
10157     BoundaryTuple result;
10158     VALUE vresult = Qnil;
10159     
10160     if ((argc < 2) || (argc > 2))
10161     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
10162     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10163     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
10164     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryFace, 1);
10165     result = (arg1)->get_tuple(arg2,arg3);
10166     
10167     {
10168         BoundaryTuple * resultptr;
10169         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10170         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10171     }
10172     return vresult;
10173 }
10174 
10175 
10176 static VALUE
10177 _wrap_BoundaryComplex_get_tuple__SWIG_3(int argc, VALUE *argv, VALUE self) {
10178     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10179     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
10180     BoundaryFace *arg3 = (BoundaryFace *) 0 ;
10181     BoundaryTuple result;
10182     VALUE vresult = Qnil;
10183     
10184     if ((argc < 2) || (argc > 2))
10185     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
10186     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10187     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
10188     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryFace, 1);
10189     result = (arg1)->get_tuple(arg2,arg3);
10190     
10191     {
10192         BoundaryTuple * resultptr;
10193         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10194         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10195     }
10196     return vresult;
10197 }
10198 
10199 
10200 static VALUE
10201 _wrap_BoundaryComplex_get_tuple__SWIG_4(int argc, VALUE *argv, VALUE self) {
10202     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10203     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
10204     BoundaryTuple result;
10205     VALUE vresult = Qnil;
10206     
10207     if ((argc < 1) || (argc > 1))
10208     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10209     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10210     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
10211     result = (arg1)->get_tuple(arg2);
10212     
10213     {
10214         BoundaryTuple * resultptr;
10215         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10216         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10217     }
10218     return vresult;
10219 }
10220 
10221 
10222 static VALUE
10223 _wrap_BoundaryComplex_get_tuple__SWIG_5(int argc, VALUE *argv, VALUE self) {
10224     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10225     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
10226     BoundaryTuple result;
10227     VALUE vresult = Qnil;
10228     
10229     if ((argc < 1) || (argc > 1))
10230     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10231     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10232     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
10233     result = (arg1)->get_tuple(arg2);
10234     
10235     {
10236         BoundaryTuple * resultptr;
10237         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10238         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10239     }
10240     return vresult;
10241 }
10242 
10243 
10244 static VALUE
10245 _wrap_BoundaryComplex_get_tuple__SWIG_6(int argc, VALUE *argv, VALUE self) {
10246     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10247     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
10248     BoundaryEdge *arg3 = (BoundaryEdge *) 0 ;
10249     BoundaryTuple result;
10250     VALUE vresult = Qnil;
10251     
10252     if ((argc < 2) || (argc > 2))
10253     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
10254     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10255     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
10256     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryEdge, 1);
10257     result = (arg1)->get_tuple(arg2,arg3);
10258     
10259     {
10260         BoundaryTuple * resultptr;
10261         resultptr = new BoundaryTuple((BoundaryTuple &)result);
10262         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BoundaryTuple, 1);
10263     }
10264     return vresult;
10265 }
10266 
10267 
10268 static VALUE _wrap_BoundaryComplex_get_tuple(int nargs, VALUE *args, VALUE self) {
10269     int argc;
10270     VALUE argv[4];
10271     int ii;
10272     
10273     argc = nargs + 1;
10274     argv[0] = self;
10275     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
10276         argv[ii] = args[ii-1];
10277     }
10278     if (argc == 1) {
10279         int _v;
10280         {
10281             void *ptr;
10282             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10283         }
10284         if (_v) {
10285             return _wrap_BoundaryComplex_get_tuple__SWIG_0(nargs, args, self);
10286         }
10287     }
10288     if (argc == 2) {
10289         int _v;
10290         {
10291             void *ptr;
10292             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10293         }
10294         if (_v) {
10295             {
10296                 void *ptr;
10297                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
10298             }
10299             if (_v) {
10300                 return _wrap_BoundaryComplex_get_tuple__SWIG_1(nargs, args, self);
10301             }
10302         }
10303     }
10304     if (argc == 2) {
10305         int _v;
10306         {
10307             void *ptr;
10308             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10309         }
10310         if (_v) {
10311             {
10312                 void *ptr;
10313                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10314             }
10315             if (_v) {
10316                 return _wrap_BoundaryComplex_get_tuple__SWIG_4(nargs, args, self);
10317             }
10318         }
10319     }
10320     if (argc == 2) {
10321         int _v;
10322         {
10323             void *ptr;
10324             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10325         }
10326         if (_v) {
10327             {
10328                 void *ptr;
10329                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
10330             }
10331             if (_v) {
10332                 return _wrap_BoundaryComplex_get_tuple__SWIG_5(nargs, args, self);
10333             }
10334         }
10335     }
10336     if (argc == 3) {
10337         int _v;
10338         {
10339             void *ptr;
10340             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10341         }
10342         if (_v) {
10343             {
10344                 void *ptr;
10345                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10346             }
10347             if (_v) {
10348                 {
10349                     void *ptr;
10350                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
10351                 }
10352                 if (_v) {
10353                     return _wrap_BoundaryComplex_get_tuple__SWIG_2(nargs, args, self);
10354                 }
10355             }
10356         }
10357     }
10358     if (argc == 3) {
10359         int _v;
10360         {
10361             void *ptr;
10362             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10363         }
10364         if (_v) {
10365             {
10366                 void *ptr;
10367                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
10368             }
10369             if (_v) {
10370                 {
10371                     void *ptr;
10372                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryFace, 0) != -1)) ? 1 : 0;
10373                 }
10374                 if (_v) {
10375                     return _wrap_BoundaryComplex_get_tuple__SWIG_3(nargs, args, self);
10376                 }
10377             }
10378         }
10379     }
10380     if (argc == 3) {
10381         int _v;
10382         {
10383             void *ptr;
10384             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 0) != -1)) ? 1 : 0;
10385         }
10386         if (_v) {
10387             {
10388                 void *ptr;
10389                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10390             }
10391             if (_v) {
10392                 {
10393                     void *ptr;
10394                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryEdge, 0) != -1)) ? 1 : 0;
10395                 }
10396                 if (_v) {
10397                     return _wrap_BoundaryComplex_get_tuple__SWIG_6(nargs, args, self);
10398                 }
10399             }
10400         }
10401     }
10402     
10403     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryComplex_get_tuple'");
10404     return Qnil;
10405 }
10406 
10407 
10408 static VALUE
10409 _wrap_BoundaryComplex_is_ccw_tuple(int argc, VALUE *argv, VALUE self) {
10410     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10411     BoundaryTuple arg2 ;
10412     bool result;
10413     VALUE vresult = Qnil;
10414     
10415     if ((argc < 1) || (argc > 1))
10416     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10417     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10418     {
10419         BoundaryTuple * ptr;
10420         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_BoundaryTuple, 1);
10421         if (ptr) arg2 = *ptr;
10422     }
10423     result = (bool)(arg1)->is_ccw_tuple(arg2);
10424     
10425     vresult = result ? Qtrue : Qfalse;
10426     return vresult;
10427 }
10428 
10429 
10430 static VALUE
10431 _wrap_BoundaryComplex_is_inverted(int argc, VALUE *argv, VALUE self) {
10432     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10433     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
10434     bool result;
10435     VALUE vresult = Qnil;
10436     
10437     if ((argc < 1) || (argc > 1))
10438     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10439     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10440     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
10441     result = (bool)(arg1)->is_inverted(arg2);
10442     
10443     vresult = result ? Qtrue : Qfalse;
10444     return vresult;
10445 }
10446 
10447 
10448 static VALUE
10449 _wrap_BoundaryComplex_print(int argc, VALUE *argv, VALUE self) {
10450     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10451     
10452     if ((argc < 0) || (argc > 0))
10453     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10454     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10455     (arg1)->print();
10456     
10457     return Qnil;
10458 }
10459 
10460 
10461 static VALUE
10462 _wrap_BoundaryComplex_print_statistics(int argc, VALUE *argv, VALUE self) {
10463     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10464     
10465     if ((argc < 0) || (argc > 0))
10466     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10467     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10468     (arg1)->print_statistics();
10469     
10470     return Qnil;
10471 }
10472 
10473 
10474 static VALUE
10475 _wrap_BoundaryComplex_num_vertexs_set(int argc, VALUE *argv, VALUE self) {
10476     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10477     int arg2 ;
10478     
10479     if ((argc < 1) || (argc > 1))
10480     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10481     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10482     arg2 = NUM2INT(argv[0]);
10483     if (arg1) (arg1)->num_vertexs = arg2;
10484     
10485     return Qnil;
10486 }
10487 
10488 
10489 static VALUE
10490 _wrap_BoundaryComplex_num_vertexs_get(int argc, VALUE *argv, VALUE self) {
10491     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10492     int result;
10493     VALUE vresult = Qnil;
10494     
10495     if ((argc < 0) || (argc > 0))
10496     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10497     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10498     result = (int) ((arg1)->num_vertexs);
10499     
10500     vresult = INT2NUM(result);
10501     return vresult;
10502 }
10503 
10504 
10505 static VALUE
10506 _wrap_BoundaryComplex_num_edges_set(int argc, VALUE *argv, VALUE self) {
10507     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10508     int arg2 ;
10509     
10510     if ((argc < 1) || (argc > 1))
10511     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10512     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10513     arg2 = NUM2INT(argv[0]);
10514     if (arg1) (arg1)->num_edges = arg2;
10515     
10516     return Qnil;
10517 }
10518 
10519 
10520 static VALUE
10521 _wrap_BoundaryComplex_num_edges_get(int argc, VALUE *argv, VALUE self) {
10522     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10523     int result;
10524     VALUE vresult = Qnil;
10525     
10526     if ((argc < 0) || (argc > 0))
10527     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10528     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10529     result = (int) ((arg1)->num_edges);
10530     
10531     vresult = INT2NUM(result);
10532     return vresult;
10533 }
10534 
10535 
10536 static VALUE
10537 _wrap_BoundaryComplex_num_faces_set(int argc, VALUE *argv, VALUE self) {
10538     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10539     int arg2 ;
10540     
10541     if ((argc < 1) || (argc > 1))
10542     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10543     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10544     arg2 = NUM2INT(argv[0]);
10545     if (arg1) (arg1)->num_faces = arg2;
10546     
10547     return Qnil;
10548 }
10549 
10550 
10551 static VALUE
10552 _wrap_BoundaryComplex_num_faces_get(int argc, VALUE *argv, VALUE self) {
10553     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10554     int result;
10555     VALUE vresult = Qnil;
10556     
10557     if ((argc < 0) || (argc > 0))
10558     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10559     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10560     result = (int) ((arg1)->num_faces);
10561     
10562     vresult = INT2NUM(result);
10563     return vresult;
10564 }
10565 
10566 
10567 static VALUE
10568 _wrap_BoundaryComplex_control_points_set(int argc, VALUE *argv, VALUE self) {
10569     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10570     list<Point2D > *arg2 = (list<Point2D > *) 0 ;
10571     
10572     if ((argc < 1) || (argc > 1))
10573     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10574     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10575     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_listTPoint2D_t, 1);
10576     if (arg1) (arg1)->control_points = *arg2;
10577     
10578     return Qnil;
10579 }
10580 
10581 
10582 static VALUE
10583 _wrap_BoundaryComplex_control_points_get(int argc, VALUE *argv, VALUE self) {
10584     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10585     list<Point2D > *result;
10586     VALUE vresult = Qnil;
10587     
10588     if ((argc < 0) || (argc > 0))
10589     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10590     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10591     result = (list<Point2D > *)& ((arg1)->control_points);
10592     
10593     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_listTPoint2D_t,0);
10594     return vresult;
10595 }
10596 
10597 
10598 static VALUE
10599 _wrap_BoundaryComplex_data_points_set(int argc, VALUE *argv, VALUE self) {
10600     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10601     list<LinearData > *arg2 = (list<LinearData > *) 0 ;
10602     
10603     if ((argc < 1) || (argc > 1))
10604     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10605     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10606     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_listTLinearData_t, 1);
10607     if (arg1) (arg1)->data_points = *arg2;
10608     
10609     return Qnil;
10610 }
10611 
10612 
10613 static VALUE
10614 _wrap_BoundaryComplex_data_points_get(int argc, VALUE *argv, VALUE self) {
10615     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10616     list<LinearData > *result;
10617     VALUE vresult = Qnil;
10618     
10619     if ((argc < 0) || (argc > 0))
10620     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10621     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10622     result = (list<LinearData > *)& ((arg1)->data_points);
10623     
10624     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_listTLinearData_t,0);
10625     return vresult;
10626 }
10627 
10628 
10629 static VALUE
10630 _wrap_BoundaryComplex_data_hash_set(int argc, VALUE *argv, VALUE self) {
10631     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10632     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T arg2 ;
10633     
10634     if ((argc < 1) || (argc > 1))
10635     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10636     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10637     {
10638         CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T * ptr;
10639         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t, 1);
10640         if (ptr) arg2 = *ptr;
10641     }
10642     if (arg1) (arg1)->data_hash = arg2;
10643     
10644     return Qnil;
10645 }
10646 
10647 
10648 static VALUE
10649 _wrap_BoundaryComplex_data_hash_get(int argc, VALUE *argv, VALUE self) {
10650     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10651     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T result;
10652     VALUE vresult = Qnil;
10653     
10654     if ((argc < 0) || (argc > 0))
10655     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10656     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10657     result =  ((arg1)->data_hash);
10658     
10659     {
10660         CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T * resultptr;
10661         resultptr = new CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T((CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T &)result);
10662         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t, 1);
10663     }
10664     return vresult;
10665 }
10666 
10667 
10668 static VALUE
10669 _wrap_BoundaryComplex_vertexs_set(int argc, VALUE *argv, VALUE self) {
10670     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10671     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Vertex_Hash_T *arg2 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Vertex_Hash_T *) 0 ;
10672     
10673     if ((argc < 1) || (argc > 1))
10674     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10675     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10676     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t, 1);
10677     if (arg1) (arg1)->vertexs = *arg2;
10678     
10679     return Qnil;
10680 }
10681 
10682 
10683 static VALUE
10684 _wrap_BoundaryComplex_vertexs_get(int argc, VALUE *argv, VALUE self) {
10685     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10686     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Vertex_Hash_T *result;
10687     VALUE vresult = Qnil;
10688     
10689     if ((argc < 0) || (argc > 0))
10690     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10691     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10692     result = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Vertex_Hash_T *)& ((arg1)->vertexs);
10693     
10694     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t,0);
10695     return vresult;
10696 }
10697 
10698 
10699 static VALUE
10700 _wrap_BoundaryComplex_edges_set(int argc, VALUE *argv, VALUE self) {
10701     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10702     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Edge_Hash_T *arg2 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Edge_Hash_T *) 0 ;
10703     
10704     if ((argc < 1) || (argc > 1))
10705     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10706     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10707     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t, 1);
10708     if (arg1) (arg1)->edges = *arg2;
10709     
10710     return Qnil;
10711 }
10712 
10713 
10714 static VALUE
10715 _wrap_BoundaryComplex_edges_get(int argc, VALUE *argv, VALUE self) {
10716     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10717     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Edge_Hash_T *result;
10718     VALUE vresult = Qnil;
10719     
10720     if ((argc < 0) || (argc > 0))
10721     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10722     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10723     result = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Edge_Hash_T *)& ((arg1)->edges);
10724     
10725     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t,0);
10726     return vresult;
10727 }
10728 
10729 
10730 static VALUE
10731 _wrap_BoundaryComplex_faces_set(int argc, VALUE *argv, VALUE self) {
10732     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10733     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Face_Hash_T *arg2 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Face_Hash_T *) 0 ;
10734     
10735     if ((argc < 1) || (argc > 1))
10736     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10737     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10738     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t, 1);
10739     if (arg1) (arg1)->faces = *arg2;
10740     
10741     return Qnil;
10742 }
10743 
10744 
10745 static VALUE
10746 _wrap_BoundaryComplex_faces_get(int argc, VALUE *argv, VALUE self) {
10747     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *arg1 = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *) 0 ;
10748     CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Face_Hash_T *result;
10749     VALUE vresult = Qnil;
10750     
10751     if ((argc < 0) || (argc > 0))
10752     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10753     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 1);
10754     result = (CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Face_Hash_T *)& ((arg1)->faces);
10755     
10756     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t,0);
10757     return vresult;
10758 }
10759 
10760 
10761 static VALUE
10762 _wrap_BoundaryMesh_beziermesh_set(int argc, VALUE *argv, VALUE self) {
10763     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
10764     BezierMesh *arg2 = (BezierMesh *) 0 ;
10765     
10766     if ((argc < 1) || (argc > 1))
10767     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10768     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
10769     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierMesh, 1);
10770     if (arg1) (arg1)->beziermesh = arg2;
10771     
10772     return Qnil;
10773 }
10774 
10775 
10776 static VALUE
10777 _wrap_BoundaryMesh_beziermesh_get(int argc, VALUE *argv, VALUE self) {
10778     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
10779     BezierMesh *result;
10780     VALUE vresult = Qnil;
10781     
10782     if ((argc < 0) || (argc > 0))
10783     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10784     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
10785     result = (BezierMesh *) ((arg1)->beziermesh);
10786     
10787     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierMesh,0);
10788     return vresult;
10789 }
10790 
10791 
10792 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
10793 static VALUE
10794 _wrap_BoundaryMesh_allocate(VALUE self) {
10795 #else
10796     static VALUE
10797     _wrap_BoundaryMesh_allocate(int argc, VALUE *argv, VALUE self) {
10798 #endif
10799         
10800         
10801         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BoundaryMesh);
10802 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
10803         rb_obj_call_init(vresult, argc, argv);
10804 #endif
10805         return vresult;
10806     }
10807     
10808 
10809 static VALUE
10810 _wrap_new_BoundaryMesh(int argc, VALUE *argv, VALUE self) {
10811     BoundaryMesh *result;
10812     
10813     if ((argc < 0) || (argc > 0))
10814     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
10815     result = (BoundaryMesh *)new BoundaryMesh();
10816     DATA_PTR(self) = result;
10817     return self;
10818 }
10819 
10820 
10821 static VALUE
10822 _wrap_BoundaryMesh_add_boundary_vertex(int argc, VALUE *argv, VALUE self) {
10823     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
10824     Point2D *arg2 = 0 ;
10825     BoundaryVertex *result;
10826     VALUE vresult = Qnil;
10827     
10828     if ((argc < 1) || (argc > 1))
10829     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
10830     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
10831     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
10832     result = (BoundaryVertex *)(arg1)->add_boundary_vertex((Point2D const &)*arg2);
10833     
10834     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryVertex,0);
10835     return vresult;
10836 }
10837 
10838 
10839 static VALUE
10840 _wrap_BoundaryMesh_add_boundary_edge__SWIG_0(int argc, VALUE *argv, VALUE self) {
10841     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
10842     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
10843     BoundaryVertex *arg3 = (BoundaryVertex *) 0 ;
10844     vector<Point2D > *arg4 = 0 ;
10845     vector<double > *arg5 = 0 ;
10846     int arg6 ;
10847     int arg7 ;
10848     double arg8 ;
10849     BoundaryEdge *result;
10850     VALUE vresult = Qnil;
10851     
10852     if ((argc < 7) || (argc > 7))
10853     rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc);
10854     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
10855     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
10856     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryVertex, 1);
10857     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_vectorTPoint2D_t, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
10858     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_vectorTdouble_t, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
10859     arg6 = NUM2INT(argv[4]);
10860     arg7 = NUM2INT(argv[5]);
10861     arg8 = (double) NUM2DBL(argv[6]);
10862     result = (BoundaryEdge *)(arg1)->add_boundary_edge(arg2,arg3,(vector<Point2D > const &)*arg4,(vector<double > const &)*arg5,arg6,arg7,arg8);
10863     
10864     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
10865     return vresult;
10866 }
10867 
10868 
10869 static VALUE
10870 _wrap_BoundaryMesh_add_boundary_edge__SWIG_1(int argc, VALUE *argv, VALUE self) {
10871     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
10872     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
10873     BoundaryVertex *arg3 = (BoundaryVertex *) 0 ;
10874     vector<Point2D > *arg4 = 0 ;
10875     vector<double > *arg5 = 0 ;
10876     BoundaryEdge *result;
10877     VALUE vresult = Qnil;
10878     
10879     if ((argc < 4) || (argc > 4))
10880     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
10881     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
10882     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
10883     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BoundaryVertex, 1);
10884     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_vectorTPoint2D_t, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
10885     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_vectorTdouble_t, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
10886     result = (BoundaryEdge *)(arg1)->add_boundary_edge(arg2,arg3,(vector<Point2D > const &)*arg4,(vector<double > const &)*arg5);
10887     
10888     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
10889     return vresult;
10890 }
10891 
10892 
10893 static VALUE _wrap_BoundaryMesh_add_boundary_edge(int nargs, VALUE *args, VALUE self) {
10894     int argc;
10895     VALUE argv[9];
10896     int ii;
10897     
10898     argc = nargs + 1;
10899     argv[0] = self;
10900     for (ii = 1; (ii < argc) && (ii < 8); ii++) {
10901         argv[ii] = args[ii-1];
10902     }
10903     if (argc == 5) {
10904         int _v;
10905         {
10906             void *ptr;
10907             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
10908         }
10909         if (_v) {
10910             {
10911                 void *ptr;
10912                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10913             }
10914             if (_v) {
10915                 {
10916                     void *ptr;
10917                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10918                 }
10919                 if (_v) {
10920                     {
10921                         void *ptr;
10922                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_vectorTPoint2D_t, 0) != -1)) ? 1 : 0;
10923                     }
10924                     if (_v) {
10925                         {
10926                             void *ptr;
10927                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_vectorTdouble_t, 0) != -1)) ? 1 : 0;
10928                         }
10929                         if (_v) {
10930                             return _wrap_BoundaryMesh_add_boundary_edge__SWIG_1(nargs, args, self);
10931                         }
10932                     }
10933                 }
10934             }
10935         }
10936     }
10937     if (argc == 8) {
10938         int _v;
10939         {
10940             void *ptr;
10941             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
10942         }
10943         if (_v) {
10944             {
10945                 void *ptr;
10946                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10947             }
10948             if (_v) {
10949                 {
10950                     void *ptr;
10951                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
10952                 }
10953                 if (_v) {
10954                     {
10955                         void *ptr;
10956                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_vectorTPoint2D_t, 0) != -1)) ? 1 : 0;
10957                     }
10958                     if (_v) {
10959                         {
10960                             void *ptr;
10961                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_vectorTdouble_t, 0) != -1)) ? 1 : 0;
10962                         }
10963                         if (_v) {
10964                             {
10965                                 _v = ((TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0;
10966                             }
10967                             if (_v) {
10968                                 {
10969                                     _v = ((TYPE(argv[6]) == T_FIXNUM) || (TYPE(argv[6]) == T_BIGNUM)) ? 1 : 0;
10970                                 }
10971                                 if (_v) {
10972                                     {
10973                                         _v = ((TYPE(argv[7]) == T_FLOAT) || (TYPE(argv[7]) == T_FIXNUM) || (TYPE(argv[7]) == T_BIGNUM)) ? 1 : 0;
10974                                     }
10975                                     if (_v) {
10976                                         return _wrap_BoundaryMesh_add_boundary_edge__SWIG_0(nargs, args, self);
10977                                     }
10978                                 }
10979                             }
10980                         }
10981                     }
10982                 }
10983             }
10984         }
10985     }
10986     
10987     rb_raise(rb_eArgError, "No matching function for overloaded 'BoundaryMesh_add_boundary_edge'");
10988     return Qnil;
10989 }
10990 
10991 
10992 static VALUE
10993 _wrap_BoundaryMesh_add_boundary_face(int argc, VALUE *argv, VALUE self) {
10994     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
10995     vector<BoundaryEdge * > *arg2 = 0 ;
10996     double arg3 ;
10997     int arg4 ;
10998     BoundaryFace *result;
10999     VALUE vresult = Qnil;
11000     
11001     if ((argc < 3) || (argc > 3))
11002     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
11003     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
11004     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
11005     arg3 = (double) NUM2DBL(argv[1]);
11006     arg4 = NUM2INT(argv[2]);
11007     result = (BoundaryFace *)(arg1)->add_boundary_face((vector<BoundaryEdge * > const &)*arg2,arg3,arg4);
11008     
11009     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
11010     return vresult;
11011 }
11012 
11013 
11014 static VALUE
11015 _wrap_BoundaryMesh_bbox(int argc, VALUE *argv, VALUE self) {
11016     BoundaryMesh *arg1 = (BoundaryMesh *) 0 ;
11017     Point2D *arg2 = 0 ;
11018     Point2D *arg3 = 0 ;
11019     
11020     if ((argc < 2) || (argc > 2))
11021     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
11022     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BoundaryMesh, 1);
11023     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
11024     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
11025     (arg1)->bbox(*arg2,*arg3);
11026     
11027     return Qnil;
11028 }
11029 
11030 
11031 static void
11032 free_BoundaryMesh(BoundaryMesh *arg1) {
11033     delete arg1;
11034 }
11035 static VALUE
11036 _wrap_BezierMesh_boundarymesh_set(int argc, VALUE *argv, VALUE self) {
11037     BezierMesh *arg1 = (BezierMesh *) 0 ;
11038     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
11039     
11040     if ((argc < 1) || (argc > 1))
11041     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11042     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11043     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
11044     if (arg1) (arg1)->boundarymesh = arg2;
11045     
11046     return Qnil;
11047 }
11048 
11049 
11050 static VALUE
11051 _wrap_BezierMesh_boundarymesh_get(int argc, VALUE *argv, VALUE self) {
11052     BezierMesh *arg1 = (BezierMesh *) 0 ;
11053     BoundaryMesh *result;
11054     VALUE vresult = Qnil;
11055     
11056     if ((argc < 0) || (argc > 0))
11057     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11058     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11059     result = (BoundaryMesh *) ((arg1)->boundarymesh);
11060     
11061     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryMesh,0);
11062     return vresult;
11063 }
11064 
11065 
11066 static VALUE
11067 _wrap_BezierMesh_en_vertex_vector_set(int argc, VALUE *argv, VALUE self) {
11068     BezierMesh *arg1 = (BezierMesh *) 0 ;
11069     vector<BezierVertex * > *arg2 = (vector<BezierVertex * > *) 0 ;
11070     
11071     if ((argc < 1) || (argc > 1))
11072     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11073     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11074     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBezierVertex_p_t, 1);
11075     if (arg1) (arg1)->en_vertex_vector = *arg2;
11076     
11077     return Qnil;
11078 }
11079 
11080 
11081 static VALUE
11082 _wrap_BezierMesh_en_vertex_vector_get(int argc, VALUE *argv, VALUE self) {
11083     BezierMesh *arg1 = (BezierMesh *) 0 ;
11084     vector<BezierVertex * > *result;
11085     VALUE vresult = Qnil;
11086     
11087     if ((argc < 0) || (argc > 0))
11088     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11089     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11090     result = (vector<BezierVertex * > *)& ((arg1)->en_vertex_vector);
11091     
11092     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBezierVertex_p_t,0);
11093     return vresult;
11094 }
11095 
11096 
11097 static VALUE
11098 _wrap_BezierMesh_en_edge_vector_set(int argc, VALUE *argv, VALUE self) {
11099     BezierMesh *arg1 = (BezierMesh *) 0 ;
11100     vector<BezierEdge * > *arg2 = (vector<BezierEdge * > *) 0 ;
11101     
11102     if ((argc < 1) || (argc > 1))
11103     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11104     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11105     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBezierEdge_p_t, 1);
11106     if (arg1) (arg1)->en_edge_vector = *arg2;
11107     
11108     return Qnil;
11109 }
11110 
11111 
11112 static VALUE
11113 _wrap_BezierMesh_en_edge_vector_get(int argc, VALUE *argv, VALUE self) {
11114     BezierMesh *arg1 = (BezierMesh *) 0 ;
11115     vector<BezierEdge * > *result;
11116     VALUE vresult = Qnil;
11117     
11118     if ((argc < 0) || (argc > 0))
11119     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11120     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11121     result = (vector<BezierEdge * > *)& ((arg1)->en_edge_vector);
11122     
11123     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBezierEdge_p_t,0);
11124     return vresult;
11125 }
11126 
11127 
11128 static VALUE
11129 _wrap_BezierMesh_en_face_vector_set(int argc, VALUE *argv, VALUE self) {
11130     BezierMesh *arg1 = (BezierMesh *) 0 ;
11131     vector<BezierTriangle * > *arg2 = (vector<BezierTriangle * > *) 0 ;
11132     
11133     if ((argc < 1) || (argc > 1))
11134     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11135     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11136     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBezierTriangle_p_t, 1);
11137     if (arg1) (arg1)->en_face_vector = *arg2;
11138     
11139     return Qnil;
11140 }
11141 
11142 
11143 static VALUE
11144 _wrap_BezierMesh_en_face_vector_get(int argc, VALUE *argv, VALUE self) {
11145     BezierMesh *arg1 = (BezierMesh *) 0 ;
11146     vector<BezierTriangle * > *result;
11147     VALUE vresult = Qnil;
11148     
11149     if ((argc < 0) || (argc > 0))
11150     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11151     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11152     result = (vector<BezierTriangle * > *)& ((arg1)->en_face_vector);
11153     
11154     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBezierTriangle_p_t,0);
11155     return vresult;
11156 }
11157 
11158 
11159 static VALUE
11160 _wrap_BezierMesh_en_bedge_vector_set(int argc, VALUE *argv, VALUE self) {
11161     BezierMesh *arg1 = (BezierMesh *) 0 ;
11162     vector<BezierEdge * > *arg2 = (vector<BezierEdge * > *) 0 ;
11163     
11164     if ((argc < 1) || (argc > 1))
11165     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11166     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11167     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBezierEdge_p_t, 1);
11168     if (arg1) (arg1)->en_bedge_vector = *arg2;
11169     
11170     return Qnil;
11171 }
11172 
11173 
11174 static VALUE
11175 _wrap_BezierMesh_en_bedge_vector_get(int argc, VALUE *argv, VALUE self) {
11176     BezierMesh *arg1 = (BezierMesh *) 0 ;
11177     vector<BezierEdge * > *result;
11178     VALUE vresult = Qnil;
11179     
11180     if ((argc < 0) || (argc > 0))
11181     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11182     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11183     result = (vector<BezierEdge * > *)& ((arg1)->en_bedge_vector);
11184     
11185     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBezierEdge_p_t,0);
11186     return vresult;
11187 }
11188 
11189 
11190 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
11191 static VALUE
11192 _wrap_BezierMesh_allocate(VALUE self) {
11193 #else
11194     static VALUE
11195     _wrap_BezierMesh_allocate(int argc, VALUE *argv, VALUE self) {
11196 #endif
11197         
11198         
11199         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_BezierMesh);
11200 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
11201         rb_obj_call_init(vresult, argc, argv);
11202 #endif
11203         return vresult;
11204     }
11205     
11206 
11207 static VALUE
11208 _wrap_new_BezierMesh(int argc, VALUE *argv, VALUE self) {
11209     BezierMesh *result;
11210     
11211     if ((argc < 0) || (argc > 0))
11212     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11213     result = (BezierMesh *)new BezierMesh();
11214     DATA_PTR(self) = result;
11215     return self;
11216 }
11217 
11218 
11219 static void
11220 free_BezierMesh(BezierMesh *arg1) {
11221     delete arg1;
11222 }
11223 static VALUE
11224 _wrap_BezierMesh_set_linear_flips(int argc, VALUE *argv, VALUE self) {
11225     BezierMesh *arg1 = (BezierMesh *) 0 ;
11226     bool arg2 ;
11227     
11228     if ((argc < 1) || (argc > 1))
11229     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11230     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11231     arg2 = RTEST(argv[0]);
11232     (arg1)->set_linear_flips(arg2);
11233     
11234     return Qnil;
11235 }
11236 
11237 
11238 static VALUE
11239 _wrap_BezierMesh_add_bezier_vertex__SWIG_0(int argc, VALUE *argv, VALUE self) {
11240     BezierMesh *arg1 = (BezierMesh *) 0 ;
11241     Point2D *arg2 = 0 ;
11242     BezierVertex *result;
11243     VALUE vresult = Qnil;
11244     
11245     if ((argc < 1) || (argc > 1))
11246     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11247     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11248     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
11249     result = (BezierVertex *)(arg1)->add_bezier_vertex((Point2D const &)*arg2);
11250     
11251     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
11252     return vresult;
11253 }
11254 
11255 
11256 static VALUE
11257 _wrap_BezierMesh_add_bezier_vertex__SWIG_1(int argc, VALUE *argv, VALUE self) {
11258     BezierMesh *arg1 = (BezierMesh *) 0 ;
11259     Point2D *arg2 = 0 ;
11260     LinearData *arg3 = 0 ;
11261     BezierVertex *result;
11262     VALUE vresult = Qnil;
11263     
11264     if ((argc < 2) || (argc > 2))
11265     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
11266     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11267     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
11268     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
11269     result = (BezierVertex *)(arg1)->add_bezier_vertex((Point2D const &)*arg2,(LinearData const &)*arg3);
11270     
11271     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
11272     return vresult;
11273 }
11274 
11275 
11276 static VALUE
11277 _wrap_BezierMesh_add_bezier_vertex__SWIG_2(int argc, VALUE *argv, VALUE self) {
11278     BezierMesh *arg1 = (BezierMesh *) 0 ;
11279     ControlPoint arg2 ;
11280     BezierVertex *result;
11281     VALUE vresult = Qnil;
11282     
11283     if ((argc < 1) || (argc > 1))
11284     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11285     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11286     {
11287         ControlPoint * ptr;
11288         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
11289         if (ptr) arg2 = *ptr;
11290     }
11291     result = (BezierVertex *)(arg1)->add_bezier_vertex(arg2);
11292     
11293     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
11294     return vresult;
11295 }
11296 
11297 
11298 static VALUE
11299 _wrap_BezierMesh_add_bezier_vertex__SWIG_3(int argc, VALUE *argv, VALUE self) {
11300     BezierMesh *arg1 = (BezierMesh *) 0 ;
11301     ControlPoint arg2 ;
11302     LinearData *arg3 = 0 ;
11303     BezierVertex *result;
11304     VALUE vresult = Qnil;
11305     
11306     if ((argc < 2) || (argc > 2))
11307     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
11308     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11309     {
11310         ControlPoint * ptr;
11311         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
11312         if (ptr) arg2 = *ptr;
11313     }
11314     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
11315     result = (BezierVertex *)(arg1)->add_bezier_vertex(arg2,(LinearData const &)*arg3);
11316     
11317     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
11318     return vresult;
11319 }
11320 
11321 
11322 static VALUE _wrap_BezierMesh_add_bezier_vertex(int nargs, VALUE *args, VALUE self) {
11323     int argc;
11324     VALUE argv[4];
11325     int ii;
11326     
11327     argc = nargs + 1;
11328     argv[0] = self;
11329     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
11330         argv[ii] = args[ii-1];
11331     }
11332     if (argc == 2) {
11333         int _v;
11334         {
11335             void *ptr;
11336             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11337         }
11338         if (_v) {
11339             {
11340                 void *ptr;
11341                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
11342             }
11343             if (_v) {
11344                 return _wrap_BezierMesh_add_bezier_vertex__SWIG_0(nargs, args, self);
11345             }
11346         }
11347     }
11348     if (argc == 2) {
11349         int _v;
11350         {
11351             void *ptr;
11352             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11353         }
11354         if (_v) {
11355             {
11356                 void *ptr;
11357                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_ControlPoint, 0) != -1)) ? 1 : 0;
11358             }
11359             if (_v) {
11360                 return _wrap_BezierMesh_add_bezier_vertex__SWIG_2(nargs, args, self);
11361             }
11362         }
11363     }
11364     if (argc == 3) {
11365         int _v;
11366         {
11367             void *ptr;
11368             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11369         }
11370         if (_v) {
11371             {
11372                 void *ptr;
11373                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
11374             }
11375             if (_v) {
11376                 {
11377                     void *ptr;
11378                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
11379                 }
11380                 if (_v) {
11381                     return _wrap_BezierMesh_add_bezier_vertex__SWIG_1(nargs, args, self);
11382                 }
11383             }
11384         }
11385     }
11386     if (argc == 3) {
11387         int _v;
11388         {
11389             void *ptr;
11390             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11391         }
11392         if (_v) {
11393             {
11394                 void *ptr;
11395                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_ControlPoint, 0) != -1)) ? 1 : 0;
11396             }
11397             if (_v) {
11398                 {
11399                     void *ptr;
11400                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
11401                 }
11402                 if (_v) {
11403                     return _wrap_BezierMesh_add_bezier_vertex__SWIG_3(nargs, args, self);
11404                 }
11405             }
11406         }
11407     }
11408     
11409     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierMesh_add_bezier_vertex'");
11410     return Qnil;
11411 }
11412 
11413 
11414 static VALUE
11415 _wrap_BezierMesh_add_bezier_edge__SWIG_0(int argc, VALUE *argv, VALUE self) {
11416     BezierMesh *arg1 = (BezierMesh *) 0 ;
11417     Point2D *arg2 = 0 ;
11418     BezierVertex *arg3 = (BezierVertex *) 0 ;
11419     BezierVertex *arg4 = (BezierVertex *) 0 ;
11420     BezierEdge *result;
11421     VALUE vresult = Qnil;
11422     
11423     if ((argc < 3) || (argc > 3))
11424     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
11425     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11426     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
11427     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
11428     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BezierVertex, 1);
11429     result = (BezierEdge *)(arg1)->add_bezier_edge((Point2D const &)*arg2,arg3,arg4);
11430     
11431     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
11432     return vresult;
11433 }
11434 
11435 
11436 static VALUE
11437 _wrap_BezierMesh_add_bezier_edge__SWIG_1(int argc, VALUE *argv, VALUE self) {
11438     BezierMesh *arg1 = (BezierMesh *) 0 ;
11439     Point2D *arg2 = 0 ;
11440     LinearData *arg3 = 0 ;
11441     BezierVertex *arg4 = (BezierVertex *) 0 ;
11442     BezierVertex *arg5 = (BezierVertex *) 0 ;
11443     BezierEdge *result;
11444     VALUE vresult = Qnil;
11445     
11446     if ((argc < 4) || (argc > 4))
11447     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
11448     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11449     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
11450     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
11451     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BezierVertex, 1);
11452     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_BezierVertex, 1);
11453     result = (BezierEdge *)(arg1)->add_bezier_edge((Point2D const &)*arg2,(LinearData const &)*arg3,arg4,arg5);
11454     
11455     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
11456     return vresult;
11457 }
11458 
11459 
11460 static VALUE
11461 _wrap_BezierMesh_add_bezier_edge__SWIG_2(int argc, VALUE *argv, VALUE self) {
11462     BezierMesh *arg1 = (BezierMesh *) 0 ;
11463     ControlPoint arg2 ;
11464     BezierVertex *arg3 = (BezierVertex *) 0 ;
11465     BezierVertex *arg4 = (BezierVertex *) 0 ;
11466     BezierEdge *result;
11467     VALUE vresult = Qnil;
11468     
11469     if ((argc < 3) || (argc > 3))
11470     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
11471     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11472     {
11473         ControlPoint * ptr;
11474         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
11475         if (ptr) arg2 = *ptr;
11476     }
11477     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierVertex, 1);
11478     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BezierVertex, 1);
11479     result = (BezierEdge *)(arg1)->add_bezier_edge(arg2,arg3,arg4);
11480     
11481     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
11482     return vresult;
11483 }
11484 
11485 
11486 static VALUE
11487 _wrap_BezierMesh_add_bezier_edge__SWIG_3(int argc, VALUE *argv, VALUE self) {
11488     BezierMesh *arg1 = (BezierMesh *) 0 ;
11489     ControlPoint arg2 ;
11490     LinearData *arg3 = 0 ;
11491     BezierVertex *arg4 = (BezierVertex *) 0 ;
11492     BezierVertex *arg5 = (BezierVertex *) 0 ;
11493     BezierEdge *result;
11494     VALUE vresult = Qnil;
11495     
11496     if ((argc < 4) || (argc > 4))
11497     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
11498     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11499     {
11500         ControlPoint * ptr;
11501         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_ControlPoint, 1);
11502         if (ptr) arg2 = *ptr;
11503     }
11504     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_LinearData, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
11505     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BezierVertex, 1);
11506     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_BezierVertex, 1);
11507     result = (BezierEdge *)(arg1)->add_bezier_edge(arg2,(LinearData const &)*arg3,arg4,arg5);
11508     
11509     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierEdge,0);
11510     return vresult;
11511 }
11512 
11513 
11514 static VALUE _wrap_BezierMesh_add_bezier_edge(int nargs, VALUE *args, VALUE self) {
11515     int argc;
11516     VALUE argv[6];
11517     int ii;
11518     
11519     argc = nargs + 1;
11520     argv[0] = self;
11521     for (ii = 1; (ii < argc) && (ii < 5); ii++) {
11522         argv[ii] = args[ii-1];
11523     }
11524     if (argc == 4) {
11525         int _v;
11526         {
11527             void *ptr;
11528             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11529         }
11530         if (_v) {
11531             {
11532                 void *ptr;
11533                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
11534             }
11535             if (_v) {
11536                 {
11537                     void *ptr;
11538                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11539                 }
11540                 if (_v) {
11541                     {
11542                         void *ptr;
11543                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11544                     }
11545                     if (_v) {
11546                         return _wrap_BezierMesh_add_bezier_edge__SWIG_0(nargs, args, self);
11547                     }
11548                 }
11549             }
11550         }
11551     }
11552     if (argc == 4) {
11553         int _v;
11554         {
11555             void *ptr;
11556             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11557         }
11558         if (_v) {
11559             {
11560                 void *ptr;
11561                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_ControlPoint, 0) != -1)) ? 1 : 0;
11562             }
11563             if (_v) {
11564                 {
11565                     void *ptr;
11566                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11567                 }
11568                 if (_v) {
11569                     {
11570                         void *ptr;
11571                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11572                     }
11573                     if (_v) {
11574                         return _wrap_BezierMesh_add_bezier_edge__SWIG_2(nargs, args, self);
11575                     }
11576                 }
11577             }
11578         }
11579     }
11580     if (argc == 5) {
11581         int _v;
11582         {
11583             void *ptr;
11584             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11585         }
11586         if (_v) {
11587             {
11588                 void *ptr;
11589                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
11590             }
11591             if (_v) {
11592                 {
11593                     void *ptr;
11594                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
11595                 }
11596                 if (_v) {
11597                     {
11598                         void *ptr;
11599                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11600                     }
11601                     if (_v) {
11602                         {
11603                             void *ptr;
11604                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11605                         }
11606                         if (_v) {
11607                             return _wrap_BezierMesh_add_bezier_edge__SWIG_1(nargs, args, self);
11608                         }
11609                     }
11610                 }
11611             }
11612         }
11613     }
11614     if (argc == 5) {
11615         int _v;
11616         {
11617             void *ptr;
11618             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
11619         }
11620         if (_v) {
11621             {
11622                 void *ptr;
11623                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_ControlPoint, 0) != -1)) ? 1 : 0;
11624             }
11625             if (_v) {
11626                 {
11627                     void *ptr;
11628                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_LinearData, 0) != -1)) ? 1 : 0;
11629                 }
11630                 if (_v) {
11631                     {
11632                         void *ptr;
11633                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11634                     }
11635                     if (_v) {
11636                         {
11637                             void *ptr;
11638                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
11639                         }
11640                         if (_v) {
11641                             return _wrap_BezierMesh_add_bezier_edge__SWIG_3(nargs, args, self);
11642                         }
11643                     }
11644                 }
11645             }
11646         }
11647     }
11648     
11649     rb_raise(rb_eArgError, "No matching function for overloaded 'BezierMesh_add_bezier_edge'");
11650     return Qnil;
11651 }
11652 
11653 
11654 static VALUE
11655 _wrap_BezierMesh_add_bezier_triangle(int argc, VALUE *argv, VALUE self) {
11656     BezierMesh *arg1 = (BezierMesh *) 0 ;
11657     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
11658     BezierEdge *arg3 = (BezierEdge *) 0 ;
11659     BezierEdge *arg4 = (BezierEdge *) 0 ;
11660     BezierEdge *arg5 = (BezierEdge *) 0 ;
11661     BezierTriangle *result;
11662     VALUE vresult = Qnil;
11663     
11664     if ((argc < 4) || (argc > 4))
11665     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
11666     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11667     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
11668     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierEdge, 1);
11669     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_BezierEdge, 1);
11670     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_BezierEdge, 1);
11671     result = (BezierTriangle *)(arg1)->add_bezier_triangle(arg2,arg3,arg4,arg5);
11672     
11673     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierTriangle,0);
11674     return vresult;
11675 }
11676 
11677 
11678 static VALUE
11679 _wrap_BezierMesh_clean_insert_point(int argc, VALUE *argv, VALUE self) {
11680     BezierMesh *arg1 = (BezierMesh *) 0 ;
11681     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
11682     double arg3 ;
11683     double arg4 ;
11684     BezierVertex *result;
11685     VALUE vresult = Qnil;
11686     
11687     if ((argc < 3) || (argc > 3))
11688     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
11689     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11690     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
11691     arg3 = (double) NUM2DBL(argv[1]);
11692     arg4 = (double) NUM2DBL(argv[2]);
11693     result = (BezierVertex *)(arg1)->clean_insert_point(arg2,arg3,arg4);
11694     
11695     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
11696     return vresult;
11697 }
11698 
11699 
11700 static VALUE
11701 _wrap_BezierMesh_clean_insert_edge_midpoint(int argc, VALUE *argv, VALUE self) {
11702     BezierMesh *arg1 = (BezierMesh *) 0 ;
11703     BezierEdge *arg2 = (BezierEdge *) 0 ;
11704     double arg3 ;
11705     BezierVertex *result;
11706     VALUE vresult = Qnil;
11707     
11708     if ((argc < 2) || (argc > 2))
11709     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
11710     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11711     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
11712     arg3 = (double) NUM2DBL(argv[1]);
11713     result = (BezierVertex *)(arg1)->clean_insert_edge_midpoint(arg2,arg3);
11714     
11715     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierVertex,0);
11716     return vresult;
11717 }
11718 
11719 
11720 static VALUE
11721 _wrap_BezierMesh_remove_vertex(int argc, VALUE *argv, VALUE self) {
11722     BezierMesh *arg1 = (BezierMesh *) 0 ;
11723     BezierVertex *arg2 = (BezierVertex *) 0 ;
11724     BezierTuple result;
11725     VALUE vresult = Qnil;
11726     
11727     if ((argc < 1) || (argc > 1))
11728     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11729     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11730     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
11731     result = (arg1)->remove_vertex(arg2);
11732     
11733     {
11734         BezierTuple * resultptr;
11735         resultptr = new BezierTuple((BezierTuple &)result);
11736         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
11737     }
11738     return vresult;
11739 }
11740 
11741 
11742 static VALUE
11743 _wrap_BezierMesh_smooth_edge(int argc, VALUE *argv, VALUE self) {
11744     BezierMesh *arg1 = (BezierMesh *) 0 ;
11745     BezierEdge *arg2 = (BezierEdge *) 0 ;
11746     
11747     if ((argc < 1) || (argc > 1))
11748     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11749     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11750     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
11751     (arg1)->smooth_edge(arg2);
11752     
11753     return Qnil;
11754 }
11755 
11756 
11757 static VALUE
11758 _wrap_BezierMesh_flip(int argc, VALUE *argv, VALUE self) {
11759     BezierMesh *arg1 = (BezierMesh *) 0 ;
11760     BezierEdge *arg2 = (BezierEdge *) 0 ;
11761     BezierTuple result;
11762     VALUE vresult = Qnil;
11763     
11764     if ((argc < 1) || (argc > 1))
11765     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11766     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11767     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
11768     result = (arg1)->flip(arg2);
11769     
11770     {
11771         BezierTuple * resultptr;
11772         resultptr = new BezierTuple((BezierTuple &)result);
11773         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
11774     }
11775     return vresult;
11776 }
11777 
11778 
11779 static VALUE
11780 _wrap_BezierMesh_should_flip(int argc, VALUE *argv, VALUE self) {
11781     BezierMesh *arg1 = (BezierMesh *) 0 ;
11782     BezierEdge *arg2 = (BezierEdge *) 0 ;
11783     bool result;
11784     VALUE vresult = Qnil;
11785     
11786     if ((argc < 1) || (argc > 1))
11787     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11788     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11789     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
11790     result = (bool)(arg1)->should_flip(arg2);
11791     
11792     vresult = result ? Qtrue : Qfalse;
11793     return vresult;
11794 }
11795 
11796 
11797 static VALUE
11798 _wrap_BezierMesh_can_flip(int argc, VALUE *argv, VALUE self) {
11799     BezierMesh *arg1 = (BezierMesh *) 0 ;
11800     BezierEdge *arg2 = (BezierEdge *) 0 ;
11801     bool result;
11802     VALUE vresult = Qnil;
11803     
11804     if ((argc < 1) || (argc > 1))
11805     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11806     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11807     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
11808     result = (bool)(arg1)->can_flip(arg2);
11809     
11810     vresult = result ? Qtrue : Qfalse;
11811     return vresult;
11812 }
11813 
11814 
11815 static VALUE
11816 _wrap_BezierMesh_can_smooth(int argc, VALUE *argv, VALUE self) {
11817     BezierMesh *arg1 = (BezierMesh *) 0 ;
11818     BezierEdge *arg2 = (BezierEdge *) 0 ;
11819     bool result;
11820     VALUE vresult = Qnil;
11821     
11822     if ((argc < 1) || (argc > 1))
11823     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11824     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11825     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
11826     result = (bool)(arg1)->can_smooth(arg2);
11827     
11828     vresult = result ? Qtrue : Qfalse;
11829     return vresult;
11830 }
11831 
11832 
11833 static VALUE
11834 _wrap_BezierMesh_blind_locate_point(int argc, VALUE *argv, VALUE self) {
11835     BezierMesh *arg1 = (BezierMesh *) 0 ;
11836     Point2D arg2 ;
11837     BezierTriangle **arg3 = 0 ;
11838     BezierEdge **arg4 = 0 ;
11839     double *arg5 = 0 ;
11840     double *arg6 = 0 ;
11841     int result;
11842     VALUE vresult = Qnil;
11843     
11844     if ((argc < 5) || (argc > 5))
11845     rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
11846     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11847     {
11848         Point2D * ptr;
11849         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
11850         if (ptr) arg2 = *ptr;
11851     }
11852     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_p_BezierTriangle, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
11853     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_p_BezierEdge, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
11854     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_double, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
11855     SWIG_ConvertPtr(argv[4], (void **) &arg6, SWIGTYPE_p_double, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
11856     result = (int)(arg1)->blind_locate_point(arg2,*arg3,*arg4,*arg5,*arg6);
11857     
11858     vresult = INT2NUM(result);
11859     return vresult;
11860 }
11861 
11862 
11863 static VALUE
11864 _wrap_BezierMesh_locate_point(int argc, VALUE *argv, VALUE self) {
11865     BezierMesh *arg1 = (BezierMesh *) 0 ;
11866     Point2D arg2 ;
11867     BezierTriangle *arg3 = (BezierTriangle *) 0 ;
11868     bool arg4 ;
11869     BezierTriangle **arg5 = 0 ;
11870     BezierEdge **arg6 = 0 ;
11871     double *arg7 = 0 ;
11872     double *arg8 = 0 ;
11873     int result;
11874     VALUE vresult = Qnil;
11875     
11876     if ((argc < 7) || (argc > 7))
11877     rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc);
11878     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11879     {
11880         Point2D * ptr;
11881         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
11882         if (ptr) arg2 = *ptr;
11883     }
11884     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTriangle, 1);
11885     arg4 = RTEST(argv[2]);
11886     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_p_BezierTriangle, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
11887     SWIG_ConvertPtr(argv[4], (void **) &arg6, SWIGTYPE_p_p_BezierEdge, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
11888     SWIG_ConvertPtr(argv[5], (void **) &arg7, SWIGTYPE_p_double, 1); if (arg7 == NULL) rb_raise(rb_eTypeError, "null reference");
11889     SWIG_ConvertPtr(argv[6], (void **) &arg8, SWIGTYPE_p_double, 1); if (arg8 == NULL) rb_raise(rb_eTypeError, "null reference");
11890     result = (int)(arg1)->locate_point(arg2,arg3,arg4,*arg5,*arg6,*arg7,*arg8);
11891     
11892     vresult = INT2NUM(result);
11893     return vresult;
11894 }
11895 
11896 
11897 static VALUE
11898 _wrap_BezierMesh_enumerate(int argc, VALUE *argv, VALUE self) {
11899     BezierMesh *arg1 = (BezierMesh *) 0 ;
11900     
11901     if ((argc < 0) || (argc > 0))
11902     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
11903     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11904     (arg1)->enumerate();
11905     
11906     return Qnil;
11907 }
11908 
11909 
11910 static VALUE
11911 _wrap_BezierMesh_en_vertex(int argc, VALUE *argv, VALUE self) {
11912     BezierMesh *arg1 = (BezierMesh *) 0 ;
11913     int arg2 ;
11914     BezierVertex result;
11915     VALUE vresult = Qnil;
11916     
11917     if ((argc < 1) || (argc > 1))
11918     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11919     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11920     arg2 = NUM2INT(argv[0]);
11921     result = (arg1)->en_vertex(arg2);
11922     
11923     {
11924         BezierVertex * resultptr;
11925         resultptr = new BezierVertex((BezierVertex &)result);
11926         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierVertex, 1);
11927     }
11928     return vresult;
11929 }
11930 
11931 
11932 static VALUE
11933 _wrap_BezierMesh_en_edge(int argc, VALUE *argv, VALUE self) {
11934     BezierMesh *arg1 = (BezierMesh *) 0 ;
11935     int arg2 ;
11936     BezierEdge result;
11937     VALUE vresult = Qnil;
11938     
11939     if ((argc < 1) || (argc > 1))
11940     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11941     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11942     arg2 = NUM2INT(argv[0]);
11943     result = (arg1)->en_edge(arg2);
11944     
11945     {
11946         BezierEdge * resultptr;
11947         resultptr = new BezierEdge((BezierEdge &)result);
11948         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierEdge, 1);
11949     }
11950     return vresult;
11951 }
11952 
11953 
11954 static VALUE
11955 _wrap_BezierMesh_en_face(int argc, VALUE *argv, VALUE self) {
11956     BezierMesh *arg1 = (BezierMesh *) 0 ;
11957     int arg2 ;
11958     SwigValueWrapper< BezierTriangle > result;
11959     VALUE vresult = Qnil;
11960     
11961     if ((argc < 1) || (argc > 1))
11962     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11963     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11964     arg2 = NUM2INT(argv[0]);
11965     result = (arg1)->en_face(arg2);
11966     
11967     {
11968         BezierTriangle * resultptr;
11969         resultptr = new BezierTriangle((BezierTriangle &)result);
11970         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTriangle, 1);
11971     }
11972     return vresult;
11973 }
11974 
11975 
11976 static VALUE
11977 _wrap_BezierMesh_en_bedge(int argc, VALUE *argv, VALUE self) {
11978     BezierMesh *arg1 = (BezierMesh *) 0 ;
11979     int arg2 ;
11980     BezierEdge result;
11981     VALUE vresult = Qnil;
11982     
11983     if ((argc < 1) || (argc > 1))
11984     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
11985     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
11986     arg2 = NUM2INT(argv[0]);
11987     result = (arg1)->en_bedge(arg2);
11988     
11989     {
11990         BezierEdge * resultptr;
11991         resultptr = new BezierEdge((BezierEdge &)result);
11992         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierEdge, 1);
11993     }
11994     return vresult;
11995 }
11996 
11997 
11998 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
11999 static VALUE
12000 _wrap_MeshInput_allocate(VALUE self) {
12001 #else
12002     static VALUE
12003     _wrap_MeshInput_allocate(int argc, VALUE *argv, VALUE self) {
12004 #endif
12005         
12006         
12007         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_MeshInput);
12008 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
12009         rb_obj_call_init(vresult, argc, argv);
12010 #endif
12011         return vresult;
12012     }
12013     
12014 
12015 static VALUE
12016 _wrap_new_MeshInput(int argc, VALUE *argv, VALUE self) {
12017     BezierMesh *arg1 = (BezierMesh *) 0 ;
12018     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
12019     MeshInput *result;
12020     
12021     if ((argc < 2) || (argc > 2))
12022     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
12023     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
12024     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
12025     result = (MeshInput *)new MeshInput(arg1,arg2);
12026     DATA_PTR(self) = result;
12027     return self;
12028 }
12029 
12030 
12031 static VALUE
12032 _wrap_MeshInput_read(int argc, VALUE *argv, VALUE self) {
12033     MeshInput *arg1 = (MeshInput *) 0 ;
12034     char *arg2 ;
12035     bool result;
12036     VALUE vresult = Qnil;
12037     
12038     if ((argc < 1) || (argc > 1))
12039     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12040     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_MeshInput, 1);
12041     arg2 = StringValuePtr(argv[0]);
12042     result = (bool)(arg1)->read(arg2);
12043     
12044     vresult = result ? Qtrue : Qfalse;
12045     return vresult;
12046 }
12047 
12048 
12049 static void
12050 free_MeshInput(MeshInput *arg1) {
12051     delete arg1;
12052 }
12053 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
12054 static VALUE
12055 _wrap_MeshOutput_allocate(VALUE self) {
12056 #else
12057     static VALUE
12058     _wrap_MeshOutput_allocate(int argc, VALUE *argv, VALUE self) {
12059 #endif
12060         
12061         
12062         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_MeshOutput);
12063 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
12064         rb_obj_call_init(vresult, argc, argv);
12065 #endif
12066         return vresult;
12067     }
12068     
12069 
12070 static VALUE
12071 _wrap_new_MeshOutput(int argc, VALUE *argv, VALUE self) {
12072     BezierMesh *arg1 = (BezierMesh *) 0 ;
12073     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
12074     MeshOutput *result;
12075     
12076     if ((argc < 2) || (argc > 2))
12077     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
12078     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
12079     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
12080     result = (MeshOutput *)new MeshOutput(arg1,arg2);
12081     DATA_PTR(self) = result;
12082     return self;
12083 }
12084 
12085 
12086 static VALUE
12087 _wrap_MeshOutput_write(int argc, VALUE *argv, VALUE self) {
12088     MeshOutput *arg1 = (MeshOutput *) 0 ;
12089     char *arg2 ;
12090     bool result;
12091     VALUE vresult = Qnil;
12092     
12093     if ((argc < 1) || (argc > 1))
12094     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12095     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_MeshOutput, 1);
12096     arg2 = StringValuePtr(argv[0]);
12097     result = (bool)(arg1)->write(arg2);
12098     
12099     vresult = result ? Qtrue : Qfalse;
12100     return vresult;
12101 }
12102 
12103 
12104 static void
12105 free_MeshOutput(MeshOutput *arg1) {
12106     delete arg1;
12107 }
12108 static VALUE
12109 _wrap_Simulation_bdry_mesh_set(int argc, VALUE *argv, VALUE self) {
12110     Simulation *arg1 = (Simulation *) 0 ;
12111     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
12112     
12113     if ((argc < 1) || (argc > 1))
12114     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12115     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12116     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
12117     if (arg1) (arg1)->bdry_mesh = *arg2;
12118     
12119     return Qnil;
12120 }
12121 
12122 
12123 static VALUE
12124 _wrap_Simulation_bdry_mesh_get(int argc, VALUE *argv, VALUE self) {
12125     Simulation *arg1 = (Simulation *) 0 ;
12126     BoundaryMesh *result;
12127     VALUE vresult = Qnil;
12128     
12129     if ((argc < 0) || (argc > 0))
12130     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12131     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12132     result = (BoundaryMesh *)& ((arg1)->bdry_mesh);
12133     
12134     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryMesh,0);
12135     return vresult;
12136 }
12137 
12138 
12139 static VALUE
12140 _wrap_Simulation_bezier_mesh_set(int argc, VALUE *argv, VALUE self) {
12141     Simulation *arg1 = (Simulation *) 0 ;
12142     BezierMesh *arg2 = (BezierMesh *) 0 ;
12143     
12144     if ((argc < 1) || (argc > 1))
12145     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12146     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12147     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierMesh, 1);
12148     if (arg1) (arg1)->bezier_mesh = *arg2;
12149     
12150     return Qnil;
12151 }
12152 
12153 
12154 static VALUE
12155 _wrap_Simulation_bezier_mesh_get(int argc, VALUE *argv, VALUE self) {
12156     Simulation *arg1 = (Simulation *) 0 ;
12157     BezierMesh *result;
12158     VALUE vresult = Qnil;
12159     
12160     if ((argc < 0) || (argc > 0))
12161     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12162     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12163     result = (BezierMesh *)& ((arg1)->bezier_mesh);
12164     
12165     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierMesh,0);
12166     return vresult;
12167 }
12168 
12169 
12170 static VALUE
12171 _wrap_Simulation_timekeeper_set(int argc, VALUE *argv, VALUE self) {
12172     Simulation *arg1 = (Simulation *) 0 ;
12173     TimeKeeper arg2 ;
12174     
12175     if ((argc < 1) || (argc > 1))
12176     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12177     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12178     {
12179         TimeKeeper * ptr;
12180         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_TimeKeeper, 1);
12181         if (ptr) arg2 = *ptr;
12182     }
12183     if (arg1) (arg1)->timekeeper = arg2;
12184     
12185     return Qnil;
12186 }
12187 
12188 
12189 static VALUE
12190 _wrap_Simulation_timekeeper_get(int argc, VALUE *argv, VALUE self) {
12191     Simulation *arg1 = (Simulation *) 0 ;
12192     TimeKeeper result;
12193     VALUE vresult = Qnil;
12194     
12195     if ((argc < 0) || (argc > 0))
12196     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12197     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12198     result =  ((arg1)->timekeeper);
12199     
12200     {
12201         TimeKeeper * resultptr;
12202         resultptr = new TimeKeeper((TimeKeeper &)result);
12203         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_TimeKeeper, 1);
12204     }
12205     return vresult;
12206 }
12207 
12208 
12209 static VALUE
12210 _wrap_new_Simulation__SWIG_0(int argc, VALUE *argv, VALUE self) {
12211     char *arg1 ;
12212     Simulation *result;
12213     
12214     if ((argc < 1) || (argc > 1))
12215     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12216     arg1 = StringValuePtr(argv[0]);
12217     result = (Simulation *)new Simulation(arg1);
12218     DATA_PTR(self) = result;
12219     return self;
12220 }
12221 
12222 
12223 static VALUE
12224 _wrap_new_Simulation__SWIG_1(int argc, VALUE *argv, VALUE self) {
12225     BezierMesh *arg1 = (BezierMesh *) 0 ;
12226     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
12227     Simulation *result;
12228     
12229     if ((argc < 2) || (argc > 2))
12230     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
12231     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
12232     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
12233     result = (Simulation *)new Simulation(arg1,arg2);
12234     DATA_PTR(self) = result;
12235     return self;
12236 }
12237 
12238 
12239 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
12240 static VALUE
12241 _wrap_Simulation_allocate(VALUE self) {
12242 #else
12243     static VALUE
12244     _wrap_Simulation_allocate(int argc, VALUE *argv, VALUE self) {
12245 #endif
12246         
12247         
12248         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Simulation);
12249 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
12250         rb_obj_call_init(vresult, argc, argv);
12251 #endif
12252         return vresult;
12253     }
12254     
12255 
12256 static VALUE
12257 _wrap_new_Simulation__SWIG_2(int argc, VALUE *argv, VALUE self) {
12258     Simulation *result;
12259     
12260     if ((argc < 0) || (argc > 0))
12261     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12262     result = (Simulation *)new Simulation();
12263     DATA_PTR(self) = result;
12264     return self;
12265 }
12266 
12267 
12268 static VALUE _wrap_new_Simulation(int nargs, VALUE *args, VALUE self) {
12269     int argc;
12270     VALUE argv[2];
12271     int ii;
12272     
12273     argc = nargs;
12274     for (ii = 0; (ii < argc) && (ii < 2); ii++) {
12275         argv[ii] = args[ii];
12276     }
12277     if (argc == 0) {
12278         return _wrap_new_Simulation__SWIG_2(nargs, args, self);
12279     }
12280     if (argc == 1) {
12281         int _v;
12282         {
12283             _v = (TYPE(argv[0]) == T_STRING) ? 1 : 0;
12284         }
12285         if (_v) {
12286             return _wrap_new_Simulation__SWIG_0(nargs, args, self);
12287         }
12288     }
12289     if (argc == 2) {
12290         int _v;
12291         {
12292             void *ptr;
12293             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
12294         }
12295         if (_v) {
12296             {
12297                 void *ptr;
12298                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
12299             }
12300             if (_v) {
12301                 return _wrap_new_Simulation__SWIG_1(nargs, args, self);
12302             }
12303         }
12304     }
12305     
12306     rb_raise(rb_eArgError, "No matching function for overloaded 'new_Simulation'");
12307     return Qnil;
12308 }
12309 
12310 
12311 static VALUE
12312 _wrap_Simulation_get_bezier_mesh(int argc, VALUE *argv, VALUE self) {
12313     Simulation *arg1 = (Simulation *) 0 ;
12314     BezierMesh *result;
12315     VALUE vresult = Qnil;
12316     
12317     if ((argc < 0) || (argc > 0))
12318     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12319     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12320     result = (BezierMesh *)(arg1)->get_bezier_mesh();
12321     
12322     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierMesh,0);
12323     return vresult;
12324 }
12325 
12326 
12327 static VALUE
12328 _wrap_Simulation_get_boundary_mesh(int argc, VALUE *argv, VALUE self) {
12329     Simulation *arg1 = (Simulation *) 0 ;
12330     BoundaryMesh *result;
12331     VALUE vresult = Qnil;
12332     
12333     if ((argc < 0) || (argc > 0))
12334     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12335     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12336     result = (BoundaryMesh *)(arg1)->get_boundary_mesh();
12337     
12338     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryMesh,0);
12339     return vresult;
12340 }
12341 
12342 
12343 static VALUE
12344 _wrap_Simulation_move__SWIG_0(int argc, VALUE *argv, VALUE self) {
12345     Simulation *arg1 = (Simulation *) 0 ;
12346     double arg2 ;
12347     unsigned int arg3 ;
12348     unsigned int arg4 ;
12349     bool arg5 ;
12350     
12351     if ((argc < 4) || (argc > 4))
12352     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
12353     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12354     arg2 = (double) NUM2DBL(argv[0]);
12355     arg3 = NUM2UINT(argv[1]);
12356     arg4 = NUM2UINT(argv[2]);
12357     arg5 = RTEST(argv[3]);
12358     (arg1)->move(arg2,arg3,arg4,arg5);
12359     
12360     return Qnil;
12361 }
12362 
12363 
12364 static VALUE
12365 _wrap_Simulation_move__SWIG_1(int argc, VALUE *argv, VALUE self) {
12366     Simulation *arg1 = (Simulation *) 0 ;
12367     double arg2 ;
12368     unsigned int arg3 ;
12369     unsigned int arg4 ;
12370     unsigned int arg5 ;
12371     unsigned int arg6 ;
12372     bool arg7 ;
12373     
12374     if ((argc < 6) || (argc > 6))
12375     rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc);
12376     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12377     arg2 = (double) NUM2DBL(argv[0]);
12378     arg3 = NUM2UINT(argv[1]);
12379     arg4 = NUM2UINT(argv[2]);
12380     arg5 = NUM2UINT(argv[3]);
12381     arg6 = NUM2UINT(argv[4]);
12382     arg7 = RTEST(argv[5]);
12383     (arg1)->move(arg2,arg3,arg4,arg5,arg6,arg7);
12384     
12385     return Qnil;
12386 }
12387 
12388 
12389 static VALUE _wrap_Simulation_move(int nargs, VALUE *args, VALUE self) {
12390     int argc;
12391     VALUE argv[8];
12392     int ii;
12393     
12394     argc = nargs + 1;
12395     argv[0] = self;
12396     for (ii = 1; (ii < argc) && (ii < 7); ii++) {
12397         argv[ii] = args[ii-1];
12398     }
12399     if (argc == 5) {
12400         int _v;
12401         {
12402             void *ptr;
12403             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Simulation, 0) != -1)) ? 1 : 0;
12404         }
12405         if (_v) {
12406             {
12407                 _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
12408             }
12409             if (_v) {
12410                 {
12411                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
12412                 }
12413                 if (_v) {
12414                     {
12415                         _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
12416                     }
12417                     if (_v) {
12418                         {
12419                             _v = (argv[4] == Qtrue || argv[4] == Qfalse) ? 1 : 0;
12420                         }
12421                         if (_v) {
12422                             return _wrap_Simulation_move__SWIG_0(nargs, args, self);
12423                         }
12424                     }
12425                 }
12426             }
12427         }
12428     }
12429     if (argc == 7) {
12430         int _v;
12431         {
12432             void *ptr;
12433             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Simulation, 0) != -1)) ? 1 : 0;
12434         }
12435         if (_v) {
12436             {
12437                 _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
12438             }
12439             if (_v) {
12440                 {
12441                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
12442                 }
12443                 if (_v) {
12444                     {
12445                         _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
12446                     }
12447                     if (_v) {
12448                         {
12449                             _v = ((TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0;
12450                         }
12451                         if (_v) {
12452                             {
12453                                 _v = ((TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0;
12454                             }
12455                             if (_v) {
12456                                 {
12457                                     _v = (argv[6] == Qtrue || argv[6] == Qfalse) ? 1 : 0;
12458                                 }
12459                                 if (_v) {
12460                                     return _wrap_Simulation_move__SWIG_1(nargs, args, self);
12461                                 }
12462                             }
12463                         }
12464                     }
12465                 }
12466             }
12467         }
12468     }
12469     
12470     rb_raise(rb_eArgError, "No matching function for overloaded 'Simulation_move'");
12471     return Qnil;
12472 }
12473 
12474 
12475 static VALUE
12476 _wrap_Simulation_clean(int argc, VALUE *argv, VALUE self) {
12477     Simulation *arg1 = (Simulation *) 0 ;
12478     char *arg2 ;
12479     
12480     if ((argc < 1) || (argc > 1))
12481     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12482     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12483     arg2 = StringValuePtr(argv[0]);
12484     (arg1)->clean(arg2);
12485     
12486     return Qnil;
12487 }
12488 
12489 
12490 static VALUE
12491 _wrap_Simulation_to_file(int argc, VALUE *argv, VALUE self) {
12492     Simulation *arg1 = (Simulation *) 0 ;
12493     char *arg2 ;
12494     int result;
12495     VALUE vresult = Qnil;
12496     
12497     if ((argc < 1) || (argc > 1))
12498     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12499     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12500     arg2 = StringValuePtr(argv[0]);
12501     result = (int)(arg1)->to_file(arg2);
12502     
12503     vresult = INT2NUM(result);
12504     return vresult;
12505 }
12506 
12507 
12508 static VALUE
12509 _wrap_Simulation_to_eps(int argc, VALUE *argv, VALUE self) {
12510     Simulation *arg1 = (Simulation *) 0 ;
12511     char *arg2 ;
12512     int result;
12513     VALUE vresult = Qnil;
12514     
12515     if ((argc < 1) || (argc > 1))
12516     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12517     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12518     arg2 = StringValuePtr(argv[0]);
12519     result = (int)(arg1)->to_eps(arg2);
12520     
12521     vresult = INT2NUM(result);
12522     return vresult;
12523 }
12524 
12525 
12526 static VALUE
12527 _wrap_Simulation_start_logging(int argc, VALUE *argv, VALUE self) {
12528     Simulation *arg1 = (Simulation *) 0 ;
12529     char *arg2 ;
12530     int result;
12531     VALUE vresult = Qnil;
12532     
12533     if ((argc < 1) || (argc > 1))
12534     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12535     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12536     arg2 = StringValuePtr(argv[0]);
12537     result = (int)(arg1)->start_logging(arg2);
12538     
12539     vresult = INT2NUM(result);
12540     return vresult;
12541 }
12542 
12543 
12544 static VALUE
12545 _wrap_Simulation_print(int argc, VALUE *argv, VALUE self) {
12546     Simulation *arg1 = (Simulation *) 0 ;
12547     
12548     if ((argc < 0) || (argc > 0))
12549     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12550     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12551     (arg1)->print();
12552     
12553     return Qnil;
12554 }
12555 
12556 
12557 static VALUE
12558 _wrap_Simulation_print_statistics(int argc, VALUE *argv, VALUE self) {
12559     Simulation *arg1 = (Simulation *) 0 ;
12560     
12561     if ((argc < 0) || (argc > 0))
12562     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12563     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12564     (arg1)->print_statistics();
12565     
12566     return Qnil;
12567 }
12568 
12569 
12570 static VALUE
12571 _wrap_Simulation_print_times(int argc, VALUE *argv, VALUE self) {
12572     Simulation *arg1 = (Simulation *) 0 ;
12573     
12574     if ((argc < 0) || (argc > 0))
12575     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12576     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Simulation, 1);
12577     (arg1)->print_times();
12578     
12579     return Qnil;
12580 }
12581 
12582 
12583 static void
12584 free_Simulation(Simulation *arg1) {
12585     delete arg1;
12586 }
12587 static VALUE
12588 _wrap_Visualization_world_top_set(int argc, VALUE *argv, VALUE self) {
12589     Visualization *arg1 = (Visualization *) 0 ;
12590     Point2D *arg2 = (Point2D *) 0 ;
12591     
12592     if ((argc < 1) || (argc > 1))
12593     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12594     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12595     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12596     if (arg1) (arg1)->world_top = *arg2;
12597     
12598     return Qnil;
12599 }
12600 
12601 
12602 static VALUE
12603 _wrap_Visualization_world_top_get(int argc, VALUE *argv, VALUE self) {
12604     Visualization *arg1 = (Visualization *) 0 ;
12605     Point2D *result;
12606     VALUE vresult = Qnil;
12607     
12608     if ((argc < 0) || (argc > 0))
12609     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12610     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12611     result = (Point2D *)& ((arg1)->world_top);
12612     
12613     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
12614     return vresult;
12615 }
12616 
12617 
12618 static VALUE
12619 _wrap_Visualization_world_bot_set(int argc, VALUE *argv, VALUE self) {
12620     Visualization *arg1 = (Visualization *) 0 ;
12621     Point2D *arg2 = (Point2D *) 0 ;
12622     
12623     if ((argc < 1) || (argc > 1))
12624     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12625     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12626     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12627     if (arg1) (arg1)->world_bot = *arg2;
12628     
12629     return Qnil;
12630 }
12631 
12632 
12633 static VALUE
12634 _wrap_Visualization_world_bot_get(int argc, VALUE *argv, VALUE self) {
12635     Visualization *arg1 = (Visualization *) 0 ;
12636     Point2D *result;
12637     VALUE vresult = Qnil;
12638     
12639     if ((argc < 0) || (argc > 0))
12640     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12641     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12642     result = (Point2D *)& ((arg1)->world_bot);
12643     
12644     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
12645     return vresult;
12646 }
12647 
12648 
12649 static VALUE
12650 _wrap_Visualization_world_center_set(int argc, VALUE *argv, VALUE self) {
12651     Visualization *arg1 = (Visualization *) 0 ;
12652     Point2D *arg2 = (Point2D *) 0 ;
12653     
12654     if ((argc < 1) || (argc > 1))
12655     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12656     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12657     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12658     if (arg1) (arg1)->world_center = *arg2;
12659     
12660     return Qnil;
12661 }
12662 
12663 
12664 static VALUE
12665 _wrap_Visualization_world_center_get(int argc, VALUE *argv, VALUE self) {
12666     Visualization *arg1 = (Visualization *) 0 ;
12667     Point2D *result;
12668     VALUE vresult = Qnil;
12669     
12670     if ((argc < 0) || (argc > 0))
12671     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12672     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12673     result = (Point2D *)& ((arg1)->world_center);
12674     
12675     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
12676     return vresult;
12677 }
12678 
12679 
12680 static VALUE
12681 _wrap_Visualization_world_width_set(int argc, VALUE *argv, VALUE self) {
12682     Visualization *arg1 = (Visualization *) 0 ;
12683     double arg2 ;
12684     
12685     if ((argc < 1) || (argc > 1))
12686     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12687     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12688     arg2 = (double) NUM2DBL(argv[0]);
12689     if (arg1) (arg1)->world_width = arg2;
12690     
12691     return Qnil;
12692 }
12693 
12694 
12695 static VALUE
12696 _wrap_Visualization_world_width_get(int argc, VALUE *argv, VALUE self) {
12697     Visualization *arg1 = (Visualization *) 0 ;
12698     double result;
12699     VALUE vresult = Qnil;
12700     
12701     if ((argc < 0) || (argc > 0))
12702     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12703     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12704     result = (double) ((arg1)->world_width);
12705     
12706     vresult = rb_float_new(result);
12707     return vresult;
12708 }
12709 
12710 
12711 static VALUE
12712 _wrap_Visualization_world_height_set(int argc, VALUE *argv, VALUE self) {
12713     Visualization *arg1 = (Visualization *) 0 ;
12714     double arg2 ;
12715     
12716     if ((argc < 1) || (argc > 1))
12717     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12718     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12719     arg2 = (double) NUM2DBL(argv[0]);
12720     if (arg1) (arg1)->world_height = arg2;
12721     
12722     return Qnil;
12723 }
12724 
12725 
12726 static VALUE
12727 _wrap_Visualization_world_height_get(int argc, VALUE *argv, VALUE self) {
12728     Visualization *arg1 = (Visualization *) 0 ;
12729     double result;
12730     VALUE vresult = Qnil;
12731     
12732     if ((argc < 0) || (argc > 0))
12733     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12734     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12735     result = (double) ((arg1)->world_height);
12736     
12737     vresult = rb_float_new(result);
12738     return vresult;
12739 }
12740 
12741 
12742 static VALUE
12743 _wrap_Visualization_world_ratio_set(int argc, VALUE *argv, VALUE self) {
12744     Visualization *arg1 = (Visualization *) 0 ;
12745     double arg2 ;
12746     
12747     if ((argc < 1) || (argc > 1))
12748     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12749     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12750     arg2 = (double) NUM2DBL(argv[0]);
12751     if (arg1) (arg1)->world_ratio = arg2;
12752     
12753     return Qnil;
12754 }
12755 
12756 
12757 static VALUE
12758 _wrap_Visualization_world_ratio_get(int argc, VALUE *argv, VALUE self) {
12759     Visualization *arg1 = (Visualization *) 0 ;
12760     double result;
12761     VALUE vresult = Qnil;
12762     
12763     if ((argc < 0) || (argc > 0))
12764     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12765     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12766     result = (double) ((arg1)->world_ratio);
12767     
12768     vresult = rb_float_new(result);
12769     return vresult;
12770 }
12771 
12772 
12773 static VALUE
12774 _wrap_Visualization_zoom_top_set(int argc, VALUE *argv, VALUE self) {
12775     Visualization *arg1 = (Visualization *) 0 ;
12776     Point2D *arg2 = (Point2D *) 0 ;
12777     
12778     if ((argc < 1) || (argc > 1))
12779     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12780     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12781     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12782     if (arg1) (arg1)->zoom_top = *arg2;
12783     
12784     return Qnil;
12785 }
12786 
12787 
12788 static VALUE
12789 _wrap_Visualization_zoom_top_get(int argc, VALUE *argv, VALUE self) {
12790     Visualization *arg1 = (Visualization *) 0 ;
12791     Point2D *result;
12792     VALUE vresult = Qnil;
12793     
12794     if ((argc < 0) || (argc > 0))
12795     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12796     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12797     result = (Point2D *)& ((arg1)->zoom_top);
12798     
12799     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
12800     return vresult;
12801 }
12802 
12803 
12804 static VALUE
12805 _wrap_Visualization_zoom_bot_set(int argc, VALUE *argv, VALUE self) {
12806     Visualization *arg1 = (Visualization *) 0 ;
12807     Point2D *arg2 = (Point2D *) 0 ;
12808     
12809     if ((argc < 1) || (argc > 1))
12810     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12811     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12812     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12813     if (arg1) (arg1)->zoom_bot = *arg2;
12814     
12815     return Qnil;
12816 }
12817 
12818 
12819 static VALUE
12820 _wrap_Visualization_zoom_bot_get(int argc, VALUE *argv, VALUE self) {
12821     Visualization *arg1 = (Visualization *) 0 ;
12822     Point2D *result;
12823     VALUE vresult = Qnil;
12824     
12825     if ((argc < 0) || (argc > 0))
12826     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12827     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12828     result = (Point2D *)& ((arg1)->zoom_bot);
12829     
12830     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
12831     return vresult;
12832 }
12833 
12834 
12835 static VALUE
12836 _wrap_Visualization_zoom_center_set(int argc, VALUE *argv, VALUE self) {
12837     Visualization *arg1 = (Visualization *) 0 ;
12838     Point2D *arg2 = (Point2D *) 0 ;
12839     
12840     if ((argc < 1) || (argc > 1))
12841     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12842     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12843     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12844     if (arg1) (arg1)->zoom_center = *arg2;
12845     
12846     return Qnil;
12847 }
12848 
12849 
12850 static VALUE
12851 _wrap_Visualization_zoom_center_get(int argc, VALUE *argv, VALUE self) {
12852     Visualization *arg1 = (Visualization *) 0 ;
12853     Point2D *result;
12854     VALUE vresult = Qnil;
12855     
12856     if ((argc < 0) || (argc > 0))
12857     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12858     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12859     result = (Point2D *)& ((arg1)->zoom_center);
12860     
12861     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
12862     return vresult;
12863 }
12864 
12865 
12866 static VALUE
12867 _wrap_Visualization_zoom_width_set(int argc, VALUE *argv, VALUE self) {
12868     Visualization *arg1 = (Visualization *) 0 ;
12869     double arg2 ;
12870     
12871     if ((argc < 1) || (argc > 1))
12872     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12873     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12874     arg2 = (double) NUM2DBL(argv[0]);
12875     if (arg1) (arg1)->zoom_width = arg2;
12876     
12877     return Qnil;
12878 }
12879 
12880 
12881 static VALUE
12882 _wrap_Visualization_zoom_width_get(int argc, VALUE *argv, VALUE self) {
12883     Visualization *arg1 = (Visualization *) 0 ;
12884     double result;
12885     VALUE vresult = Qnil;
12886     
12887     if ((argc < 0) || (argc > 0))
12888     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12889     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12890     result = (double) ((arg1)->zoom_width);
12891     
12892     vresult = rb_float_new(result);
12893     return vresult;
12894 }
12895 
12896 
12897 static VALUE
12898 _wrap_Visualization_zoom_height_set(int argc, VALUE *argv, VALUE self) {
12899     Visualization *arg1 = (Visualization *) 0 ;
12900     double arg2 ;
12901     
12902     if ((argc < 1) || (argc > 1))
12903     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12904     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12905     arg2 = (double) NUM2DBL(argv[0]);
12906     if (arg1) (arg1)->zoom_height = arg2;
12907     
12908     return Qnil;
12909 }
12910 
12911 
12912 static VALUE
12913 _wrap_Visualization_zoom_height_get(int argc, VALUE *argv, VALUE self) {
12914     Visualization *arg1 = (Visualization *) 0 ;
12915     double result;
12916     VALUE vresult = Qnil;
12917     
12918     if ((argc < 0) || (argc > 0))
12919     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12920     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12921     result = (double) ((arg1)->zoom_height);
12922     
12923     vresult = rb_float_new(result);
12924     return vresult;
12925 }
12926 
12927 
12928 static VALUE
12929 _wrap_Visualization_zoom_ratio_set(int argc, VALUE *argv, VALUE self) {
12930     Visualization *arg1 = (Visualization *) 0 ;
12931     double arg2 ;
12932     
12933     if ((argc < 1) || (argc > 1))
12934     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12935     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12936     arg2 = (double) NUM2DBL(argv[0]);
12937     if (arg1) (arg1)->zoom_ratio = arg2;
12938     
12939     return Qnil;
12940 }
12941 
12942 
12943 static VALUE
12944 _wrap_Visualization_zoom_ratio_get(int argc, VALUE *argv, VALUE self) {
12945     Visualization *arg1 = (Visualization *) 0 ;
12946     double result;
12947     VALUE vresult = Qnil;
12948     
12949     if ((argc < 0) || (argc > 0))
12950     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12951     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12952     result = (double) ((arg1)->zoom_ratio);
12953     
12954     vresult = rb_float_new(result);
12955     return vresult;
12956 }
12957 
12958 
12959 static VALUE
12960 _wrap_Visualization_zoomed_set(int argc, VALUE *argv, VALUE self) {
12961     Visualization *arg1 = (Visualization *) 0 ;
12962     bool arg2 ;
12963     
12964     if ((argc < 1) || (argc > 1))
12965     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12966     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12967     arg2 = RTEST(argv[0]);
12968     if (arg1) (arg1)->zoomed = arg2;
12969     
12970     return Qnil;
12971 }
12972 
12973 
12974 static VALUE
12975 _wrap_Visualization_zoomed_get(int argc, VALUE *argv, VALUE self) {
12976     Visualization *arg1 = (Visualization *) 0 ;
12977     bool result;
12978     VALUE vresult = Qnil;
12979     
12980     if ((argc < 0) || (argc > 0))
12981     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
12982     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12983     result = (bool) ((arg1)->zoomed);
12984     
12985     vresult = result ? Qtrue : Qfalse;
12986     return vresult;
12987 }
12988 
12989 
12990 static VALUE
12991 _wrap_Visualization_view_top_set(int argc, VALUE *argv, VALUE self) {
12992     Visualization *arg1 = (Visualization *) 0 ;
12993     Point2D *arg2 = (Point2D *) 0 ;
12994     
12995     if ((argc < 1) || (argc > 1))
12996     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
12997     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
12998     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
12999     if (arg1) (arg1)->view_top = *arg2;
13000     
13001     return Qnil;
13002 }
13003 
13004 
13005 static VALUE
13006 _wrap_Visualization_view_top_get(int argc, VALUE *argv, VALUE self) {
13007     Visualization *arg1 = (Visualization *) 0 ;
13008     Point2D *result;
13009     VALUE vresult = Qnil;
13010     
13011     if ((argc < 0) || (argc > 0))
13012     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13013     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13014     result = (Point2D *)& ((arg1)->view_top);
13015     
13016     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
13017     return vresult;
13018 }
13019 
13020 
13021 static VALUE
13022 _wrap_Visualization_view_bot_set(int argc, VALUE *argv, VALUE self) {
13023     Visualization *arg1 = (Visualization *) 0 ;
13024     Point2D *arg2 = (Point2D *) 0 ;
13025     
13026     if ((argc < 1) || (argc > 1))
13027     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13028     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13029     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
13030     if (arg1) (arg1)->view_bot = *arg2;
13031     
13032     return Qnil;
13033 }
13034 
13035 
13036 static VALUE
13037 _wrap_Visualization_view_bot_get(int argc, VALUE *argv, VALUE self) {
13038     Visualization *arg1 = (Visualization *) 0 ;
13039     Point2D *result;
13040     VALUE vresult = Qnil;
13041     
13042     if ((argc < 0) || (argc > 0))
13043     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13044     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13045     result = (Point2D *)& ((arg1)->view_bot);
13046     
13047     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
13048     return vresult;
13049 }
13050 
13051 
13052 static VALUE
13053 _wrap_Visualization_screen_width_set(int argc, VALUE *argv, VALUE self) {
13054     Visualization *arg1 = (Visualization *) 0 ;
13055     int arg2 ;
13056     
13057     if ((argc < 1) || (argc > 1))
13058     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13059     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13060     arg2 = NUM2INT(argv[0]);
13061     if (arg1) (arg1)->screen_width = arg2;
13062     
13063     return Qnil;
13064 }
13065 
13066 
13067 static VALUE
13068 _wrap_Visualization_screen_width_get(int argc, VALUE *argv, VALUE self) {
13069     Visualization *arg1 = (Visualization *) 0 ;
13070     int result;
13071     VALUE vresult = Qnil;
13072     
13073     if ((argc < 0) || (argc > 0))
13074     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13075     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13076     result = (int) ((arg1)->screen_width);
13077     
13078     vresult = INT2NUM(result);
13079     return vresult;
13080 }
13081 
13082 
13083 static VALUE
13084 _wrap_Visualization_screen_height_set(int argc, VALUE *argv, VALUE self) {
13085     Visualization *arg1 = (Visualization *) 0 ;
13086     int arg2 ;
13087     
13088     if ((argc < 1) || (argc > 1))
13089     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13090     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13091     arg2 = NUM2INT(argv[0]);
13092     if (arg1) (arg1)->screen_height = arg2;
13093     
13094     return Qnil;
13095 }
13096 
13097 
13098 static VALUE
13099 _wrap_Visualization_screen_height_get(int argc, VALUE *argv, VALUE self) {
13100     Visualization *arg1 = (Visualization *) 0 ;
13101     int result;
13102     VALUE vresult = Qnil;
13103     
13104     if ((argc < 0) || (argc > 0))
13105     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13106     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13107     result = (int) ((arg1)->screen_height);
13108     
13109     vresult = INT2NUM(result);
13110     return vresult;
13111 }
13112 
13113 
13114 static VALUE
13115 _wrap_Visualization_screen_ratio_set(int argc, VALUE *argv, VALUE self) {
13116     Visualization *arg1 = (Visualization *) 0 ;
13117     double arg2 ;
13118     
13119     if ((argc < 1) || (argc > 1))
13120     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13121     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13122     arg2 = (double) NUM2DBL(argv[0]);
13123     if (arg1) (arg1)->screen_ratio = arg2;
13124     
13125     return Qnil;
13126 }
13127 
13128 
13129 static VALUE
13130 _wrap_Visualization_screen_ratio_get(int argc, VALUE *argv, VALUE self) {
13131     Visualization *arg1 = (Visualization *) 0 ;
13132     double result;
13133     VALUE vresult = Qnil;
13134     
13135     if ((argc < 0) || (argc > 0))
13136     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13137     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13138     result = (double) ((arg1)->screen_ratio);
13139     
13140     vresult = rb_float_new(result);
13141     return vresult;
13142 }
13143 
13144 
13145 static VALUE
13146 _wrap_Visualization_colormap_set(int argc, VALUE *argv, VALUE self) {
13147     Visualization *arg1 = (Visualization *) 0 ;
13148     ColorMap *arg2 = (ColorMap *) 0 ;
13149     
13150     if ((argc < 1) || (argc > 1))
13151     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13152     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13153     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_ColorMap, 1);
13154     if (arg1) (arg1)->colormap = *arg2;
13155     
13156     return Qnil;
13157 }
13158 
13159 
13160 static VALUE
13161 _wrap_Visualization_colormap_get(int argc, VALUE *argv, VALUE self) {
13162     Visualization *arg1 = (Visualization *) 0 ;
13163     ColorMap *result;
13164     VALUE vresult = Qnil;
13165     
13166     if ((argc < 0) || (argc > 0))
13167     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13168     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13169     result = (ColorMap *)& ((arg1)->colormap);
13170     
13171     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_ColorMap,0);
13172     return vresult;
13173 }
13174 
13175 
13176 static VALUE
13177 _wrap_Visualization_bezier_mesh_set(int argc, VALUE *argv, VALUE self) {
13178     Visualization *arg1 = (Visualization *) 0 ;
13179     BezierMesh *arg2 = (BezierMesh *) 0 ;
13180     
13181     if ((argc < 1) || (argc > 1))
13182     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13183     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13184     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierMesh, 1);
13185     if (arg1) (arg1)->bezier_mesh = arg2;
13186     
13187     return Qnil;
13188 }
13189 
13190 
13191 static VALUE
13192 _wrap_Visualization_bezier_mesh_get(int argc, VALUE *argv, VALUE self) {
13193     Visualization *arg1 = (Visualization *) 0 ;
13194     BezierMesh *result;
13195     VALUE vresult = Qnil;
13196     
13197     if ((argc < 0) || (argc > 0))
13198     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13199     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13200     result = (BezierMesh *) ((arg1)->bezier_mesh);
13201     
13202     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BezierMesh,0);
13203     return vresult;
13204 }
13205 
13206 
13207 static VALUE
13208 _wrap_Visualization_bdry_mesh_set(int argc, VALUE *argv, VALUE self) {
13209     Visualization *arg1 = (Visualization *) 0 ;
13210     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
13211     
13212     if ((argc < 1) || (argc > 1))
13213     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13214     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13215     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
13216     if (arg1) (arg1)->bdry_mesh = arg2;
13217     
13218     return Qnil;
13219 }
13220 
13221 
13222 static VALUE
13223 _wrap_Visualization_bdry_mesh_get(int argc, VALUE *argv, VALUE self) {
13224     Visualization *arg1 = (Visualization *) 0 ;
13225     BoundaryMesh *result;
13226     VALUE vresult = Qnil;
13227     
13228     if ((argc < 0) || (argc > 0))
13229     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13230     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13231     result = (BoundaryMesh *) ((arg1)->bdry_mesh);
13232     
13233     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryMesh,0);
13234     return vresult;
13235 }
13236 
13237 
13238 static VALUE
13239 _wrap_new_Visualization__SWIG_0(int argc, VALUE *argv, VALUE self) {
13240     Simulation *arg1 = (Simulation *) 0 ;
13241     int arg2 ;
13242     int arg3 ;
13243     Visualization *result;
13244     
13245     if ((argc < 3) || (argc > 3))
13246     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
13247     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_Simulation, 1);
13248     arg2 = NUM2INT(argv[1]);
13249     arg3 = NUM2INT(argv[2]);
13250     result = (Visualization *)new Visualization(arg1,arg2,arg3);
13251     DATA_PTR(self) = result;
13252     return self;
13253 }
13254 
13255 
13256 static VALUE
13257 _wrap_new_Visualization__SWIG_1(int argc, VALUE *argv, VALUE self) {
13258     BezierMesh *arg1 = (BezierMesh *) 0 ;
13259     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
13260     int arg3 ;
13261     int arg4 ;
13262     Visualization *result;
13263     
13264     if ((argc < 4) || (argc > 4))
13265     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
13266     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
13267     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
13268     arg3 = NUM2INT(argv[2]);
13269     arg4 = NUM2INT(argv[3]);
13270     result = (Visualization *)new Visualization(arg1,arg2,arg3,arg4);
13271     DATA_PTR(self) = result;
13272     return self;
13273 }
13274 
13275 
13276 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
13277 static VALUE
13278 _wrap_Visualization_allocate(VALUE self) {
13279 #else
13280     static VALUE
13281     _wrap_Visualization_allocate(int argc, VALUE *argv, VALUE self) {
13282 #endif
13283         
13284         
13285         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Visualization);
13286 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
13287         rb_obj_call_init(vresult, argc, argv);
13288 #endif
13289         return vresult;
13290     }
13291     
13292 
13293 static VALUE
13294 _wrap_new_Visualization__SWIG_2(int argc, VALUE *argv, VALUE self) {
13295     BezierMesh *arg1 = (BezierMesh *) 0 ;
13296     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
13297     Visualization *result;
13298     
13299     if ((argc < 2) || (argc > 2))
13300     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13301     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
13302     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
13303     result = (Visualization *)new Visualization(arg1,arg2);
13304     DATA_PTR(self) = result;
13305     return self;
13306 }
13307 
13308 
13309 static VALUE _wrap_new_Visualization(int nargs, VALUE *args, VALUE self) {
13310     int argc;
13311     VALUE argv[4];
13312     int ii;
13313     
13314     argc = nargs;
13315     for (ii = 0; (ii < argc) && (ii < 4); ii++) {
13316         argv[ii] = args[ii];
13317     }
13318     if (argc == 2) {
13319         int _v;
13320         {
13321             void *ptr;
13322             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
13323         }
13324         if (_v) {
13325             {
13326                 void *ptr;
13327                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
13328             }
13329             if (_v) {
13330                 return _wrap_new_Visualization__SWIG_2(nargs, args, self);
13331             }
13332         }
13333     }
13334     if (argc == 3) {
13335         int _v;
13336         {
13337             void *ptr;
13338             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Simulation, 0) != -1)) ? 1 : 0;
13339         }
13340         if (_v) {
13341             {
13342                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
13343             }
13344             if (_v) {
13345                 {
13346                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
13347                 }
13348                 if (_v) {
13349                     return _wrap_new_Visualization__SWIG_0(nargs, args, self);
13350                 }
13351             }
13352         }
13353     }
13354     if (argc == 4) {
13355         int _v;
13356         {
13357             void *ptr;
13358             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_BezierMesh, 0) != -1)) ? 1 : 0;
13359         }
13360         if (_v) {
13361             {
13362                 void *ptr;
13363                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryMesh, 0) != -1)) ? 1 : 0;
13364             }
13365             if (_v) {
13366                 {
13367                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
13368                 }
13369                 if (_v) {
13370                     {
13371                         _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
13372                     }
13373                     if (_v) {
13374                         return _wrap_new_Visualization__SWIG_1(nargs, args, self);
13375                     }
13376                 }
13377             }
13378         }
13379     }
13380     
13381     rb_raise(rb_eArgError, "No matching function for overloaded 'new_Visualization'");
13382     return Qnil;
13383 }
13384 
13385 
13386 static void
13387 free_Visualization(Visualization *arg1) {
13388     delete arg1;
13389 }
13390 static VALUE
13391 _wrap_Visualization_load_color_map(int argc, VALUE *argv, VALUE self) {
13392     Visualization *arg1 = (Visualization *) 0 ;
13393     char *arg2 ;
13394     int result;
13395     VALUE vresult = Qnil;
13396     
13397     if ((argc < 1) || (argc > 1))
13398     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13399     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13400     arg2 = StringValuePtr(argv[0]);
13401     result = (int)(arg1)->load_color_map(arg2);
13402     
13403     vresult = INT2NUM(result);
13404     return vresult;
13405 }
13406 
13407 
13408 static VALUE
13409 _wrap_Visualization_map_color(int argc, VALUE *argv, VALUE self) {
13410     Visualization *arg1 = (Visualization *) 0 ;
13411     int arg2 ;
13412     Color *arg3 = 0 ;
13413     int result;
13414     VALUE vresult = Qnil;
13415     
13416     if ((argc < 2) || (argc > 2))
13417     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13418     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13419     arg2 = NUM2INT(argv[0]);
13420     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13421     result = (int)(arg1)->map_color(arg2,(Color const &)*arg3);
13422     
13423     vresult = INT2NUM(result);
13424     return vresult;
13425 }
13426 
13427 
13428 static VALUE
13429 _wrap_Visualization_write_jpeg(int argc, VALUE *argv, VALUE self) {
13430     Visualization *arg1 = (Visualization *) 0 ;
13431     char *arg2 ;
13432     int result;
13433     VALUE vresult = Qnil;
13434     
13435     if ((argc < 1) || (argc > 1))
13436     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13437     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13438     arg2 = StringValuePtr(argv[0]);
13439     result = (int)(arg1)->write_jpeg(arg2);
13440     
13441     vresult = INT2NUM(result);
13442     return vresult;
13443 }
13444 
13445 
13446 static VALUE
13447 _wrap_Visualization_write_tiff(int argc, VALUE *argv, VALUE self) {
13448     Visualization *arg1 = (Visualization *) 0 ;
13449     char *arg2 ;
13450     int result;
13451     VALUE vresult = Qnil;
13452     
13453     if ((argc < 1) || (argc > 1))
13454     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13455     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13456     arg2 = StringValuePtr(argv[0]);
13457     result = (int)(arg1)->write_tiff(arg2);
13458     
13459     vresult = INT2NUM(result);
13460     return vresult;
13461 }
13462 
13463 
13464 static VALUE
13465 _wrap_Visualization_write_ppm(int argc, VALUE *argv, VALUE self) {
13466     Visualization *arg1 = (Visualization *) 0 ;
13467     char *arg2 ;
13468     int result;
13469     VALUE vresult = Qnil;
13470     
13471     if ((argc < 1) || (argc > 1))
13472     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
13473     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13474     arg2 = StringValuePtr(argv[0]);
13475     result = (int)(arg1)->write_ppm(arg2);
13476     
13477     vresult = INT2NUM(result);
13478     return vresult;
13479 }
13480 
13481 
13482 static VALUE
13483 _wrap_Visualization_resize(int argc, VALUE *argv, VALUE self) {
13484     Visualization *arg1 = (Visualization *) 0 ;
13485     int arg2 ;
13486     int arg3 ;
13487     
13488     if ((argc < 2) || (argc > 2))
13489     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13490     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13491     arg2 = NUM2INT(argv[0]);
13492     arg3 = NUM2INT(argv[1]);
13493     (arg1)->resize(arg2,arg3);
13494     
13495     return Qnil;
13496 }
13497 
13498 
13499 static VALUE
13500 _wrap_Visualization_compute_world_size(int argc, VALUE *argv, VALUE self) {
13501     Visualization *arg1 = (Visualization *) 0 ;
13502     
13503     if ((argc < 0) || (argc > 0))
13504     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13505     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13506     (arg1)->compute_world_size();
13507     
13508     return Qnil;
13509 }
13510 
13511 
13512 static VALUE
13513 _wrap_Visualization_project(int argc, VALUE *argv, VALUE self) {
13514     Visualization *arg1 = (Visualization *) 0 ;
13515     
13516     if ((argc < 0) || (argc > 0))
13517     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13518     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13519     (arg1)->project();
13520     
13521     return Qnil;
13522 }
13523 
13524 
13525 static VALUE
13526 _wrap_Visualization_convert_from_screen_coords(int argc, VALUE *argv, VALUE self) {
13527     Visualization *arg1 = (Visualization *) 0 ;
13528     int arg2 ;
13529     int arg3 ;
13530     Point2D result;
13531     VALUE vresult = Qnil;
13532     
13533     if ((argc < 2) || (argc > 2))
13534     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13535     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13536     arg2 = NUM2INT(argv[0]);
13537     arg3 = NUM2INT(argv[1]);
13538     result = (arg1)->convert_from_screen_coords(arg2,arg3);
13539     
13540     {
13541         Point2D * resultptr;
13542         resultptr = new Point2D((Point2D &)result);
13543         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_Point2D, 1);
13544     }
13545     return vresult;
13546 }
13547 
13548 
13549 static VALUE
13550 _wrap_Visualization_zoomin(int argc, VALUE *argv, VALUE self) {
13551     Visualization *arg1 = (Visualization *) 0 ;
13552     Point2D arg2 ;
13553     Point2D arg3 ;
13554     
13555     if ((argc < 2) || (argc > 2))
13556     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13557     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13558     {
13559         Point2D * ptr;
13560         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
13561         if (ptr) arg2 = *ptr;
13562     }
13563     {
13564         Point2D * ptr;
13565         SWIG_ConvertPtr(argv[1], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
13566         if (ptr) arg3 = *ptr;
13567     }
13568     (arg1)->zoomin(arg2,arg3);
13569     
13570     return Qnil;
13571 }
13572 
13573 
13574 static VALUE
13575 _wrap_Visualization_zoomout(int argc, VALUE *argv, VALUE self) {
13576     Visualization *arg1 = (Visualization *) 0 ;
13577     
13578     if ((argc < 0) || (argc > 0))
13579     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
13580     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13581     (arg1)->zoomout();
13582     
13583     return Qnil;
13584 }
13585 
13586 
13587 static VALUE
13588 _wrap_Visualization_draw(int argc, VALUE *argv, VALUE self) {
13589     Visualization *arg1 = (Visualization *) 0 ;
13590     Color *arg2 = 0 ;
13591     Color *arg3 = 0 ;
13592     
13593     if ((argc < 2) || (argc > 2))
13594     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13595     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13596     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13597     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13598     (arg1)->draw((Color const &)*arg2,(Color const &)*arg3);
13599     
13600     return Qnil;
13601 }
13602 
13603 
13604 static VALUE
13605 _wrap_Visualization_draw_bezier(int argc, VALUE *argv, VALUE self) {
13606     Visualization *arg1 = (Visualization *) 0 ;
13607     Color *arg2 = 0 ;
13608     Color *arg3 = 0 ;
13609     
13610     if ((argc < 2) || (argc > 2))
13611     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13612     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13613     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13614     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13615     (arg1)->draw_bezier((Color const &)*arg2,(Color const &)*arg3);
13616     
13617     return Qnil;
13618 }
13619 
13620 
13621 static VALUE
13622 _wrap_Visualization_draw_solid(int argc, VALUE *argv, VALUE self) {
13623     Visualization *arg1 = (Visualization *) 0 ;
13624     Color *arg2 = 0 ;
13625     Color *arg3 = 0 ;
13626     
13627     if ((argc < 2) || (argc > 2))
13628     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
13629     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13630     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13631     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13632     (arg1)->draw_solid((Color const &)*arg2,(Color const &)*arg3);
13633     
13634     return Qnil;
13635 }
13636 
13637 
13638 static VALUE
13639 _wrap_Visualization_draw_data(int argc, VALUE *argv, VALUE self) {
13640     Visualization *arg1 = (Visualization *) 0 ;
13641     Color *arg2 = 0 ;
13642     Color *arg3 = 0 ;
13643     unsigned int arg4 ;
13644     unsigned int arg5 ;
13645     unsigned int arg6 ;
13646     
13647     if ((argc < 5) || (argc > 5))
13648     rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
13649     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13650     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13651     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13652     arg4 = NUM2UINT(argv[2]);
13653     arg5 = NUM2UINT(argv[3]);
13654     arg6 = NUM2UINT(argv[4]);
13655     (arg1)->draw_data((Color const &)*arg2,(Color const &)*arg3,arg4,arg5,arg6);
13656     
13657     return Qnil;
13658 }
13659 
13660 
13661 static VALUE
13662 _wrap_Visualization_draw_debug__SWIG_0(int argc, VALUE *argv, VALUE self) {
13663     Visualization *arg1 = (Visualization *) 0 ;
13664     Color *arg2 = 0 ;
13665     Color *arg3 = 0 ;
13666     Color *arg4 = 0 ;
13667     
13668     if ((argc < 3) || (argc > 3))
13669     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
13670     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13671     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13672     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13673     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
13674     (arg1)->draw_debug((Color const &)*arg2,(Color const &)*arg3,(Color const &)*arg4);
13675     
13676     return Qnil;
13677 }
13678 
13679 
13680 static VALUE
13681 _wrap_Visualization_draw_debug__SWIG_1(int argc, VALUE *argv, VALUE self) {
13682     Visualization *arg1 = (Visualization *) 0 ;
13683     Color *arg2 = 0 ;
13684     Color *arg3 = 0 ;
13685     Color *arg4 = 0 ;
13686     Color *arg5 = 0 ;
13687     
13688     if ((argc < 4) || (argc > 4))
13689     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
13690     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13691     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13692     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13693     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
13694     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Color, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
13695     (arg1)->draw_debug((Color const &)*arg2,(Color const &)*arg3,(Color const &)*arg4,(Color const &)*arg5);
13696     
13697     return Qnil;
13698 }
13699 
13700 
13701 static VALUE _wrap_Visualization_draw_debug(int nargs, VALUE *args, VALUE self) {
13702     int argc;
13703     VALUE argv[6];
13704     int ii;
13705     
13706     argc = nargs + 1;
13707     argv[0] = self;
13708     for (ii = 1; (ii < argc) && (ii < 5); ii++) {
13709         argv[ii] = args[ii-1];
13710     }
13711     if (argc == 4) {
13712         int _v;
13713         {
13714             void *ptr;
13715             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
13716         }
13717         if (_v) {
13718             {
13719                 void *ptr;
13720                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13721             }
13722             if (_v) {
13723                 {
13724                     void *ptr;
13725                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13726                 }
13727                 if (_v) {
13728                     {
13729                         void *ptr;
13730                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13731                     }
13732                     if (_v) {
13733                         return _wrap_Visualization_draw_debug__SWIG_0(nargs, args, self);
13734                     }
13735                 }
13736             }
13737         }
13738     }
13739     if (argc == 5) {
13740         int _v;
13741         {
13742             void *ptr;
13743             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
13744         }
13745         if (_v) {
13746             {
13747                 void *ptr;
13748                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13749             }
13750             if (_v) {
13751                 {
13752                     void *ptr;
13753                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13754                 }
13755                 if (_v) {
13756                     {
13757                         void *ptr;
13758                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13759                     }
13760                     if (_v) {
13761                         {
13762                             void *ptr;
13763                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13764                         }
13765                         if (_v) {
13766                             return _wrap_Visualization_draw_debug__SWIG_1(nargs, args, self);
13767                         }
13768                     }
13769                 }
13770             }
13771         }
13772     }
13773     
13774     rb_raise(rb_eArgError, "No matching function for overloaded 'Visualization_draw_debug'");
13775     return Qnil;
13776 }
13777 
13778 
13779 static VALUE
13780 _wrap_Visualization_draw_bdry_debug(int argc, VALUE *argv, VALUE self) {
13781     Visualization *arg1 = (Visualization *) 0 ;
13782     Color *arg2 = 0 ;
13783     Color *arg3 = 0 ;
13784     Color *arg4 = 0 ;
13785     Color *arg5 = 0 ;
13786     
13787     if ((argc < 4) || (argc > 4))
13788     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
13789     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13790     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13791     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13792     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
13793     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Color, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
13794     (arg1)->draw_bdry_debug((Color const &)*arg2,(Color const &)*arg3,(Color const &)*arg4,(Color const &)*arg5);
13795     
13796     return Qnil;
13797 }
13798 
13799 
13800 static VALUE
13801 _wrap_Visualization_draw_tuple(int argc, VALUE *argv, VALUE self) {
13802     Visualization *arg1 = (Visualization *) 0 ;
13803     BezierTuple *arg2 = 0 ;
13804     Color *arg3 = 0 ;
13805     Color *arg4 = 0 ;
13806     Color *arg5 = 0 ;
13807     
13808     if ((argc < 4) || (argc > 4))
13809     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
13810     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13811     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTuple, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13812     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13813     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
13814     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Color, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
13815     (arg1)->draw_tuple((BezierTuple const &)*arg2,(Color const &)*arg3,(Color const &)*arg4,(Color const &)*arg5);
13816     
13817     return Qnil;
13818 }
13819 
13820 
13821 static VALUE
13822 _wrap_Visualization_draw_point__SWIG_0(int argc, VALUE *argv, VALUE self) {
13823     Visualization *arg1 = (Visualization *) 0 ;
13824     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
13825     double arg3 ;
13826     double arg4 ;
13827     Color *arg5 = 0 ;
13828     Color *arg6 = 0 ;
13829     
13830     if ((argc < 5) || (argc > 5))
13831     rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
13832     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13833     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
13834     arg3 = (double) NUM2DBL(argv[1]);
13835     arg4 = (double) NUM2DBL(argv[2]);
13836     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Color, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
13837     SWIG_ConvertPtr(argv[4], (void **) &arg6, SWIGTYPE_p_Color, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
13838     (arg1)->draw_point(arg2,arg3,arg4,(Color const &)*arg5,(Color const &)*arg6);
13839     
13840     return Qnil;
13841 }
13842 
13843 
13844 static VALUE
13845 _wrap_Visualization_draw_point__SWIG_1(int argc, VALUE *argv, VALUE self) {
13846     Visualization *arg1 = (Visualization *) 0 ;
13847     BezierEdge *arg2 = (BezierEdge *) 0 ;
13848     double arg3 ;
13849     Color *arg4 = 0 ;
13850     Color *arg5 = 0 ;
13851     
13852     if ((argc < 4) || (argc > 4))
13853     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
13854     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13855     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
13856     arg3 = (double) NUM2DBL(argv[1]);
13857     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
13858     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Color, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
13859     (arg1)->draw_point(arg2,arg3,(Color const &)*arg4,(Color const &)*arg5);
13860     
13861     return Qnil;
13862 }
13863 
13864 
13865 static VALUE
13866 _wrap_Visualization_draw_point__SWIG_2(int argc, VALUE *argv, VALUE self) {
13867     Visualization *arg1 = (Visualization *) 0 ;
13868     Point2D *arg2 = 0 ;
13869     Color *arg3 = 0 ;
13870     double arg4 ;
13871     
13872     if ((argc < 3) || (argc > 3))
13873     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
13874     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
13875     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
13876     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
13877     arg4 = (double) NUM2DBL(argv[2]);
13878     (arg1)->draw_point((Point2D const &)*arg2,(Color const &)*arg3,arg4);
13879     
13880     return Qnil;
13881 }
13882 
13883 
13884 static VALUE _wrap_Visualization_draw_point(int nargs, VALUE *args, VALUE self) {
13885     int argc;
13886     VALUE argv[7];
13887     int ii;
13888     
13889     argc = nargs + 1;
13890     argv[0] = self;
13891     for (ii = 1; (ii < argc) && (ii < 6); ii++) {
13892         argv[ii] = args[ii-1];
13893     }
13894     if (argc == 4) {
13895         int _v;
13896         {
13897             void *ptr;
13898             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
13899         }
13900         if (_v) {
13901             {
13902                 void *ptr;
13903                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
13904             }
13905             if (_v) {
13906                 {
13907                     void *ptr;
13908                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13909                 }
13910                 if (_v) {
13911                     {
13912                         _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
13913                     }
13914                     if (_v) {
13915                         return _wrap_Visualization_draw_point__SWIG_2(nargs, args, self);
13916                     }
13917                 }
13918             }
13919         }
13920     }
13921     if (argc == 5) {
13922         int _v;
13923         {
13924             void *ptr;
13925             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
13926         }
13927         if (_v) {
13928             {
13929                 void *ptr;
13930                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
13931             }
13932             if (_v) {
13933                 {
13934                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
13935                 }
13936                 if (_v) {
13937                     {
13938                         void *ptr;
13939                         _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13940                     }
13941                     if (_v) {
13942                         {
13943                             void *ptr;
13944                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13945                         }
13946                         if (_v) {
13947                             return _wrap_Visualization_draw_point__SWIG_1(nargs, args, self);
13948                         }
13949                     }
13950                 }
13951             }
13952         }
13953     }
13954     if (argc == 6) {
13955         int _v;
13956         {
13957             void *ptr;
13958             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
13959         }
13960         if (_v) {
13961             {
13962                 void *ptr;
13963                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
13964             }
13965             if (_v) {
13966                 {
13967                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
13968                 }
13969                 if (_v) {
13970                     {
13971                         _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
13972                     }
13973                     if (_v) {
13974                         {
13975                             void *ptr;
13976                             _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13977                         }
13978                         if (_v) {
13979                             {
13980                                 void *ptr;
13981                                 _v = (NIL_P(argv[5]) || (TYPE(argv[5]) == T_DATA && SWIG_ConvertPtr(argv[5], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
13982                             }
13983                             if (_v) {
13984                                 return _wrap_Visualization_draw_point__SWIG_0(nargs, args, self);
13985                             }
13986                         }
13987                     }
13988                 }
13989             }
13990         }
13991     }
13992     
13993     rb_raise(rb_eArgError, "No matching function for overloaded 'Visualization_draw_point'");
13994     return Qnil;
13995 }
13996 
13997 
13998 static VALUE
13999 _wrap_Visualization_draw_boundary_vertex(int argc, VALUE *argv, VALUE self) {
14000     Visualization *arg1 = (Visualization *) 0 ;
14001     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
14002     Color *arg3 = 0 ;
14003     
14004     if ((argc < 2) || (argc > 2))
14005     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14006     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14007     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
14008     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14009     (arg1)->draw_boundary_vertex(arg2,(Color const &)*arg3);
14010     
14011     return Qnil;
14012 }
14013 
14014 
14015 static VALUE
14016 _wrap_Visualization_draw_boundary_edge(int argc, VALUE *argv, VALUE self) {
14017     Visualization *arg1 = (Visualization *) 0 ;
14018     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
14019     Color *arg3 = 0 ;
14020     
14021     if ((argc < 2) || (argc > 2))
14022     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14023     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14024     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
14025     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14026     (arg1)->draw_boundary_edge(arg2,(Color const &)*arg3);
14027     
14028     return Qnil;
14029 }
14030 
14031 
14032 static VALUE
14033 _wrap_Visualization_draw_boundary_edge_debug(int argc, VALUE *argv, VALUE self) {
14034     Visualization *arg1 = (Visualization *) 0 ;
14035     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
14036     Color *arg3 = 0 ;
14037     Color *arg4 = 0 ;
14038     Color *arg5 = 0 ;
14039     
14040     if ((argc < 4) || (argc > 4))
14041     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
14042     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14043     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
14044     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14045     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
14046     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Color, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
14047     (arg1)->draw_boundary_edge_debug(arg2,(Color const &)*arg3,(Color const &)*arg4,(Color const &)*arg5);
14048     
14049     return Qnil;
14050 }
14051 
14052 
14053 static VALUE
14054 _wrap_Visualization_draw_bezier_vertex(int argc, VALUE *argv, VALUE self) {
14055     Visualization *arg1 = (Visualization *) 0 ;
14056     BezierVertex *arg2 = (BezierVertex *) 0 ;
14057     Color *arg3 = 0 ;
14058     
14059     if ((argc < 2) || (argc > 2))
14060     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14061     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14062     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
14063     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14064     (arg1)->draw_bezier_vertex(arg2,(Color const &)*arg3);
14065     
14066     return Qnil;
14067 }
14068 
14069 
14070 static VALUE
14071 _wrap_Visualization_draw_bezier_edge(int argc, VALUE *argv, VALUE self) {
14072     Visualization *arg1 = (Visualization *) 0 ;
14073     BezierEdge *arg2 = (BezierEdge *) 0 ;
14074     Color *arg3 = 0 ;
14075     
14076     if ((argc < 2) || (argc > 2))
14077     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14078     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14079     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
14080     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14081     (arg1)->draw_bezier_edge(arg2,(Color const &)*arg3);
14082     
14083     return Qnil;
14084 }
14085 
14086 
14087 static VALUE
14088 _wrap_Visualization_draw_bezier_triangle__SWIG_0(int argc, VALUE *argv, VALUE self) {
14089     Visualization *arg1 = (Visualization *) 0 ;
14090     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
14091     
14092     if ((argc < 1) || (argc > 1))
14093     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14094     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14095     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
14096     (arg1)->draw_bezier_triangle(arg2);
14097     
14098     return Qnil;
14099 }
14100 
14101 
14102 static VALUE
14103 _wrap_Visualization_draw_bezier_triangle__SWIG_1(int argc, VALUE *argv, VALUE self) {
14104     Visualization *arg1 = (Visualization *) 0 ;
14105     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
14106     Color *arg3 = 0 ;
14107     
14108     if ((argc < 2) || (argc > 2))
14109     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14110     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14111     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
14112     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14113     (arg1)->draw_bezier_triangle(arg2,(Color const &)*arg3);
14114     
14115     return Qnil;
14116 }
14117 
14118 
14119 static VALUE
14120 _wrap_Visualization_draw_bezier_triangle__SWIG_2(int argc, VALUE *argv, VALUE self) {
14121     Visualization *arg1 = (Visualization *) 0 ;
14122     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
14123     unsigned int arg3 ;
14124     unsigned int arg4 ;
14125     unsigned int arg5 ;
14126     
14127     if ((argc < 4) || (argc > 4))
14128     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
14129     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14130     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
14131     arg3 = NUM2UINT(argv[1]);
14132     arg4 = NUM2UINT(argv[2]);
14133     arg5 = NUM2UINT(argv[3]);
14134     (arg1)->draw_bezier_triangle(arg2,arg3,arg4,arg5);
14135     
14136     return Qnil;
14137 }
14138 
14139 
14140 static VALUE _wrap_Visualization_draw_bezier_triangle(int nargs, VALUE *args, VALUE self) {
14141     int argc;
14142     VALUE argv[6];
14143     int ii;
14144     
14145     argc = nargs + 1;
14146     argv[0] = self;
14147     for (ii = 1; (ii < argc) && (ii < 5); ii++) {
14148         argv[ii] = args[ii-1];
14149     }
14150     if (argc == 2) {
14151         int _v;
14152         {
14153             void *ptr;
14154             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14155         }
14156         if (_v) {
14157             {
14158                 void *ptr;
14159                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
14160             }
14161             if (_v) {
14162                 return _wrap_Visualization_draw_bezier_triangle__SWIG_0(nargs, args, self);
14163             }
14164         }
14165     }
14166     if (argc == 3) {
14167         int _v;
14168         {
14169             void *ptr;
14170             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14171         }
14172         if (_v) {
14173             {
14174                 void *ptr;
14175                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
14176             }
14177             if (_v) {
14178                 {
14179                     void *ptr;
14180                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
14181                 }
14182                 if (_v) {
14183                     return _wrap_Visualization_draw_bezier_triangle__SWIG_1(nargs, args, self);
14184                 }
14185             }
14186         }
14187     }
14188     if (argc == 5) {
14189         int _v;
14190         {
14191             void *ptr;
14192             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14193         }
14194         if (_v) {
14195             {
14196                 void *ptr;
14197                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
14198             }
14199             if (_v) {
14200                 {
14201                     _v = ((TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
14202                 }
14203                 if (_v) {
14204                     {
14205                         _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0;
14206                     }
14207                     if (_v) {
14208                         {
14209                             _v = ((TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0;
14210                         }
14211                         if (_v) {
14212                             return _wrap_Visualization_draw_bezier_triangle__SWIG_2(nargs, args, self);
14213                         }
14214                     }
14215                 }
14216             }
14217         }
14218     }
14219     
14220     rb_raise(rb_eArgError, "No matching function for overloaded 'Visualization_draw_bezier_triangle'");
14221     return Qnil;
14222 }
14223 
14224 
14225 static VALUE
14226 _wrap_Visualization_draw_control_net(int argc, VALUE *argv, VALUE self) {
14227     Visualization *arg1 = (Visualization *) 0 ;
14228     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
14229     Color *arg3 = 0 ;
14230     
14231     if ((argc < 2) || (argc > 2))
14232     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14233     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14234     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
14235     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14236     (arg1)->draw_control_net(arg2,(Color const &)*arg3);
14237     
14238     return Qnil;
14239 }
14240 
14241 
14242 static VALUE
14243 _wrap_Visualization_draw_polygon(int argc, VALUE *argv, VALUE self) {
14244     Visualization *arg1 = (Visualization *) 0 ;
14245     Point2D *arg2 ;
14246     int arg3 ;
14247     Color *arg4 = 0 ;
14248     
14249     if ((argc < 3) || (argc > 3))
14250     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
14251     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14252     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
14253     arg3 = NUM2INT(argv[1]);
14254     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Color, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
14255     (arg1)->draw_polygon(arg2,arg3,(Color const &)*arg4);
14256     
14257     return Qnil;
14258 }
14259 
14260 
14261 static VALUE
14262 _wrap_Visualization_draw_smooth_debug(int argc, VALUE *argv, VALUE self) {
14263     Visualization *arg1 = (Visualization *) 0 ;
14264     BezierEdge *arg2 = (BezierEdge *) 0 ;
14265     Point2D *arg3 ;
14266     Point2D *arg4 = 0 ;
14267     Point2D *arg5 = 0 ;
14268     
14269     if ((argc < 4) || (argc > 4))
14270     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
14271     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14272     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
14273     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1);
14274     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
14275     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
14276     (arg1)->draw_smooth_debug(arg2,arg3,(Point2D const &)*arg4,(Point2D const &)*arg5);
14277     
14278     return Qnil;
14279 }
14280 
14281 
14282 static VALUE
14283 _wrap_Visualization_draw_flip_debug(int argc, VALUE *argv, VALUE self) {
14284     Visualization *arg1 = (Visualization *) 0 ;
14285     BezierEdge *arg2 = (BezierEdge *) 0 ;
14286     Point2D *arg3 ;
14287     Point2D *arg4 = 0 ;
14288     Point2D *arg5 = 0 ;
14289     
14290     if ((argc < 4) || (argc > 4))
14291     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
14292     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14293     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
14294     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1);
14295     SWIG_ConvertPtr(argv[2], (void **) &arg4, SWIGTYPE_p_Point2D, 1); if (arg4 == NULL) rb_raise(rb_eTypeError, "null reference");
14296     SWIG_ConvertPtr(argv[3], (void **) &arg5, SWIGTYPE_p_Point2D, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
14297     (arg1)->draw_flip_debug(arg2,arg3,(Point2D const &)*arg4,(Point2D const &)*arg5);
14298     
14299     return Qnil;
14300 }
14301 
14302 
14303 static VALUE
14304 _wrap_Visualization_start_draw(int argc, VALUE *argv, VALUE self) {
14305     Visualization *arg1 = (Visualization *) 0 ;
14306     
14307     if ((argc < 0) || (argc > 0))
14308     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14309     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14310     (arg1)->start_draw();
14311     
14312     return Qnil;
14313 }
14314 
14315 
14316 static VALUE
14317 _wrap_Visualization_finish_draw(int argc, VALUE *argv, VALUE self) {
14318     Visualization *arg1 = (Visualization *) 0 ;
14319     
14320     if ((argc < 0) || (argc > 0))
14321     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14322     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14323     (arg1)->finish_draw();
14324     
14325     return Qnil;
14326 }
14327 
14328 
14329 static VALUE
14330 _wrap_Visualization_is_visible__SWIG_0(int argc, VALUE *argv, VALUE self) {
14331     Visualization *arg1 = (Visualization *) 0 ;
14332     Point2D *arg2 = 0 ;
14333     bool result;
14334     VALUE vresult = Qnil;
14335     
14336     if ((argc < 1) || (argc > 1))
14337     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14338     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14339     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
14340     result = (bool)(arg1)->is_visible((Point2D const &)*arg2);
14341     
14342     vresult = result ? Qtrue : Qfalse;
14343     return vresult;
14344 }
14345 
14346 
14347 static VALUE
14348 _wrap_Visualization_is_visible__SWIG_1(int argc, VALUE *argv, VALUE self) {
14349     Visualization *arg1 = (Visualization *) 0 ;
14350     BoundaryVertex *arg2 = (BoundaryVertex *) 0 ;
14351     bool result;
14352     VALUE vresult = Qnil;
14353     
14354     if ((argc < 1) || (argc > 1))
14355     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14356     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14357     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryVertex, 1);
14358     result = (bool)(arg1)->is_visible(arg2);
14359     
14360     vresult = result ? Qtrue : Qfalse;
14361     return vresult;
14362 }
14363 
14364 
14365 static VALUE
14366 _wrap_Visualization_is_visible__SWIG_2(int argc, VALUE *argv, VALUE self) {
14367     Visualization *arg1 = (Visualization *) 0 ;
14368     BezierVertex *arg2 = (BezierVertex *) 0 ;
14369     bool result;
14370     VALUE vresult = Qnil;
14371     
14372     if ((argc < 1) || (argc > 1))
14373     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14374     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14375     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierVertex, 1);
14376     result = (bool)(arg1)->is_visible(arg2);
14377     
14378     vresult = result ? Qtrue : Qfalse;
14379     return vresult;
14380 }
14381 
14382 
14383 static VALUE
14384 _wrap_Visualization_is_visible__SWIG_3(int argc, VALUE *argv, VALUE self) {
14385     Visualization *arg1 = (Visualization *) 0 ;
14386     BezierEdge *arg2 = (BezierEdge *) 0 ;
14387     bool result;
14388     VALUE vresult = Qnil;
14389     
14390     if ((argc < 1) || (argc > 1))
14391     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14392     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14393     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierEdge, 1);
14394     result = (bool)(arg1)->is_visible(arg2);
14395     
14396     vresult = result ? Qtrue : Qfalse;
14397     return vresult;
14398 }
14399 
14400 
14401 static VALUE
14402 _wrap_Visualization_is_visible__SWIG_4(int argc, VALUE *argv, VALUE self) {
14403     Visualization *arg1 = (Visualization *) 0 ;
14404     BezierTriangle *arg2 = (BezierTriangle *) 0 ;
14405     bool result;
14406     VALUE vresult = Qnil;
14407     
14408     if ((argc < 1) || (argc > 1))
14409     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14410     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14411     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BezierTriangle, 1);
14412     result = (bool)(arg1)->is_visible(arg2);
14413     
14414     vresult = result ? Qtrue : Qfalse;
14415     return vresult;
14416 }
14417 
14418 
14419 static VALUE _wrap_Visualization_is_visible(int nargs, VALUE *args, VALUE self) {
14420     int argc;
14421     VALUE argv[3];
14422     int ii;
14423     
14424     argc = nargs + 1;
14425     argv[0] = self;
14426     for (ii = 1; (ii < argc) && (ii < 2); ii++) {
14427         argv[ii] = args[ii-1];
14428     }
14429     if (argc == 2) {
14430         int _v;
14431         {
14432             void *ptr;
14433             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14434         }
14435         if (_v) {
14436             {
14437                 void *ptr;
14438                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_Point2D, 0) != -1)) ? 1 : 0;
14439             }
14440             if (_v) {
14441                 return _wrap_Visualization_is_visible__SWIG_0(nargs, args, self);
14442             }
14443         }
14444     }
14445     if (argc == 2) {
14446         int _v;
14447         {
14448             void *ptr;
14449             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14450         }
14451         if (_v) {
14452             {
14453                 void *ptr;
14454                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BoundaryVertex, 0) != -1)) ? 1 : 0;
14455             }
14456             if (_v) {
14457                 return _wrap_Visualization_is_visible__SWIG_1(nargs, args, self);
14458             }
14459         }
14460     }
14461     if (argc == 2) {
14462         int _v;
14463         {
14464             void *ptr;
14465             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14466         }
14467         if (_v) {
14468             {
14469                 void *ptr;
14470                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierVertex, 0) != -1)) ? 1 : 0;
14471             }
14472             if (_v) {
14473                 return _wrap_Visualization_is_visible__SWIG_2(nargs, args, self);
14474             }
14475         }
14476     }
14477     if (argc == 2) {
14478         int _v;
14479         {
14480             void *ptr;
14481             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14482         }
14483         if (_v) {
14484             {
14485                 void *ptr;
14486                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierEdge, 0) != -1)) ? 1 : 0;
14487             }
14488             if (_v) {
14489                 return _wrap_Visualization_is_visible__SWIG_3(nargs, args, self);
14490             }
14491         }
14492     }
14493     if (argc == 2) {
14494         int _v;
14495         {
14496             void *ptr;
14497             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_Visualization, 0) != -1)) ? 1 : 0;
14498         }
14499         if (_v) {
14500             {
14501                 void *ptr;
14502                 _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_BezierTriangle, 0) != -1)) ? 1 : 0;
14503             }
14504             if (_v) {
14505                 return _wrap_Visualization_is_visible__SWIG_4(nargs, args, self);
14506             }
14507         }
14508     }
14509     
14510     rb_raise(rb_eArgError, "No matching function for overloaded 'Visualization_is_visible'");
14511     return Qnil;
14512 }
14513 
14514 
14515 static VALUE
14516 _wrap_Visualization_visual_locate(int argc, VALUE *argv, VALUE self) {
14517     Visualization *arg1 = (Visualization *) 0 ;
14518     Point2D arg2 ;
14519     BezierTuple result;
14520     VALUE vresult = Qnil;
14521     
14522     if ((argc < 1) || (argc > 1))
14523     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14524     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14525     {
14526         Point2D * ptr;
14527         SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_Point2D, 1);
14528         if (ptr) arg2 = *ptr;
14529     }
14530     result = (arg1)->visual_locate(arg2);
14531     
14532     {
14533         BezierTuple * resultptr;
14534         resultptr = new BezierTuple((BezierTuple &)result);
14535         vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_BezierTuple, 1);
14536     }
14537     return vresult;
14538 }
14539 
14540 
14541 static VALUE
14542 _wrap_Visualization_visual_switch(int argc, VALUE *argv, VALUE self) {
14543     Visualization *arg1 = (Visualization *) 0 ;
14544     int arg2 ;
14545     BezierTuple *arg3 = 0 ;
14546     
14547     if ((argc < 2) || (argc > 2))
14548     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
14549     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Visualization, 1);
14550     arg2 = NUM2INT(argv[0]);
14551     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_BezierTuple, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
14552     (arg1)->visual_switch(arg2,*arg3);
14553     
14554     return Qnil;
14555 }
14556 
14557 
14558 static VALUE
14559 _wrap_Color_v_set(int argc, VALUE *argv, VALUE self) {
14560     Color *arg1 = (Color *) 0 ;
14561     float *arg2 ;
14562     
14563     if ((argc < 1) || (argc > 1))
14564     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14565     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14566     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_float, 1);
14567     {
14568         int ii;
14569         float *b = (float *) arg1->v;
14570         for (ii = 0; ii < 3; ii++) b[ii] = *((float *) arg2 + ii);
14571     }
14572     return Qnil;
14573 }
14574 
14575 
14576 static VALUE
14577 _wrap_Color_v_get(int argc, VALUE *argv, VALUE self) {
14578     Color *arg1 = (Color *) 0 ;
14579     float *result;
14580     VALUE vresult = Qnil;
14581     
14582     if ((argc < 0) || (argc > 0))
14583     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14584     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14585     result = (float *)(float *) ((arg1)->v);
14586     
14587     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_float,0);
14588     return vresult;
14589 }
14590 
14591 
14592 static VALUE
14593 _wrap_new_Color__SWIG_0(int argc, VALUE *argv, VALUE self) {
14594     Color *result;
14595     
14596     if ((argc < 0) || (argc > 0))
14597     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14598     result = (Color *)new Color();
14599     DATA_PTR(self) = result;
14600     return self;
14601 }
14602 
14603 
14604 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
14605 static VALUE
14606 _wrap_Color_allocate(VALUE self) {
14607 #else
14608     static VALUE
14609     _wrap_Color_allocate(int argc, VALUE *argv, VALUE self) {
14610 #endif
14611         
14612         
14613         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Color);
14614 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
14615         rb_obj_call_init(vresult, argc, argv);
14616 #endif
14617         return vresult;
14618     }
14619     
14620 
14621 static VALUE
14622 _wrap_new_Color__SWIG_1(int argc, VALUE *argv, VALUE self) {
14623     float arg1 ;
14624     float arg2 ;
14625     float arg3 ;
14626     Color *result;
14627     
14628     if ((argc < 3) || (argc > 3))
14629     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
14630     arg1 = (float) NUM2DBL(argv[0]);
14631     arg2 = (float) NUM2DBL(argv[1]);
14632     arg3 = (float) NUM2DBL(argv[2]);
14633     result = (Color *)new Color(arg1,arg2,arg3);
14634     DATA_PTR(self) = result;
14635     return self;
14636 }
14637 
14638 
14639 static VALUE _wrap_new_Color(int nargs, VALUE *args, VALUE self) {
14640     int argc;
14641     VALUE argv[3];
14642     int ii;
14643     
14644     argc = nargs;
14645     for (ii = 0; (ii < argc) && (ii < 3); ii++) {
14646         argv[ii] = args[ii];
14647     }
14648     if (argc == 0) {
14649         return _wrap_new_Color__SWIG_0(nargs, args, self);
14650     }
14651     if (argc == 3) {
14652         int _v;
14653         {
14654             _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0;
14655         }
14656         if (_v) {
14657             {
14658                 _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
14659             }
14660             if (_v) {
14661                 {
14662                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
14663                 }
14664                 if (_v) {
14665                     return _wrap_new_Color__SWIG_1(nargs, args, self);
14666                 }
14667             }
14668         }
14669     }
14670     
14671     rb_raise(rb_eArgError, "No matching function for overloaded 'new_Color'");
14672     return Qnil;
14673 }
14674 
14675 
14676 static VALUE
14677 _wrap_Color_assign(int argc, VALUE *argv, VALUE self) {
14678     Color *arg1 = (Color *) 0 ;
14679     float arg2 ;
14680     float arg3 ;
14681     float arg4 ;
14682     
14683     if ((argc < 3) || (argc > 3))
14684     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
14685     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14686     arg2 = (float) NUM2DBL(argv[0]);
14687     arg3 = (float) NUM2DBL(argv[1]);
14688     arg4 = (float) NUM2DBL(argv[2]);
14689     (arg1)->assign(arg2,arg3,arg4);
14690     
14691     return Qnil;
14692 }
14693 
14694 
14695 static VALUE
14696 _wrap_Color_R(int argc, VALUE *argv, VALUE self) {
14697     Color *arg1 = (Color *) 0 ;
14698     float result;
14699     VALUE vresult = Qnil;
14700     
14701     if ((argc < 0) || (argc > 0))
14702     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14703     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14704     result = (float)((Color const *)arg1)->R();
14705     
14706     vresult = rb_float_new(result);
14707     return vresult;
14708 }
14709 
14710 
14711 static VALUE
14712 _wrap_Color_G(int argc, VALUE *argv, VALUE self) {
14713     Color *arg1 = (Color *) 0 ;
14714     float result;
14715     VALUE vresult = Qnil;
14716     
14717     if ((argc < 0) || (argc > 0))
14718     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14719     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14720     result = (float)((Color const *)arg1)->G();
14721     
14722     vresult = rb_float_new(result);
14723     return vresult;
14724 }
14725 
14726 
14727 static VALUE
14728 _wrap_Color_B(int argc, VALUE *argv, VALUE self) {
14729     Color *arg1 = (Color *) 0 ;
14730     float result;
14731     VALUE vresult = Qnil;
14732     
14733     if ((argc < 0) || (argc > 0))
14734     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14735     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14736     result = (float)((Color const *)arg1)->B();
14737     
14738     vresult = rb_float_new(result);
14739     return vresult;
14740 }
14741 
14742 
14743 static VALUE
14744 _wrap_Color_is_valid(int argc, VALUE *argv, VALUE self) {
14745     Color *arg1 = (Color *) 0 ;
14746     bool result;
14747     VALUE vresult = Qnil;
14748     
14749     if ((argc < 0) || (argc > 0))
14750     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14751     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Color, 1);
14752     result = (bool)((Color const *)arg1)->is_valid();
14753     
14754     vresult = result ? Qtrue : Qfalse;
14755     return vresult;
14756 }
14757 
14758 
14759 static void
14760 free_Color(Color *arg1) {
14761     delete arg1;
14762 }
14763 static VALUE
14764 _wrap_default_opengl_color_map(int argc, VALUE *argv, VALUE self) {
14765     ColorMap *arg1 = 0 ;
14766     
14767     if ((argc < 1) || (argc > 1))
14768     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14769     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_ColorMap, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
14770     default_opengl_color_map(*arg1);
14771     
14772     return Qnil;
14773 }
14774 
14775 
14776 static VALUE
14777 _wrap_default_eps_rgb_map(int argc, VALUE *argv, VALUE self) {
14778     ColorMap *arg1 = 0 ;
14779     
14780     if ((argc < 1) || (argc > 1))
14781     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14782     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_ColorMap, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
14783     default_eps_rgb_map(*arg1);
14784     
14785     return Qnil;
14786 }
14787 
14788 
14789 static VALUE
14790 _wrap_default_eps_grayscale_map(int argc, VALUE *argv, VALUE self) {
14791     GrayscaleMap *arg1 = 0 ;
14792     
14793     if ((argc < 1) || (argc > 1))
14794     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14795     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_GrayscaleMap, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
14796     default_eps_grayscale_map(*arg1);
14797     
14798     return Qnil;
14799 }
14800 
14801 
14802 static VALUE
14803 _wrap_load_map__SWIG_0(int argc, VALUE *argv, VALUE self) {
14804     ColorMap *arg1 = 0 ;
14805     int result;
14806     VALUE vresult = Qnil;
14807     
14808     if ((argc < 1) || (argc > 1))
14809     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14810     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_ColorMap, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
14811     result = (int)load_map(*arg1);
14812     
14813     vresult = INT2NUM(result);
14814     return vresult;
14815 }
14816 
14817 
14818 static VALUE
14819 _wrap_load_map__SWIG_1(int argc, VALUE *argv, VALUE self) {
14820     GrayscaleMap *arg1 = 0 ;
14821     int result;
14822     VALUE vresult = Qnil;
14823     
14824     if ((argc < 1) || (argc > 1))
14825     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14826     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_GrayscaleMap, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
14827     result = (int)load_map(*arg1);
14828     
14829     vresult = INT2NUM(result);
14830     return vresult;
14831 }
14832 
14833 
14834 static VALUE _wrap_load_map(int nargs, VALUE *args, VALUE self) {
14835     int argc;
14836     VALUE argv[1];
14837     int ii;
14838     
14839     argc = nargs;
14840     for (ii = 0; (ii < argc) && (ii < 1); ii++) {
14841         argv[ii] = args[ii];
14842     }
14843     if (argc == 1) {
14844         int _v;
14845         {
14846             void *ptr;
14847             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_ColorMap, 0) != -1)) ? 1 : 0;
14848         }
14849         if (_v) {
14850             return _wrap_load_map__SWIG_0(nargs, args, self);
14851         }
14852     }
14853     if (argc == 1) {
14854         int _v;
14855         {
14856             void *ptr;
14857             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_GrayscaleMap, 0) != -1)) ? 1 : 0;
14858         }
14859         if (_v) {
14860             return _wrap_load_map__SWIG_1(nargs, args, self);
14861         }
14862     }
14863     
14864     rb_raise(rb_eArgError, "No matching function for overloaded 'load_map'");
14865     return Qnil;
14866 }
14867 
14868 
14869 static VALUE
14870 _wrap_PSCoord_x_set(int argc, VALUE *argv, VALUE self) {
14871     PSCoord *arg1 = (PSCoord *) 0 ;
14872     unsigned int arg2 ;
14873     
14874     if ((argc < 1) || (argc > 1))
14875     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14876     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSCoord, 1);
14877     arg2 = NUM2UINT(argv[0]);
14878     if (arg1) (arg1)->x = arg2;
14879     
14880     return Qnil;
14881 }
14882 
14883 
14884 static VALUE
14885 _wrap_PSCoord_x_get(int argc, VALUE *argv, VALUE self) {
14886     PSCoord *arg1 = (PSCoord *) 0 ;
14887     unsigned int result;
14888     VALUE vresult = Qnil;
14889     
14890     if ((argc < 0) || (argc > 0))
14891     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14892     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSCoord, 1);
14893     result = (unsigned int) ((arg1)->x);
14894     
14895     vresult = UINT2NUM(result);
14896     return vresult;
14897 }
14898 
14899 
14900 static VALUE
14901 _wrap_PSCoord_y_set(int argc, VALUE *argv, VALUE self) {
14902     PSCoord *arg1 = (PSCoord *) 0 ;
14903     unsigned int arg2 ;
14904     
14905     if ((argc < 1) || (argc > 1))
14906     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14907     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSCoord, 1);
14908     arg2 = NUM2UINT(argv[0]);
14909     if (arg1) (arg1)->y = arg2;
14910     
14911     return Qnil;
14912 }
14913 
14914 
14915 static VALUE
14916 _wrap_PSCoord_y_get(int argc, VALUE *argv, VALUE self) {
14917     PSCoord *arg1 = (PSCoord *) 0 ;
14918     unsigned int result;
14919     VALUE vresult = Qnil;
14920     
14921     if ((argc < 0) || (argc > 0))
14922     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14923     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSCoord, 1);
14924     result = (unsigned int) ((arg1)->y);
14925     
14926     vresult = UINT2NUM(result);
14927     return vresult;
14928 }
14929 
14930 
14931 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
14932 static VALUE
14933 _wrap_PSCoord_allocate(VALUE self) {
14934 #else
14935     static VALUE
14936     _wrap_PSCoord_allocate(int argc, VALUE *argv, VALUE self) {
14937 #endif
14938         
14939         
14940         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_PSCoord);
14941 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
14942         rb_obj_call_init(vresult, argc, argv);
14943 #endif
14944         return vresult;
14945     }
14946     
14947 
14948 static VALUE
14949 _wrap_new_PSCoord(int argc, VALUE *argv, VALUE self) {
14950     PSCoord *result;
14951     
14952     if ((argc < 0) || (argc > 0))
14953     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14954     result = (PSCoord *)new PSCoord();
14955     DATA_PTR(self) = result;
14956     return self;
14957 }
14958 
14959 
14960 static void
14961 free_PSCoord(PSCoord *arg1) {
14962     delete arg1;
14963 }
14964 static VALUE
14965 _wrap_PSDrawMode_mode_set(int argc, VALUE *argv, VALUE self) {
14966     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
14967     int arg2 ;
14968     
14969     if ((argc < 1) || (argc > 1))
14970     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
14971     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
14972     arg2 = NUM2INT(argv[0]);
14973     if (arg1) (arg1)->mode = arg2;
14974     
14975     return Qnil;
14976 }
14977 
14978 
14979 static VALUE
14980 _wrap_PSDrawMode_mode_get(int argc, VALUE *argv, VALUE self) {
14981     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
14982     int result;
14983     VALUE vresult = Qnil;
14984     
14985     if ((argc < 0) || (argc > 0))
14986     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
14987     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
14988     result = (int) ((arg1)->mode);
14989     
14990     vresult = INT2NUM(result);
14991     return vresult;
14992 }
14993 
14994 
14995 static VALUE
14996 _wrap_PSDrawMode_linewidth_set(int argc, VALUE *argv, VALUE self) {
14997     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
14998     unsigned int arg2 ;
14999     
15000     if ((argc < 1) || (argc > 1))
15001     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15002     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
15003     arg2 = NUM2UINT(argv[0]);
15004     if (arg1) (arg1)->linewidth = arg2;
15005     
15006     return Qnil;
15007 }
15008 
15009 
15010 static VALUE
15011 _wrap_PSDrawMode_linewidth_get(int argc, VALUE *argv, VALUE self) {
15012     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
15013     unsigned int result;
15014     VALUE vresult = Qnil;
15015     
15016     if ((argc < 0) || (argc > 0))
15017     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15018     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
15019     result = (unsigned int) ((arg1)->linewidth);
15020     
15021     vresult = UINT2NUM(result);
15022     return vresult;
15023 }
15024 
15025 
15026 static VALUE
15027 _wrap_PSDrawMode_grayscale_set(int argc, VALUE *argv, VALUE self) {
15028     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
15029     float arg2 ;
15030     
15031     if ((argc < 1) || (argc > 1))
15032     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15033     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
15034     arg2 = (float) NUM2DBL(argv[0]);
15035     if (arg1) (arg1)->grayscale = arg2;
15036     
15037     return Qnil;
15038 }
15039 
15040 
15041 static VALUE
15042 _wrap_PSDrawMode_grayscale_get(int argc, VALUE *argv, VALUE self) {
15043     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
15044     float result;
15045     VALUE vresult = Qnil;
15046     
15047     if ((argc < 0) || (argc > 0))
15048     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15049     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
15050     result = (float) ((arg1)->grayscale);
15051     
15052     vresult = rb_float_new(result);
15053     return vresult;
15054 }
15055 
15056 
15057 static VALUE
15058 _wrap_PSDrawMode_rgbcolor_set(int argc, VALUE *argv, VALUE self) {
15059     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
15060     Color *arg2 = (Color *) 0 ;
15061     
15062     if ((argc < 1) || (argc > 1))
15063     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15064     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
15065     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Color, 1);
15066     if (arg1) (arg1)->rgbcolor = *arg2;
15067     
15068     return Qnil;
15069 }
15070 
15071 
15072 static VALUE
15073 _wrap_PSDrawMode_rgbcolor_get(int argc, VALUE *argv, VALUE self) {
15074     PSDrawMode *arg1 = (PSDrawMode *) 0 ;
15075     Color *result;
15076     VALUE vresult = Qnil;
15077     
15078     if ((argc < 0) || (argc > 0))
15079     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15080     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_PSDrawMode, 1);
15081     result = (Color *)& ((arg1)->rgbcolor);
15082     
15083     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Color,0);
15084     return vresult;
15085 }
15086 
15087 
15088 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
15089 static VALUE
15090 _wrap_PSDrawMode_allocate(VALUE self) {
15091 #else
15092     static VALUE
15093     _wrap_PSDrawMode_allocate(int argc, VALUE *argv, VALUE self) {
15094 #endif
15095         
15096         
15097         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_PSDrawMode);
15098 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
15099         rb_obj_call_init(vresult, argc, argv);
15100 #endif
15101         return vresult;
15102     }
15103     
15104 
15105 static VALUE
15106 _wrap_new_PSDrawMode(int argc, VALUE *argv, VALUE self) {
15107     PSDrawMode *result;
15108     
15109     if ((argc < 0) || (argc > 0))
15110     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15111     result = (PSDrawMode *)new PSDrawMode();
15112     DATA_PTR(self) = result;
15113     return self;
15114 }
15115 
15116 
15117 static void
15118 free_PSDrawMode(PSDrawMode *arg1) {
15119     delete arg1;
15120 }
15121 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
15122 static VALUE
15123 _wrap_EPSWrite_allocate(VALUE self) {
15124 #else
15125     static VALUE
15126     _wrap_EPSWrite_allocate(int argc, VALUE *argv, VALUE self) {
15127 #endif
15128         
15129         
15130         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_EPSWrite);
15131 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
15132         rb_obj_call_init(vresult, argc, argv);
15133 #endif
15134         return vresult;
15135     }
15136     
15137 
15138 static VALUE
15139 _wrap_new_EPSWrite(int argc, VALUE *argv, VALUE self) {
15140     BezierMesh *arg1 = (BezierMesh *) 0 ;
15141     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
15142     EPSWrite *result;
15143     
15144     if ((argc < 2) || (argc > 2))
15145     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15146     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
15147     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
15148     result = (EPSWrite *)new EPSWrite(arg1,arg2);
15149     DATA_PTR(self) = result;
15150     return self;
15151 }
15152 
15153 
15154 static VALUE
15155 _wrap_EPSWrite_load_rgb_map(int argc, VALUE *argv, VALUE self) {
15156     EPSWrite *arg1 = (EPSWrite *) 0 ;
15157     char *arg2 ;
15158     int result;
15159     VALUE vresult = Qnil;
15160     
15161     if ((argc < 1) || (argc > 1))
15162     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15163     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15164     arg2 = StringValuePtr(argv[0]);
15165     result = (int)(arg1)->load_rgb_map(arg2);
15166     
15167     vresult = INT2NUM(result);
15168     return vresult;
15169 }
15170 
15171 
15172 static VALUE
15173 _wrap_EPSWrite_load_grayscale_map(int argc, VALUE *argv, VALUE self) {
15174     EPSWrite *arg1 = (EPSWrite *) 0 ;
15175     char *arg2 ;
15176     int result;
15177     VALUE vresult = Qnil;
15178     
15179     if ((argc < 1) || (argc > 1))
15180     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15181     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15182     arg2 = StringValuePtr(argv[0]);
15183     result = (int)(arg1)->load_grayscale_map(arg2);
15184     
15185     vresult = INT2NUM(result);
15186     return vresult;
15187 }
15188 
15189 
15190 static VALUE
15191 _wrap_EPSWrite_map_rgbcolor(int argc, VALUE *argv, VALUE self) {
15192     EPSWrite *arg1 = (EPSWrite *) 0 ;
15193     int arg2 ;
15194     Color *arg3 = 0 ;
15195     int result;
15196     VALUE vresult = Qnil;
15197     
15198     if ((argc < 2) || (argc > 2))
15199     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15200     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15201     arg2 = NUM2INT(argv[0]);
15202     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
15203     result = (int)(arg1)->map_rgbcolor(arg2,(Color const &)*arg3);
15204     
15205     vresult = INT2NUM(result);
15206     return vresult;
15207 }
15208 
15209 
15210 static VALUE
15211 _wrap_EPSWrite_map_grayscale(int argc, VALUE *argv, VALUE self) {
15212     EPSWrite *arg1 = (EPSWrite *) 0 ;
15213     int arg2 ;
15214     float arg3 ;
15215     int result;
15216     VALUE vresult = Qnil;
15217     
15218     if ((argc < 2) || (argc > 2))
15219     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15220     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15221     arg2 = NUM2INT(argv[0]);
15222     arg3 = (float) NUM2DBL(argv[1]);
15223     result = (int)(arg1)->map_grayscale(arg2,arg3);
15224     
15225     vresult = INT2NUM(result);
15226     return vresult;
15227 }
15228 
15229 
15230 static VALUE
15231 _wrap_EPSWrite_set_border_draw(int argc, VALUE *argv, VALUE self) {
15232     EPSWrite *arg1 = (EPSWrite *) 0 ;
15233     int arg2 ;
15234     int result;
15235     VALUE vresult = Qnil;
15236     
15237     if ((argc < 1) || (argc > 1))
15238     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15239     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15240     arg2 = NUM2INT(argv[0]);
15241     result = (int)(arg1)->set_border_draw(arg2);
15242     
15243     vresult = INT2NUM(result);
15244     return vresult;
15245 }
15246 
15247 
15248 static VALUE
15249 _wrap_EPSWrite_set_border_ink__SWIG_0(int argc, VALUE *argv, VALUE self) {
15250     EPSWrite *arg1 = (EPSWrite *) 0 ;
15251     unsigned int arg2 ;
15252     float arg3 ;
15253     int result;
15254     VALUE vresult = Qnil;
15255     
15256     if ((argc < 2) || (argc > 2))
15257     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15258     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15259     arg2 = NUM2UINT(argv[0]);
15260     arg3 = (float) NUM2DBL(argv[1]);
15261     result = (int)(arg1)->set_border_ink(arg2,arg3);
15262     
15263     vresult = INT2NUM(result);
15264     return vresult;
15265 }
15266 
15267 
15268 static VALUE
15269 _wrap_EPSWrite_set_border_ink__SWIG_1(int argc, VALUE *argv, VALUE self) {
15270     EPSWrite *arg1 = (EPSWrite *) 0 ;
15271     unsigned int arg2 ;
15272     Color *arg3 = 0 ;
15273     int result;
15274     VALUE vresult = Qnil;
15275     
15276     if ((argc < 2) || (argc > 2))
15277     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15278     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15279     arg2 = NUM2UINT(argv[0]);
15280     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
15281     result = (int)(arg1)->set_border_ink(arg2,(Color const &)*arg3);
15282     
15283     vresult = INT2NUM(result);
15284     return vresult;
15285 }
15286 
15287 
15288 static VALUE _wrap_EPSWrite_set_border_ink(int nargs, VALUE *args, VALUE self) {
15289     int argc;
15290     VALUE argv[4];
15291     int ii;
15292     
15293     argc = nargs + 1;
15294     argv[0] = self;
15295     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
15296         argv[ii] = args[ii-1];
15297     }
15298     if (argc == 3) {
15299         int _v;
15300         {
15301             void *ptr;
15302             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EPSWrite, 0) != -1)) ? 1 : 0;
15303         }
15304         if (_v) {
15305             {
15306                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
15307             }
15308             if (_v) {
15309                 {
15310                     void *ptr;
15311                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
15312                 }
15313                 if (_v) {
15314                     return _wrap_EPSWrite_set_border_ink__SWIG_1(nargs, args, self);
15315                 }
15316             }
15317         }
15318     }
15319     if (argc == 3) {
15320         int _v;
15321         {
15322             void *ptr;
15323             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EPSWrite, 0) != -1)) ? 1 : 0;
15324         }
15325         if (_v) {
15326             {
15327                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
15328             }
15329             if (_v) {
15330                 {
15331                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
15332                 }
15333                 if (_v) {
15334                     return _wrap_EPSWrite_set_border_ink__SWIG_0(nargs, args, self);
15335                 }
15336             }
15337         }
15338     }
15339     
15340     rb_raise(rb_eArgError, "No matching function for overloaded 'EPSWrite_set_border_ink'");
15341     return Qnil;
15342 }
15343 
15344 
15345 static VALUE
15346 _wrap_EPSWrite_set_edge_draw(int argc, VALUE *argv, VALUE self) {
15347     EPSWrite *arg1 = (EPSWrite *) 0 ;
15348     int arg2 ;
15349     int result;
15350     VALUE vresult = Qnil;
15351     
15352     if ((argc < 1) || (argc > 1))
15353     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15354     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15355     arg2 = NUM2INT(argv[0]);
15356     result = (int)(arg1)->set_edge_draw(arg2);
15357     
15358     vresult = INT2NUM(result);
15359     return vresult;
15360 }
15361 
15362 
15363 static VALUE
15364 _wrap_EPSWrite_set_edge_ink__SWIG_0(int argc, VALUE *argv, VALUE self) {
15365     EPSWrite *arg1 = (EPSWrite *) 0 ;
15366     unsigned int arg2 ;
15367     float arg3 ;
15368     int result;
15369     VALUE vresult = Qnil;
15370     
15371     if ((argc < 2) || (argc > 2))
15372     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15373     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15374     arg2 = NUM2UINT(argv[0]);
15375     arg3 = (float) NUM2DBL(argv[1]);
15376     result = (int)(arg1)->set_edge_ink(arg2,arg3);
15377     
15378     vresult = INT2NUM(result);
15379     return vresult;
15380 }
15381 
15382 
15383 static VALUE
15384 _wrap_EPSWrite_set_edge_ink__SWIG_1(int argc, VALUE *argv, VALUE self) {
15385     EPSWrite *arg1 = (EPSWrite *) 0 ;
15386     unsigned int arg2 ;
15387     Color *arg3 = 0 ;
15388     int result;
15389     VALUE vresult = Qnil;
15390     
15391     if ((argc < 2) || (argc > 2))
15392     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15393     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15394     arg2 = NUM2UINT(argv[0]);
15395     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
15396     result = (int)(arg1)->set_edge_ink(arg2,(Color const &)*arg3);
15397     
15398     vresult = INT2NUM(result);
15399     return vresult;
15400 }
15401 
15402 
15403 static VALUE _wrap_EPSWrite_set_edge_ink(int nargs, VALUE *args, VALUE self) {
15404     int argc;
15405     VALUE argv[4];
15406     int ii;
15407     
15408     argc = nargs + 1;
15409     argv[0] = self;
15410     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
15411         argv[ii] = args[ii-1];
15412     }
15413     if (argc == 3) {
15414         int _v;
15415         {
15416             void *ptr;
15417             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EPSWrite, 0) != -1)) ? 1 : 0;
15418         }
15419         if (_v) {
15420             {
15421                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
15422             }
15423             if (_v) {
15424                 {
15425                     void *ptr;
15426                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
15427                 }
15428                 if (_v) {
15429                     return _wrap_EPSWrite_set_edge_ink__SWIG_1(nargs, args, self);
15430                 }
15431             }
15432         }
15433     }
15434     if (argc == 3) {
15435         int _v;
15436         {
15437             void *ptr;
15438             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EPSWrite, 0) != -1)) ? 1 : 0;
15439         }
15440         if (_v) {
15441             {
15442                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
15443             }
15444             if (_v) {
15445                 {
15446                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
15447                 }
15448                 if (_v) {
15449                     return _wrap_EPSWrite_set_edge_ink__SWIG_0(nargs, args, self);
15450                 }
15451             }
15452         }
15453     }
15454     
15455     rb_raise(rb_eArgError, "No matching function for overloaded 'EPSWrite_set_edge_ink'");
15456     return Qnil;
15457 }
15458 
15459 
15460 static VALUE
15461 _wrap_EPSWrite_set_bdry_draw(int argc, VALUE *argv, VALUE self) {
15462     EPSWrite *arg1 = (EPSWrite *) 0 ;
15463     int arg2 ;
15464     int result;
15465     VALUE vresult = Qnil;
15466     
15467     if ((argc < 1) || (argc > 1))
15468     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15469     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15470     arg2 = NUM2INT(argv[0]);
15471     result = (int)(arg1)->set_bdry_draw(arg2);
15472     
15473     vresult = INT2NUM(result);
15474     return vresult;
15475 }
15476 
15477 
15478 static VALUE
15479 _wrap_EPSWrite_set_bdry_ink__SWIG_0(int argc, VALUE *argv, VALUE self) {
15480     EPSWrite *arg1 = (EPSWrite *) 0 ;
15481     unsigned int arg2 ;
15482     float arg3 ;
15483     int result;
15484     VALUE vresult = Qnil;
15485     
15486     if ((argc < 2) || (argc > 2))
15487     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15488     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15489     arg2 = NUM2UINT(argv[0]);
15490     arg3 = (float) NUM2DBL(argv[1]);
15491     result = (int)(arg1)->set_bdry_ink(arg2,arg3);
15492     
15493     vresult = INT2NUM(result);
15494     return vresult;
15495 }
15496 
15497 
15498 static VALUE
15499 _wrap_EPSWrite_set_bdry_ink__SWIG_1(int argc, VALUE *argv, VALUE self) {
15500     EPSWrite *arg1 = (EPSWrite *) 0 ;
15501     unsigned int arg2 ;
15502     Color *arg3 = 0 ;
15503     int result;
15504     VALUE vresult = Qnil;
15505     
15506     if ((argc < 2) || (argc > 2))
15507     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15508     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15509     arg2 = NUM2UINT(argv[0]);
15510     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Color, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
15511     result = (int)(arg1)->set_bdry_ink(arg2,(Color const &)*arg3);
15512     
15513     vresult = INT2NUM(result);
15514     return vresult;
15515 }
15516 
15517 
15518 static VALUE _wrap_EPSWrite_set_bdry_ink(int nargs, VALUE *args, VALUE self) {
15519     int argc;
15520     VALUE argv[4];
15521     int ii;
15522     
15523     argc = nargs + 1;
15524     argv[0] = self;
15525     for (ii = 1; (ii < argc) && (ii < 3); ii++) {
15526         argv[ii] = args[ii-1];
15527     }
15528     if (argc == 3) {
15529         int _v;
15530         {
15531             void *ptr;
15532             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EPSWrite, 0) != -1)) ? 1 : 0;
15533         }
15534         if (_v) {
15535             {
15536                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
15537             }
15538             if (_v) {
15539                 {
15540                     void *ptr;
15541                     _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_Color, 0) != -1)) ? 1 : 0;
15542                 }
15543                 if (_v) {
15544                     return _wrap_EPSWrite_set_bdry_ink__SWIG_1(nargs, args, self);
15545                 }
15546             }
15547         }
15548     }
15549     if (argc == 3) {
15550         int _v;
15551         {
15552             void *ptr;
15553             _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_EPSWrite, 0) != -1)) ? 1 : 0;
15554         }
15555         if (_v) {
15556             {
15557                 _v = ((TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0;
15558             }
15559             if (_v) {
15560                 {
15561                     _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0;
15562                 }
15563                 if (_v) {
15564                     return _wrap_EPSWrite_set_bdry_ink__SWIG_0(nargs, args, self);
15565                 }
15566             }
15567         }
15568     }
15569     
15570     rb_raise(rb_eArgError, "No matching function for overloaded 'EPSWrite_set_bdry_ink'");
15571     return Qnil;
15572 }
15573 
15574 
15575 static VALUE
15576 _wrap_EPSWrite_set_face_draw(int argc, VALUE *argv, VALUE self) {
15577     EPSWrite *arg1 = (EPSWrite *) 0 ;
15578     int arg2 ;
15579     int result;
15580     VALUE vresult = Qnil;
15581     
15582     if ((argc < 1) || (argc > 1))
15583     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15584     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15585     arg2 = NUM2INT(argv[0]);
15586     result = (int)(arg1)->set_face_draw(arg2);
15587     
15588     vresult = INT2NUM(result);
15589     return vresult;
15590 }
15591 
15592 
15593 static VALUE
15594 _wrap_EPSWrite_set_page_dim(int argc, VALUE *argv, VALUE self) {
15595     EPSWrite *arg1 = (EPSWrite *) 0 ;
15596     unsigned int arg2 ;
15597     unsigned int arg3 ;
15598     unsigned int arg4 ;
15599     unsigned int arg5 ;
15600     unsigned int arg6 ;
15601     int result;
15602     VALUE vresult = Qnil;
15603     
15604     if ((argc < 5) || (argc > 5))
15605     rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
15606     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15607     arg2 = NUM2UINT(argv[0]);
15608     arg3 = NUM2UINT(argv[1]);
15609     arg4 = NUM2UINT(argv[2]);
15610     arg5 = NUM2UINT(argv[3]);
15611     arg6 = NUM2UINT(argv[4]);
15612     result = (int)(arg1)->set_page_dim(arg2,arg3,arg4,arg5,arg6);
15613     
15614     vresult = INT2NUM(result);
15615     return vresult;
15616 }
15617 
15618 
15619 static VALUE
15620 _wrap_EPSWrite_set_page_dim_inch(int argc, VALUE *argv, VALUE self) {
15621     EPSWrite *arg1 = (EPSWrite *) 0 ;
15622     float arg2 ;
15623     float arg3 ;
15624     float arg4 ;
15625     float arg5 ;
15626     float arg6 ;
15627     int result;
15628     VALUE vresult = Qnil;
15629     
15630     if ((argc < 5) || (argc > 5))
15631     rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
15632     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15633     arg2 = (float) NUM2DBL(argv[0]);
15634     arg3 = (float) NUM2DBL(argv[1]);
15635     arg4 = (float) NUM2DBL(argv[2]);
15636     arg5 = (float) NUM2DBL(argv[3]);
15637     arg6 = (float) NUM2DBL(argv[4]);
15638     result = (int)(arg1)->set_page_dim_inch(arg2,arg3,arg4,arg5,arg6);
15639     
15640     vresult = INT2NUM(result);
15641     return vresult;
15642 }
15643 
15644 
15645 static VALUE
15646 _wrap_EPSWrite_set_world_view(int argc, VALUE *argv, VALUE self) {
15647     EPSWrite *arg1 = (EPSWrite *) 0 ;
15648     Point2D *arg2 = 0 ;
15649     Point2D *arg3 = 0 ;
15650     int result;
15651     VALUE vresult = Qnil;
15652     
15653     if ((argc < 2) || (argc > 2))
15654     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15655     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15656     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
15657     SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_Point2D, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
15658     result = (int)(arg1)->set_world_view((Point2D const &)*arg2,(Point2D const &)*arg3);
15659     
15660     vresult = INT2NUM(result);
15661     return vresult;
15662 }
15663 
15664 
15665 static VALUE
15666 _wrap_EPSWrite_write(int argc, VALUE *argv, VALUE self) {
15667     EPSWrite *arg1 = (EPSWrite *) 0 ;
15668     char *arg2 ;
15669     int result;
15670     VALUE vresult = Qnil;
15671     
15672     if ((argc < 1) || (argc > 1))
15673     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15674     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_EPSWrite, 1);
15675     arg2 = StringValuePtr(argv[0]);
15676     result = (int)(arg1)->write(arg2);
15677     
15678     vresult = INT2NUM(result);
15679     return vresult;
15680 }
15681 
15682 
15683 static void
15684 free_EPSWrite(EPSWrite *arg1) {
15685     delete arg1;
15686 }
15687 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
15688 static VALUE
15689 _wrap_MeshConstructor_allocate(VALUE self) {
15690 #else
15691     static VALUE
15692     _wrap_MeshConstructor_allocate(int argc, VALUE *argv, VALUE self) {
15693 #endif
15694         
15695         
15696         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_MeshConstructor);
15697 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
15698         rb_obj_call_init(vresult, argc, argv);
15699 #endif
15700         return vresult;
15701     }
15702     
15703 
15704 static VALUE
15705 _wrap_new_MeshConstructor(int argc, VALUE *argv, VALUE self) {
15706     BezierMesh *arg1 = (BezierMesh *) 0 ;
15707     BoundaryMesh *arg2 = (BoundaryMesh *) 0 ;
15708     MeshConstructor *result;
15709     
15710     if ((argc < 2) || (argc > 2))
15711     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
15712     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_BezierMesh, 1);
15713     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_BoundaryMesh, 1);
15714     result = (MeshConstructor *)new MeshConstructor(arg1,arg2);
15715     DATA_PTR(self) = result;
15716     return self;
15717 }
15718 
15719 
15720 static VALUE
15721 _wrap_MeshConstructor_make_simulation(int argc, VALUE *argv, VALUE self) {
15722     MeshConstructor *arg1 = (MeshConstructor *) 0 ;
15723     Simulation *result;
15724     VALUE vresult = Qnil;
15725     
15726     if ((argc < 0) || (argc > 0))
15727     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15728     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_MeshConstructor, 1);
15729     result = (Simulation *)(arg1)->make_simulation();
15730     
15731     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Simulation,0);
15732     return vresult;
15733 }
15734 
15735 
15736 static void
15737 free_MeshConstructor(MeshConstructor *arg1) {
15738     delete arg1;
15739 }
15740 static VALUE
15741 _wrap_Pump_outer_edges_set(int argc, VALUE *argv, VALUE self) {
15742     Pump *arg1 = (Pump *) 0 ;
15743     vector<BoundaryEdge * > *arg2 = (vector<BoundaryEdge * > *) 0 ;
15744     
15745     if ((argc < 1) || (argc > 1))
15746     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15747     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15748     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1);
15749     if (arg1) (arg1)->outer_edges = *arg2;
15750     
15751     return Qnil;
15752 }
15753 
15754 
15755 static VALUE
15756 _wrap_Pump_outer_edges_get(int argc, VALUE *argv, VALUE self) {
15757     Pump *arg1 = (Pump *) 0 ;
15758     vector<BoundaryEdge * > *result;
15759     VALUE vresult = Qnil;
15760     
15761     if ((argc < 0) || (argc > 0))
15762     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15763     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15764     result = (vector<BoundaryEdge * > *)& ((arg1)->outer_edges);
15765     
15766     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryEdge_p_t,0);
15767     return vresult;
15768 }
15769 
15770 
15771 static VALUE
15772 _wrap_Pump_propeller_edges_set(int argc, VALUE *argv, VALUE self) {
15773     Pump *arg1 = (Pump *) 0 ;
15774     vector<BoundaryEdge * > *arg2 = (vector<BoundaryEdge * > *) 0 ;
15775     
15776     if ((argc < 1) || (argc > 1))
15777     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15778     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15779     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1);
15780     if (arg1) (arg1)->propeller_edges = *arg2;
15781     
15782     return Qnil;
15783 }
15784 
15785 
15786 static VALUE
15787 _wrap_Pump_propeller_edges_get(int argc, VALUE *argv, VALUE self) {
15788     Pump *arg1 = (Pump *) 0 ;
15789     vector<BoundaryEdge * > *result;
15790     VALUE vresult = Qnil;
15791     
15792     if ((argc < 0) || (argc > 0))
15793     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15794     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15795     result = (vector<BoundaryEdge * > *)& ((arg1)->propeller_edges);
15796     
15797     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryEdge_p_t,0);
15798     return vresult;
15799 }
15800 
15801 
15802 static VALUE
15803 _wrap_Pump_inlet_edges_set(int argc, VALUE *argv, VALUE self) {
15804     Pump *arg1 = (Pump *) 0 ;
15805     vector<BoundaryEdge * > *arg2 = (vector<BoundaryEdge * > *) 0 ;
15806     
15807     if ((argc < 1) || (argc > 1))
15808     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15809     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15810     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1);
15811     if (arg1) (arg1)->inlet_edges = *arg2;
15812     
15813     return Qnil;
15814 }
15815 
15816 
15817 static VALUE
15818 _wrap_Pump_inlet_edges_get(int argc, VALUE *argv, VALUE self) {
15819     Pump *arg1 = (Pump *) 0 ;
15820     vector<BoundaryEdge * > *result;
15821     VALUE vresult = Qnil;
15822     
15823     if ((argc < 0) || (argc > 0))
15824     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15825     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15826     result = (vector<BoundaryEdge * > *)& ((arg1)->inlet_edges);
15827     
15828     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryEdge_p_t,0);
15829     return vresult;
15830 }
15831 
15832 
15833 static VALUE
15834 _wrap_Pump_outlet_edge_set(int argc, VALUE *argv, VALUE self) {
15835     Pump *arg1 = (Pump *) 0 ;
15836     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
15837     
15838     if ((argc < 1) || (argc > 1))
15839     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15840     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15841     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
15842     if (arg1) (arg1)->outlet_edge = arg2;
15843     
15844     return Qnil;
15845 }
15846 
15847 
15848 static VALUE
15849 _wrap_Pump_outlet_edge_get(int argc, VALUE *argv, VALUE self) {
15850     Pump *arg1 = (Pump *) 0 ;
15851     BoundaryEdge *result;
15852     VALUE vresult = Qnil;
15853     
15854     if ((argc < 0) || (argc > 0))
15855     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15856     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15857     result = (BoundaryEdge *) ((arg1)->outlet_edge);
15858     
15859     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
15860     return vresult;
15861 }
15862 
15863 
15864 static VALUE
15865 _wrap_Pump_pump_face_set(int argc, VALUE *argv, VALUE self) {
15866     Pump *arg1 = (Pump *) 0 ;
15867     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
15868     
15869     if ((argc < 1) || (argc > 1))
15870     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15871     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15872     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
15873     if (arg1) (arg1)->pump_face = arg2;
15874     
15875     return Qnil;
15876 }
15877 
15878 
15879 static VALUE
15880 _wrap_Pump_pump_face_get(int argc, VALUE *argv, VALUE self) {
15881     Pump *arg1 = (Pump *) 0 ;
15882     BoundaryFace *result;
15883     VALUE vresult = Qnil;
15884     
15885     if ((argc < 0) || (argc > 0))
15886     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15887     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15888     result = (BoundaryFace *) ((arg1)->pump_face);
15889     
15890     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
15891     return vresult;
15892 }
15893 
15894 
15895 static VALUE
15896 _wrap_Pump_cell_edges_set(int argc, VALUE *argv, VALUE self) {
15897     Pump *arg1 = (Pump *) 0 ;
15898     vector<BoundaryEdge * > *arg2 = (vector<BoundaryEdge * > *) 0 ;
15899     
15900     if ((argc < 1) || (argc > 1))
15901     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15902     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15903     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1);
15904     if (arg1) (arg1)->cell_edges = *arg2;
15905     
15906     return Qnil;
15907 }
15908 
15909 
15910 static VALUE
15911 _wrap_Pump_cell_edges_get(int argc, VALUE *argv, VALUE self) {
15912     Pump *arg1 = (Pump *) 0 ;
15913     vector<BoundaryEdge * > *result;
15914     VALUE vresult = Qnil;
15915     
15916     if ((argc < 0) || (argc > 0))
15917     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15918     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15919     result = (vector<BoundaryEdge * > *)& ((arg1)->cell_edges);
15920     
15921     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryEdge_p_t,0);
15922     return vresult;
15923 }
15924 
15925 
15926 static VALUE
15927 _wrap_Pump_cell_centers_set(int argc, VALUE *argv, VALUE self) {
15928     Pump *arg1 = (Pump *) 0 ;
15929     vector<Point2D > *arg2 = (vector<Point2D > *) 0 ;
15930     
15931     if ((argc < 1) || (argc > 1))
15932     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15933     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15934     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTPoint2D_t, 1);
15935     if (arg1) (arg1)->cell_centers = *arg2;
15936     
15937     return Qnil;
15938 }
15939 
15940 
15941 static VALUE
15942 _wrap_Pump_cell_centers_get(int argc, VALUE *argv, VALUE self) {
15943     Pump *arg1 = (Pump *) 0 ;
15944     vector<Point2D > *result;
15945     VALUE vresult = Qnil;
15946     
15947     if ((argc < 0) || (argc > 0))
15948     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15949     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15950     result = (vector<Point2D > *)& ((arg1)->cell_centers);
15951     
15952     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTPoint2D_t,0);
15953     return vresult;
15954 }
15955 
15956 
15957 static VALUE
15958 _wrap_Pump_cell_faces_set(int argc, VALUE *argv, VALUE self) {
15959     Pump *arg1 = (Pump *) 0 ;
15960     vector<BoundaryFace * > *arg2 = (vector<BoundaryFace * > *) 0 ;
15961     
15962     if ((argc < 1) || (argc > 1))
15963     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15964     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15965     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryFace_p_t, 1);
15966     if (arg1) (arg1)->cell_faces = *arg2;
15967     
15968     return Qnil;
15969 }
15970 
15971 
15972 static VALUE
15973 _wrap_Pump_cell_faces_get(int argc, VALUE *argv, VALUE self) {
15974     Pump *arg1 = (Pump *) 0 ;
15975     vector<BoundaryFace * > *result;
15976     VALUE vresult = Qnil;
15977     
15978     if ((argc < 0) || (argc > 0))
15979     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
15980     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15981     result = (vector<BoundaryFace * > *)& ((arg1)->cell_faces);
15982     
15983     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryFace_p_t,0);
15984     return vresult;
15985 }
15986 
15987 
15988 static VALUE
15989 _wrap_Pump_center_set(int argc, VALUE *argv, VALUE self) {
15990     Pump *arg1 = (Pump *) 0 ;
15991     Point2D *arg2 = (Point2D *) 0 ;
15992     
15993     if ((argc < 1) || (argc > 1))
15994     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
15995     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
15996     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_Point2D, 1);
15997     if (arg1) (arg1)->center = *arg2;
15998     
15999     return Qnil;
16000 }
16001 
16002 
16003 static VALUE
16004 _wrap_Pump_center_get(int argc, VALUE *argv, VALUE self) {
16005     Pump *arg1 = (Pump *) 0 ;
16006     Point2D *result;
16007     VALUE vresult = Qnil;
16008     
16009     if ((argc < 0) || (argc > 0))
16010     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16011     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16012     result = (Point2D *)& ((arg1)->center);
16013     
16014     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_Point2D,0);
16015     return vresult;
16016 }
16017 
16018 
16019 static VALUE
16020 _wrap_Pump_inlet_radius_set(int argc, VALUE *argv, VALUE self) {
16021     Pump *arg1 = (Pump *) 0 ;
16022     Micron arg2 ;
16023     
16024     if ((argc < 1) || (argc > 1))
16025     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16026     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16027     arg2 = (Micron) NUM2DBL(argv[0]);
16028     if (arg1) (arg1)->inlet_radius = arg2;
16029     
16030     return Qnil;
16031 }
16032 
16033 
16034 static VALUE
16035 _wrap_Pump_inlet_radius_get(int argc, VALUE *argv, VALUE self) {
16036     Pump *arg1 = (Pump *) 0 ;
16037     Micron result;
16038     VALUE vresult = Qnil;
16039     
16040     if ((argc < 0) || (argc > 0))
16041     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16042     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16043     result = (Micron) ((arg1)->inlet_radius);
16044     
16045     vresult = rb_float_new(result);
16046     return vresult;
16047 }
16048 
16049 
16050 static VALUE
16051 _wrap_Pump_outer_radius_set(int argc, VALUE *argv, VALUE self) {
16052     Pump *arg1 = (Pump *) 0 ;
16053     Micron arg2 ;
16054     
16055     if ((argc < 1) || (argc > 1))
16056     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16057     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16058     arg2 = (Micron) NUM2DBL(argv[0]);
16059     if (arg1) (arg1)->outer_radius = arg2;
16060     
16061     return Qnil;
16062 }
16063 
16064 
16065 static VALUE
16066 _wrap_Pump_outer_radius_get(int argc, VALUE *argv, VALUE self) {
16067     Pump *arg1 = (Pump *) 0 ;
16068     Micron result;
16069     VALUE vresult = Qnil;
16070     
16071     if ((argc < 0) || (argc > 0))
16072     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16073     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16074     result = (Micron) ((arg1)->outer_radius);
16075     
16076     vresult = rb_float_new(result);
16077     return vresult;
16078 }
16079 
16080 
16081 static VALUE
16082 _wrap_Pump_outlet_width_set(int argc, VALUE *argv, VALUE self) {
16083     Pump *arg1 = (Pump *) 0 ;
16084     Micron arg2 ;
16085     
16086     if ((argc < 1) || (argc > 1))
16087     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16088     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16089     arg2 = (Micron) NUM2DBL(argv[0]);
16090     if (arg1) (arg1)->outlet_width = arg2;
16091     
16092     return Qnil;
16093 }
16094 
16095 
16096 static VALUE
16097 _wrap_Pump_outlet_width_get(int argc, VALUE *argv, VALUE self) {
16098     Pump *arg1 = (Pump *) 0 ;
16099     Micron result;
16100     VALUE vresult = Qnil;
16101     
16102     if ((argc < 0) || (argc > 0))
16103     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16104     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16105     result = (Micron) ((arg1)->outlet_width);
16106     
16107     vresult = rb_float_new(result);
16108     return vresult;
16109 }
16110 
16111 
16112 static VALUE
16113 _wrap_Pump_outlet_length_set(int argc, VALUE *argv, VALUE self) {
16114     Pump *arg1 = (Pump *) 0 ;
16115     Micron arg2 ;
16116     
16117     if ((argc < 1) || (argc > 1))
16118     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16119     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16120     arg2 = (Micron) NUM2DBL(argv[0]);
16121     if (arg1) (arg1)->outlet_length = arg2;
16122     
16123     return Qnil;
16124 }
16125 
16126 
16127 static VALUE
16128 _wrap_Pump_outlet_length_get(int argc, VALUE *argv, VALUE self) {
16129     Pump *arg1 = (Pump *) 0 ;
16130     Micron result;
16131     VALUE vresult = Qnil;
16132     
16133     if ((argc < 0) || (argc > 0))
16134     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16135     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16136     result = (Micron) ((arg1)->outlet_length);
16137     
16138     vresult = rb_float_new(result);
16139     return vresult;
16140 }
16141 
16142 
16143 static VALUE
16144 _wrap_Pump_num_blades_set(int argc, VALUE *argv, VALUE self) {
16145     Pump *arg1 = (Pump *) 0 ;
16146     int arg2 ;
16147     
16148     if ((argc < 1) || (argc > 1))
16149     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16150     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16151     arg2 = NUM2INT(argv[0]);
16152     if (arg1) (arg1)->num_blades = arg2;
16153     
16154     return Qnil;
16155 }
16156 
16157 
16158 static VALUE
16159 _wrap_Pump_num_blades_get(int argc, VALUE *argv, VALUE self) {
16160     Pump *arg1 = (Pump *) 0 ;
16161     int result;
16162     VALUE vresult = Qnil;
16163     
16164     if ((argc < 0) || (argc > 0))
16165     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16166     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16167     result = (int) ((arg1)->num_blades);
16168     
16169     vresult = INT2NUM(result);
16170     return vresult;
16171 }
16172 
16173 
16174 static VALUE
16175 _wrap_Pump_blade_width_set(int argc, VALUE *argv, VALUE self) {
16176     Pump *arg1 = (Pump *) 0 ;
16177     Radians arg2 ;
16178     
16179     if ((argc < 1) || (argc > 1))
16180     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16181     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16182     arg2 = (Radians) NUM2DBL(argv[0]);
16183     if (arg1) (arg1)->blade_width = arg2;
16184     
16185     return Qnil;
16186 }
16187 
16188 
16189 static VALUE
16190 _wrap_Pump_blade_width_get(int argc, VALUE *argv, VALUE self) {
16191     Pump *arg1 = (Pump *) 0 ;
16192     Radians result;
16193     VALUE vresult = Qnil;
16194     
16195     if ((argc < 0) || (argc > 0))
16196     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16197     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16198     result = (Radians) ((arg1)->blade_width);
16199     
16200     vresult = rb_float_new(result);
16201     return vresult;
16202 }
16203 
16204 
16205 static VALUE
16206 _wrap_Pump_blade_gap_set(int argc, VALUE *argv, VALUE self) {
16207     Pump *arg1 = (Pump *) 0 ;
16208     Micron arg2 ;
16209     
16210     if ((argc < 1) || (argc > 1))
16211     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16212     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16213     arg2 = (Micron) NUM2DBL(argv[0]);
16214     if (arg1) (arg1)->blade_gap = arg2;
16215     
16216     return Qnil;
16217 }
16218 
16219 
16220 static VALUE
16221 _wrap_Pump_blade_gap_get(int argc, VALUE *argv, VALUE self) {
16222     Pump *arg1 = (Pump *) 0 ;
16223     Micron result;
16224     VALUE vresult = Qnil;
16225     
16226     if ((argc < 0) || (argc > 0))
16227     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16228     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16229     result = (Micron) ((arg1)->blade_gap);
16230     
16231     vresult = rb_float_new(result);
16232     return vresult;
16233 }
16234 
16235 
16236 static VALUE
16237 _wrap_Pump_velocity_set(int argc, VALUE *argv, VALUE self) {
16238     Pump *arg1 = (Pump *) 0 ;
16239     Radians arg2 ;
16240     
16241     if ((argc < 1) || (argc > 1))
16242     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16243     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16244     arg2 = (Radians) NUM2DBL(argv[0]);
16245     if (arg1) (arg1)->velocity = arg2;
16246     
16247     return Qnil;
16248 }
16249 
16250 
16251 static VALUE
16252 _wrap_Pump_velocity_get(int argc, VALUE *argv, VALUE self) {
16253     Pump *arg1 = (Pump *) 0 ;
16254     Radians result;
16255     VALUE vresult = Qnil;
16256     
16257     if ((argc < 0) || (argc > 0))
16258     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16259     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16260     result = (Radians) ((arg1)->velocity);
16261     
16262     vresult = rb_float_new(result);
16263     return vresult;
16264 }
16265 
16266 
16267 static VALUE
16268 _wrap_Pump_num_cells_set(int argc, VALUE *argv, VALUE self) {
16269     Pump *arg1 = (Pump *) 0 ;
16270     int arg2 ;
16271     
16272     if ((argc < 1) || (argc > 1))
16273     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16274     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16275     arg2 = NUM2INT(argv[0]);
16276     if (arg1) (arg1)->num_cells = arg2;
16277     
16278     return Qnil;
16279 }
16280 
16281 
16282 static VALUE
16283 _wrap_Pump_num_cells_get(int argc, VALUE *argv, VALUE self) {
16284     Pump *arg1 = (Pump *) 0 ;
16285     int result;
16286     VALUE vresult = Qnil;
16287     
16288     if ((argc < 0) || (argc > 0))
16289     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16290     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16291     result = (int) ((arg1)->num_cells);
16292     
16293     vresult = INT2NUM(result);
16294     return vresult;
16295 }
16296 
16297 
16298 static VALUE
16299 _wrap_Pump_cell_type_set(int argc, VALUE *argv, VALUE self) {
16300     Pump *arg1 = (Pump *) 0 ;
16301     int arg2 ;
16302     
16303     if ((argc < 1) || (argc > 1))
16304     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16305     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16306     arg2 = NUM2INT(argv[0]);
16307     if (arg1) (arg1)->cell_type = arg2;
16308     
16309     return Qnil;
16310 }
16311 
16312 
16313 static VALUE
16314 _wrap_Pump_cell_type_get(int argc, VALUE *argv, VALUE self) {
16315     Pump *arg1 = (Pump *) 0 ;
16316     int result;
16317     VALUE vresult = Qnil;
16318     
16319     if ((argc < 0) || (argc > 0))
16320     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16321     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16322     result = (int) ((arg1)->cell_type);
16323     
16324     vresult = INT2NUM(result);
16325     return vresult;
16326 }
16327 
16328 
16329 static VALUE
16330 _wrap_Pump_cell_width_set(int argc, VALUE *argv, VALUE self) {
16331     Pump *arg1 = (Pump *) 0 ;
16332     Micron arg2 ;
16333     
16334     if ((argc < 1) || (argc > 1))
16335     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16336     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16337     arg2 = (Micron) NUM2DBL(argv[0]);
16338     if (arg1) (arg1)->cell_width = arg2;
16339     
16340     return Qnil;
16341 }
16342 
16343 
16344 static VALUE
16345 _wrap_Pump_cell_width_get(int argc, VALUE *argv, VALUE self) {
16346     Pump *arg1 = (Pump *) 0 ;
16347     Micron result;
16348     VALUE vresult = Qnil;
16349     
16350     if ((argc < 0) || (argc > 0))
16351     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16352     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16353     result = (Micron) ((arg1)->cell_width);
16354     
16355     vresult = rb_float_new(result);
16356     return vresult;
16357 }
16358 
16359 
16360 static VALUE
16361 _wrap_Pump_cell_height_set(int argc, VALUE *argv, VALUE self) {
16362     Pump *arg1 = (Pump *) 0 ;
16363     Micron arg2 ;
16364     
16365     if ((argc < 1) || (argc > 1))
16366     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16367     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16368     arg2 = (Micron) NUM2DBL(argv[0]);
16369     if (arg1) (arg1)->cell_height = arg2;
16370     
16371     return Qnil;
16372 }
16373 
16374 
16375 static VALUE
16376 _wrap_Pump_cell_height_get(int argc, VALUE *argv, VALUE self) {
16377     Pump *arg1 = (Pump *) 0 ;
16378     Micron result;
16379     VALUE vresult = Qnil;
16380     
16381     if ((argc < 0) || (argc > 0))
16382     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16383     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16384     result = (Micron) ((arg1)->cell_height);
16385     
16386     vresult = rb_float_new(result);
16387     return vresult;
16388 }
16389 
16390 
16391 static VALUE
16392 _wrap_Pump_size_const_set(int argc, VALUE *argv, VALUE self) {
16393     Pump *arg1 = (Pump *) 0 ;
16394     double arg2 ;
16395     
16396     if ((argc < 1) || (argc > 1))
16397     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16398     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16399     arg2 = (double) NUM2DBL(argv[0]);
16400     if (arg1) (arg1)->size_const = arg2;
16401     
16402     return Qnil;
16403 }
16404 
16405 
16406 static VALUE
16407 _wrap_Pump_size_const_get(int argc, VALUE *argv, VALUE self) {
16408     Pump *arg1 = (Pump *) 0 ;
16409     double result;
16410     VALUE vresult = Qnil;
16411     
16412     if ((argc < 0) || (argc > 0))
16413     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16414     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16415     result = (double) ((arg1)->size_const);
16416     
16417     vresult = rb_float_new(result);
16418     return vresult;
16419 }
16420 
16421 
16422 static VALUE
16423 _wrap_Pump_min_angle_set(int argc, VALUE *argv, VALUE self) {
16424     Pump *arg1 = (Pump *) 0 ;
16425     double arg2 ;
16426     
16427     if ((argc < 1) || (argc > 1))
16428     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16429     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16430     arg2 = (double) NUM2DBL(argv[0]);
16431     if (arg1) (arg1)->min_angle = arg2;
16432     
16433     return Qnil;
16434 }
16435 
16436 
16437 static VALUE
16438 _wrap_Pump_min_angle_get(int argc, VALUE *argv, VALUE self) {
16439     Pump *arg1 = (Pump *) 0 ;
16440     double result;
16441     VALUE vresult = Qnil;
16442     
16443     if ((argc < 0) || (argc > 0))
16444     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16445     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16446     result = (double) ((arg1)->min_angle);
16447     
16448     vresult = rb_float_new(result);
16449     return vresult;
16450 }
16451 
16452 
16453 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
16454 static VALUE
16455 _wrap_Pump_allocate(VALUE self) {
16456 #else
16457     static VALUE
16458     _wrap_Pump_allocate(int argc, VALUE *argv, VALUE self) {
16459 #endif
16460         
16461         
16462         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Pump);
16463 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
16464         rb_obj_call_init(vresult, argc, argv);
16465 #endif
16466         return vresult;
16467     }
16468     
16469 
16470 static VALUE
16471 _wrap_new_Pump(int argc, VALUE *argv, VALUE self) {
16472     Pump *result;
16473     
16474     if ((argc < 0) || (argc > 0))
16475     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16476     result = (Pump *)new Pump();
16477     DATA_PTR(self) = result;
16478     return self;
16479 }
16480 
16481 
16482 static VALUE
16483 _wrap_Pump_make_test(int argc, VALUE *argv, VALUE self) {
16484     Pump *arg1 = (Pump *) 0 ;
16485     
16486     if ((argc < 0) || (argc > 0))
16487     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16488     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16489     (arg1)->make_test();
16490     
16491     return Qnil;
16492 }
16493 
16494 
16495 static VALUE
16496 _wrap_Pump_make_pump(int argc, VALUE *argv, VALUE self) {
16497     Pump *arg1 = (Pump *) 0 ;
16498     int result;
16499     VALUE vresult = Qnil;
16500     
16501     if ((argc < 0) || (argc > 0))
16502     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16503     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_Pump, 1);
16504     result = (int)(arg1)->make_pump();
16505     
16506     vresult = INT2NUM(result);
16507     return vresult;
16508 }
16509 
16510 
16511 static void
16512 free_Pump(Pump *arg1) {
16513     delete arg1;
16514 }
16515 static VALUE
16516 _wrap_SlitCavity_outer_edges_set(int argc, VALUE *argv, VALUE self) {
16517     SlitCavity *arg1 = (SlitCavity *) 0 ;
16518     vector<BoundaryEdge * > *arg2 = (vector<BoundaryEdge * > *) 0 ;
16519     
16520     if ((argc < 1) || (argc > 1))
16521     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16522     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16523     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1);
16524     if (arg1) (arg1)->outer_edges = *arg2;
16525     
16526     return Qnil;
16527 }
16528 
16529 
16530 static VALUE
16531 _wrap_SlitCavity_outer_edges_get(int argc, VALUE *argv, VALUE self) {
16532     SlitCavity *arg1 = (SlitCavity *) 0 ;
16533     vector<BoundaryEdge * > *result;
16534     VALUE vresult = Qnil;
16535     
16536     if ((argc < 0) || (argc > 0))
16537     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16538     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16539     result = (vector<BoundaryEdge * > *)& ((arg1)->outer_edges);
16540     
16541     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryEdge_p_t,0);
16542     return vresult;
16543 }
16544 
16545 
16546 static VALUE
16547 _wrap_SlitCavity_rear_edge_set(int argc, VALUE *argv, VALUE self) {
16548     SlitCavity *arg1 = (SlitCavity *) 0 ;
16549     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
16550     
16551     if ((argc < 1) || (argc > 1))
16552     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16553     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16554     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
16555     if (arg1) (arg1)->rear_edge = arg2;
16556     
16557     return Qnil;
16558 }
16559 
16560 
16561 static VALUE
16562 _wrap_SlitCavity_rear_edge_get(int argc, VALUE *argv, VALUE self) {
16563     SlitCavity *arg1 = (SlitCavity *) 0 ;
16564     BoundaryEdge *result;
16565     VALUE vresult = Qnil;
16566     
16567     if ((argc < 0) || (argc > 0))
16568     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16569     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16570     result = (BoundaryEdge *) ((arg1)->rear_edge);
16571     
16572     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
16573     return vresult;
16574 }
16575 
16576 
16577 static VALUE
16578 _wrap_SlitCavity_forward_edge_set(int argc, VALUE *argv, VALUE self) {
16579     SlitCavity *arg1 = (SlitCavity *) 0 ;
16580     BoundaryEdge *arg2 = (BoundaryEdge *) 0 ;
16581     
16582     if ((argc < 1) || (argc > 1))
16583     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16584     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16585     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryEdge, 1);
16586     if (arg1) (arg1)->forward_edge = arg2;
16587     
16588     return Qnil;
16589 }
16590 
16591 
16592 static VALUE
16593 _wrap_SlitCavity_forward_edge_get(int argc, VALUE *argv, VALUE self) {
16594     SlitCavity *arg1 = (SlitCavity *) 0 ;
16595     BoundaryEdge *result;
16596     VALUE vresult = Qnil;
16597     
16598     if ((argc < 0) || (argc > 0))
16599     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16600     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16601     result = (BoundaryEdge *) ((arg1)->forward_edge);
16602     
16603     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryEdge,0);
16604     return vresult;
16605 }
16606 
16607 
16608 static VALUE
16609 _wrap_SlitCavity_cell_edges_set(int argc, VALUE *argv, VALUE self) {
16610     SlitCavity *arg1 = (SlitCavity *) 0 ;
16611     vector<BoundaryEdge * > *arg2 = (vector<BoundaryEdge * > *) 0 ;
16612     
16613     if ((argc < 1) || (argc > 1))
16614     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16615     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16616     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryEdge_p_t, 1);
16617     if (arg1) (arg1)->cell_edges = *arg2;
16618     
16619     return Qnil;
16620 }
16621 
16622 
16623 static VALUE
16624 _wrap_SlitCavity_cell_edges_get(int argc, VALUE *argv, VALUE self) {
16625     SlitCavity *arg1 = (SlitCavity *) 0 ;
16626     vector<BoundaryEdge * > *result;
16627     VALUE vresult = Qnil;
16628     
16629     if ((argc < 0) || (argc > 0))
16630     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16631     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16632     result = (vector<BoundaryEdge * > *)& ((arg1)->cell_edges);
16633     
16634     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryEdge_p_t,0);
16635     return vresult;
16636 }
16637 
16638 
16639 static VALUE
16640 _wrap_SlitCavity_cell_centers_set(int argc, VALUE *argv, VALUE self) {
16641     SlitCavity *arg1 = (SlitCavity *) 0 ;
16642     vector<Point2D > *arg2 = (vector<Point2D > *) 0 ;
16643     
16644     if ((argc < 1) || (argc > 1))
16645     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16646     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16647     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTPoint2D_t, 1);
16648     if (arg1) (arg1)->cell_centers = *arg2;
16649     
16650     return Qnil;
16651 }
16652 
16653 
16654 static VALUE
16655 _wrap_SlitCavity_cell_centers_get(int argc, VALUE *argv, VALUE self) {
16656     SlitCavity *arg1 = (SlitCavity *) 0 ;
16657     vector<Point2D > *result;
16658     VALUE vresult = Qnil;
16659     
16660     if ((argc < 0) || (argc > 0))
16661     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16662     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16663     result = (vector<Point2D > *)& ((arg1)->cell_centers);
16664     
16665     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTPoint2D_t,0);
16666     return vresult;
16667 }
16668 
16669 
16670 static VALUE
16671 _wrap_SlitCavity_cell_faces_set(int argc, VALUE *argv, VALUE self) {
16672     SlitCavity *arg1 = (SlitCavity *) 0 ;
16673     vector<BoundaryFace * > *arg2 = (vector<BoundaryFace * > *) 0 ;
16674     
16675     if ((argc < 1) || (argc > 1))
16676     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16677     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16678     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_vectorTBoundaryFace_p_t, 1);
16679     if (arg1) (arg1)->cell_faces = *arg2;
16680     
16681     return Qnil;
16682 }
16683 
16684 
16685 static VALUE
16686 _wrap_SlitCavity_cell_faces_get(int argc, VALUE *argv, VALUE self) {
16687     SlitCavity *arg1 = (SlitCavity *) 0 ;
16688     vector<BoundaryFace * > *result;
16689     VALUE vresult = Qnil;
16690     
16691     if ((argc < 0) || (argc > 0))
16692     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16693     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16694     result = (vector<BoundaryFace * > *)& ((arg1)->cell_faces);
16695     
16696     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_vectorTBoundaryFace_p_t,0);
16697     return vresult;
16698 }
16699 
16700 
16701 static VALUE
16702 _wrap_SlitCavity_cavity_set(int argc, VALUE *argv, VALUE self) {
16703     SlitCavity *arg1 = (SlitCavity *) 0 ;
16704     BoundaryFace *arg2 = (BoundaryFace *) 0 ;
16705     
16706     if ((argc < 1) || (argc > 1))
16707     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16708     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16709     SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_BoundaryFace, 1);
16710     if (arg1) (arg1)->cavity = arg2;
16711     
16712     return Qnil;
16713 }
16714 
16715 
16716 static VALUE
16717 _wrap_SlitCavity_cavity_get(int argc, VALUE *argv, VALUE self) {
16718     SlitCavity *arg1 = (SlitCavity *) 0 ;
16719     BoundaryFace *result;
16720     VALUE vresult = Qnil;
16721     
16722     if ((argc < 0) || (argc > 0))
16723     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16724     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16725     result = (BoundaryFace *) ((arg1)->cavity);
16726     
16727     vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_BoundaryFace,0);
16728     return vresult;
16729 }
16730 
16731 
16732 static VALUE
16733 _wrap_SlitCavity_min_angle_set(int argc, VALUE *argv, VALUE self) {
16734     SlitCavity *arg1 = (SlitCavity *) 0 ;
16735     Degrees arg2 ;
16736     
16737     if ((argc < 1) || (argc > 1))
16738     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16739     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16740     arg2 = (Degrees) NUM2DBL(argv[0]);
16741     if (arg1) (arg1)->min_angle = arg2;
16742     
16743     return Qnil;
16744 }
16745 
16746 
16747 static VALUE
16748 _wrap_SlitCavity_min_angle_get(int argc, VALUE *argv, VALUE self) {
16749     SlitCavity *arg1 = (SlitCavity *) 0 ;
16750     Degrees result;
16751     VALUE vresult = Qnil;
16752     
16753     if ((argc < 0) || (argc > 0))
16754     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16755     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16756     result = (Degrees) ((arg1)->min_angle);
16757     
16758     vresult = rb_float_new(result);
16759     return vresult;
16760 }
16761 
16762 
16763 static VALUE
16764 _wrap_SlitCavity_num_cells_set(int argc, VALUE *argv, VALUE self) {
16765     SlitCavity *arg1 = (SlitCavity *) 0 ;
16766     int arg2 ;
16767     
16768     if ((argc < 1) || (argc > 1))
16769     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16770     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16771     arg2 = NUM2INT(argv[0]);
16772     if (arg1) (arg1)->num_cells = arg2;
16773     
16774     return Qnil;
16775 }
16776 
16777 
16778 static VALUE
16779 _wrap_SlitCavity_num_cells_get(int argc, VALUE *argv, VALUE self) {
16780     SlitCavity *arg1 = (SlitCavity *) 0 ;
16781     int result;
16782     VALUE vresult = Qnil;
16783     
16784     if ((argc < 0) || (argc > 0))
16785     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16786     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16787     result = (int) ((arg1)->num_cells);
16788     
16789     vresult = INT2NUM(result);
16790     return vresult;
16791 }
16792 
16793 
16794 static VALUE
16795 _wrap_SlitCavity_cell_type_set(int argc, VALUE *argv, VALUE self) {
16796     SlitCavity *arg1 = (SlitCavity *) 0 ;
16797     int arg2 ;
16798     
16799     if ((argc < 1) || (argc > 1))
16800     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16801     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16802     arg2 = NUM2INT(argv[0]);
16803     if (arg1) (arg1)->cell_type = arg2;
16804     
16805     return Qnil;
16806 }
16807 
16808 
16809 static VALUE
16810 _wrap_SlitCavity_cell_type_get(int argc, VALUE *argv, VALUE self) {
16811     SlitCavity *arg1 = (SlitCavity *) 0 ;
16812     int result;
16813     VALUE vresult = Qnil;
16814     
16815     if ((argc < 0) || (argc > 0))
16816     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16817     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16818     result = (int) ((arg1)->cell_type);
16819     
16820     vresult = INT2NUM(result);
16821     return vresult;
16822 }
16823 
16824 
16825 static VALUE
16826 _wrap_SlitCavity_cell_width_set(int argc, VALUE *argv, VALUE self) {
16827     SlitCavity *arg1 = (SlitCavity *) 0 ;
16828     Micron arg2 ;
16829     
16830     if ((argc < 1) || (argc > 1))
16831     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16832     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16833     arg2 = (Micron) NUM2DBL(argv[0]);
16834     if (arg1) (arg1)->cell_width = arg2;
16835     
16836     return Qnil;
16837 }
16838 
16839 
16840 static VALUE
16841 _wrap_SlitCavity_cell_width_get(int argc, VALUE *argv, VALUE self) {
16842     SlitCavity *arg1 = (SlitCavity *) 0 ;
16843     Micron result;
16844     VALUE vresult = Qnil;
16845     
16846     if ((argc < 0) || (argc > 0))
16847     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16848     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16849     result = (Micron) ((arg1)->cell_width);
16850     
16851     vresult = rb_float_new(result);
16852     return vresult;
16853 }
16854 
16855 
16856 static VALUE
16857 _wrap_SlitCavity_cell_height_set(int argc, VALUE *argv, VALUE self) {
16858     SlitCavity *arg1 = (SlitCavity *) 0 ;
16859     Micron arg2 ;
16860     
16861     if ((argc < 1) || (argc > 1))
16862     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16863     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16864     arg2 = (Micron) NUM2DBL(argv[0]);
16865     if (arg1) (arg1)->cell_height = arg2;
16866     
16867     return Qnil;
16868 }
16869 
16870 
16871 static VALUE
16872 _wrap_SlitCavity_cell_height_get(int argc, VALUE *argv, VALUE self) {
16873     SlitCavity *arg1 = (SlitCavity *) 0 ;
16874     Micron result;
16875     VALUE vresult = Qnil;
16876     
16877     if ((argc < 0) || (argc > 0))
16878     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16879     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16880     result = (Micron) ((arg1)->cell_height);
16881     
16882     vresult = rb_float_new(result);
16883     return vresult;
16884 }
16885 
16886 
16887 static VALUE
16888 _wrap_SlitCavity_slit_height_set(int argc, VALUE *argv, VALUE self) {
16889     SlitCavity *arg1 = (SlitCavity *) 0 ;
16890     Micron arg2 ;
16891     
16892     if ((argc < 1) || (argc > 1))
16893     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16894     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16895     arg2 = (Micron) NUM2DBL(argv[0]);
16896     if (arg1) (arg1)->slit_height = arg2;
16897     
16898     return Qnil;
16899 }
16900 
16901 
16902 static VALUE
16903 _wrap_SlitCavity_slit_height_get(int argc, VALUE *argv, VALUE self) {
16904     SlitCavity *arg1 = (SlitCavity *) 0 ;
16905     Micron result;
16906     VALUE vresult = Qnil;
16907     
16908     if ((argc < 0) || (argc > 0))
16909     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16910     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16911     result = (Micron) ((arg1)->slit_height);
16912     
16913     vresult = rb_float_new(result);
16914     return vresult;
16915 }
16916 
16917 
16918 static VALUE
16919 _wrap_SlitCavity_slit_length_set(int argc, VALUE *argv, VALUE self) {
16920     SlitCavity *arg1 = (SlitCavity *) 0 ;
16921     Micron arg2 ;
16922     
16923     if ((argc < 1) || (argc > 1))
16924     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16925     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16926     arg2 = (Micron) NUM2DBL(argv[0]);
16927     if (arg1) (arg1)->slit_length = arg2;
16928     
16929     return Qnil;
16930 }
16931 
16932 
16933 static VALUE
16934 _wrap_SlitCavity_slit_length_get(int argc, VALUE *argv, VALUE self) {
16935     SlitCavity *arg1 = (SlitCavity *) 0 ;
16936     Micron result;
16937     VALUE vresult = Qnil;
16938     
16939     if ((argc < 0) || (argc > 0))
16940     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16941     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16942     result = (Micron) ((arg1)->slit_length);
16943     
16944     vresult = rb_float_new(result);
16945     return vresult;
16946 }
16947 
16948 
16949 static VALUE
16950 _wrap_SlitCavity_cavity_height_set(int argc, VALUE *argv, VALUE self) {
16951     SlitCavity *arg1 = (SlitCavity *) 0 ;
16952     Micron arg2 ;
16953     
16954     if ((argc < 1) || (argc > 1))
16955     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16956     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16957     arg2 = (Micron) NUM2DBL(argv[0]);
16958     if (arg1) (arg1)->cavity_height = arg2;
16959     
16960     return Qnil;
16961 }
16962 
16963 
16964 static VALUE
16965 _wrap_SlitCavity_cavity_height_get(int argc, VALUE *argv, VALUE self) {
16966     SlitCavity *arg1 = (SlitCavity *) 0 ;
16967     Micron result;
16968     VALUE vresult = Qnil;
16969     
16970     if ((argc < 0) || (argc > 0))
16971     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
16972     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16973     result = (Micron) ((arg1)->cavity_height);
16974     
16975     vresult = rb_float_new(result);
16976     return vresult;
16977 }
16978 
16979 
16980 static VALUE
16981 _wrap_SlitCavity_inlet_length_set(int argc, VALUE *argv, VALUE self) {
16982     SlitCavity *arg1 = (SlitCavity *) 0 ;
16983     Micron arg2 ;
16984     
16985     if ((argc < 1) || (argc > 1))
16986     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
16987     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
16988     arg2 = (Micron) NUM2DBL(argv[0]);
16989     if (arg1) (arg1)->inlet_length = arg2;
16990     
16991     return Qnil;
16992 }
16993 
16994 
16995 static VALUE
16996 _wrap_SlitCavity_inlet_length_get(int argc, VALUE *argv, VALUE self) {
16997     SlitCavity *arg1 = (SlitCavity *) 0 ;
16998     Micron result;
16999     VALUE vresult = Qnil;
17000     
17001     if ((argc < 0) || (argc > 0))
17002     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
17003     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17004     result = (Micron) ((arg1)->inlet_length);
17005     
17006     vresult = rb_float_new(result);
17007     return vresult;
17008 }
17009 
17010 
17011 static VALUE
17012 _wrap_SlitCavity_outlet_length_set(int argc, VALUE *argv, VALUE self) {
17013     SlitCavity *arg1 = (SlitCavity *) 0 ;
17014     Micron arg2 ;
17015     
17016     if ((argc < 1) || (argc > 1))
17017     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
17018     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17019     arg2 = (Micron) NUM2DBL(argv[0]);
17020     if (arg1) (arg1)->outlet_length = arg2;
17021     
17022     return Qnil;
17023 }
17024 
17025 
17026 static VALUE
17027 _wrap_SlitCavity_outlet_length_get(int argc, VALUE *argv, VALUE self) {
17028     SlitCavity *arg1 = (SlitCavity *) 0 ;
17029     Micron result;
17030     VALUE vresult = Qnil;
17031     
17032     if ((argc < 0) || (argc > 0))
17033     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
17034     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17035     result = (Micron) ((arg1)->outlet_length);
17036     
17037     vresult = rb_float_new(result);
17038     return vresult;
17039 }
17040 
17041 
17042 static VALUE
17043 _wrap_SlitCavity_taper_set(int argc, VALUE *argv, VALUE self) {
17044     SlitCavity *arg1 = (SlitCavity *) 0 ;
17045     Radians arg2 ;
17046     
17047     if ((argc < 1) || (argc > 1))
17048     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
17049     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17050     arg2 = (Radians) NUM2DBL(argv[0]);
17051     if (arg1) (arg1)->taper = arg2;
17052     
17053     return Qnil;
17054 }
17055 
17056 
17057 static VALUE
17058 _wrap_SlitCavity_taper_get(int argc, VALUE *argv, VALUE self) {
17059     SlitCavity *arg1 = (SlitCavity *) 0 ;
17060     Radians result;
17061     VALUE vresult = Qnil;
17062     
17063     if ((argc < 0) || (argc > 0))
17064     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
17065     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17066     result = (Radians) ((arg1)->taper);
17067     
17068     vresult = rb_float_new(result);
17069     return vresult;
17070 }
17071 
17072 
17073 static VALUE
17074 _wrap_SlitCavity_size_const_set(int argc, VALUE *argv, VALUE self) {
17075     SlitCavity *arg1 = (SlitCavity *) 0 ;
17076     double arg2 ;
17077     
17078     if ((argc < 1) || (argc > 1))
17079     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
17080     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17081     arg2 = (double) NUM2DBL(argv[0]);
17082     if (arg1) (arg1)->size_const = arg2;
17083     
17084     return Qnil;
17085 }
17086 
17087 
17088 static VALUE
17089 _wrap_SlitCavity_size_const_get(int argc, VALUE *argv, VALUE self) {
17090     SlitCavity *arg1 = (SlitCavity *) 0 ;
17091     double result;
17092     VALUE vresult = Qnil;
17093     
17094     if ((argc < 0) || (argc > 0))
17095     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
17096     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17097     result = (double) ((arg1)->size_const);
17098     
17099     vresult = rb_float_new(result);
17100     return vresult;
17101 }
17102 
17103 
17104 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
17105 static VALUE
17106 _wrap_SlitCavity_allocate(VALUE self) {
17107 #else
17108     static VALUE
17109     _wrap_SlitCavity_allocate(int argc, VALUE *argv, VALUE self) {
17110 #endif
17111         
17112         
17113         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_SlitCavity);
17114 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
17115         rb_obj_call_init(vresult, argc, argv);
17116 #endif
17117         return vresult;
17118     }
17119     
17120 
17121 static VALUE
17122 _wrap_new_SlitCavity(int argc, VALUE *argv, VALUE self) {
17123     SlitCavity *result;
17124     
17125     if ((argc < 0) || (argc > 0))
17126     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
17127     result = (SlitCavity *)new SlitCavity();
17128     DATA_PTR(self) = result;
17129     return self;
17130 }
17131 
17132 
17133 static VALUE
17134 _wrap_SlitCavity_make_cavity(int argc, VALUE *argv, VALUE self) {
17135     SlitCavity *arg1 = (SlitCavity *) 0 ;
17136     int result;
17137     VALUE vresult = Qnil;
17138     
17139     if ((argc < 0) || (argc > 0))
17140     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
17141     SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_SlitCavity, 1);
17142     result = (int)(arg1)->make_cavity();
17143     
17144     vresult = INT2NUM(result);
17145     return vresult;
17146 }
17147 
17148 
17149 static void
17150 free_SlitCavity(SlitCavity *arg1) {
17151     delete arg1;
17152 }
17153 
17154 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
17155 
17156 static void *_p_BoundaryEdgeTo_p_Cell(void *x) {
17157     return (void *)((Cell *) (EdgeCell *) ((BoundaryEdge *) x));
17158 }
17159 static void *_p_BoundaryFaceTo_p_Cell(void *x) {
17160     return (void *)((Cell *) (FaceCell *) ((BoundaryFace *) x));
17161 }
17162 static void *_p_FaceCellTo_p_Cell(void *x) {
17163     return (void *)((Cell *)  ((FaceCell *) x));
17164 }
17165 static void *_p_BezierVertexTo_p_Cell(void *x) {
17166     return (void *)((Cell *) (VertexCell *) ((BezierVertex *) x));
17167 }
17168 static void *_p_BezierEdgeTo_p_Cell(void *x) {
17169     return (void *)((Cell *) (EdgeCell *) ((BezierEdge *) x));
17170 }
17171 static void *_p_EdgeCellTo_p_Cell(void *x) {
17172     return (void *)((Cell *)  ((EdgeCell *) x));
17173 }
17174 static void *_p_BoundaryVertexTo_p_Cell(void *x) {
17175     return (void *)((Cell *) (VertexCell *) ((BoundaryVertex *) x));
17176 }
17177 static void *_p_BezierTriangleTo_p_Cell(void *x) {
17178     return (void *)((Cell *) (FaceCell *) ((BezierTriangle *) x));
17179 }
17180 static void *_p_VertexCellTo_p_Cell(void *x) {
17181     return (void *)((Cell *)  ((VertexCell *) x));
17182 }
17183 static void *_p_PumpTo_p_Simulation(void *x) {
17184     return (void *)((Simulation *)  ((Pump *) x));
17185 }
17186 static void *_p_SlitCavityTo_p_Simulation(void *x) {
17187     return (void *)((Simulation *)  ((SlitCavity *) x));
17188 }
17189 static void *_p_BoundaryFaceTo_p_FaceCell(void *x) {
17190     return (void *)((FaceCell *)  ((BoundaryFace *) x));
17191 }
17192 static void *_p_BezierTriangleTo_p_FaceCell(void *x) {
17193     return (void *)((FaceCell *)  ((BezierTriangle *) x));
17194 }
17195 static void *_p_PumpTo_p_MeshConstructor(void *x) {
17196     return (void *)((MeshConstructor *)  ((Pump *) x));
17197 }
17198 static void *_p_SlitCavityTo_p_MeshConstructor(void *x) {
17199     return (void *)((MeshConstructor *)  ((SlitCavity *) x));
17200 }
17201 static void *_p_BezierMeshTo_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t(void *x) {
17202     return (void *)((CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > > *)  ((BezierMesh *) x));
17203 }
17204 static void *_p_BezierVertexTo_p_VertexCell(void *x) {
17205     return (void *)((VertexCell *)  ((BezierVertex *) x));
17206 }
17207 static void *_p_BoundaryVertexTo_p_VertexCell(void *x) {
17208     return (void *)((VertexCell *)  ((BoundaryVertex *) x));
17209 }
17210 static void *_p_BoundaryEdgeTo_p_EdgeCell(void *x) {
17211     return (void *)((EdgeCell *)  ((BoundaryEdge *) x));
17212 }
17213 static void *_p_BezierEdgeTo_p_EdgeCell(void *x) {
17214     return (void *)((EdgeCell *)  ((BezierEdge *) x));
17215 }
17216 static void *_p_BoundaryMeshTo_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t(void *x) {
17217     return (void *)((CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > > *)  ((BoundaryMesh *) x));
17218 }
17219 static void *_p_BezierTriangleTo_p_CurvedTriangle(void *x) {
17220     return (void *)((CurvedTriangle *)  ((BezierTriangle *) x));
17221 }
17222 static void *_p_GhostTriangleTo_p_CurvedTriangle(void *x) {
17223     return (void *)((CurvedTriangle *)  ((GhostTriangle *) x));
17224 }
17225 static swig_type_info _swigt__p_GrayscaleMap[] = {{"_p_GrayscaleMap", 0, "GrayscaleMap *", 0},{"_p_GrayscaleMap"},{0}};
17226 static swig_type_info _swigt__p_Cell[] = {{"_p_Cell", 0, "Cell *", 0},{"_p_BoundaryEdge", _p_BoundaryEdgeTo_p_Cell},{"_p_BoundaryFace", _p_BoundaryFaceTo_p_Cell},{"_p_FaceCell", _p_FaceCellTo_p_Cell},{"_p_BezierVertex", _p_BezierVertexTo_p_Cell},{"_p_BezierEdge", _p_BezierEdgeTo_p_Cell},{"_p_Cell"},{"_p_BezierTriangle", _p_BezierTriangleTo_p_Cell},{"_p_EdgeCell", _p_EdgeCellTo_p_Cell},{"_p_BoundaryVertex", _p_BoundaryVertexTo_p_Cell},{"_p_VertexCell", _p_VertexCellTo_p_Cell},{0}};
17227 static swig_type_info _swigt__p_ControlPoint[] = {{"_p_ControlPoint", 0, "ControlPoint *", 0},{"_p_ControlPoint"},{0}};
17228 static swig_type_info _swigt__p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t[] = {{"_p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t", 0, "CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Face_Hash_T *", 0},{"_p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t"},{0}};
17229 static swig_type_info _swigt__p_BoundaryFace[] = {{"_p_BoundaryFace", 0, "BoundaryFace *", 0},{"_p_BoundaryFace"},{0}};
17230 static swig_type_info _swigt__p_Color[] = {{"_p_Color", 0, "Color *", 0},{"_p_Color"},{0}};
17231 static swig_type_info _swigt__p_Pump[] = {{"_p_Pump", 0, "Pump *", 0},{"_p_Pump"},{0}};
17232 static swig_type_info _swigt__p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t[] = {{"_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t", 0, "CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Data_Hash_T *", 0},{"_p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t"},{0}};
17233 static swig_type_info _swigt__p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t[] = {{"_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t", 0, "CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > *", 0},{"_p_BoundaryTuple"},{"_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t"},{0}};
17234 static swig_type_info _swigt__p_SlitCavity[] = {{"_p_SlitCavity", 0, "SlitCavity *", 0},{"_p_SlitCavity"},{0}};
17235 static swig_type_info _swigt__p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t[] = {{"_p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t", 0, "CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Edge_Hash_T *", 0},{"_p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t"},{0}};
17236 static swig_type_info _swigt__p_BezierVertex[] = {{"_p_BezierVertex", 0, "BezierVertex *", 0},{"_p_BezierVertex"},{0}};
17237 static swig_type_info _swigt__p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t[] = {{"_p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t", 0, "CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Vertex_Hash_T *", 0},{"_p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t"},{0}};
17238 static swig_type_info _swigt__p_Simulation[] = {{"_p_Simulation", 0, "Simulation *", 0},{"_p_Pump", _p_PumpTo_p_Simulation},{"_p_Simulation"},{"_p_SlitCavity", _p_SlitCavityTo_p_Simulation},{0}};
17239 static swig_type_info _swigt__p_Visualization[] = {{"_p_Visualization", 0, "Visualization *", 0},{"_p_Visualization"},{0}};
17240 static swig_type_info _swigt__p_PSCoord[] = {{"_p_PSCoord", 0, "PSCoord *", 0},{"_p_PSCoord"},{0}};
17241 static swig_type_info _swigt__p_vectorTlistTPoint2D_t__iterator_t[] = {{"_p_vectorTlistTPoint2D_t__iterator_t", 0, "vector<ControlPoint > const *", 0},{"_p_vectorTlistTPoint2D_t__iterator_t"},{0}};
17242 static swig_type_info _swigt__p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t[] = {{"_p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t", 0, "CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Vertex_Hash_T *", 0},{"_p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t"},{0}};
17243 static swig_type_info _swigt__p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t[] = {{"_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t", 0, "CellTuple<BezierVertex,BezierEdge,BezierTriangle > *", 0},{"_p_BezierTuple"},{"_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t"},{0}};
17244 static swig_type_info _swigt__p_FaceCell[] = {{"_p_FaceCell", 0, "FaceCell *", 0},{"_p_BoundaryFace", _p_BoundaryFaceTo_p_FaceCell},{"_p_FaceCell"},{"_p_BezierTriangle", _p_BezierTriangleTo_p_FaceCell},{0}};
17245 static swig_type_info _swigt__p_MeshConstructor[] = {{"_p_MeshConstructor", 0, "MeshConstructor *", 0},{"_p_Pump", _p_PumpTo_p_MeshConstructor},{"_p_MeshConstructor"},{"_p_SlitCavity", _p_SlitCavityTo_p_MeshConstructor},{0}};
17246 static swig_type_info _swigt__p_Point2D[] = {{"_p_Point2D", 0, "Point2D *", 0},{"_p_Point2D"},{0}};
17247 static swig_type_info _swigt__p_p_void[] = {{"_p_p_void", 0, "void **", 0},{"_p_p_void"},{0}};
17248 static swig_type_info _swigt__p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t[] = {{"_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t", 0, "CellComplex<BezierVertex,BezierEdge,BezierTriangle,BezierTuple > *", 0},{"_p_BezierMesh", _p_BezierMeshTo_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t},{"_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t"},{0}};
17249 static swig_type_info _swigt__p_double[] = {{"_p_double", 0, "double *", 0},{"_p_double"},{0}};
17250 static swig_type_info _swigt__p_p_double[] = {{"_p_p_double", 0, "double **", 0},{"_p_p_double"},{0}};
17251 static swig_type_info _swigt__p_int[] = {{"_p_int", 0, "int *", 0},{"_p_int"},{0}};
17252 static swig_type_info _swigt__p_MeshInput[] = {{"_p_MeshInput", 0, "MeshInput *", 0},{"_p_MeshInput"},{0}};
17253 static swig_type_info _swigt__p_VertexCell[] = {{"_p_VertexCell", 0, "VertexCell *", 0},{"_p_BezierVertex", _p_BezierVertexTo_p_VertexCell},{"_p_BoundaryVertex", _p_BoundaryVertexTo_p_VertexCell},{"_p_VertexCell"},{0}};
17254 static swig_type_info _swigt__p_dequeTBezierTriangle_p_t[] = {{"_p_dequeTBezierTriangle_p_t", 0, "deque<BezierTriangle * > *", 0},{"_p_dequeTBezierTriangle_p_t"},{0}};
17255 static swig_type_info _swigt__p_listTBezierTriangle_p_t[] = {{"_p_listTBezierTriangle_p_t", 0, "list<BezierTriangle * > *", 0},{"_p_listTBezierTriangle_p_t"},{0}};
17256 static swig_type_info _swigt__p_vectorTBezierTriangle_p_t[] = {{"_p_vectorTBezierTriangle_p_t", 0, "vector<BezierTriangle * > *", 0},{"_p_vectorTBezierTriangle_p_t"},{0}};
17257 static swig_type_info _swigt__p_LinearData[] = {{"_p_LinearData", 0, "LinearData *", 0},{"_p_LinearData"},{0}};
17258 static swig_type_info _swigt__p_EdgeCell[] = {{"_p_EdgeCell", 0, "EdgeCell *", 0},{"_p_BoundaryEdge", _p_BoundaryEdgeTo_p_EdgeCell},{"_p_BezierEdge", _p_BezierEdgeTo_p_EdgeCell},{"_p_EdgeCell"},{0}};
17259 static swig_type_info _swigt__p_p_BezierEdge[] = {{"_p_p_BezierEdge", 0, "BezierEdge **", 0},{"_p_p_BezierEdge"},{0}};
17260 static swig_type_info _swigt__p_BezierEdge[] = {{"_p_BezierEdge", 0, "BezierEdge *", 0},{"_p_BezierEdge"},{0}};
17261 static swig_type_info _swigt__p_DataPoint[] = {{"_p_DataPoint", 0, "DataPoint *", 0},{"_p_DataPoint"},{0}};
17262 static swig_type_info _swigt__p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t[] = {{"_p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t", 0, "CellComplex<BezierVertex,BezierEdge,BezierTriangle,CellTuple<BezierVertex,BezierEdge,BezierTriangle > >::Face_Hash_T *", 0},{"_p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t"},{0}};
17263 static swig_type_info _swigt__p_vectorTdouble_t[] = {{"_p_vectorTdouble_t", 0, "vector<double > *", 0},{"_p_vectorTdouble_t"},{0}};
17264 static swig_type_info _swigt__p_Matrix5[] = {{"_p_Matrix5", 0, "Matrix5 *", 0},{"_p_Matrix5"},{0}};
17265 static swig_type_info _swigt__p_TimeKeeper[] = {{"_p_TimeKeeper", 0, "TimeKeeper *", 0},{"_p_TimeKeeper"},{0}};
17266 static swig_type_info _swigt__p_QBSpline[] = {{"_p_QBSpline", 0, "QBSpline *", 0},{"_p_QBSpline"},{0}};
17267 static swig_type_info _swigt__p_ColorMap[] = {{"_p_ColorMap", 0, "ColorMap *", 0},{"_p_ColorMap"},{0}};
17268 static swig_type_info _swigt__p_MeshOutput[] = {{"_p_MeshOutput", 0, "MeshOutput *", 0},{"_p_MeshOutput"},{0}};
17269 static swig_type_info _swigt__p_dequeTBoundaryFace_p_t[] = {{"_p_dequeTBoundaryFace_p_t", 0, "deque<BoundaryFace * > *", 0},{"_p_dequeTBoundaryFace_p_t"},{0}};
17270 static swig_type_info _swigt__p_listTBoundaryFace_p_t[] = {{"_p_listTBoundaryFace_p_t", 0, "list<BoundaryFace * > *", 0},{"_p_listTBoundaryFace_p_t"},{0}};
17271 static swig_type_info _swigt__p_vectorTBoundaryFace_p_t[] = {{"_p_vectorTBoundaryFace_p_t", 0, "vector<BoundaryFace * > *", 0},{"_p_vectorTBoundaryFace_p_t"},{0}};
17272 static swig_type_info _swigt__p_BezierMesh[] = {{"_p_BezierMesh", 0, "BezierMesh *", 0},{"_p_BezierMesh"},{0}};
17273 static swig_type_info _swigt__p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t[] = {{"_p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t", 0, "CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,CellTuple<BoundaryVertex,BoundaryEdge,BoundaryFace > >::Edge_Hash_T *", 0},{"_p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t"},{0}};
17274 static swig_type_info _swigt__p_p_BoundaryEdge[] = {{"_p_p_BoundaryEdge", 0, "BoundaryEdge **", 0},{"_p_p_BoundaryEdge"},{0}};
17275 static swig_type_info _swigt__p_BoundaryEdge[] = {{"_p_BoundaryEdge", 0, "BoundaryEdge *", 0},{"_p_BoundaryEdge"},{0}};
17276 static swig_type_info _swigt__p_BezierTuple[] = {{"_p_BezierTuple", 0, "BezierTuple *", 0},{"_p_BezierTuple"},{"_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t"},{0}};
17277 static swig_type_info _swigt__p_listTBoundaryVertex_p_t[] = {{"_p_listTBoundaryVertex_p_t", 0, "list<BoundaryVertex * > *", 0},{"_p_listTBoundaryVertex_p_t"},{0}};
17278 static swig_type_info _swigt__p_vectorTBoundaryVertex_p_t[] = {{"_p_vectorTBoundaryVertex_p_t", 0, "vector<BoundaryVertex * > *", 0},{"_p_vectorTBoundaryVertex_p_t"},{0}};
17279 static swig_type_info _swigt__p_listTBezierVertex_p_t[] = {{"_p_listTBezierVertex_p_t", 0, "list<BezierVertex * > *", 0},{"_p_listTBezierVertex_p_t"},{0}};
17280 static swig_type_info _swigt__p_vectorTBezierVertex_p_t[] = {{"_p_vectorTBezierVertex_p_t", 0, "vector<BezierVertex * > *", 0},{"_p_vectorTBezierVertex_p_t"},{0}};
17281 static swig_type_info _swigt__p_vectorTPoint2D_t[] = {{"_p_vectorTPoint2D_t", 0, "vector<Point2D > *", 0},{"_p_vectorTPoint2D_t"},{0}};
17282 static swig_type_info _swigt__p_listTPoint2D_t[] = {{"_p_listTPoint2D_t", 0, "list<Point2D > *", 0},{"_p_listTPoint2D_t"},{0}};
17283 static swig_type_info _swigt__p_BoundaryVertex[] = {{"_p_BoundaryVertex", 0, "BoundaryVertex *", 0},{"_p_BoundaryVertex"},{0}};
17284 static swig_type_info _swigt__p_PSDrawMode[] = {{"_p_PSDrawMode", 0, "PSDrawMode *", 0},{"_p_PSDrawMode"},{0}};
17285 static swig_type_info _swigt__p_Matrix[] = {{"_p_Matrix", 0, "Matrix *", 0},{"_p_Matrix"},{0}};
17286 static swig_type_info _swigt__p_BoundaryMesh[] = {{"_p_BoundaryMesh", 0, "BoundaryMesh *", 0},{"_p_BoundaryMesh"},{0}};
17287 static swig_type_info _swigt__p_EPSWrite[] = {{"_p_EPSWrite", 0, "EPSWrite *", 0},{"_p_EPSWrite"},{0}};
17288 static swig_type_info _swigt__p_float[] = {{"_p_float", 0, "float *", 0},{"_p_float"},{0}};
17289 static swig_type_info _swigt__p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t[] = {{"_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t", 0, "CellComplex<BoundaryVertex,BoundaryEdge,BoundaryFace,BoundaryTuple > *", 0},{"_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t"},{"_p_BoundaryMesh", _p_BoundaryMeshTo_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t},{0}};
17290 static swig_type_info _swigt__p_listTLinearData_t[] = {{"_p_listTLinearData_t", 0, "list<LinearData > *", 0},{"_p_listTLinearData_t"},{0}};
17291 static swig_type_info _swigt__p_dequeTBoundaryEdge_p_t[] = {{"_p_dequeTBoundaryEdge_p_t", 0, "deque<BoundaryEdge * > *", 0},{"_p_dequeTBoundaryEdge_p_t"},{0}};
17292 static swig_type_info _swigt__p_listTBoundaryEdge_p_t[] = {{"_p_listTBoundaryEdge_p_t", 0, "list<BoundaryEdge * > *", 0},{"_p_listTBoundaryEdge_p_t"},{0}};
17293 static swig_type_info _swigt__p_vectorTBoundaryEdge_p_t[] = {{"_p_vectorTBoundaryEdge_p_t", 0, "vector<BoundaryEdge * > *", 0},{"_p_vectorTBoundaryEdge_p_t"},{0}};
17294 static swig_type_info _swigt__p_dequeTBezierEdge_p_t[] = {{"_p_dequeTBezierEdge_p_t", 0, "deque<BezierEdge * > *", 0},{"_p_dequeTBezierEdge_p_t"},{0}};
17295 static swig_type_info _swigt__p_listTBezierEdge_p_t[] = {{"_p_listTBezierEdge_p_t", 0, "list<BezierEdge * > *", 0},{"_p_listTBezierEdge_p_t"},{0}};
17296 static swig_type_info _swigt__p_vectorTBezierEdge_p_t[] = {{"_p_vectorTBezierEdge_p_t", 0, "vector<BezierEdge * > *", 0},{"_p_vectorTBezierEdge_p_t"},{0}};
17297 static swig_type_info _swigt__p_p_BezierTriangle[] = {{"_p_p_BezierTriangle", 0, "BezierTriangle **", 0},{"_p_p_BezierTriangle"},{0}};
17298 static swig_type_info _swigt__p_CurvedTriangle[] = {{"_p_CurvedTriangle", 0, "CurvedTriangle *", 0},{"_p_CurvedTriangle"},{"_p_BezierTriangle", _p_BezierTriangleTo_p_CurvedTriangle},{"_p_GhostTriangle", _p_GhostTriangleTo_p_CurvedTriangle},{0}};
17299 static swig_type_info _swigt__p_BezierTriangle[] = {{"_p_BezierTriangle", 0, "BezierTriangle *", 0},{"_p_BezierTriangle"},{0}};
17300 static swig_type_info _swigt__p_GhostTriangle[] = {{"_p_GhostTriangle", 0, "GhostTriangle *", 0},{"_p_GhostTriangle"},{0}};
17301 static swig_type_info _swigt__p_BoundaryTuple[] = {{"_p_BoundaryTuple", 0, "BoundaryTuple *", 0},{"_p_BoundaryTuple"},{"_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t"},{0}};
17302 
17303 static swig_type_info *swig_types_initial[] = {
17304 _swigt__p_GrayscaleMap, 
17305 _swigt__p_Cell, 
17306 _swigt__p_ControlPoint, 
17307 _swigt__p_hash_setTBoundaryFace_p_CellHasherTBoundaryFace_t_CellEqualTBoundaryFace_t_t, 
17308 _swigt__p_BoundaryFace, 
17309 _swigt__p_Color, 
17310 _swigt__p_Pump, 
17311 _swigt__p_hash_mapTlistTPoint2D_t__iterator_listTLinearData_t__iterator_ControlPointHasher_ControlPointEqual_t, 
17312 _swigt__p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, 
17313 _swigt__p_SlitCavity, 
17314 _swigt__p_hash_setTBezierEdge_p_CellHasherTBezierEdge_t_CellEqualTBezierEdge_t_t, 
17315 _swigt__p_BezierVertex, 
17316 _swigt__p_hash_setTBezierVertex_p_CellHasherTBezierVertex_t_CellEqualTBezierVertex_t_t, 
17317 _swigt__p_Simulation, 
17318 _swigt__p_Visualization, 
17319 _swigt__p_PSCoord, 
17320 _swigt__p_vectorTlistTPoint2D_t__iterator_t, 
17321 _swigt__p_hash_setTBoundaryVertex_p_CellHasherTBoundaryVertex_t_CellEqualTBoundaryVertex_t_t, 
17322 _swigt__p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, 
17323 _swigt__p_FaceCell, 
17324 _swigt__p_MeshConstructor, 
17325 _swigt__p_Point2D, 
17326 _swigt__p_p_void, 
17327 _swigt__p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, 
17328 _swigt__p_double, 
17329 _swigt__p_p_double, 
17330 _swigt__p_int, 
17331 _swigt__p_MeshInput, 
17332 _swigt__p_VertexCell, 
17333 _swigt__p_dequeTBezierTriangle_p_t, 
17334 _swigt__p_listTBezierTriangle_p_t, 
17335 _swigt__p_vectorTBezierTriangle_p_t, 
17336 _swigt__p_LinearData, 
17337 _swigt__p_EdgeCell, 
17338 _swigt__p_p_BezierEdge, 
17339 _swigt__p_BezierEdge, 
17340 _swigt__p_DataPoint, 
17341 _swigt__p_hash_setTBezierTriangle_p_CellHasherTBezierTriangle_t_CellEqualTBezierTriangle_t_t, 
17342 _swigt__p_vectorTdouble_t, 
17343 _swigt__p_Matrix5, 
17344 _swigt__p_TimeKeeper, 
17345 _swigt__p_QBSpline, 
17346 _swigt__p_ColorMap, 
17347 _swigt__p_MeshOutput, 
17348 _swigt__p_dequeTBoundaryFace_p_t, 
17349 _swigt__p_listTBoundaryFace_p_t, 
17350 _swigt__p_vectorTBoundaryFace_p_t, 
17351 _swigt__p_BezierMesh, 
17352 _swigt__p_hash_setTBoundaryEdge_p_CellHasherTBoundaryEdge_t_CellEqualTBoundaryEdge_t_t, 
17353 _swigt__p_p_BoundaryEdge, 
17354 _swigt__p_BoundaryEdge, 
17355 _swigt__p_BezierTuple, 
17356 _swigt__p_listTBoundaryVertex_p_t, 
17357 _swigt__p_vectorTBoundaryVertex_p_t, 
17358 _swigt__p_listTBezierVertex_p_t, 
17359 _swigt__p_vectorTBezierVertex_p_t, 
17360 _swigt__p_vectorTPoint2D_t, 
17361 _swigt__p_listTPoint2D_t, 
17362 _swigt__p_BoundaryVertex, 
17363 _swigt__p_PSDrawMode, 
17364 _swigt__p_Matrix, 
17365 _swigt__p_BoundaryMesh, 
17366 _swigt__p_EPSWrite, 
17367 _swigt__p_float, 
17368 _swigt__p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, 
17369 _swigt__p_listTLinearData_t, 
17370 _swigt__p_dequeTBoundaryEdge_p_t, 
17371 _swigt__p_listTBoundaryEdge_p_t, 
17372 _swigt__p_vectorTBoundaryEdge_p_t, 
17373 _swigt__p_dequeTBezierEdge_p_t, 
17374 _swigt__p_listTBezierEdge_p_t, 
17375 _swigt__p_vectorTBezierEdge_p_t, 
17376 _swigt__p_p_BezierTriangle, 
17377 _swigt__p_CurvedTriangle, 
17378 _swigt__p_BezierTriangle, 
17379 _swigt__p_GhostTriangle, 
17380 _swigt__p_BoundaryTuple, 
17381 0
17382 };
17383 
17384 
17385 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
17386 
17387 
17388 #ifdef __cplusplus
17389 extern "C"
17390 #endif
17391 SWIGEXPORT(void) Init_Tumble(void) {
17392     int i;
17393     
17394     SWIG_InitRuntime();
17395     mTumble = rb_define_module("Tumble");
17396     
17397     for (i = 0; swig_types_initial[i]; i++) {
17398         swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
17399         SWIG_define_class(swig_types[i]);
17400     }
17401     
17402     rb_define_const(mTumble,"DEFUALT_BDRY_CELL_HASH_TABLE_SIZE", INT2NUM(100));
17403     rb_define_const(mTumble,"DEFUALT_BDRY_TUPLE_HASH_TABLE_SIZE", INT2NUM(300));
17404     rb_define_const(mTumble,"DEFUALT_BEZIER_CELL_HASH_TABLE_SIZE", INT2NUM(300000));
17405     rb_define_const(mTumble,"DEFUALT_BEZIER_TUPLE_HASH_TABLE_SIZE", INT2NUM(900000));
17406     rb_define_const(mTumble,"MAX_FILENAME", INT2NUM(240));
17407     rb_define_const(mTumble,"MAX_FILE_LINE", INT2NUM(8092));
17408     rb_define_const(mTumble,"FALSE", INT2NUM(0));
17409     rb_define_const(mTumble,"TRUE", INT2NUM(1));
17410     rb_define_const(mTumble,"CONCAVE_THRESHOLD", rb_float_new(0.00002));
17411     rb_define_const(mTumble,"BIG", INT2NUM(100));
17412     rb_define_const(mTumble,"CONSTRAINT_RATIO", rb_float_new(3.0));
17413     rb_define_singleton_method(mTumble, "ALPHA", VALUEFUNC(ALPHA_get), 0);
17414     rb_define_singleton_method(mTumble, "BETA", VALUEFUNC(BETA_get), 0);
17415     rb_define_singleton_method(mTumble, "WEIGHT", VALUEFUNC(WEIGHT_get), 0);
17416     rb_define_singleton_method(mTumble, "PI", VALUEFUNC(PI_get), 0);
17417     rb_define_singleton_method(mTumble, "TWOPI", VALUEFUNC(TWOPI_get), 0);
17418     rb_define_singleton_method(mTumble, "HALFPI", VALUEFUNC(HALFPI_get), 0);
17419     
17420     cPoint2D.klass = rb_define_class_under(mTumble, "Point2D", rb_cObject);
17421     SWIG_TypeClientData(SWIGTYPE_p_Point2D, (void *) &cPoint2D);
17422     rb_define_alloc_func(cPoint2D.klass, _wrap_Point2D_allocate);
17423     rb_define_method(cPoint2D.klass, "initialize", VALUEFUNC(_wrap_new_Point2D), -1);
17424     rb_define_method(cPoint2D.klass, "coords=", VALUEFUNC(_wrap_Point2D_coords_set), -1);
17425     rb_define_method(cPoint2D.klass, "coords", VALUEFUNC(_wrap_Point2D_coords_get), -1);
17426     rb_define_method(cPoint2D.klass, "assign", VALUEFUNC(_wrap_Point2D_assign), -1);
17427     rb_define_method(cPoint2D.klass, "at", VALUEFUNC(_wrap_Point2D_at), -1);
17428     rb_define_method(cPoint2D.klass, "x", VALUEFUNC(_wrap_Point2D_x), -1);
17429     rb_define_method(cPoint2D.klass, "y", VALUEFUNC(_wrap_Point2D_y), -1);
17430     rb_define_method(cPoint2D.klass, "==", VALUEFUNC(_wrap_Point2D___eq__), -1);
17431     rb_define_method(cPoint2D.klass, "<", VALUEFUNC(_wrap_Point2D___lt__), -1);
17432     rb_define_method(cPoint2D.klass, "<=", VALUEFUNC(_wrap_Point2D___le__), -1);
17433     rb_define_method(cPoint2D.klass, ">", VALUEFUNC(_wrap_Point2D___gt__), -1);
17434     rb_define_method(cPoint2D.klass, ">=", VALUEFUNC(_wrap_Point2D___ge__), -1);
17435     rb_define_method(cPoint2D.klass, "+", VALUEFUNC(_wrap_Point2D___add__), -1);
17436     rb_define_method(cPoint2D.klass, "-", VALUEFUNC(_wrap_Point2D___sub__), -1);
17437     rb_define_method(cPoint2D.klass, "*", VALUEFUNC(_wrap_Point2D___mul__), -1);
17438     rb_define_method(cPoint2D.klass, "/", VALUEFUNC(_wrap_Point2D___div__), -1);
17439     rb_define_method(cPoint2D.klass, "dot", VALUEFUNC(_wrap_Point2D_dot), -1);
17440     rb_define_method(cPoint2D.klass, "magsq", VALUEFUNC(_wrap_Point2D_magsq), -1);
17441     rb_define_method(cPoint2D.klass, "mag", VALUEFUNC(_wrap_Point2D_mag), -1);
17442     rb_define_method(cPoint2D.klass, "cross", VALUEFUNC(_wrap_Point2D_cross), -1);
17443     rb_define_method(cPoint2D.klass, "is_left_of", VALUEFUNC(_wrap_Point2D_is_left_of), -1);
17444     rb_define_method(cPoint2D.klass, "is_right_of", VALUEFUNC(_wrap_Point2D_is_right_of), -1);
17445     rb_define_method(cPoint2D.klass, "line_side_test", VALUEFUNC(_wrap_Point2D_line_side_test), -1);
17446     rb_define_method(cPoint2D.klass, "in_circle_test", VALUEFUNC(_wrap_Point2D_in_circle_test), -1);
17447     rb_define_method(cPoint2D.klass, "dist_from_line", VALUEFUNC(_wrap_Point2D_dist_from_line), -1);
17448     rb_define_method(cPoint2D.klass, "print", VALUEFUNC(_wrap_Point2D_print), -1);
17449     cPoint2D.mark = 0;
17450     cPoint2D.destroy = (void (*)(void *)) free_Point2D;
17451     
17452     cLinearData.klass = rb_define_class_under(mTumble, "LinearData", rb_cObject);
17453     SWIG_TypeClientData(SWIGTYPE_p_LinearData, (void *) &cLinearData);
17454     rb_define_alloc_func(cLinearData.klass, _wrap_LinearData_allocate);
17455     rb_define_method(cLinearData.klass, "initialize", VALUEFUNC(_wrap_new_LinearData), -1);
17456     rb_define_method(cLinearData.klass, "fields=", VALUEFUNC(_wrap_LinearData_fields_set), -1);
17457     rb_define_method(cLinearData.klass, "fields", VALUEFUNC(_wrap_LinearData_fields_get), -1);
17458     rb_define_method(cLinearData.klass, "length=", VALUEFUNC(_wrap_LinearData_length_set), -1);
17459     rb_define_method(cLinearData.klass, "length", VALUEFUNC(_wrap_LinearData_length_get), -1);
17460     rb_define_method(cLinearData.klass, "update", VALUEFUNC(_wrap_LinearData_update), -1);
17461     rb_define_method(cLinearData.klass, "zero", VALUEFUNC(_wrap_LinearData_zero), -1);
17462     rb_define_method(cLinearData.klass, "set", VALUEFUNC(_wrap_LinearData_set), -1);
17463     rb_define_method(cLinearData.klass, "at", VALUEFUNC(_wrap_LinearData_at), -1);
17464     rb_define_method(cLinearData.klass, "get", VALUEFUNC(_wrap_LinearData_get), -1);
17465     rb_define_method(cLinearData.klass, "+", VALUEFUNC(_wrap_LinearData___add__), -1);
17466     rb_define_method(cLinearData.klass, "-", VALUEFUNC(_wrap_LinearData___sub__), -1);
17467     rb_define_method(cLinearData.klass, "*", VALUEFUNC(_wrap_LinearData___mul__), -1);
17468     rb_define_method(cLinearData.klass, "/", VALUEFUNC(_wrap_LinearData___div__), -1);
17469     rb_define_method(cLinearData.klass, "print", VALUEFUNC(_wrap_LinearData_print), -1);
17470     cLinearData.mark = 0;
17471     cLinearData.destroy = (void (*)(void *)) free_LinearData;
17472     
17473     cMatrix.klass = rb_define_class_under(mTumble, "Matrix", rb_cObject);
17474     SWIG_TypeClientData(SWIGTYPE_p_Matrix, (void *) &cMatrix);
17475     rb_define_alloc_func(cMatrix.klass, _wrap_Matrix_allocate);
17476     rb_define_method(cMatrix.klass, "initialize", VALUEFUNC(_wrap_new_Matrix), -1);
17477     rb_define_method(cMatrix.klass, "m=", VALUEFUNC(_wrap_Matrix_m_set), -1);
17478     rb_define_method(cMatrix.klass, "m", VALUEFUNC(_wrap_Matrix_m_get), -1);
17479     rb_define_method(cMatrix.klass, "rows=", VALUEFUNC(_wrap_Matrix_rows_set), -1);
17480     rb_define_method(cMatrix.klass, "rows", VALUEFUNC(_wrap_Matrix_rows_get), -1);
17481     rb_define_method(cMatrix.klass, "cols=", VALUEFUNC(_wrap_Matrix_cols_set), -1);
17482     rb_define_method(cMatrix.klass, "cols", VALUEFUNC(_wrap_Matrix_cols_get), -1);
17483     rb_define_method(cMatrix.klass, "call", VALUEFUNC(_wrap_Matrix___call__), -1);
17484     rb_define_method(cMatrix.klass, "set", VALUEFUNC(_wrap_Matrix_set), -1);
17485     rb_define_method(cMatrix.klass, "det", VALUEFUNC(_wrap_Matrix_det), -1);
17486     rb_define_method(cMatrix.klass, "transpose_times_self", VALUEFUNC(_wrap_Matrix_transpose_times_self), -1);
17487     rb_define_method(cMatrix.klass, "inverse", VALUEFUNC(_wrap_Matrix_inverse), -1);
17488     rb_define_method(cMatrix.klass, "transpose_times_vector", VALUEFUNC(_wrap_Matrix_transpose_times_vector), -1);
17489     rb_define_method(cMatrix.klass, "times_vector", VALUEFUNC(_wrap_Matrix_times_vector), -1);
17490     rb_define_method(cMatrix.klass, "print", VALUEFUNC(_wrap_Matrix_print), -1);
17491     cMatrix.mark = 0;
17492     cMatrix.destroy = (void (*)(void *)) free_Matrix;
17493     
17494     cMatrix5.klass = rb_define_class_under(mTumble, "Matrix5", rb_cObject);
17495     SWIG_TypeClientData(SWIGTYPE_p_Matrix5, (void *) &cMatrix5);
17496     rb_define_alloc_func(cMatrix5.klass, _wrap_Matrix5_allocate);
17497     rb_define_method(cMatrix5.klass, "initialize", VALUEFUNC(_wrap_new_Matrix5), -1);
17498     rb_define_method(cMatrix5.klass, "size=", VALUEFUNC(_wrap_Matrix5_size_set), -1);
17499     rb_define_method(cMatrix5.klass, "size", VALUEFUNC(_wrap_Matrix5_size_get), -1);
17500     rb_define_method(cMatrix5.klass, "d1=", VALUEFUNC(_wrap_Matrix5_d1_set), -1);
17501     rb_define_method(cMatrix5.klass, "d1", VALUEFUNC(_wrap_Matrix5_d1_get), -1);
17502     rb_define_method(cMatrix5.klass, "d2=", VALUEFUNC(_wrap_Matrix5_d2_set), -1);
17503     rb_define_method(cMatrix5.klass, "d2", VALUEFUNC(_wrap_Matrix5_d2_get), -1);
17504     rb_define_method(cMatrix5.klass, "d3=", VALUEFUNC(_wrap_Matrix5_d3_set), -1);
17505     rb_define_method(cMatrix5.klass, "d3", VALUEFUNC(_wrap_Matrix5_d3_get), -1);
17506     rb_define_method(cMatrix5.klass, "d4=", VALUEFUNC(_wrap_Matrix5_d4_set), -1);
17507     rb_define_method(cMatrix5.klass, "d4", VALUEFUNC(_wrap_Matrix5_d4_get), -1);
17508     rb_define_method(cMatrix5.klass, "d5=", VALUEFUNC(_wrap_Matrix5_d5_set), -1);
17509     rb_define_method(cMatrix5.klass, "d5", VALUEFUNC(_wrap_Matrix5_d5_get), -1);
17510     rb_define_method(cMatrix5.klass, "factored=", VALUEFUNC(_wrap_Matrix5_factored_set), -1);
17511     rb_define_method(cMatrix5.klass, "factored", VALUEFUNC(_wrap_Matrix5_factored_get), -1);
17512     rb_define_method(cMatrix5.klass, "LUsolve", VALUEFUNC(_wrap_Matrix5_LUsolve), -1);
17513     cMatrix5.mark = 0;
17514     cMatrix5.destroy = (void (*)(void *)) free_Matrix5;
17515     rb_define_module_function(mTumble, "add_filename_extension", VALUEFUNC(_wrap_add_filename_extension), -1);
17516     rb_define_const(mTumble,"FIXED_NONE", INT2NUM(0));
17517     rb_define_const(mTumble,"FIXED_HORIZONTAL", INT2NUM(1));
17518     rb_define_const(mTumble,"FIXED_VERTICAL", INT2NUM(2));
17519     rb_define_const(mTumble,"FIXED_ALL", INT2NUM(3));
17520     
17521     cCell.klass = rb_define_class_under(mTumble, "Cell", rb_cObject);
17522     SWIG_TypeClientData(SWIGTYPE_p_Cell, (void *) &cCell);
17523     rb_define_alloc_func(cCell.klass, _wrap_Cell_allocate);
17524     rb_define_method(cCell.klass, "initialize", VALUEFUNC(_wrap_new_Cell), -1);
17525     cCell.mark = 0;
17526     cCell.destroy = (void (*)(void *)) free_Cell;
17527     
17528     cVertexCell.klass = rb_define_class_under(mTumble, "VertexCell", ((swig_class *) SWIGTYPE_p_Cell->clientdata)->klass);
17529     SWIG_TypeClientData(SWIGTYPE_p_VertexCell, (void *) &cVertexCell);
17530     rb_define_alloc_func(cVertexCell.klass, _wrap_VertexCell_allocate);
17531     rb_define_method(cVertexCell.klass, "initialize", VALUEFUNC(_wrap_new_VertexCell), -1);
17532     rb_define_method(cVertexCell.klass, "num_edges=", VALUEFUNC(_wrap_VertexCell_num_edges_set), -1);
17533     rb_define_method(cVertexCell.klass, "num_edges", VALUEFUNC(_wrap_VertexCell_num_edges_get), -1);
17534     rb_define_method(cVertexCell.klass, "max_edges=", VALUEFUNC(_wrap_VertexCell_max_edges_set), -1);
17535     rb_define_method(cVertexCell.klass, "max_edges", VALUEFUNC(_wrap_VertexCell_max_edges_get), -1);
17536     rb_define_method(cVertexCell.klass, "edges=", VALUEFUNC(_wrap_VertexCell_edges_set), -1);
17537     rb_define_method(cVertexCell.klass, "edges", VALUEFUNC(_wrap_VertexCell_edges_get), -1);
17538     rb_define_method(cVertexCell.klass, "add_edge", VALUEFUNC(_wrap_VertexCell_add_edge), -1);
17539     rb_define_method(cVertexCell.klass, "delete_edge", VALUEFUNC(_wrap_VertexCell_delete_edge), -1);
17540     cVertexCell.mark = 0;
17541     cVertexCell.destroy = (void (*)(void *)) free_VertexCell;
17542     
17543     cEdgeCell.klass = rb_define_class_under(mTumble, "EdgeCell", ((swig_class *) SWIGTYPE_p_Cell->clientdata)->klass);
17544     SWIG_TypeClientData(SWIGTYPE_p_EdgeCell, (void *) &cEdgeCell);
17545     rb_define_alloc_func(cEdgeCell.klass, _wrap_EdgeCell_allocate);
17546     rb_define_method(cEdgeCell.klass, "initialize", VALUEFUNC(_wrap_new_EdgeCell), -1);
17547     rb_define_method(cEdgeCell.klass, "vertexs=", VALUEFUNC(_wrap_EdgeCell_vertexs_set), -1);
17548     rb_define_method(cEdgeCell.klass, "vertexs", VALUEFUNC(_wrap_EdgeCell_vertexs_get), -1);
17549     rb_define_method(cEdgeCell.klass, "faces=", VALUEFUNC(_wrap_EdgeCell_faces_set), -1);
17550     rb_define_method(cEdgeCell.klass, "faces", VALUEFUNC(_wrap_EdgeCell_faces_get), -1);
17551     rb_define_method(cEdgeCell.klass, "add_face", VALUEFUNC(_wrap_EdgeCell_add_face), -1);
17552     rb_define_method(cEdgeCell.klass, "delete_face", VALUEFUNC(_wrap_EdgeCell_delete_face), -1);
17553     cEdgeCell.mark = 0;
17554     cEdgeCell.destroy = (void (*)(void *)) free_EdgeCell;
17555     
17556     cFaceCell.klass = rb_define_class_under(mTumble, "FaceCell", ((swig_class *) SWIGTYPE_p_Cell->clientdata)->klass);
17557     SWIG_TypeClientData(SWIGTYPE_p_FaceCell, (void *) &cFaceCell);
17558     rb_define_alloc_func(cFaceCell.klass, _wrap_FaceCell_allocate);
17559     rb_define_method(cFaceCell.klass, "initialize", VALUEFUNC(_wrap_new_FaceCell), -1);
17560     rb_define_method(cFaceCell.klass, "num_edges=", VALUEFUNC(_wrap_FaceCell_num_edges_set), -1);
17561     rb_define_method(cFaceCell.klass, "num_edges", VALUEFUNC(_wrap_FaceCell_num_edges_get), -1);
17562     rb_define_method(cFaceCell.klass, "max_edges=", VALUEFUNC(_wrap_FaceCell_max_edges_set), -1);
17563     rb_define_method(cFaceCell.klass, "max_edges", VALUEFUNC(_wrap_FaceCell_max_edges_get), -1);
17564     rb_define_method(cFaceCell.klass, "edges=", VALUEFUNC(_wrap_FaceCell_edges_set), -1);
17565     rb_define_method(cFaceCell.klass, "edges", VALUEFUNC(_wrap_FaceCell_edges_get), -1);
17566     rb_define_method(cFaceCell.klass, "add_edge", VALUEFUNC(_wrap_FaceCell_add_edge), -1);
17567     rb_define_method(cFaceCell.klass, "delete_edge", VALUEFUNC(_wrap_FaceCell_delete_edge), -1);
17568     rb_define_method(cFaceCell.klass, "has_vertex", VALUEFUNC(_wrap_FaceCell_has_vertex), -1);
17569     cFaceCell.mark = 0;
17570     cFaceCell.destroy = (void (*)(void *)) free_FaceCell;
17571     
17572     cBoundaryVertex.klass = rb_define_class_under(mTumble, "BoundaryVertex", ((swig_class *) SWIGTYPE_p_VertexCell->clientdata)->klass);
17573     SWIG_TypeClientData(SWIGTYPE_p_BoundaryVertex, (void *) &cBoundaryVertex);
17574     rb_define_alloc_func(cBoundaryVertex.klass, _wrap_BoundaryVertex_allocate);
17575     rb_define_method(cBoundaryVertex.klass, "initialize", VALUEFUNC(_wrap_new_BoundaryVertex), -1);
17576     rb_define_method(cBoundaryVertex.klass, "cp=", VALUEFUNC(_wrap_BoundaryVertex_cp_set), -1);
17577     rb_define_method(cBoundaryVertex.klass, "cp", VALUEFUNC(_wrap_BoundaryVertex_cp_get), -1);
17578     rb_define_method(cBoundaryVertex.klass, "fixed=", VALUEFUNC(_wrap_BoundaryVertex_fixed_set), -1);
17579     rb_define_method(cBoundaryVertex.klass, "fixed", VALUEFUNC(_wrap_BoundaryVertex_fixed_get), -1);
17580     rb_define_method(cBoundaryVertex.klass, "bezier_vertex=", VALUEFUNC(_wrap_BoundaryVertex_bezier_vertex_set), -1);
17581     rb_define_method(cBoundaryVertex.klass, "bezier_vertex", VALUEFUNC(_wrap_BoundaryVertex_bezier_vertex_get), -1);
17582     rb_define_method(cBoundaryVertex.klass, "set_fixed", VALUEFUNC(_wrap_BoundaryVertex_set_fixed), -1);
17583     rb_define_method(cBoundaryVertex.klass, "set_cp", VALUEFUNC(_wrap_BoundaryVertex_set_cp), -1);
17584     rb_define_method(cBoundaryVertex.klass, "print", VALUEFUNC(_wrap_BoundaryVertex_print), -1);
17585     rb_define_method(cBoundaryVertex.klass, "get_cp", VALUEFUNC(_wrap_BoundaryVertex_get_cp), -1);
17586     rb_define_method(cBoundaryVertex.klass, "get_edge", VALUEFUNC(_wrap_BoundaryVertex_get_edge), -1);
17587     cBoundaryVertex.mark = 0;
17588     cBoundaryVertex.destroy = (void (*)(void *)) free_BoundaryVertex;
17589     
17590     cBoundaryEdge.klass = rb_define_class_under(mTumble, "BoundaryEdge", ((swig_class *) SWIGTYPE_p_EdgeCell->clientdata)->klass);
17591     SWIG_TypeClientData(SWIGTYPE_p_BoundaryEdge, (void *) &cBoundaryEdge);
17592     rb_define_alloc_func(cBoundaryEdge.klass, _wrap_BoundaryEdge_allocate);
17593     rb_define_method(cBoundaryEdge.klass, "initialize", VALUEFUNC(_wrap_new_BoundaryEdge), -1);
17594     rb_define_method(cBoundaryEdge.klass, "spline=", VALUEFUNC(_wrap_BoundaryEdge_spline_set), -1);
17595     rb_define_method(cBoundaryEdge.klass, "spline", VALUEFUNC(_wrap_BoundaryEdge_spline_get), -1);
17596     rb_define_method(cBoundaryEdge.klass, "fixed=", VALUEFUNC(_wrap_BoundaryEdge_fixed_set), -1);
17597     rb_define_method(cBoundaryEdge.klass, "fixed", VALUEFUNC(_wrap_BoundaryEdge_fixed_get), -1);
17598     rb_define_method(cBoundaryEdge.klass, "color=", VALUEFUNC(_wrap_BoundaryEdge_color_set), -1);
17599     rb_define_method(cBoundaryEdge.klass, "color", VALUEFUNC(_wrap_BoundaryEdge_color_get), -1);
17600     rb_define_method(cBoundaryEdge.klass, "set_fixed", VALUEFUNC(_wrap_BoundaryEdge_set_fixed), -1);
17601     rb_define_method(cBoundaryEdge.klass, "set_color", VALUEFUNC(_wrap_BoundaryEdge_set_color), -1);
17602     rb_define_method(cBoundaryEdge.klass, "set_restlength", VALUEFUNC(_wrap_BoundaryEdge_set_restlength), -1);
17603     rb_define_method(cBoundaryEdge.klass, "print", VALUEFUNC(_wrap_BoundaryEdge_print), -1);
17604     rb_define_method(cBoundaryEdge.klass, "get_vertex", VALUEFUNC(_wrap_BoundaryEdge_get_vertex), -1);
17605     rb_define_method(cBoundaryEdge.klass, "get_face", VALUEFUNC(_wrap_BoundaryEdge_get_face), -1);
17606     cBoundaryEdge.mark = 0;
17607     cBoundaryEdge.destroy = (void (*)(void *)) free_BoundaryEdge;
17608     
17609     cBoundaryFace.klass = rb_define_class_under(mTumble, "BoundaryFace", ((swig_class *) SWIGTYPE_p_FaceCell->clientdata)->klass);
17610     SWIG_TypeClientData(SWIGTYPE_p_BoundaryFace, (void *) &cBoundaryFace);
17611     rb_define_alloc_func(cBoundaryFace.klass, _wrap_BoundaryFace_allocate);
17612     rb_define_method(cBoundaryFace.klass, "initialize", VALUEFUNC(_wrap_new_BoundaryFace), -1);
17613     rb_define_method(cBoundaryFace.klass, "min_angle=", VALUEFUNC(_wrap_BoundaryFace_min_angle_set), -1);
17614     rb_define_method(cBoundaryFace.klass, "min_angle", VALUEFUNC(_wrap_BoundaryFace_min_angle_get), -1);
17615     rb_define_method(cBoundaryFace.klass, "color=", VALUEFUNC(_wrap_BoundaryFace_color_set), -1);
17616     rb_define_method(cBoundaryFace.klass, "color", VALUEFUNC(_wrap_BoundaryFace_color_get), -1);
17617     rb_define_method(cBoundaryFace.klass, "set_min_angle", VALUEFUNC(_wrap_BoundaryFace_set_min_angle), -1);
17618     rb_define_method(cBoundaryFace.klass, "set_color", VALUEFUNC(_wrap_BoundaryFace_set_color), -1);
17619     rb_define_method(cBoundaryFace.klass, "print", VALUEFUNC(_wrap_BoundaryFace_print), -1);
17620     rb_define_method(cBoundaryFace.klass, "get_edge", VALUEFUNC(_wrap_BoundaryFace_get_edge), -1);
17621     cBoundaryFace.mark = 0;
17622     cBoundaryFace.destroy = (void (*)(void *)) free_BoundaryFace;
17623     
17624     cBezierVertex.klass = rb_define_class_under(mTumble, "BezierVertex", ((swig_class *) SWIGTYPE_p_VertexCell->clientdata)->klass);
17625     SWIG_TypeClientData(SWIGTYPE_p_BezierVertex, (void *) &cBezierVertex);
17626     rb_define_alloc_func(cBezierVertex.klass, _wrap_BezierVertex_allocate);
17627     rb_define_method(cBezierVertex.klass, "initialize", VALUEFUNC(_wrap_new_BezierVertex), -1);
17628     rb_define_method(cBezierVertex.klass, "cp=", VALUEFUNC(_wrap_BezierVertex_cp_set), -1);
17629     rb_define_method(cBezierVertex.klass, "cp", VALUEFUNC(_wrap_BezierVertex_cp_get), -1);
17630     rb_define_method(cBezierVertex.klass, "dp=", VALUEFUNC(_wrap_BezierVertex_dp_set), -1);
17631     rb_define_method(cBezierVertex.klass, "dp", VALUEFUNC(_wrap_BezierVertex_dp_get), -1);
17632     rb_define_method(cBezierVertex.klass, "bdry_edge=", VALUEFUNC(_wrap_BezierVertex_bdry_edge_set), -1);
17633     rb_define_method(cBezierVertex.klass, "bdry_edge", VALUEFUNC(_wrap_BezierVertex_bdry_edge_get), -1);
17634     rb_define_method(cBezierVertex.klass, "bdry_vertex=", VALUEFUNC(_wrap_BezierVertex_bdry_vertex_set), -1);
17635     rb_define_method(cBezierVertex.klass, "bdry_vertex", VALUEFUNC(_wrap_BezierVertex_bdry_vertex_get), -1);
17636     rb_define_method(cBezierVertex.klass, "u=", VALUEFUNC(_wrap_BezierVertex_u_set), -1);
17637     rb_define_method(cBezierVertex.klass, "u", VALUEFUNC(_wrap_BezierVertex_u_get), -1);
17638     rb_define_method(cBezierVertex.klass, "is_removeable=", VALUEFUNC(_wrap_BezierVertex_is_removeable_set), -1);
17639     rb_define_method(cBezierVertex.klass, "is_removeable", VALUEFUNC(_wrap_BezierVertex_is_removeable_get), -1);
17640     rb_define_method(cBezierVertex.klass, "set_bdry", VALUEFUNC(_wrap_BezierVertex_set_bdry), -1);
17641     rb_define_method(cBezierVertex.klass, "set_cp", VALUEFUNC(_wrap_BezierVertex_set_cp), -1);
17642     rb_define_method(cBezierVertex.klass, "set_dp", VALUEFUNC(_wrap_BezierVertex_set_dp), -1);
17643     rb_define_method(cBezierVertex.klass, "get_cp", VALUEFUNC(_wrap_BezierVertex_get_cp), -1);
17644     rb_define_method(cBezierVertex.klass, "get_dp", VALUEFUNC(_wrap_BezierVertex_get_dp), -1);
17645     rb_define_method(cBezierVertex.klass, "get_edge", VALUEFUNC(_wrap_BezierVertex_get_edge), -1);
17646     rb_define_method(cBezierVertex.klass, "get_u", VALUEFUNC(_wrap_BezierVertex_get_u), -1);
17647     rb_define_method(cBezierVertex.klass, "print", VALUEFUNC(_wrap_BezierVertex_print), -1);
17648     cBezierVertex.mark = 0;
17649     cBezierVertex.destroy = (void (*)(void *)) free_BezierVertex;
17650     
17651     cBezierEdge.klass = rb_define_class_under(mTumble, "BezierEdge", ((swig_class *) SWIGTYPE_p_EdgeCell->clientdata)->klass);
17652     SWIG_TypeClientData(SWIGTYPE_p_BezierEdge, (void *) &cBezierEdge);
17653     rb_define_alloc_func(cBezierEdge.klass, _wrap_BezierEdge_allocate);
17654     rb_define_method(cBezierEdge.klass, "initialize", VALUEFUNC(_wrap_new_BezierEdge), -1);
17655     rb_define_method(cBezierEdge.klass, "cp=", VALUEFUNC(_wrap_BezierEdge_cp_set), -1);
17656     rb_define_method(cBezierEdge.klass, "cp", VALUEFUNC(_wrap_BezierEdge_cp_get), -1);
17657     rb_define_method(cBezierEdge.klass, "dp=", VALUEFUNC(_wrap_BezierEdge_dp_set), -1);
17658     rb_define_method(cBezierEdge.klass, "dp", VALUEFUNC(_wrap_BezierEdge_dp_get), -1);
17659     rb_define_method(cBezierEdge.klass, "bdry=", VALUEFUNC(_wrap_BezierEdge_bdry_set), -1);
17660     rb_define_method(cBezierEdge.klass, "bdry", VALUEFUNC(_wrap_BezierEdge_bdry_get), -1);
17661     rb_define_method(cBezierEdge.klass, "u0=", VALUEFUNC(_wrap_BezierEdge_u0_set), -1);
17662     rb_define_method(cBezierEdge.klass, "u0", VALUEFUNC(_wrap_BezierEdge_u0_get), -1);
17663     rb_define_method(cBezierEdge.klass, "u1=", VALUEFUNC(_wrap_BezierEdge_u1_set), -1);
17664     rb_define_method(cBezierEdge.klass, "u1", VALUEFUNC(_wrap_BezierEdge_u1_get), -1);
17665     rb_define_method(cBezierEdge.klass, "set_bdry", VALUEFUNC(_wrap_BezierEdge_set_bdry), -1);
17666     rb_define_method(cBezierEdge.klass, "set_cp", VALUEFUNC(_wrap_BezierEdge_set_cp), -1);
17667     rb_define_method(cBezierEdge.klass, "set_dp", VALUEFUNC(_wrap_BezierEdge_set_dp), -1);
17668     rb_define_method(cBezierEdge.klass, "get_cp", VALUEFUNC(_wrap_BezierEdge_get_cp), -1);
17669     rb_define_method(cBezierEdge.klass, "get_dp", VALUEFUNC(_wrap_BezierEdge_get_dp), -1);
17670     rb_define_method(cBezierEdge.klass, "get_vertex", VALUEFUNC(_wrap_BezierEdge_get_vertex), -1);
17671     rb_define_method(cBezierEdge.klass, "get_face", VALUEFUNC(_wrap_BezierEdge_get_face), -1);
17672     rb_define_method(cBezierEdge.klass, "eval", VALUEFUNC(_wrap_BezierEdge_eval), -1);
17673     rb_define_method(cBezierEdge.klass, "dataeval", VALUEFUNC(_wrap_BezierEdge_dataeval), -1);
17674     rb_define_method(cBezierEdge.klass, "evalIntermediate", VALUEFUNC(_wrap_BezierEdge_evalIntermediate), -1);
17675     rb_define_method(cBezierEdge.klass, "dataevalIntermediate", VALUEFUNC(_wrap_BezierEdge_dataevalIntermediate), -1);
17676     rb_define_method(cBezierEdge.klass, "is_encroached", VALUEFUNC(_wrap_BezierEdge_is_encroached), -1);
17677     rb_define_method(cBezierEdge.klass, "left_of_curve", VALUEFUNC(_wrap_BezierEdge_left_of_curve), -1);
17678     rb_define_method(cBezierEdge.klass, "print", VALUEFUNC(_wrap_BezierEdge_print), -1);
17679     cBezierEdge.mark = 0;
17680     cBezierEdge.destroy = (void (*)(void *)) free_BezierEdge;
17681     rb_define_singleton_method(mTumble, "newton_optimal_tolerance", VALUEFUNC(newton_optimal_tolerance_get), 0);
17682     rb_define_singleton_method(mTumble, "newton_zero_tolerance", VALUEFUNC(newton_zero_tolerance_get), 0);
17683     rb_define_singleton_method(mTumble, "newton_tolerance", VALUEFUNC(newton_tolerance_get), 0);
17684     rb_define_singleton_method(mTumble, "newton_iterations", VALUEFUNC(newton_iterations_get), 0);
17685     
17686     cCurvedTriangle.klass = rb_define_class_under(mTumble, "CurvedTriangle", rb_cObject);
17687     SWIG_TypeClientData(SWIGTYPE_p_CurvedTriangle, (void *) &cCurvedTriangle);
17688     rb_undef_alloc_func(cCurvedTriangle.klass);
17689     rb_define_method(cCurvedTriangle.klass, "newton_find", VALUEFUNC(_wrap_CurvedTriangle_newton_find), -1);
17690     rb_define_method(cCurvedTriangle.klass, "jacobian_matrix", VALUEFUNC(_wrap_CurvedTriangle_jacobian_matrix), -1);
17691     rb_define_method(cCurvedTriangle.klass, "eval", VALUEFUNC(_wrap_CurvedTriangle_eval), -1);
17692     cCurvedTriangle.mark = 0;
17693     cCurvedTriangle.destroy = (void (*)(void *)) free_CurvedTriangle;
17694     
17695     cBezierTriangle.klass = rb_define_class_under(mTumble, "BezierTriangle", ((swig_class *) SWIGTYPE_p_FaceCell->clientdata)->klass);
17696     SWIG_TypeClientData(SWIGTYPE_p_BezierTriangle, (void *) &cBezierTriangle);
17697     rb_define_alloc_func(cBezierTriangle.klass, _wrap_BezierTriangle_allocate);
17698     rb_define_method(cBezierTriangle.klass, "initialize", VALUEFUNC(_wrap_new_BezierTriangle), -1);
17699     rb_define_method(cBezierTriangle.klass, "cp=", VALUEFUNC(_wrap_BezierTriangle_cp_set), -1);
17700     rb_define_method(cBezierTriangle.klass, "cp", VALUEFUNC(_wrap_BezierTriangle_cp_get), -1);
17701     rb_define_method(cBezierTriangle.klass, "dp=", VALUEFUNC(_wrap_BezierTriangle_dp_set), -1);
17702     rb_define_method(cBezierTriangle.klass, "dp", VALUEFUNC(_wrap_BezierTriangle_dp_get), -1);
17703     rb_define_method(cBezierTriangle.klass, "bdry_face=", VALUEFUNC(_wrap_BezierTriangle_bdry_face_set), -1);
17704     rb_define_method(cBezierTriangle.klass, "bdry_face", VALUEFUNC(_wrap_BezierTriangle_bdry_face_get), -1);
17705     rb_define_method(cBezierTriangle.klass, "set_cp", VALUEFUNC(_wrap_BezierTriangle_set_cp), -1);
17706     rb_define_method(cBezierTriangle.klass, "set_dp", VALUEFUNC(_wrap_BezierTriangle_set_dp), -1);
17707     rb_define_method(cBezierTriangle.klass, "get_cp", VALUEFUNC(_wrap_BezierTriangle_get_cp), -1);
17708     rb_define_method(cBezierTriangle.klass, "get_dp", VALUEFUNC(_wrap_BezierTriangle_get_dp), -1);
17709     rb_define_method(cBezierTriangle.klass, "get_edge", VALUEFUNC(_wrap_BezierTriangle_get_edge), -1);
17710     rb_define_method(cBezierTriangle.klass, "eval", VALUEFUNC(_wrap_BezierTriangle_eval), -1);
17711     rb_define_method(cBezierTriangle.klass, "dataeval", VALUEFUNC(_wrap_BezierTriangle_dataeval), -1);
17712     rb_define_method(cBezierTriangle.klass, "dataevalIntermediate", VALUEFUNC(_wrap_BezierTriangle_dataevalIntermediate), -1);
17713     rb_define_method(cBezierTriangle.klass, "evalIntermediate", VALUEFUNC(_wrap_BezierTriangle_evalIntermediate), -1);
17714     rb_define_method(cBezierTriangle.klass, "jacobian", VALUEFUNC(_wrap_BezierTriangle_jacobian), -1);
17715     rb_define_method(cBezierTriangle.klass, "jacobian_matrix", VALUEFUNC(_wrap_BezierTriangle_jacobian_matrix), -1);
17716     rb_define_method(cBezierTriangle.klass, "bound_jacobian", VALUEFUNC(_wrap_BezierTriangle_bound_jacobian), -1);
17717     rb_define_method(cBezierTriangle.klass, "small_angle", VALUEFUNC(_wrap_BezierTriangle_small_angle), -1);
17718     rb_define_method(cBezierTriangle.klass, "is_inverted", VALUEFUNC(_wrap_BezierTriangle_is_inverted), -1);
17719     rb_define_method(cBezierTriangle.klass, "circumcenter", VALUEFUNC(_wrap_BezierTriangle_circumcenter), -1);
17720     rb_define_method(cBezierTriangle.klass, "print", VALUEFUNC(_wrap_BezierTriangle_print), -1);
17721     rb_define_method(cBezierTriangle.klass, "print_mathematica", VALUEFUNC(_wrap_BezierTriangle_print_mathematica), -1);
17722     cBezierTriangle.mark = 0;
17723     cBezierTriangle.destroy = (void (*)(void *)) free_BezierTriangle;
17724     
17725     cGhostTriangle.klass = rb_define_class_under(mTumble, "GhostTriangle", ((swig_class *) SWIGTYPE_p_CurvedTriangle->clientdata)->klass);
17726     SWIG_TypeClientData(SWIGTYPE_p_GhostTriangle, (void *) &cGhostTriangle);
17727     rb_define_alloc_func(cGhostTriangle.klass, _wrap_GhostTriangle_allocate);
17728     rb_define_method(cGhostTriangle.klass, "initialize", VALUEFUNC(_wrap_new_GhostTriangle), -1);
17729     rb_define_method(cGhostTriangle.klass, "cp=", VALUEFUNC(_wrap_GhostTriangle_cp_set), -1);
17730     rb_define_method(cGhostTriangle.klass, "cp", VALUEFUNC(_wrap_GhostTriangle_cp_get), -1);
17731     rb_define_method(cGhostTriangle.klass, "dp=", VALUEFUNC(_wrap_GhostTriangle_dp_set), -1);
17732     rb_define_method(cGhostTriangle.klass, "dp", VALUEFUNC(_wrap_GhostTriangle_dp_get), -1);
17733     rb_define_method(cGhostTriangle.klass, "set_cp", VALUEFUNC(_wrap_GhostTriangle_set_cp), -1);
17734     rb_define_method(cGhostTriangle.klass, "get_cp", VALUEFUNC(_wrap_GhostTriangle_get_cp), -1);
17735     rb_define_method(cGhostTriangle.klass, "jacobian_matrix", VALUEFUNC(_wrap_GhostTriangle_jacobian_matrix), -1);
17736     rb_define_method(cGhostTriangle.klass, "jacobian", VALUEFUNC(_wrap_GhostTriangle_jacobian), -1);
17737     rb_define_method(cGhostTriangle.klass, "dataeval", VALUEFUNC(_wrap_GhostTriangle_dataeval), -1);
17738     rb_define_method(cGhostTriangle.klass, "eval", VALUEFUNC(_wrap_GhostTriangle_eval), -1);
17739     rb_define_method(cGhostTriangle.klass, "print", VALUEFUNC(_wrap_GhostTriangle_print), -1);
17740     rb_define_method(cGhostTriangle.klass, "print_mathematica", VALUEFUNC(_wrap_GhostTriangle_print_mathematica), -1);
17741     cGhostTriangle.mark = 0;
17742     cGhostTriangle.destroy = (void (*)(void *)) free_GhostTriangle;
17743     
17744     cBezierTuple.klass = rb_define_class_under(mTumble, "BezierTuple", rb_cObject);
17745     SWIG_TypeClientData(SWIGTYPE_p_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t, (void *) &cBezierTuple);
17746     rb_define_alloc_func(cBezierTuple.klass, _wrap_BezierTuple_allocate);
17747     rb_define_method(cBezierTuple.klass, "initialize", VALUEFUNC(_wrap_new_BezierTuple), -1);
17748     rb_define_method(cBezierTuple.klass, "v=", VALUEFUNC(_wrap_BezierTuple_v_set), -1);
17749     rb_define_method(cBezierTuple.klass, "v", VALUEFUNC(_wrap_BezierTuple_v_get), -1);
17750     rb_define_method(cBezierTuple.klass, "e=", VALUEFUNC(_wrap_BezierTuple_e_set), -1);
17751     rb_define_method(cBezierTuple.klass, "e", VALUEFUNC(_wrap_BezierTuple_e_get), -1);
17752     rb_define_method(cBezierTuple.klass, "f=", VALUEFUNC(_wrap_BezierTuple_f_set), -1);
17753     rb_define_method(cBezierTuple.klass, "f", VALUEFUNC(_wrap_BezierTuple_f_get), -1);
17754     rb_define_method(cBezierTuple.klass, "print", VALUEFUNC(_wrap_BezierTuple_print), -1);
17755     rb_define_method(cBezierTuple.klass, "print_detail", VALUEFUNC(_wrap_BezierTuple_print_detail), -1);
17756     cBezierTuple.mark = 0;
17757     cBezierTuple.destroy = (void (*)(void *)) free_CellTuplelBezierVertexcBezierEdgecBezierTriangle_g___;
17758     
17759     cBoundaryTuple.klass = rb_define_class_under(mTumble, "BoundaryTuple", rb_cObject);
17760     SWIG_TypeClientData(SWIGTYPE_p_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t, (void *) &cBoundaryTuple);
17761     rb_define_alloc_func(cBoundaryTuple.klass, _wrap_BoundaryTuple_allocate);
17762     rb_define_method(cBoundaryTuple.klass, "initialize", VALUEFUNC(_wrap_new_BoundaryTuple), -1);
17763     rb_define_method(cBoundaryTuple.klass, "v=", VALUEFUNC(_wrap_BoundaryTuple_v_set), -1);
17764     rb_define_method(cBoundaryTuple.klass, "v", VALUEFUNC(_wrap_BoundaryTuple_v_get), -1);
17765     rb_define_method(cBoundaryTuple.klass, "e=", VALUEFUNC(_wrap_BoundaryTuple_e_set), -1);
17766     rb_define_method(cBoundaryTuple.klass, "e", VALUEFUNC(_wrap_BoundaryTuple_e_get), -1);
17767     rb_define_method(cBoundaryTuple.klass, "f=", VALUEFUNC(_wrap_BoundaryTuple_f_set), -1);
17768     rb_define_method(cBoundaryTuple.klass, "f", VALUEFUNC(_wrap_BoundaryTuple_f_get), -1);
17769     rb_define_method(cBoundaryTuple.klass, "print", VALUEFUNC(_wrap_BoundaryTuple_print), -1);
17770     rb_define_method(cBoundaryTuple.klass, "print_detail", VALUEFUNC(_wrap_BoundaryTuple_print_detail), -1);
17771     cBoundaryTuple.mark = 0;
17772     cBoundaryTuple.destroy = (void (*)(void *)) free_CellTuplelBoundaryVertexcBoundaryEdgecBoundaryFace_g___;
17773     
17774     cQBSpline.klass = rb_define_class_under(mTumble, "QBSpline", rb_cObject);
17775     SWIG_TypeClientData(SWIGTYPE_p_QBSpline, (void *) &cQBSpline);
17776     rb_define_alloc_func(cQBSpline.klass, _wrap_QBSpline_allocate);
17777     rb_define_method(cQBSpline.klass, "initialize", VALUEFUNC(_wrap_new_QBSpline), -1);
17778     rb_define_method(cQBSpline.klass, "b=", VALUEFUNC(_wrap_QBSpline_b_set), -1);
17779     rb_define_method(cQBSpline.klass, "b", VALUEFUNC(_wrap_QBSpline_b_get), -1);
17780     rb_define_method(cQBSpline.klass, "k=", VALUEFUNC(_wrap_QBSpline_k_set), -1);
17781     rb_define_method(cQBSpline.klass, "k", VALUEFUNC(_wrap_QBSpline_k_get), -1);
17782     rb_define_method(cQBSpline.klass, "vertexs=", VALUEFUNC(_wrap_QBSpline_vertexs_set), -1);
17783     rb_define_method(cQBSpline.klass, "vertexs", VALUEFUNC(_wrap_QBSpline_vertexs_get), -1);
17784     rb_define_method(cQBSpline.klass, "closed=", VALUEFUNC(_wrap_QBSpline_closed_set), -1);
17785     rb_define_method(cQBSpline.klass, "closed", VALUEFUNC(_wrap_QBSpline_closed_get), -1);
17786     rb_define_method(cQBSpline.klass, "restlength=", VALUEFUNC(_wrap_QBSpline_restlength_set), -1);
17787     rb_define_method(cQBSpline.klass, "restlength", VALUEFUNC(_wrap_QBSpline_restlength_get), -1);
17788     rb_define_method(cQBSpline.klass, "bdry_mesh=", VALUEFUNC(_wrap_QBSpline_bdry_mesh_set), -1);
17789     rb_define_method(cQBSpline.klass, "bdry_mesh", VALUEFUNC(_wrap_QBSpline_bdry_mesh_get), -1);
17790     rb_define_method(cQBSpline.klass, "set_bezier_vertex", VALUEFUNC(_wrap_QBSpline_set_bezier_vertex), -1);
17791     rb_define_method(cQBSpline.klass, "move", VALUEFUNC(_wrap_QBSpline_move), -1);
17792     rb_define_method(cQBSpline.klass, "add_knot", VALUEFUNC(_wrap_QBSpline_add_knot), -1);
17793     rb_define_method(cQBSpline.klass, "remove_knot", VALUEFUNC(_wrap_QBSpline_remove_knot), -1);
17794     rb_define_method(cQBSpline.klass, "get_num_segments", VALUEFUNC(_wrap_QBSpline_get_num_segments), -1);
17795     rb_define_method(cQBSpline.klass, "get_num_deboor", VALUEFUNC(_wrap_QBSpline_get_num_deboor), -1);
17796     rb_define_method(cQBSpline.klass, "get_deboor", VALUEFUNC(_wrap_QBSpline_get_deboor), -1);
17797     rb_define_method(cQBSpline.klass, "getip", VALUEFUNC(_wrap_QBSpline_getip), -1);
17798     rb_define_method(cQBSpline.klass, "evaluate", VALUEFUNC(_wrap_QBSpline_evaluate), -1);
17799     rb_define_method(cQBSpline.klass, "evaluate_segment", VALUEFUNC(_wrap_QBSpline_evaluate_segment), -1);
17800     rb_define_method(cQBSpline.klass, "get_closest_knot", VALUEFUNC(_wrap_QBSpline_get_closest_knot), -1);
17801     rb_define_method(cQBSpline.klass, "get_closest_bezier", VALUEFUNC(_wrap_QBSpline_get_closest_bezier), -1);
17802     rb_define_method(cQBSpline.klass, "get_edge_cps", VALUEFUNC(_wrap_QBSpline_get_edge_cps), -1);
17803     rb_define_method(cQBSpline.klass, "get_segment_center", VALUEFUNC(_wrap_QBSpline_get_segment_center), -1);
17804     rb_define_method(cQBSpline.klass, "douglas_peucker", VALUEFUNC(_wrap_QBSpline_douglas_peucker), -1);
17805     rb_define_method(cQBSpline.klass, "bbox", VALUEFUNC(_wrap_QBSpline_bbox), -1);
17806     rb_define_method(cQBSpline.klass, "print", VALUEFUNC(_wrap_QBSpline_print), -1);
17807     cQBSpline.mark = 0;
17808     cQBSpline.destroy = (void (*)(void *)) free_QBSpline;
17809     
17810     cBezierComplex.klass = rb_define_class_under(mTumble, "BezierComplex", rb_cObject);
17811     SWIG_TypeClientData(SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t, (void *) &cBezierComplex);
17812     rb_define_alloc_func(cBezierComplex.klass, _wrap_BezierComplex_allocate);
17813     rb_define_method(cBezierComplex.klass, "initialize", VALUEFUNC(_wrap_new_BezierComplex), -1);
17814     rb_define_method(cBezierComplex.klass, "import_mesh", VALUEFUNC(_wrap_BezierComplex_import_mesh), -1);
17815     rb_define_method(cBezierComplex.klass, "add_cp", VALUEFUNC(_wrap_BezierComplex_add_cp), -1);
17816     rb_define_method(cBezierComplex.klass, "rem_cp", VALUEFUNC(_wrap_BezierComplex_rem_cp), -1);
17817     rb_define_method(cBezierComplex.klass, "add_dp", VALUEFUNC(_wrap_BezierComplex_add_dp), -1);
17818     rb_define_method(cBezierComplex.klass, "rem_dp", VALUEFUNC(_wrap_BezierComplex_rem_dp), -1);
17819     rb_define_method(cBezierComplex.klass, "add_vertex", VALUEFUNC(_wrap_BezierComplex_add_vertex), -1);
17820     rb_define_method(cBezierComplex.klass, "add_edge", VALUEFUNC(_wrap_BezierComplex_add_edge), -1);
17821     rb_define_method(cBezierComplex.klass, "add_face", VALUEFUNC(_wrap_BezierComplex_add_face), -1);
17822     rb_define_method(cBezierComplex.klass, "delete_vertex", VALUEFUNC(_wrap_BezierComplex_delete_vertex), -1);
17823     rb_define_method(cBezierComplex.klass, "delete_edge", VALUEFUNC(_wrap_BezierComplex_delete_edge), -1);
17824     rb_define_method(cBezierComplex.klass, "delete_face", VALUEFUNC(_wrap_BezierComplex_delete_face), -1);
17825     rb_define_method(cBezierComplex.klass, "is_member", VALUEFUNC(_wrap_BezierComplex_is_member), -1);
17826     rb_define_method(cBezierComplex.klass, "lower", VALUEFUNC(_wrap_BezierComplex_lower), -1);
17827     rb_define_method(cBezierComplex.klass, "upper", VALUEFUNC(_wrap_BezierComplex_upper), -1);
17828     rb_define_method(cBezierComplex.klass, "get_opposite_vertex", VALUEFUNC(_wrap_BezierComplex_get_opposite_vertex), -1);
17829     rb_define_method(cBezierComplex.klass, "get_opposite_face", VALUEFUNC(_wrap_BezierComplex_get_opposite_face), -1);
17830     rb_define_method(cBezierComplex.klass, "enqueue_faces", VALUEFUNC(_wrap_BezierComplex_enqueue_faces), -1);
17831     rb_define_method(cBezierComplex.klass, "enqueue_edges", VALUEFUNC(_wrap_BezierComplex_enqueue_edges), -1);
17832     rb_define_method(cBezierComplex.klass, "find_common_edge", VALUEFUNC(_wrap_BezierComplex_find_common_edge), -1);
17833     rb_define_method(cBezierComplex.klass, "find_adjacent_faces", VALUEFUNC(_wrap_BezierComplex_find_adjacent_faces), -1);
17834     rb_define_method(cBezierComplex.klass, "find_adjacent_edges", VALUEFUNC(_wrap_BezierComplex_find_adjacent_edges), -1);
17835     rb_define_method(cBezierComplex.klass, "Switch", VALUEFUNC(_wrap_BezierComplex_Switch), -1);
17836     rb_define_method(cBezierComplex.klass, "get_tuple", VALUEFUNC(_wrap_BezierComplex_get_tuple), -1);
17837     rb_define_method(cBezierComplex.klass, "is_ccw_tuple", VALUEFUNC(_wrap_BezierComplex_is_ccw_tuple), -1);
17838     rb_define_method(cBezierComplex.klass, "is_inverted", VALUEFUNC(_wrap_BezierComplex_is_inverted), -1);
17839     rb_define_method(cBezierComplex.klass, "print", VALUEFUNC(_wrap_BezierComplex_print), -1);
17840     rb_define_method(cBezierComplex.klass, "print_statistics", VALUEFUNC(_wrap_BezierComplex_print_statistics), -1);
17841     rb_define_method(cBezierComplex.klass, "num_vertexs=", VALUEFUNC(_wrap_BezierComplex_num_vertexs_set), -1);
17842     rb_define_method(cBezierComplex.klass, "num_vertexs", VALUEFUNC(_wrap_BezierComplex_num_vertexs_get), -1);
17843     rb_define_method(cBezierComplex.klass, "num_edges=", VALUEFUNC(_wrap_BezierComplex_num_edges_set), -1);
17844     rb_define_method(cBezierComplex.klass, "num_edges", VALUEFUNC(_wrap_BezierComplex_num_edges_get), -1);
17845     rb_define_method(cBezierComplex.klass, "num_faces=", VALUEFUNC(_wrap_BezierComplex_num_faces_set), -1);
17846     rb_define_method(cBezierComplex.klass, "num_faces", VALUEFUNC(_wrap_BezierComplex_num_faces_get), -1);
17847     rb_define_method(cBezierComplex.klass, "control_points=", VALUEFUNC(_wrap_BezierComplex_control_points_set), -1);
17848     rb_define_method(cBezierComplex.klass, "control_points", VALUEFUNC(_wrap_BezierComplex_control_points_get), -1);
17849     rb_define_method(cBezierComplex.klass, "data_points=", VALUEFUNC(_wrap_BezierComplex_data_points_set), -1);
17850     rb_define_method(cBezierComplex.klass, "data_points", VALUEFUNC(_wrap_BezierComplex_data_points_get), -1);
17851     rb_define_method(cBezierComplex.klass, "data_hash=", VALUEFUNC(_wrap_BezierComplex_data_hash_set), -1);
17852     rb_define_method(cBezierComplex.klass, "data_hash", VALUEFUNC(_wrap_BezierComplex_data_hash_get), -1);
17853     rb_define_method(cBezierComplex.klass, "vertexs=", VALUEFUNC(_wrap_BezierComplex_vertexs_set), -1);
17854     rb_define_method(cBezierComplex.klass, "vertexs", VALUEFUNC(_wrap_BezierComplex_vertexs_get), -1);
17855     rb_define_method(cBezierComplex.klass, "edges=", VALUEFUNC(_wrap_BezierComplex_edges_set), -1);
17856     rb_define_method(cBezierComplex.klass, "edges", VALUEFUNC(_wrap_BezierComplex_edges_get), -1);
17857     rb_define_method(cBezierComplex.klass, "faces=", VALUEFUNC(_wrap_BezierComplex_faces_set), -1);
17858     rb_define_method(cBezierComplex.klass, "faces", VALUEFUNC(_wrap_BezierComplex_faces_get), -1);
17859     cBezierComplex.mark = 0;
17860     cBezierComplex.destroy = (void (*)(void *)) free_CellComplexlBezierVertexcBezierEdgecBezierTrianglecBezierTuple_g___;
17861     
17862     cBoundaryComplex.klass = rb_define_class_under(mTumble, "BoundaryComplex", rb_cObject);
17863     SWIG_TypeClientData(SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t, (void *) &cBoundaryComplex);
17864     rb_define_alloc_func(cBoundaryComplex.klass, _wrap_BoundaryComplex_allocate);
17865     rb_define_method(cBoundaryComplex.klass, "initialize", VALUEFUNC(_wrap_new_BoundaryComplex), -1);
17866     rb_define_method(cBoundaryComplex.klass, "import_mesh", VALUEFUNC(_wrap_BoundaryComplex_import_mesh), -1);
17867     rb_define_method(cBoundaryComplex.klass, "add_cp", VALUEFUNC(_wrap_BoundaryComplex_add_cp), -1);
17868     rb_define_method(cBoundaryComplex.klass, "rem_cp", VALUEFUNC(_wrap_BoundaryComplex_rem_cp), -1);
17869     rb_define_method(cBoundaryComplex.klass, "add_dp", VALUEFUNC(_wrap_BoundaryComplex_add_dp), -1);
17870     rb_define_method(cBoundaryComplex.klass, "rem_dp", VALUEFUNC(_wrap_BoundaryComplex_rem_dp), -1);
17871     rb_define_method(cBoundaryComplex.klass, "add_vertex", VALUEFUNC(_wrap_BoundaryComplex_add_vertex), -1);
17872     rb_define_method(cBoundaryComplex.klass, "add_edge", VALUEFUNC(_wrap_BoundaryComplex_add_edge), -1);
17873     rb_define_method(cBoundaryComplex.klass, "add_face", VALUEFUNC(_wrap_BoundaryComplex_add_face), -1);
17874     rb_define_method(cBoundaryComplex.klass, "delete_vertex", VALUEFUNC(_wrap_BoundaryComplex_delete_vertex), -1);
17875     rb_define_method(cBoundaryComplex.klass, "delete_edge", VALUEFUNC(_wrap_BoundaryComplex_delete_edge), -1);
17876     rb_define_method(cBoundaryComplex.klass, "delete_face", VALUEFUNC(_wrap_BoundaryComplex_delete_face), -1);
17877     rb_define_method(cBoundaryComplex.klass, "is_member", VALUEFUNC(_wrap_BoundaryComplex_is_member), -1);
17878     rb_define_method(cBoundaryComplex.klass, "lower", VALUEFUNC(_wrap_BoundaryComplex_lower), -1);
17879     rb_define_method(cBoundaryComplex.klass, "upper", VALUEFUNC(_wrap_BoundaryComplex_upper), -1);
17880     rb_define_method(cBoundaryComplex.klass, "get_opposite_vertex", VALUEFUNC(_wrap_BoundaryComplex_get_opposite_vertex), -1);
17881     rb_define_method(cBoundaryComplex.klass, "get_opposite_face", VALUEFUNC(_wrap_BoundaryComplex_get_opposite_face), -1);
17882     rb_define_method(cBoundaryComplex.klass, "enqueue_faces", VALUEFUNC(_wrap_BoundaryComplex_enqueue_faces), -1);
17883     rb_define_method(cBoundaryComplex.klass, "enqueue_edges", VALUEFUNC(_wrap_BoundaryComplex_enqueue_edges), -1);
17884     rb_define_method(cBoundaryComplex.klass, "find_common_edge", VALUEFUNC(_wrap_BoundaryComplex_find_common_edge), -1);
17885     rb_define_method(cBoundaryComplex.klass, "find_adjacent_faces", VALUEFUNC(_wrap_BoundaryComplex_find_adjacent_faces), -1);
17886     rb_define_method(cBoundaryComplex.klass, "find_adjacent_edges", VALUEFUNC(_wrap_BoundaryComplex_find_adjacent_edges), -1);
17887     rb_define_method(cBoundaryComplex.klass, "Switch", VALUEFUNC(_wrap_BoundaryComplex_Switch), -1);
17888     rb_define_method(cBoundaryComplex.klass, "get_tuple", VALUEFUNC(_wrap_BoundaryComplex_get_tuple), -1);
17889     rb_define_method(cBoundaryComplex.klass, "is_ccw_tuple", VALUEFUNC(_wrap_BoundaryComplex_is_ccw_tuple), -1);
17890     rb_define_method(cBoundaryComplex.klass, "is_inverted", VALUEFUNC(_wrap_BoundaryComplex_is_inverted), -1);
17891     rb_define_method(cBoundaryComplex.klass, "print", VALUEFUNC(_wrap_BoundaryComplex_print), -1);
17892     rb_define_method(cBoundaryComplex.klass, "print_statistics", VALUEFUNC(_wrap_BoundaryComplex_print_statistics), -1);
17893     rb_define_method(cBoundaryComplex.klass, "num_vertexs=", VALUEFUNC(_wrap_BoundaryComplex_num_vertexs_set), -1);
17894     rb_define_method(cBoundaryComplex.klass, "num_vertexs", VALUEFUNC(_wrap_BoundaryComplex_num_vertexs_get), -1);
17895     rb_define_method(cBoundaryComplex.klass, "num_edges=", VALUEFUNC(_wrap_BoundaryComplex_num_edges_set), -1);
17896     rb_define_method(cBoundaryComplex.klass, "num_edges", VALUEFUNC(_wrap_BoundaryComplex_num_edges_get), -1);
17897     rb_define_method(cBoundaryComplex.klass, "num_faces=", VALUEFUNC(_wrap_BoundaryComplex_num_faces_set), -1);
17898     rb_define_method(cBoundaryComplex.klass, "num_faces", VALUEFUNC(_wrap_BoundaryComplex_num_faces_get), -1);
17899     rb_define_method(cBoundaryComplex.klass, "control_points=", VALUEFUNC(_wrap_BoundaryComplex_control_points_set), -1);
17900     rb_define_method(cBoundaryComplex.klass, "control_points", VALUEFUNC(_wrap_BoundaryComplex_control_points_get), -1);
17901     rb_define_method(cBoundaryComplex.klass, "data_points=", VALUEFUNC(_wrap_BoundaryComplex_data_points_set), -1);
17902     rb_define_method(cBoundaryComplex.klass, "data_points", VALUEFUNC(_wrap_BoundaryComplex_data_points_get), -1);
17903     rb_define_method(cBoundaryComplex.klass, "data_hash=", VALUEFUNC(_wrap_BoundaryComplex_data_hash_set), -1);
17904     rb_define_method(cBoundaryComplex.klass, "data_hash", VALUEFUNC(_wrap_BoundaryComplex_data_hash_get), -1);
17905     rb_define_method(cBoundaryComplex.klass, "vertexs=", VALUEFUNC(_wrap_BoundaryComplex_vertexs_set), -1);
17906     rb_define_method(cBoundaryComplex.klass, "vertexs", VALUEFUNC(_wrap_BoundaryComplex_vertexs_get), -1);
17907     rb_define_method(cBoundaryComplex.klass, "edges=", VALUEFUNC(_wrap_BoundaryComplex_edges_set), -1);
17908     rb_define_method(cBoundaryComplex.klass, "edges", VALUEFUNC(_wrap_BoundaryComplex_edges_get), -1);
17909     rb_define_method(cBoundaryComplex.klass, "faces=", VALUEFUNC(_wrap_BoundaryComplex_faces_set), -1);
17910     rb_define_method(cBoundaryComplex.klass, "faces", VALUEFUNC(_wrap_BoundaryComplex_faces_get), -1);
17911     cBoundaryComplex.mark = 0;
17912     cBoundaryComplex.destroy = (void (*)(void *)) free_CellComplexlBoundaryVertexcBoundaryEdgecBoundaryFacecBoundaryTuple_g___;
17913     
17914     cBoundaryMesh.klass = rb_define_class_under(mTumble, "BoundaryMesh", ((swig_class *) SWIGTYPE_p_CellComplexTBoundaryVertex_BoundaryEdge_BoundaryFace_CellTupleTBoundaryVertex_BoundaryEdge_BoundaryFace_t_t->clientdata)->klass);
17915     SWIG_TypeClientData(SWIGTYPE_p_BoundaryMesh, (void *) &cBoundaryMesh);
17916     rb_define_alloc_func(cBoundaryMesh.klass, _wrap_BoundaryMesh_allocate);
17917     rb_define_method(cBoundaryMesh.klass, "initialize", VALUEFUNC(_wrap_new_BoundaryMesh), -1);
17918     rb_define_method(cBoundaryMesh.klass, "beziermesh=", VALUEFUNC(_wrap_BoundaryMesh_beziermesh_set), -1);
17919     rb_define_method(cBoundaryMesh.klass, "beziermesh", VALUEFUNC(_wrap_BoundaryMesh_beziermesh_get), -1);
17920     rb_define_method(cBoundaryMesh.klass, "add_boundary_vertex", VALUEFUNC(_wrap_BoundaryMesh_add_boundary_vertex), -1);
17921     rb_define_method(cBoundaryMesh.klass, "add_boundary_edge", VALUEFUNC(_wrap_BoundaryMesh_add_boundary_edge), -1);
17922     rb_define_method(cBoundaryMesh.klass, "add_boundary_face", VALUEFUNC(_wrap_BoundaryMesh_add_boundary_face), -1);
17923     rb_define_method(cBoundaryMesh.klass, "bbox", VALUEFUNC(_wrap_BoundaryMesh_bbox), -1);
17924     cBoundaryMesh.mark = 0;
17925     cBoundaryMesh.destroy = (void (*)(void *)) free_BoundaryMesh;
17926     
17927     cBezierMesh.klass = rb_define_class_under(mTumble, "BezierMesh", ((swig_class *) SWIGTYPE_p_CellComplexTBezierVertex_BezierEdge_BezierTriangle_CellTupleTBezierVertex_BezierEdge_BezierTriangle_t_t->clientdata)->klass);
17928     SWIG_TypeClientData(SWIGTYPE_p_BezierMesh, (void *) &cBezierMesh);
17929     rb_define_alloc_func(cBezierMesh.klass, _wrap_BezierMesh_allocate);
17930     rb_define_method(cBezierMesh.klass, "initialize", VALUEFUNC(_wrap_new_BezierMesh), -1);
17931     rb_define_method(cBezierMesh.klass, "boundarymesh=", VALUEFUNC(_wrap_BezierMesh_boundarymesh_set), -1);
17932     rb_define_method(cBezierMesh.klass, "boundarymesh", VALUEFUNC(_wrap_BezierMesh_boundarymesh_get), -1);
17933     rb_define_method(cBezierMesh.klass, "en_vertex_vector=", VALUEFUNC(_wrap_BezierMesh_en_vertex_vector_set), -1);
17934     rb_define_method(cBezierMesh.klass, "en_vertex_vector", VALUEFUNC(_wrap_BezierMesh_en_vertex_vector_get), -1);
17935     rb_define_method(cBezierMesh.klass, "en_edge_vector=", VALUEFUNC(_wrap_BezierMesh_en_edge_vector_set), -1);
17936     rb_define_method(cBezierMesh.klass, "en_edge_vector", VALUEFUNC(_wrap_BezierMesh_en_edge_vector_get), -1);
17937     rb_define_method(cBezierMesh.klass, "en_face_vector=", VALUEFUNC(_wrap_BezierMesh_en_face_vector_set), -1);
17938     rb_define_method(cBezierMesh.klass, "en_face_vector", VALUEFUNC(_wrap_BezierMesh_en_face_vector_get), -1);
17939     rb_define_method(cBezierMesh.klass, "en_bedge_vector=", VALUEFUNC(_wrap_BezierMesh_en_bedge_vector_set), -1);
17940     rb_define_method(cBezierMesh.klass, "en_bedge_vector", VALUEFUNC(_wrap_BezierMesh_en_bedge_vector_get), -1);
17941     rb_define_method(cBezierMesh.klass, "set_linear_flips", VALUEFUNC(_wrap_BezierMesh_set_linear_flips), -1);
17942     rb_define_method(cBezierMesh.klass, "add_bezier_vertex", VALUEFUNC(_wrap_BezierMesh_add_bezier_vertex), -1);
17943     rb_define_method(cBezierMesh.klass, "add_bezier_edge", VALUEFUNC(_wrap_BezierMesh_add_bezier_edge), -1);
17944     rb_define_method(cBezierMesh.klass, "add_bezier_triangle", VALUEFUNC(_wrap_BezierMesh_add_bezier_triangle), -1);
17945     rb_define_method(cBezierMesh.klass, "clean_insert_point", VALUEFUNC(_wrap_BezierMesh_clean_insert_point), -1);
17946     rb_define_method(cBezierMesh.klass, "clean_insert_edge_midpoint", VALUEFUNC(_wrap_BezierMesh_clean_insert_edge_midpoint), -1);
17947     rb_define_method(cBezierMesh.klass, "remove_vertex", VALUEFUNC(_wrap_BezierMesh_remove_vertex), -1);
17948     rb_define_method(cBezierMesh.klass, "smooth_edge", VALUEFUNC(_wrap_BezierMesh_smooth_edge), -1);
17949     rb_define_method(cBezierMesh.klass, "flip", VALUEFUNC(_wrap_BezierMesh_flip), -1);
17950     rb_define_method(cBezierMesh.klass, "should_flip", VALUEFUNC(_wrap_BezierMesh_should_flip), -1);
17951     rb_define_method(cBezierMesh.klass, "can_flip", VALUEFUNC(_wrap_BezierMesh_can_flip), -1);
17952     rb_define_method(cBezierMesh.klass, "can_smooth", VALUEFUNC(_wrap_BezierMesh_can_smooth), -1);
17953     rb_define_method(cBezierMesh.klass, "blind_locate_point", VALUEFUNC(_wrap_BezierMesh_blind_locate_point), -1);
17954     rb_define_method(cBezierMesh.klass, "locate_point", VALUEFUNC(_wrap_BezierMesh_locate_point), -1);
17955     rb_define_method(cBezierMesh.klass, "enumerate", VALUEFUNC(_wrap_BezierMesh_enumerate), -1);
17956     rb_define_method(cBezierMesh.klass, "en_vertex", VALUEFUNC(_wrap_BezierMesh_en_vertex), -1);
17957     rb_define_method(cBezierMesh.klass, "en_edge", VALUEFUNC(_wrap_BezierMesh_en_edge), -1);
17958     rb_define_method(cBezierMesh.klass, "en_face", VALUEFUNC(_wrap_BezierMesh_en_face), -1);
17959     rb_define_method(cBezierMesh.klass, "en_bedge", VALUEFUNC(_wrap_BezierMesh_en_bedge), -1);
17960     cBezierMesh.mark = 0;
17961     cBezierMesh.destroy = (void (*)(void *)) free_BezierMesh;
17962     
17963     cMeshInput.klass = rb_define_class_under(mTumble, "MeshInput", rb_cObject);
17964     SWIG_TypeClientData(SWIGTYPE_p_MeshInput, (void *) &cMeshInput);
17965     rb_define_alloc_func(cMeshInput.klass, _wrap_MeshInput_allocate);
17966     rb_define_method(cMeshInput.klass, "initialize", VALUEFUNC(_wrap_new_MeshInput), -1);
17967     rb_define_method(cMeshInput.klass, "read", VALUEFUNC(_wrap_MeshInput_read), -1);
17968     cMeshInput.mark = 0;
17969     cMeshInput.destroy = (void (*)(void *)) free_MeshInput;
17970     
17971     cMeshOutput.klass = rb_define_class_under(mTumble, "MeshOutput", rb_cObject);
17972     SWIG_TypeClientData(SWIGTYPE_p_MeshOutput, (void *) &cMeshOutput);
17973     rb_define_alloc_func(cMeshOutput.klass, _wrap_MeshOutput_allocate);
17974     rb_define_method(cMeshOutput.klass, "initialize", VALUEFUNC(_wrap_new_MeshOutput), -1);
17975     rb_define_method(cMeshOutput.klass, "write", VALUEFUNC(_wrap_MeshOutput_write), -1);
17976     cMeshOutput.mark = 0;
17977     cMeshOutput.destroy = (void (*)(void *)) free_MeshOutput;
17978     
17979     cSimulation.klass = rb_define_class_under(mTumble, "Simulation", rb_cObject);
17980     SWIG_TypeClientData(SWIGTYPE_p_Simulation, (void *) &cSimulation);
17981     rb_define_alloc_func(cSimulation.klass, _wrap_Simulation_allocate);
17982     rb_define_method(cSimulation.klass, "initialize", VALUEFUNC(_wrap_new_Simulation), -1);
17983     rb_define_method(cSimulation.klass, "bdry_mesh=", VALUEFUNC(_wrap_Simulation_bdry_mesh_set), -1);
17984     rb_define_method(cSimulation.klass, "bdry_mesh", VALUEFUNC(_wrap_Simulation_bdry_mesh_get), -1);
17985     rb_define_method(cSimulation.klass, "bezier_mesh=", VALUEFUNC(_wrap_Simulation_bezier_mesh_set), -1);
17986     rb_define_method(cSimulation.klass, "bezier_mesh", VALUEFUNC(_wrap_Simulation_bezier_mesh_get), -1);
17987     rb_define_method(cSimulation.klass, "timekeeper=", VALUEFUNC(_wrap_Simulation_timekeeper_set), -1);
17988     rb_define_method(cSimulation.klass, "timekeeper", VALUEFUNC(_wrap_Simulation_timekeeper_get), -1);
17989     rb_define_method(cSimulation.klass, "get_bezier_mesh", VALUEFUNC(_wrap_Simulation_get_bezier_mesh), -1);
17990     rb_define_method(cSimulation.klass, "get_boundary_mesh", VALUEFUNC(_wrap_Simulation_get_boundary_mesh), -1);
17991     rb_define_method(cSimulation.klass, "move", VALUEFUNC(_wrap_Simulation_move), -1);
17992     rb_define_method(cSimulation.klass, "clean", VALUEFUNC(_wrap_Simulation_clean), -1);
17993     rb_define_method(cSimulation.klass, "to_file", VALUEFUNC(_wrap_Simulation_to_file), -1);
17994     rb_define_method(cSimulation.klass, "to_eps", VALUEFUNC(_wrap_Simulation_to_eps), -1);
17995     rb_define_method(cSimulation.klass, "start_logging", VALUEFUNC(_wrap_Simulation_start_logging), -1);
17996     rb_define_method(cSimulation.klass, "print", VALUEFUNC(_wrap_Simulation_print), -1);
17997     rb_define_method(cSimulation.klass, "print_statistics", VALUEFUNC(_wrap_Simulation_print_statistics), -1);
17998     rb_define_method(cSimulation.klass, "print_times", VALUEFUNC(_wrap_Simulation_print_times), -1);
17999     cSimulation.mark = 0;
18000     cSimulation.destroy = (void (*)(void *)) free_Simulation;
18001     rb_define_const(mTumble,"EDGE_DRW_ACC", INT2NUM(8));
18002     rb_define_const(mTumble,"FACE_DRW_ACC", INT2NUM(8));
18003     
18004     cVisualization.klass = rb_define_class_under(mTumble, "Visualization", rb_cObject);
18005     SWIG_TypeClientData(SWIGTYPE_p_Visualization, (void *) &cVisualization);
18006     rb_define_alloc_func(cVisualization.klass, _wrap_Visualization_allocate);
18007     rb_define_method(cVisualization.klass, "initialize", VALUEFUNC(_wrap_new_Visualization), -1);
18008     rb_define_method(cVisualization.klass, "world_top=", VALUEFUNC(_wrap_Visualization_world_top_set), -1);
18009     rb_define_method(cVisualization.klass, "world_top", VALUEFUNC(_wrap_Visualization_world_top_get), -1);
18010     rb_define_method(cVisualization.klass, "world_bot=", VALUEFUNC(_wrap_Visualization_world_bot_set), -1);
18011     rb_define_method(cVisualization.klass, "world_bot", VALUEFUNC(_wrap_Visualization_world_bot_get), -1);
18012     rb_define_method(cVisualization.klass, "world_center=", VALUEFUNC(_wrap_Visualization_world_center_set), -1);
18013     rb_define_method(cVisualization.klass, "world_center", VALUEFUNC(_wrap_Visualization_world_center_get), -1);
18014     rb_define_method(cVisualization.klass, "world_width=", VALUEFUNC(_wrap_Visualization_world_width_set), -1);
18015     rb_define_method(cVisualization.klass, "world_width", VALUEFUNC(_wrap_Visualization_world_width_get), -1);
18016     rb_define_method(cVisualization.klass, "world_height=", VALUEFUNC(_wrap_Visualization_world_height_set), -1);
18017     rb_define_method(cVisualization.klass, "world_height", VALUEFUNC(_wrap_Visualization_world_height_get), -1);
18018     rb_define_method(cVisualization.klass, "world_ratio=", VALUEFUNC(_wrap_Visualization_world_ratio_set), -1);
18019     rb_define_method(cVisualization.klass, "world_ratio", VALUEFUNC(_wrap_Visualization_world_ratio_get), -1);
18020     rb_define_method(cVisualization.klass, "zoom_top=", VALUEFUNC(_wrap_Visualization_zoom_top_set), -1);
18021     rb_define_method(cVisualization.klass, "zoom_top", VALUEFUNC(_wrap_Visualization_zoom_top_get), -1);
18022     rb_define_method(cVisualization.klass, "zoom_bot=", VALUEFUNC(_wrap_Visualization_zoom_bot_set), -1);
18023     rb_define_method(cVisualization.klass, "zoom_bot", VALUEFUNC(_wrap_Visualization_zoom_bot_get), -1);
18024     rb_define_method(cVisualization.klass, "zoom_center=", VALUEFUNC(_wrap_Visualization_zoom_center_set), -1);
18025     rb_define_method(cVisualization.klass, "zoom_center", VALUEFUNC(_wrap_Visualization_zoom_center_get), -1);
18026     rb_define_method(cVisualization.klass, "zoom_width=", VALUEFUNC(_wrap_Visualization_zoom_width_set), -1);
18027     rb_define_method(cVisualization.klass, "zoom_width", VALUEFUNC(_wrap_Visualization_zoom_width_get), -1);
18028     rb_define_method(cVisualization.klass, "zoom_height=", VALUEFUNC(_wrap_Visualization_zoom_height_set), -1);
18029     rb_define_method(cVisualization.klass, "zoom_height", VALUEFUNC(_wrap_Visualization_zoom_height_get), -1);
18030     rb_define_method(cVisualization.klass, "zoom_ratio=", VALUEFUNC(_wrap_Visualization_zoom_ratio_set), -1);
18031     rb_define_method(cVisualization.klass, "zoom_ratio", VALUEFUNC(_wrap_Visualization_zoom_ratio_get), -1);
18032     rb_define_method(cVisualization.klass, "zoomed=", VALUEFUNC(_wrap_Visualization_zoomed_set), -1);
18033     rb_define_method(cVisualization.klass, "zoomed", VALUEFUNC(_wrap_Visualization_zoomed_get), -1);
18034     rb_define_method(cVisualization.klass, "view_top=", VALUEFUNC(_wrap_Visualization_view_top_set), -1);
18035     rb_define_method(cVisualization.klass, "view_top", VALUEFUNC(_wrap_Visualization_view_top_get), -1);
18036     rb_define_method(cVisualization.klass, "view_bot=", VALUEFUNC(_wrap_Visualization_view_bot_set), -1);
18037     rb_define_method(cVisualization.klass, "view_bot", VALUEFUNC(_wrap_Visualization_view_bot_get), -1);
18038     rb_define_method(cVisualization.klass, "screen_width=", VALUEFUNC(_wrap_Visualization_screen_width_set), -1);
18039     rb_define_method(cVisualization.klass, "screen_width", VALUEFUNC(_wrap_Visualization_screen_width_get), -1);
18040     rb_define_method(cVisualization.klass, "screen_height=", VALUEFUNC(_wrap_Visualization_screen_height_set), -1);
18041     rb_define_method(cVisualization.klass, "screen_height", VALUEFUNC(_wrap_Visualization_screen_height_get), -1);
18042     rb_define_method(cVisualization.klass, "screen_ratio=", VALUEFUNC(_wrap_Visualization_screen_ratio_set), -1);
18043     rb_define_method(cVisualization.klass, "screen_ratio", VALUEFUNC(_wrap_Visualization_screen_ratio_get), -1);
18044     rb_define_method(cVisualization.klass, "colormap=", VALUEFUNC(_wrap_Visualization_colormap_set), -1);
18045     rb_define_method(cVisualization.klass, "colormap", VALUEFUNC(_wrap_Visualization_colormap_get), -1);
18046     rb_define_method(cVisualization.klass, "bezier_mesh=", VALUEFUNC(_wrap_Visualization_bezier_mesh_set), -1);
18047     rb_define_method(cVisualization.klass, "bezier_mesh", VALUEFUNC(_wrap_Visualization_bezier_mesh_get), -1);
18048     rb_define_method(cVisualization.klass, "bdry_mesh=", VALUEFUNC(_wrap_Visualization_bdry_mesh_set), -1);
18049     rb_define_method(cVisualization.klass, "bdry_mesh", VALUEFUNC(_wrap_Visualization_bdry_mesh_get), -1);
18050     rb_define_method(cVisualization.klass, "load_color_map", VALUEFUNC(_wrap_Visualization_load_color_map), -1);
18051     rb_define_method(cVisualization.klass, "map_color", VALUEFUNC(_wrap_Visualization_map_color), -1);
18052     rb_define_method(cVisualization.klass, "write_jpeg", VALUEFUNC(_wrap_Visualization_write_jpeg), -1);
18053     rb_define_method(cVisualization.klass, "write_tiff", VALUEFUNC(_wrap_Visualization_write_tiff), -1);
18054     rb_define_method(cVisualization.klass, "write_ppm", VALUEFUNC(_wrap_Visualization_write_ppm), -1);
18055     rb_define_method(cVisualization.klass, "resize", VALUEFUNC(_wrap_Visualization_resize), -1);
18056     rb_define_method(cVisualization.klass, "compute_world_size", VALUEFUNC(_wrap_Visualization_compute_world_size), -1);
18057     rb_define_method(cVisualization.klass, "project", VALUEFUNC(_wrap_Visualization_project), -1);
18058     rb_define_method(cVisualization.klass, "convert_from_screen_coords", VALUEFUNC(_wrap_Visualization_convert_from_screen_coords), -1);
18059     rb_define_method(cVisualization.klass, "zoomin", VALUEFUNC(_wrap_Visualization_zoomin), -1);
18060     rb_define_method(cVisualization.klass, "zoomout", VALUEFUNC(_wrap_Visualization_zoomout), -1);
18061     rb_define_method(cVisualization.klass, "draw", VALUEFUNC(_wrap_Visualization_draw), -1);
18062     rb_define_method(cVisualization.klass, "draw_bezier", VALUEFUNC(_wrap_Visualization_draw_bezier), -1);
18063     rb_define_method(cVisualization.klass, "draw_solid", VALUEFUNC(_wrap_Visualization_draw_solid), -1);
18064     rb_define_method(cVisualization.klass, "draw_data", VALUEFUNC(_wrap_Visualization_draw_data), -1);
18065     rb_define_method(cVisualization.klass, "draw_debug", VALUEFUNC(_wrap_Visualization_draw_debug), -1);
18066     rb_define_method(cVisualization.klass, "draw_bdry_debug", VALUEFUNC(_wrap_Visualization_draw_bdry_debug), -1);
18067     rb_define_method(cVisualization.klass, "draw_tuple", VALUEFUNC(_wrap_Visualization_draw_tuple), -1);
18068     rb_define_method(cVisualization.klass, "draw_point", VALUEFUNC(_wrap_Visualization_draw_point), -1);
18069     rb_define_method(cVisualization.klass, "draw_boundary_vertex", VALUEFUNC(_wrap_Visualization_draw_boundary_vertex), -1);
18070     rb_define_method(cVisualization.klass, "draw_boundary_edge", VALUEFUNC(_wrap_Visualization_draw_boundary_edge), -1);
18071     rb_define_method(cVisualization.klass, "draw_boundary_edge_debug", VALUEFUNC(_wrap_Visualization_draw_boundary_edge_debug), -1);
18072     rb_define_method(cVisualization.klass, "draw_bezier_vertex", VALUEFUNC(_wrap_Visualization_draw_bezier_vertex), -1);
18073     rb_define_method(cVisualization.klass, "draw_bezier_edge", VALUEFUNC(_wrap_Visualization_draw_bezier_edge), -1);
18074     rb_define_method(cVisualization.klass, "draw_bezier_triangle", VALUEFUNC(_wrap_Visualization_draw_bezier_triangle), -1);
18075     rb_define_method(cVisualization.klass, "draw_control_net", VALUEFUNC(_wrap_Visualization_draw_control_net), -1);
18076     rb_define_method(cVisualization.klass, "draw_polygon", VALUEFUNC(_wrap_Visualization_draw_polygon), -1);
18077     rb_define_method(cVisualization.klass, "draw_smooth_debug", VALUEFUNC(_wrap_Visualization_draw_smooth_debug), -1);
18078     rb_define_method(cVisualization.klass, "draw_flip_debug", VALUEFUNC(_wrap_Visualization_draw_flip_debug), -1);
18079     rb_define_method(cVisualization.klass, "start_draw", VALUEFUNC(_wrap_Visualization_start_draw), -1);
18080     rb_define_method(cVisualization.klass, "finish_draw", VALUEFUNC(_wrap_Visualization_finish_draw), -1);
18081     rb_define_method(cVisualization.klass, "is_visible", VALUEFUNC(_wrap_Visualization_is_visible), -1);
18082     rb_define_method(cVisualization.klass, "visual_locate", VALUEFUNC(_wrap_Visualization_visual_locate), -1);
18083     rb_define_method(cVisualization.klass, "visual_switch", VALUEFUNC(_wrap_Visualization_visual_switch), -1);
18084     cVisualization.mark = 0;
18085     cVisualization.destroy = (void (*)(void *)) free_Visualization;
18086     
18087     cColor.klass = rb_define_class_under(mTumble, "Color", rb_cObject);
18088     SWIG_TypeClientData(SWIGTYPE_p_Color, (void *) &cColor);
18089     rb_define_alloc_func(cColor.klass, _wrap_Color_allocate);
18090     rb_define_method(cColor.klass, "initialize", VALUEFUNC(_wrap_new_Color), -1);
18091     rb_define_method(cColor.klass, "v=", VALUEFUNC(_wrap_Color_v_set), -1);
18092     rb_define_method(cColor.klass, "v", VALUEFUNC(_wrap_Color_v_get), -1);
18093     rb_define_method(cColor.klass, "assign", VALUEFUNC(_wrap_Color_assign), -1);
18094     rb_define_method(cColor.klass, "R", VALUEFUNC(_wrap_Color_R), -1);
18095     rb_define_method(cColor.klass, "G", VALUEFUNC(_wrap_Color_G), -1);
18096     rb_define_method(cColor.klass, "B", VALUEFUNC(_wrap_Color_B), -1);
18097     rb_define_method(cColor.klass, "is_valid", VALUEFUNC(_wrap_Color_is_valid), -1);
18098     cColor.mark = 0;
18099     cColor.destroy = (void (*)(void *)) free_Color;
18100     rb_define_module_function(mTumble, "default_opengl_color_map", VALUEFUNC(_wrap_default_opengl_color_map), -1);
18101     rb_define_module_function(mTumble, "default_eps_rgb_map", VALUEFUNC(_wrap_default_eps_rgb_map), -1);
18102     rb_define_module_function(mTumble, "default_eps_grayscale_map", VALUEFUNC(_wrap_default_eps_grayscale_map), -1);
18103     rb_define_module_function(mTumble, "load_map", VALUEFUNC(_wrap_load_map), -1);
18104     rb_define_const(mTumble,"DRAW_OFF", INT2NUM(0));
18105     rb_define_const(mTumble,"DRAW_GRAYSCALE", INT2NUM(1));
18106     rb_define_const(mTumble,"DRAW_RGB", INT2NUM(2));
18107     
18108     cPSCoord.klass = rb_define_class_under(mTumble, "PSCoord", rb_cObject);
18109     SWIG_TypeClientData(SWIGTYPE_p_PSCoord, (void *) &cPSCoord);
18110     rb_define_alloc_func(cPSCoord.klass, _wrap_PSCoord_allocate);
18111     rb_define_method(cPSCoord.klass, "initialize", VALUEFUNC(_wrap_new_PSCoord), -1);
18112     rb_define_method(cPSCoord.klass, "x=", VALUEFUNC(_wrap_PSCoord_x_set), -1);
18113     rb_define_method(cPSCoord.klass, "x", VALUEFUNC(_wrap_PSCoord_x_get), -1);
18114     rb_define_method(cPSCoord.klass, "y=", VALUEFUNC(_wrap_PSCoord_y_set), -1);
18115     rb_define_method(cPSCoord.klass, "y", VALUEFUNC(_wrap_PSCoord_y_get), -1);
18116     cPSCoord.mark = 0;
18117     cPSCoord.destroy = (void (*)(void *)) free_PSCoord;
18118     
18119     cPSDrawMode.klass = rb_define_class_under(mTumble, "PSDrawMode", rb_cObject);
18120     SWIG_TypeClientData(SWIGTYPE_p_PSDrawMode, (void *) &cPSDrawMode);
18121     rb_define_alloc_func(cPSDrawMode.klass, _wrap_PSDrawMode_allocate);
18122     rb_define_method(cPSDrawMode.klass, "initialize", VALUEFUNC(_wrap_new_PSDrawMode), -1);
18123     rb_define_method(cPSDrawMode.klass, "mode=", VALUEFUNC(_wrap_PSDrawMode_mode_set), -1);
18124     rb_define_method(cPSDrawMode.klass, "mode", VALUEFUNC(_wrap_PSDrawMode_mode_get), -1);
18125     rb_define_method(cPSDrawMode.klass, "linewidth=", VALUEFUNC(_wrap_PSDrawMode_linewidth_set), -1);
18126     rb_define_method(cPSDrawMode.klass, "linewidth", VALUEFUNC(_wrap_PSDrawMode_linewidth_get), -1);
18127     rb_define_method(cPSDrawMode.klass, "grayscale=", VALUEFUNC(_wrap_PSDrawMode_grayscale_set), -1);
18128     rb_define_method(cPSDrawMode.klass, "grayscale", VALUEFUNC(_wrap_PSDrawMode_grayscale_get), -1);
18129     rb_define_method(cPSDrawMode.klass, "rgbcolor=", VALUEFUNC(_wrap_PSDrawMode_rgbcolor_set), -1);
18130     rb_define_method(cPSDrawMode.klass, "rgbcolor", VALUEFUNC(_wrap_PSDrawMode_rgbcolor_get), -1);
18131     cPSDrawMode.mark = 0;
18132     cPSDrawMode.destroy = (void (*)(void *)) free_PSDrawMode;
18133     
18134     cEPSWrite.klass = rb_define_class_under(mTumble, "EPSWrite", rb_cObject);
18135     SWIG_TypeClientData(SWIGTYPE_p_EPSWrite, (void *) &cEPSWrite);
18136     rb_define_alloc_func(cEPSWrite.klass, _wrap_EPSWrite_allocate);
18137     rb_define_method(cEPSWrite.klass, "initialize", VALUEFUNC(_wrap_new_EPSWrite), -1);
18138     rb_define_method(cEPSWrite.klass, "load_rgb_map", VALUEFUNC(_wrap_EPSWrite_load_rgb_map), -1);
18139     rb_define_method(cEPSWrite.klass, "load_grayscale_map", VALUEFUNC(_wrap_EPSWrite_load_grayscale_map), -1);
18140     rb_define_method(cEPSWrite.klass, "map_rgbcolor", VALUEFUNC(_wrap_EPSWrite_map_rgbcolor), -1);
18141     rb_define_method(cEPSWrite.klass, "map_grayscale", VALUEFUNC(_wrap_EPSWrite_map_grayscale), -1);
18142     rb_define_method(cEPSWrite.klass, "set_border_draw", VALUEFUNC(_wrap_EPSWrite_set_border_draw), -1);
18143     rb_define_method(cEPSWrite.klass, "set_border_ink", VALUEFUNC(_wrap_EPSWrite_set_border_ink), -1);
18144     rb_define_method(cEPSWrite.klass, "set_edge_draw", VALUEFUNC(_wrap_EPSWrite_set_edge_draw), -1);
18145     rb_define_method(cEPSWrite.klass, "set_edge_ink", VALUEFUNC(_wrap_EPSWrite_set_edge_ink), -1);
18146     rb_define_method(cEPSWrite.klass, "set_bdry_draw", VALUEFUNC(_wrap_EPSWrite_set_bdry_draw), -1);
18147     rb_define_method(cEPSWrite.klass, "set_bdry_ink", VALUEFUNC(_wrap_EPSWrite_set_bdry_ink), -1);
18148     rb_define_method(cEPSWrite.klass, "set_face_draw", VALUEFUNC(_wrap_EPSWrite_set_face_draw), -1);
18149     rb_define_method(cEPSWrite.klass, "set_page_dim", VALUEFUNC(_wrap_EPSWrite_set_page_dim), -1);
18150     rb_define_method(cEPSWrite.klass, "set_page_dim_inch", VALUEFUNC(_wrap_EPSWrite_set_page_dim_inch), -1);
18151     rb_define_method(cEPSWrite.klass, "set_world_view", VALUEFUNC(_wrap_EPSWrite_set_world_view), -1);
18152     rb_define_method(cEPSWrite.klass, "write", VALUEFUNC(_wrap_EPSWrite_write), -1);
18153     cEPSWrite.mark = 0;
18154     cEPSWrite.destroy = (void (*)(void *)) free_EPSWrite;
18155     
18156     cMeshConstructor.klass = rb_define_class_under(mTumble, "MeshConstructor", rb_cObject);
18157     SWIG_TypeClientData(SWIGTYPE_p_MeshConstructor, (void *) &cMeshConstructor);
18158     rb_define_alloc_func(cMeshConstructor.klass, _wrap_MeshConstructor_allocate);
18159     rb_define_method(cMeshConstructor.klass, "initialize", VALUEFUNC(_wrap_new_MeshConstructor), -1);
18160     rb_define_method(cMeshConstructor.klass, "make_simulation", VALUEFUNC(_wrap_MeshConstructor_make_simulation), -1);
18161     cMeshConstructor.mark = 0;
18162     cMeshConstructor.destroy = (void (*)(void *)) free_MeshConstructor;
18163     rb_define_const(mTumble,"PUMP_OUTER_EDGE", INT2NUM(0));
18164     rb_define_const(mTumble,"PUMP_PROP_EDGE", INT2NUM(1));
18165     rb_define_const(mTumble,"PUMP_INLET_EDGE", INT2NUM(2));
18166     rb_define_const(mTumble,"PUMP_OUTLET_EDGE", INT2NUM(3));
18167     rb_define_const(mTumble,"PUMP_CELL_EDGE", INT2NUM(4));
18168     rb_define_const(mTumble,"PUMP_PUMP_FACE", INT2NUM(0));
18169     rb_define_const(mTumble,"PUMP_CELL_FACE", INT2NUM(1));
18170     
18171     cPump.klass = rb_define_class_under(mTumble, "Pump", ((swig_class *) SWIGTYPE_p_Simulation->clientdata)->klass);
18172     SWIG_TypeClientData(SWIGTYPE_p_Pump, (void *) &cPump);
18173     rb_define_alloc_func(cPump.klass, _wrap_Pump_allocate);
18174     rb_define_method(cPump.klass, "initialize", VALUEFUNC(_wrap_new_Pump), -1);
18175     rb_define_method(cPump.klass, "outer_edges=", VALUEFUNC(_wrap_Pump_outer_edges_set), -1);
18176     rb_define_method(cPump.klass, "outer_edges", VALUEFUNC(_wrap_Pump_outer_edges_get), -1);
18177     rb_define_method(cPump.klass, "propeller_edges=", VALUEFUNC(_wrap_Pump_propeller_edges_set), -1);
18178     rb_define_method(cPump.klass, "propeller_edges", VALUEFUNC(_wrap_Pump_propeller_edges_get), -1);
18179     rb_define_method(cPump.klass, "inlet_edges=", VALUEFUNC(_wrap_Pump_inlet_edges_set), -1);
18180     rb_define_method(cPump.klass, "inlet_edges", VALUEFUNC(_wrap_Pump_inlet_edges_get), -1);
18181     rb_define_method(cPump.klass, "outlet_edge=", VALUEFUNC(_wrap_Pump_outlet_edge_set), -1);
18182     rb_define_method(cPump.klass, "outlet_edge", VALUEFUNC(_wrap_Pump_outlet_edge_get), -1);
18183     rb_define_method(cPump.klass, "pump_face=", VALUEFUNC(_wrap_Pump_pump_face_set), -1);
18184     rb_define_method(cPump.klass, "pump_face", VALUEFUNC(_wrap_Pump_pump_face_get), -1);
18185     rb_define_method(cPump.klass, "cell_edges=", VALUEFUNC(_wrap_Pump_cell_edges_set), -1);
18186     rb_define_method(cPump.klass, "cell_edges", VALUEFUNC(_wrap_Pump_cell_edges_get), -1);
18187     rb_define_method(cPump.klass, "cell_centers=", VALUEFUNC(_wrap_Pump_cell_centers_set), -1);
18188     rb_define_method(cPump.klass, "cell_centers", VALUEFUNC(_wrap_Pump_cell_centers_get), -1);
18189     rb_define_method(cPump.klass, "cell_faces=", VALUEFUNC(_wrap_Pump_cell_faces_set), -1);
18190     rb_define_method(cPump.klass, "cell_faces", VALUEFUNC(_wrap_Pump_cell_faces_get), -1);
18191     rb_define_method(cPump.klass, "center=", VALUEFUNC(_wrap_Pump_center_set), -1);
18192     rb_define_method(cPump.klass, "center", VALUEFUNC(_wrap_Pump_center_get), -1);
18193     rb_define_method(cPump.klass, "inlet_radius=", VALUEFUNC(_wrap_Pump_inlet_radius_set), -1);
18194     rb_define_method(cPump.klass, "inlet_radius", VALUEFUNC(_wrap_Pump_inlet_radius_get), -1);
18195     rb_define_method(cPump.klass, "outer_radius=", VALUEFUNC(_wrap_Pump_outer_radius_set), -1);
18196     rb_define_method(cPump.klass, "outer_radius", VALUEFUNC(_wrap_Pump_outer_radius_get), -1);
18197     rb_define_method(cPump.klass, "outlet_width=", VALUEFUNC(_wrap_Pump_outlet_width_set), -1);
18198     rb_define_method(cPump.klass, "outlet_width", VALUEFUNC(_wrap_Pump_outlet_width_get), -1);
18199     rb_define_method(cPump.klass, "outlet_length=", VALUEFUNC(_wrap_Pump_outlet_length_set), -1);
18200     rb_define_method(cPump.klass, "outlet_length", VALUEFUNC(_wrap_Pump_outlet_length_get), -1);
18201     rb_define_method(cPump.klass, "num_blades=", VALUEFUNC(_wrap_Pump_num_blades_set), -1);
18202     rb_define_method(cPump.klass, "num_blades", VALUEFUNC(_wrap_Pump_num_blades_get), -1);
18203     rb_define_method(cPump.klass, "blade_width=", VALUEFUNC(_wrap_Pump_blade_width_set), -1);
18204     rb_define_method(cPump.klass, "blade_width", VALUEFUNC(_wrap_Pump_blade_width_get), -1);
18205     rb_define_method(cPump.klass, "blade_gap=", VALUEFUNC(_wrap_Pump_blade_gap_set), -1);
18206     rb_define_method(cPump.klass, "blade_gap", VALUEFUNC(_wrap_Pump_blade_gap_get), -1);
18207     rb_define_method(cPump.klass, "velocity=", VALUEFUNC(_wrap_Pump_velocity_set), -1);
18208     rb_define_method(cPump.klass, "velocity", VALUEFUNC(_wrap_Pump_velocity_get), -1);
18209     rb_define_method(cPump.klass, "num_cells=", VALUEFUNC(_wrap_Pump_num_cells_set), -1);
18210     rb_define_method(cPump.klass, "num_cells", VALUEFUNC(_wrap_Pump_num_cells_get), -1);
18211     rb_define_method(cPump.klass, "cell_type=", VALUEFUNC(_wrap_Pump_cell_type_set), -1);
18212     rb_define_method(cPump.klass, "cell_type", VALUEFUNC(_wrap_Pump_cell_type_get), -1);
18213     rb_define_method(cPump.klass, "cell_width=", VALUEFUNC(_wrap_Pump_cell_width_set), -1);
18214     rb_define_method(cPump.klass, "cell_width", VALUEFUNC(_wrap_Pump_cell_width_get), -1);
18215     rb_define_method(cPump.klass, "cell_height=", VALUEFUNC(_wrap_Pump_cell_height_set), -1);
18216     rb_define_method(cPump.klass, "cell_height", VALUEFUNC(_wrap_Pump_cell_height_get), -1);
18217     rb_define_method(cPump.klass, "size_const=", VALUEFUNC(_wrap_Pump_size_const_set), -1);
18218     rb_define_method(cPump.klass, "size_const", VALUEFUNC(_wrap_Pump_size_const_get), -1);
18219     rb_define_method(cPump.klass, "min_angle=", VALUEFUNC(_wrap_Pump_min_angle_set), -1);
18220     rb_define_method(cPump.klass, "min_angle", VALUEFUNC(_wrap_Pump_min_angle_get), -1);
18221     rb_define_method(cPump.klass, "make_test", VALUEFUNC(_wrap_Pump_make_test), -1);
18222     rb_define_method(cPump.klass, "make_pump", VALUEFUNC(_wrap_Pump_make_pump), -1);
18223     cPump.mark = 0;
18224     cPump.destroy = (void (*)(void *)) free_Pump;
18225     rb_define_const(mTumble,"SLITCAVITY_CELL_EDGE", INT2NUM(4));
18226     rb_define_const(mTumble,"SLITCAVITY_FORWARD_EDGE", INT2NUM(3));
18227     rb_define_const(mTumble,"SLITCAVITY_REAR_EDGE", INT2NUM(2));
18228     rb_define_const(mTumble,"SLITCAVITY_OUTSIDE_EDGE", INT2NUM(1));
18229     rb_define_const(mTumble,"SLITCAVITY_CAVITY_FACE", INT2NUM(1));
18230     rb_define_const(mTumble,"SLITCAVITY_CELL_FACE", INT2NUM(2));
18231     
18232     cSlitCavity.klass = rb_define_class_under(mTumble, "SlitCavity", ((swig_class *) SWIGTYPE_p_Simulation->clientdata)->klass);
18233     SWIG_TypeClientData(SWIGTYPE_p_SlitCavity, (void *) &cSlitCavity);
18234     rb_define_alloc_func(cSlitCavity.klass, _wrap_SlitCavity_allocate);
18235     rb_define_method(cSlitCavity.klass, "initialize", VALUEFUNC(_wrap_new_SlitCavity), -1);
18236     rb_define_method(cSlitCavity.klass, "outer_edges=", VALUEFUNC(_wrap_SlitCavity_outer_edges_set), -1);
18237     rb_define_method(cSlitCavity.klass, "outer_edges", VALUEFUNC(_wrap_SlitCavity_outer_edges_get), -1);
18238     rb_define_method(cSlitCavity.klass, "rear_edge=", VALUEFUNC(_wrap_SlitCavity_rear_edge_set), -1);
18239     rb_define_method(cSlitCavity.klass, "rear_edge", VALUEFUNC(_wrap_SlitCavity_rear_edge_get), -1);
18240     rb_define_method(cSlitCavity.klass, "forward_edge=", VALUEFUNC(_wrap_SlitCavity_forward_edge_set), -1);
18241     rb_define_method(cSlitCavity.klass, "forward_edge", VALUEFUNC(_wrap_SlitCavity_forward_edge_get), -1);
18242     rb_define_method(cSlitCavity.klass, "cell_edges=", VALUEFUNC(_wrap_SlitCavity_cell_edges_set), -1);
18243     rb_define_method(cSlitCavity.klass, "cell_edges", VALUEFUNC(_wrap_SlitCavity_cell_edges_get), -1);
18244     rb_define_method(cSlitCavity.klass, "cell_centers=", VALUEFUNC(_wrap_SlitCavity_cell_centers_set), -1);
18245     rb_define_method(cSlitCavity.klass, "cell_centers", VALUEFUNC(_wrap_SlitCavity_cell_centers_get), -1);
18246     rb_define_method(cSlitCavity.klass, "cell_faces=", VALUEFUNC(_wrap_SlitCavity_cell_faces_set), -1);
18247     rb_define_method(cSlitCavity.klass, "cell_faces", VALUEFUNC(_wrap_SlitCavity_cell_faces_get), -1);
18248     rb_define_method(cSlitCavity.klass, "cavity=", VALUEFUNC(_wrap_SlitCavity_cavity_set), -1);
18249     rb_define_method(cSlitCavity.klass, "cavity", VALUEFUNC(_wrap_SlitCavity_cavity_get), -1);
18250     rb_define_method(cSlitCavity.klass, "min_angle=", VALUEFUNC(_wrap_SlitCavity_min_angle_set), -1);
18251     rb_define_method(cSlitCavity.klass, "min_angle", VALUEFUNC(_wrap_SlitCavity_min_angle_get), -1);
18252     rb_define_method(cSlitCavity.klass, "num_cells=", VALUEFUNC(_wrap_SlitCavity_num_cells_set), -1);
18253     rb_define_method(cSlitCavity.klass, "num_cells", VALUEFUNC(_wrap_SlitCavity_num_cells_get), -1);
18254     rb_define_method(cSlitCavity.klass, "cell_type=", VALUEFUNC(_wrap_SlitCavity_cell_type_set), -1);
18255     rb_define_method(cSlitCavity.klass, "cell_type", VALUEFUNC(_wrap_SlitCavity_cell_type_get), -1);
18256     rb_define_method(cSlitCavity.klass, "cell_width=", VALUEFUNC(_wrap_SlitCavity_cell_width_set), -1);
18257     rb_define_method(cSlitCavity.klass, "cell_width", VALUEFUNC(_wrap_SlitCavity_cell_width_get), -1);
18258     rb_define_method(cSlitCavity.klass, "cell_height=", VALUEFUNC(_wrap_SlitCavity_cell_height_set), -1);
18259     rb_define_method(cSlitCavity.klass, "cell_height", VALUEFUNC(_wrap_SlitCavity_cell_height_get), -1);
18260     rb_define_method(cSlitCavity.klass, "slit_height=", VALUEFUNC(_wrap_SlitCavity_slit_height_set), -1);
18261     rb_define_method(cSlitCavity.klass, "slit_height", VALUEFUNC(_wrap_SlitCavity_slit_height_get), -1);
18262     rb_define_method(cSlitCavity.klass, "slit_length=", VALUEFUNC(_wrap_SlitCavity_slit_length_set), -1);
18263     rb_define_method(cSlitCavity.klass, "slit_length", VALUEFUNC(_wrap_SlitCavity_slit_length_get), -1);
18264     rb_define_method(cSlitCavity.klass, "cavity_height=", VALUEFUNC(_wrap_SlitCavity_cavity_height_set), -1);
18265     rb_define_method(cSlitCavity.klass, "cavity_height", VALUEFUNC(_wrap_SlitCavity_cavity_height_get), -1);
18266     rb_define_method(cSlitCavity.klass, "inlet_length=", VALUEFUNC(_wrap_SlitCavity_inlet_length_set), -1);
18267     rb_define_method(cSlitCavity.klass, "inlet_length", VALUEFUNC(_wrap_SlitCavity_inlet_length_get), -1);
18268     rb_define_method(cSlitCavity.klass, "outlet_length=", VALUEFUNC(_wrap_SlitCavity_outlet_length_set), -1);
18269     rb_define_method(cSlitCavity.klass, "outlet_length", VALUEFUNC(_wrap_SlitCavity_outlet_length_get), -1);
18270     rb_define_method(cSlitCavity.klass, "taper=", VALUEFUNC(_wrap_SlitCavity_taper_set), -1);
18271     rb_define_method(cSlitCavity.klass, "taper", VALUEFUNC(_wrap_SlitCavity_taper_get), -1);
18272     rb_define_method(cSlitCavity.klass, "size_const=", VALUEFUNC(_wrap_SlitCavity_size_const_set), -1);
18273     rb_define_method(cSlitCavity.klass, "size_const", VALUEFUNC(_wrap_SlitCavity_size_const_get), -1);
18274     rb_define_method(cSlitCavity.klass, "make_cavity", VALUEFUNC(_wrap_SlitCavity_make_cavity), -1);
18275     cSlitCavity.mark = 0;
18276     cSlitCavity.destroy = (void (*)(void *)) free_SlitCavity;
18277 }
18278 

Generated on Mon May 24 09:53:31 2010 for TUMBLE by  doxygen 1.5.2