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

#define SWIG_NOINCLUDE

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

/* ruby.swg */
/* Implementation : RUBY */
#define SWIGRUBY 1

#include "ruby.h"

/* Flags for pointer conversion */
#define SWIG_POINTER_EXCEPTION     0x1
#define SWIG_POINTER_DISOWN        0x2

#define NUM2USHRT(n) (\
    (0 <= NUM2UINT(n) && NUM2UINT(n) <= USHRT_MAX)\
    ? (unsigned short) NUM2UINT(n) \
    : (rb_raise(rb_eArgError, "integer %d out of range of `unsigned short'",\
               NUM2UINT(n)), (short)0)\
)

#define NUM2SHRT(n) (\
    (SHRT_MIN <= NUM2INT(n) && NUM2INT(n) <= SHRT_MAX)\
    ? (short)NUM2INT(n)\
    : (rb_raise(rb_eArgError, "integer %d out of range of `short'",\
               NUM2INT(n)), (short)0)\
)

/* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */
#ifndef NUM2LL
#define NUM2LL(x) NUM2LONG((x))
#endif
#ifndef LL2NUM
#define LL2NUM(x) INT2NUM((long) (x))
#endif
#ifndef ULL2NUM
#define ULL2NUM(x) UINT2NUM((unsigned long) (x))
#endif

/* Ruby 1.7 doesn't (yet) define NUM2ULL() */
#ifndef NUM2ULL
#ifdef HAVE_LONG_LONG
#define NUM2ULL(x) rb_num2ull((x))
#else
#define NUM2ULL(x) NUM2ULONG(x)
#endif
#endif

/*
 * Need to be very careful about how these macros are defined, especially
 * when compiling C++ code or C code with an ANSI C compiler.
 *
 * VALUEFUNC(f) is a macro used to typecast a C function that implements
 * a Ruby method so that it can be passed as an argument to API functions
 * like rb_define_method() and rb_define_singleton_method().
 *
 * VOIDFUNC(f) is a macro used to typecast a C function that implements
 * either the "mark" or "free" stuff for a Ruby Data object, so that it
 * can be passed as an argument to API functions like Data_Wrap_Struct()
 * and Data_Make_Struct().
 */
 
#ifdef __cplusplus
#  ifndef RUBY_METHOD_FUNC /* These definitions should work for Ruby 1.4.6 */
#    define VALUEFUNC(f) ((VALUE (*)()) f)
#    define VOIDFUNC(f)  ((void (*)()) f)
#  else
#    ifndef ANYARGS /* These definitions should work for Ruby 1.6 */
#      define VALUEFUNC(f) ((VALUE (*)()) f)
#      define VOIDFUNC(f)  ((RUBY_DATA_FUNC) f)
#    else /* These definitions should work for Ruby 1.7 */
#      define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
#      define VOIDFUNC(f)  ((RUBY_DATA_FUNC) f)
#    endif
#  endif
#else
#  define VALUEFUNC(f) (f)
#  define VOIDFUNC(f) (f)
#endif

typedef struct {
  VALUE klass;
  VALUE mImpl;
  void  (*mark)(void *);
  void  (*destroy)(void *);
} swig_class;

/* Don't use for expressions have side effect */
#ifndef RB_STRING_VALUE
#define RB_STRING_VALUE(s) (TYPE(s) == T_STRING ? (s) : (*(volatile VALUE *)&(s) = rb_str_to_str(s)))
#endif
#ifndef StringValue
#define StringValue(s) RB_STRING_VALUE(s)
#endif
#ifndef StringValuePtr
#define StringValuePtr(s) RSTRING(RB_STRING_VALUE(s))->ptr
#endif
#ifndef StringValueLen
#define StringValueLen(s) RSTRING(RB_STRING_VALUE(s))->len
#endif
#ifndef SafeStringValue
#define SafeStringValue(v) do {\
    StringValue(v);\
    rb_check_safe_str(v);\
} while (0)
#endif

#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
#define rb_define_alloc_func(klass, func) rb_define_singleton_method((klass), "new", VALUEFUNC((func)), -1)
#define rb_undef_alloc_func(klass) rb_undef_method(CLASS_OF((klass)), "new")
#endif

/* Contract support */

#define SWIG_contract_assert(expr, msg) if (!(expr)) { rb_raise(rb_eRuntimeError, (char *) msg ); } else


/*************************************************************** -*- c -*-
 * ruby/precommon.swg
 *
 * Rename all exported symbols from common.swg, to avoid symbol
 * clashes if multiple interpreters are included
 *
 ************************************************************************/

#define SWIG_TypeRegister    SWIG_Ruby_TypeRegister
#define SWIG_TypeCheck       SWIG_Ruby_TypeCheck
#define SWIG_TypeCast        SWIG_Ruby_TypeCast
#define SWIG_TypeDynamicCast SWIG_Ruby_TypeDynamicCast
#define SWIG_TypeName        SWIG_Ruby_TypeName
#define SWIG_TypeQuery       SWIG_Ruby_TypeQuery
#define SWIG_TypeClientData  SWIG_Ruby_TypeClientData
#define SWIG_PackData        SWIG_Ruby_PackData 
#define SWIG_UnpackData      SWIG_Ruby_UnpackData 

/* Also rename all exported symbols from rubydef.swig */

/* Common SWIG API */
#define SWIG_ConvertPtr(obj, pp, type, flags) \
  SWIG_Ruby_ConvertPtr(obj, pp, type, flags)
#define SWIG_NewPointerObj(p, type, flags) \
  SWIG_Ruby_NewPointerObj(p, type, flags)
#define SWIG_MustGetPtr(p, type, argnum, flags) \
  SWIG_Ruby_MustGetPtr(p, type, argnum, flags)

/* Ruby-specific SWIG API */

#define SWIG_InitRuntime() \
  SWIG_Ruby_InitRuntime()
#define SWIG_define_class(ty) \
  SWIG_Ruby_define_class(ty)
#define SWIG_NewClassInstance(value, ty) \
  SWIG_Ruby_NewClassInstance(value, ty)
#define SWIG_MangleStr(value) \
  SWIG_Ruby_MangleStr(value)
#define SWIG_CheckConvert(value, ty) \
  SWIG_Ruby_CheckConvert(value, ty)
#define SWIG_NewPackedObj(ptr, sz, ty) \
  SWIG_Ruby_NewPackedObj(ptr, sz, ty)
#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) \
  SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty, flags)


/***********************************************************************
 * common.swg
 *
 *     This file contains generic SWIG runtime support for pointer
 *     type checking as well as a few commonly used macros to control
 *     external linkage.
 *
 * Author : David Beazley (beazley@cs.uchicago.edu)
 *
 * Copyright (c) 1999-2000, The University of Chicago
 * 
 * This file may be freely redistributed without license or fee provided
 * this copyright message remains intact.
 ************************************************************************/

#include <string.h>

#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#  if defined(_MSC_VER) || defined(__GNUC__)
#    if defined(STATIC_LINKED)
#      define SWIGEXPORT(a) a
#      define SWIGIMPORT(a) extern a
#    else
#      define SWIGEXPORT(a) __declspec(dllexport) a
#      define SWIGIMPORT(a) extern a
#    endif
#  else
#    if defined(__BORLANDC__)
#      define SWIGEXPORT(a) a _export
#      define SWIGIMPORT(a) a _export
#    else
#      define SWIGEXPORT(a) a
#      define SWIGIMPORT(a) a
#    endif
#  endif
#else
#  define SWIGEXPORT(a) a
#  define SWIGIMPORT(a) a
#endif

#ifdef SWIG_GLOBAL
#  define SWIGRUNTIME(a) SWIGEXPORT(a)
#else
#  define SWIGRUNTIME(a) static a
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef void *(*swig_converter_func)(void *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);

typedef struct swig_type_info {
  const char             *name;
  swig_converter_func     converter;
  const char             *str;
  void                   *clientdata;
  swig_dycast_func        dcast;
  struct swig_type_info  *next;
  struct swig_type_info  *prev;
} swig_type_info;

#ifdef SWIG_NOINCLUDE

SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);

#else

static swig_type_info *swig_type_list = 0;

/* Register a type mapping with the type-checking */
SWIGRUNTIME(swig_type_info *)
SWIG_TypeRegister(swig_type_info *ti) {
  swig_type_info *tc, *head, *ret, *next;
  /* Check to see if this type has already been registered */
  tc = swig_type_list;
  while (tc) {
    if (strcmp(tc->name, ti->name) == 0) {
      /* Already exists in the table.  Just add additional types to the list */
      if (tc->clientdata) ti->clientdata = tc->clientdata;
      head = tc;
      next = tc->next;
      goto l1;
    }
    tc = tc->prev;
  }
  head = ti;
  next = 0;

  /* Place in list */
  ti->prev = swig_type_list;
  swig_type_list = ti;

  /* Build linked lists */
  l1:
  ret = head;
  tc = ti + 1;
  /* Patch up the rest of the links */
  while (tc->name) {
    head->next = tc;
    tc->prev = head;
    head = tc;
    tc++;
  }
  if (next) next->prev = head;
  head->next = next;
  return ret;
}

/* Check the typename */
SWIGRUNTIME(swig_type_info *) 
SWIG_TypeCheck(char *c, swig_type_info *ty) {
  swig_type_info *s;
  if (!ty) return 0;        /* Void pointer */
  s = ty->next;             /* First element always just a name */
  do {
    if (strcmp(s->name,c) == 0) {
      if (s == ty->next) return s;
      /* Move s to the top of the linked list */
      s->prev->next = s->next;
      if (s->next) {
        s->next->prev = s->prev;
      }
      /* Insert s as second element in the list */
      s->next = ty->next;
      if (ty->next) ty->next->prev = s;
      ty->next = s;
      s->prev = ty;
      return s;
    }
    s = s->next;
  } while (s && (s != ty->next));
  return 0;
}

/* Cast a pointer up an inheritance hierarchy */
SWIGRUNTIME(void *) 
SWIG_TypeCast(swig_type_info *ty, void *ptr) {
  if ((!ty) || (!ty->converter)) return ptr;
  return (*ty->converter)(ptr);
}

/* Dynamic pointer casting. Down an inheritance hierarchy */
SWIGRUNTIME(swig_type_info *) 
SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
  swig_type_info *lastty = ty;
  if (!ty || !ty->dcast) return ty;
  while (ty && (ty->dcast)) {
    ty = (*ty->dcast)(ptr);
    if (ty) lastty = ty;
  }
  return lastty;
}

/* Return the name associated with this type */
SWIGRUNTIME(const char *)
SWIG_TypeName(const swig_type_info *ty) {
  return ty->name;
}

/* Search for a swig_type_info structure */
SWIGRUNTIME(swig_type_info *)
SWIG_TypeQuery(const char *name) {
  swig_type_info *ty = swig_type_list;
  while (ty) {
    if (ty->str && (strcmp(name,ty->str) == 0)) return ty;
    if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
    ty = ty->prev;
  }
  return 0;
}

/* Set the clientdata field for a type */
SWIGRUNTIME(void)
SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
  swig_type_info *tc, *equiv;
  if (ti->clientdata == clientdata) return;
  ti->clientdata = clientdata;
  equiv = ti->next;
  while (equiv) {
    if (!equiv->converter) {
      tc = swig_type_list;
      while (tc) {
        if ((strcmp(tc->name, equiv->name) == 0))
          SWIG_TypeClientData(tc,clientdata);
        tc = tc->prev;
      }
    }
    equiv = equiv->next;
  }
}

/* Pack binary data into a string */
SWIGRUNTIME(char *)
SWIG_PackData(char *c, void *ptr, int sz) {
  static char hex[17] = "0123456789abcdef";
  int i;
  unsigned char *u = (unsigned char *) ptr;
  register unsigned char uu;
  for (i = 0; i < sz; i++,u++) {
    uu = *u;
    *(c++) = hex[(uu & 0xf0) >> 4];
    *(c++) = hex[uu & 0xf];
  }
  return c;
}

/* Unpack binary data from a string */
SWIGRUNTIME(char *)
SWIG_UnpackData(char *c, void *ptr, int sz) {
  register unsigned char uu = 0;
  register int d;
  unsigned char *u = (unsigned char *) ptr;
  int i;
  for (i = 0; i < sz; i++, u++) {
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu = ((d - '0') << 4);
    else if ((d >= 'a') && (d <= 'f'))
      uu = ((d - ('a'-10)) << 4);
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu |= (d - '0');
    else if ((d >= 'a') && (d <= 'f'))
      uu |= (d - ('a'-10));
    *u = uu;
  }
  return c;
}

#endif

#ifdef __cplusplus
}
#endif

/* rubydec.swg -*- c -*- */
#ifdef __cplusplus
extern "C" {
#endif

SWIGIMPORT(void)   SWIG_Ruby_InitRuntime(void);
SWIGIMPORT(void)   SWIG_Ruby_define_class(swig_type_info *);
SWIGIMPORT(VALUE)  SWIG_Ruby_NewPointerObj(void *, swig_type_info *, int);
SWIGIMPORT(VALUE)  SWIG_Ruby_NewClassInstance(VALUE, swig_type_info *);
SWIGIMPORT(char *) SWIG_Ruby_MangleStr(VALUE);
SWIGIMPORT(int)    SWIG_Ruby_ConvertPtr(VALUE, void**, swig_type_info *, int);
SWIGIMPORT(void *) SWIG_Ruby_MustGetPtr(VALUE, swig_type_info *, int, int);
SWIGIMPORT(int)    SWIG_Ruby_CheckConvert(VALUE, swig_type_info *);
SWIGIMPORT(VALUE)  SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type);
SWIGIMPORT(void)   SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty, int flags);

#ifdef __cplusplus
}
#endif


/* -------- TYPES TABLE (BEGIN) -------- */

#define  SWIGTYPE_p_FXGLCanvas swig_types[0] 
#define  SWIGTYPE_p_FXCanvas swig_types[1] 
#define  SWIGTYPE_p_FXGLObject swig_types[2] 
#define  SWIGTYPE_p_FXObject swig_types[3] 
#define  SWIGTYPE_p_FXRange swig_types[4] 
#define  SWIGTYPE_p_FXQuat swig_types[5] 
#define  SWIGTYPE_p_FXGLContext swig_types[6] 
#define  SWIGTYPE_p_FXWindow swig_types[7] 
#define  SWIGTYPE_p_FXComposite swig_types[8] 
#define  SWIGTYPE_p_FXVec swig_types[9] 
#define  SWIGTYPE_p_FXId swig_types[10] 
#define  SWIGTYPE_p_FXFont swig_types[11] 
#define  SWIGTYPE_p_FXViewport swig_types[12] 
#define  SWIGTYPE_p_FXMaterial swig_types[13] 
#define  SWIGTYPE_p_FXDrawable swig_types[14] 
#define  SWIGTYPE_p_FXStream swig_types[15] 
#define  SWIGTYPE_p_FXHVec swig_types[16] 
#define  SWIGTYPE_p_FXGLViewer swig_types[17] 
#define  SWIGTYPE_p_FXVisual swig_types[18] 
#define  SWIGTYPE_p_FXGLVisual swig_types[19] 
#define  SWIGTYPE_p_FXLight swig_types[20] 
#define  SWIGTYPE_p_FXApp swig_types[21] 
#define  SWIGTYPE_p_FXuint swig_types[22] 
#define  SWIGTYPE_p_FXRangeSlice swig_types[23] 
#define  SWIGTYPE_p_FXHMat swig_types[24] 
#define  SWIGTYPE_p_FXGLShape swig_types[25] 
static swig_type_info *swig_types[27];

/* -------- TYPES TABLE (END) -------- */

#define SWIG_init    Init_opengl
#define SWIG_name    "Opengl"


#include "FXRbCommon.h"


inline FXColor to_FXColor(VALUE obj){
  if(TYPE(obj)==T_STRING){
    return fxcolorfromname(StringValuePtr(obj));
    }
  else if(TYPE(obj)==T_SYMBOL){
    return fxcolorfromname(rb_id2name(SYM2ID(obj)));
    }
  else{
    return NUM2ULONG(obj);
    }
  }


inline FXString to_FXString(VALUE obj){
  if(!NIL_P(obj)){
    Check_Type(obj,T_STRING);
    return FXString(STR2CSTR(obj));
    }
  else{
    return FXString::null;
    }
  }


inline FXbool to_FXbool(VALUE obj){
  if (obj == Qtrue || obj == Qfalse){
    return (obj == Qtrue) ? TRUE : FALSE;
    }
  else{
    return static_cast<FXbool>(NUM2UINT(obj));
    }
  }


static swig_type_info* FXEventTypeInfo=0;

inline void* to_FXEvent(VALUE obj){
  void* ptr;
  if(!FXEventTypeInfo){
    FXEventTypeInfo=SWIG_TypeQuery("FXEvent *");
    FXASSERT(FXEventTypeInfo!=0);
    }
  SWIG_ConvertPtr(obj,&ptr,FXEventTypeInfo,1);
  return ptr;
  }

FXfloat FXVec___getitem__(FXVec const *self,FXint i){
      if(i<0||i>2) rb_raise(rb_eIndexError,"index %d out of range",i);
      return (*self)[i];
      }
FXfloat FXVec___setitem__(FXVec *self,FXint i,FXfloat f){
      if(i<0||i>2) rb_raise(rb_eIndexError,"index %d out of range",i);
      (*self)[i]=f;
      return f;
      }
FXbool FXVec___eq__(FXVec const *self,FXVec const &other){
      return (*self == other);
      }
FXVec FXVec___neg__(FXVec const *self){
      return -(*self);
      }
FXVec FXVec___add__(FXVec const *self,FXVec const &other){
      return *self + other;
      }
FXVec FXVec___sub__(FXVec const *self,FXVec const &other){
      return *self - other;
      }
FXVec FXVec___mul__(FXVec const *self,FXfloat n){
      return (*self)*n;
      }
FXVec FXVec___div__(FXVec const *self,FXfloat n){
      if(n==0.0f) rb_raise(rb_eZeroDivError,"divided by zero");
      return (*self)/n;
      }
FXfloat FXVec_dot(FXVec const *self,FXVec const &other){
      return (*self)*other;
      }
FXVec FXVec_cross(FXVec const *self,FXVec const &other){
      return (*self)^other;
      }
FXfloat FXVec_len(FXVec const *self){
      return len(*self);
      }
FXVec FXVec_normalize(FXVec const *self){
      return normalize(*self);
      }
FXVec *FXVec_normalize_self(FXVec *self){
      *self=normalize(*self);
      return self;
      }
FXVec FXVec_lo(FXVec const *self,FXVec const &other){
      return lo(*self,other);
      }
FXVec FXVec_hi(FXVec const *self,FXVec const &other){
      return hi(*self,other);
      }
VALUE FXVec_to_a(FXVec const *self){
      VALUE ary=rb_ary_new();
      rb_ary_push(ary,to_ruby((*self)[0]));
      rb_ary_push(ary,to_ruby((*self)[1]));
      rb_ary_push(ary,to_ruby((*self)[2]));
      return ary;
      }

swig_class cFXVec;
FXfloat FXHVec___getitem__(FXHVec *self,FXint i){
      if(i<0||i>3){
        rb_raise(rb_eIndexError,"index %d out of bounds",i);
        return 0.0f;
        }
      else
        return (*self)[i];
      }
FXfloat FXHVec___setitem__(FXHVec *self,FXint i,FXfloat f){
      if(i<0||i>3) rb_raise(rb_eIndexError,"index %d out of bounds",i);
      (*self)[i]=f;
      return f;
      }
FXHVec FXHVec_operator_s___(FXHVec const *self){ return -(*self); }
FXHVec FXHVec_operator_a___(FXHVec const *self,FXHVec const &b){ return (*self)+b; }
FXHVec FXHVec_operator_s___(FXHVec const *self,FXHVec const &b){ return (*self)-b; }
FXHVec FXHVec_operator_m_____SWIG_0(FXHVec const *self,FXfloat n){ return (*self)*n; }
FXHVec FXHVec_operator_d___(FXHVec const *self,FXfloat n){
	  if(n==0.0f) rb_raise(rb_eZeroDivError,"divided by 0");
	  return (*self)/n;
	  }
FXfloat FXHVec_operator_m_____SWIG_1(FXHVec const *self,FXHVec const &a){ return (*self)*a; }
bool FXHVec_operator_ee_____SWIG_0(FXHVec const *self,FXHVec const &b){ return (*self == b); }
bool FXHVec_operator_ee_____SWIG_1(FXHVec const *self,FXfloat n){ return (*self == n); }
FXfloat FXHVec_dot(FXHVec const *self,FXHVec const &other){ return (*self)*other; }
FXfloat FXHVec_len(FXHVec const *self){ return len(*self); }
FXHVec FXHVec_normalize(FXHVec const *self){ return normalize(*self); }
FXHVec FXHVec_lo(FXHVec const *self,FXHVec const &other){ return lo(*self,other); }
FXHVec FXHVec_hi(FXHVec const *self,FXHVec const &other){ return hi(*self,other); }
FXString FXHVec_to_s(FXHVec const *self){
      const FXHVec& v = *self;
      return FXStringFormat("[%g, %g, %g, %g]",v[0],v[1],v[2],v[3]);
      }
VALUE FXHVec_to_a(FXHVec *self){
      VALUE ary=rb_ary_new();
      rb_ary_push(ary,to_ruby((*self)[0]));
      rb_ary_push(ary,to_ruby((*self)[1]));
      rb_ary_push(ary,to_ruby((*self)[2]));
      rb_ary_push(ary,to_ruby((*self)[3]));
      return ary;
      }

swig_class cFXHVec;
VALUE FXQuat_getRollPitchYaw(FXQuat *self){
      FXfloat roll,pitch,yaw;
      self->getRollPitchYaw(roll,pitch,yaw);
      VALUE result=rb_ary_new();
      rb_ary_push(result,rb_float_new(roll));
      rb_ary_push(result,rb_float_new(pitch));
      rb_ary_push(result,rb_float_new(yaw));
      return result;
      }
FXQuat FXQuat_exp(FXQuat const *self){
      return exp(*self);
      }
FXQuat FXQuat_log(FXQuat const *self){
      return log(*self);
      }
FXQuat FXQuat_invert(FXQuat const *self){
      return invert(*self);
      }
FXQuat FXQuat_conj(FXQuat const *self){
      return conj(*self);
      }
FXQuat FXQuat___mul__(FXQuat const *self,FXQuat const &other){
      return (*self)*other;
      }
FXQuat FXQuat_arc(FXVec const &a,FXVec const &b){
      return arc(a,b);
      }
FXQuat FXQuat_lerp(FXQuat const &u,FXQuat const &v,FXfloat f){
      return lerp(u,v,f);
      }

swig_class cFXQuat;
FXHMat *new_FXHMat__SWIG_0(){
      return new FXHMat(0.0f);
      }
FXHMat FXHMat_operator_a___(FXHMat const *self,FXHMat const &other){ return (*self)+other; }
FXHMat FXHMat_operator_s___(FXHMat const *self,FXHMat const &other){ return (*self)-other; }
FXHMat FXHMat_operator_m_____SWIG_0(FXHMat const *self,FXHMat const &other){ return (*self)*other; }
FXHMat FXHMat_operator_m_____SWIG_1(FXHMat const *self,FXfloat x){ return (*self)*x; }
FXHVec FXHMat_operator_m_____SWIG_2(FXHMat const *self,FXHVec const &other){ return (*self)*other; }
FXVec FXHMat_operator_m_____SWIG_3(FXHMat const *self,FXVec const &other){ return (*self)*other; }
FXHMat FXHMat_operator_d___(FXHMat const *self,FXfloat x){
	  if(x==0.0f) rb_raise(rb_eZeroDivError,"divided by 0");
	  return (*self)/x;
	  }
FXHMat FXHMat_operator_s___(FXHMat const *self){ return -(*self); }
FXHVec &FXHMat___getitem__(FXHMat *self,FXint i){
      if(i<0 || i>3){
        rb_raise(rb_eIndexError,"index %d out of range",i);
        }
      return (*self)[i];
      }
FXfloat FXHMat_det(FXHMat const *self){
      return det(*self);
      }
FXHMat FXHMat_transpose(FXHMat const *self){
      return transpose(*self);
      }
FXHMat FXHMat_invert(FXHMat const *self){
      return invert(*self);
      }
FXString FXHMat_to_s(FXHMat const *self){
      const FXHMat& m = *self;
      return FXStringFormat("[[%g, %g, %g, %g], [%g, %g, %g, %g], [%g, %g, %g, %g], [%g, %g, %g, %g]]",m[0][0],m[0][1],m[0][2],m[0][3],m[1][0],m[1][1],m[1][2],m[1][3],m[2][0],m[2][1],m[2][2],m[2][3],m[3][0],m[3][1],m[3][2],m[3][3]);
      }

swig_class cFXHMat;

class FXRangeSlice {
private:
  FXRange& range;
  FXint slice;
public:
  FXRangeSlice(FXRange& r,FXint s):range(r),slice(s){}
  FXfloat& operator[](FXint i){ return range[slice][i]; }
  const FXfloat& operator[](FXint i) const { return range[slice][i]; }
  };

FXfloat FXRangeSlice___getitem__(FXRangeSlice const *self,FXint i){
      return (*self)[i];
      }
FXfloat FXRangeSlice___setitem__(FXRangeSlice *self,FXint i,FXfloat f){
      (*self)[i]=f;
      return f;
      }
int FXRangeSlice_length(FXRangeSlice const *self){ return 2; }

swig_class cFXRangeSlice;
FXRangeSlice FXRange___getitem__(FXRange *self,FXint i){
      return FXRangeSlice(*self,i);
      }
void FXRange___setitem__(FXRange *self,FXint i,FXRangeSlice &slice){
      (*self)[i][0]=slice[0];
      (*self)[i][1]=slice[1];
      }
VALUE FXRange_corners(FXRange const *self){
      FXVec points[8];
      boxCorners(points,*self);
      VALUE corners = rb_ary_new();
      for (int i = 0; i < 8; i++) {
        VALUE pt = rb_ary_new();
        rb_ary_push(pt, rb_float_new(points[i][0]));
        rb_ary_push(pt, rb_float_new(points[i][1]));
        rb_ary_push(pt, rb_float_new(points[i][2]));
        rb_ary_push(corners, pt);
        }
      return corners;
      }
FXbool FXRange_intersects(FXRange const *self,FXVec const &u,FXVec const &v){
      return boxIntersect(*self,u,v);
      }
FXVec FXRange_center(FXRange const *self){
      return boxCenter(*self);
      }
FXfloat FXRange_diagonal(FXRange const *self){
      return boxDiagonal(*self);
      }

swig_class cFXRange;
FXGLVisual *new_FXGLVisual(FXApp *a,FXuint flags){
      return new FXRbGLVisual(a,flags);
      }

swig_class cFXGLVisual;
static void free_FXGLVisual(FXGLVisual *);
FXGLContext *new_FXGLContext__SWIG_0(FXApp *a,FXGLVisual *vis){
      return new FXRbGLContext(a,vis);
      }
FXGLContext *new_FXGLContext__SWIG_1(FXApp *a,FXGLVisual *vis,FXGLContext *shared){
      return new FXRbGLContext(a,vis,shared);
      }

swig_class cFXGLContext;
static void free_FXGLContext(FXGLContext *);
FXGLCanvas *new_FXGLCanvas__SWIG_0(FXComposite *p,FXGLVisual *vis,FXObject *tgt,FXSelector sel,FXuint opts,FXint x,FXint y,FXint w,FXint h){
      return new FXRbGLCanvas(p,vis,tgt,sel,opts,x,y,w,h);
      }
FXGLCanvas *new_FXGLCanvas__SWIG_1(FXComposite *p,FXGLVisual *vis,FXGLCanvas *sharegroup,FXObject *tgt,FXSelector sel,FXuint opts,FXint x,FXint y,FXint w,FXint h){
      return new FXRbGLCanvas(p,vis,sharegroup,tgt,sel,opts,x,y,w,h);
      }
unsigned long FXGLCanvas_getContext(FXGLCanvas const *self){
      return reinterpret_cast<unsigned long>(self->getContext());
      }

swig_class cFXGLCanvas;
static void free_FXGLCanvas(FXGLCanvas *);

static swig_type_info *FXGLCanvas_dynamic_cast(void **ptr) {
    FXGLCanvas **ppGLCanvas = reinterpret_cast<FXGLCanvas **>(ptr);
    FXGLViewer *pGLViewer=dynamic_cast<FXGLViewer*>(*ppGLCanvas);
    if(pGLViewer){
      *ptr=reinterpret_cast<void*>(pGLViewer);
      return SWIG_TypeQuery("FXGLViewer *");
      }
    return 0;
}


swig_class cFXViewport;
static void free_FXViewport(FXViewport *);

swig_class cFXLight;
static void free_FXLight(FXLight *);

swig_class cFXMaterial;
static void free_FXMaterial(FXMaterial *);
VALUE FXGLViewer_objectTypeName(){
      return to_ruby(FXGLViewer::objectTypeName);
      }
FXGLViewer *new_FXGLViewer__SWIG_0(FXComposite *p,FXGLVisual *vis,FXObject *tgt,FXSelector sel,FXuint opts,FXint x,FXint y,FXint w,FXint h){
      return new FXRbGLViewer(p,vis,tgt,sel,opts,x,y,w,h);
      }
FXGLViewer *new_FXGLViewer__SWIG_1(FXComposite *p,FXGLVisual *vis,FXGLViewer *sharegroup,FXObject *tgt,FXSelector sel,FXuint opts,FXint x,FXint y,FXint w,FXint h){
      return new FXRbGLViewer(p,vis,sharegroup,tgt,sel,opts,x,y,w,h);
      }
VALUE FXGLViewer_lasso(FXGLViewer *self,FXint x1,FXint y1,FXint x2,FXint y2){
      VALUE objects = rb_ary_new();
      FXGLObject** items = self->lasso(x1, y1, x2, y2);
      if (items) {
        register FXGLObject** p = items;
        while (*p) {
          rb_ary_push(objects, to_ruby(*p));
          p++;
        }
        FXFREE(&items);
      }
      return objects;
    }
FXViewport FXGLViewer_getViewport(FXGLViewer const *self){
      FXViewport v;
      self->getViewport(v);
      return v;
    }
VALUE FXGLViewer_eyeToScreen(FXGLViewer *self,FXVec e){
      FXint sx, sy;
      self->eyeToScreen(sx, sy, e);
      VALUE point = rb_ary_new();
      rb_ary_push(point, INT2NUM(sx));
      rb_ary_push(point, INT2NUM(sy));
      return point;
    }
FXMaterial FXGLViewer_getMaterial(FXGLViewer const *self){
      FXMaterial mtl;
      self->getMaterial(mtl);
      return mtl;
    }
VALUE FXGLViewer_getBoreVector(FXGLViewer *self,FXint sx,FXint sy){
      FXVec point, dir;
      self->getBoreVector(sx, sy, point, dir);

      VALUE pointArray = rb_ary_new();
      rb_ary_push(pointArray, rb_float_new(point[0]));
      rb_ary_push(pointArray, rb_float_new(point[1]));
      rb_ary_push(pointArray, rb_float_new(point[2]));

      VALUE dirArray = rb_ary_new();
      rb_ary_push(dirArray, rb_float_new(dir[0]));
      rb_ary_push(dirArray, rb_float_new(dir[1]));
      rb_ary_push(dirArray, rb_float_new(dir[2]));

      VALUE results = rb_ary_new();
      rb_ary_push(results, pointArray);
      rb_ary_push(results, dirArray);

      return results;
    }
VALUE FXGLViewer_readPixels(FXGLViewer *self,FXint x,FXint y,FXint w,FXint h){
    FXuchar *buffer;
    VALUE pixels=Qnil;
    if(self->readPixels(buffer,x,y,w,h)){
      FXASSERT(sizeof(char)==sizeof(FXuchar));
      pixels=rb_str_new(reinterpret_cast<char*>(buffer),3*w*h);
      FXFREE(&buffer);
      }
    return pixels;
    }
VALUE FXGLViewer_readFeedback(FXGLViewer *self,FXint x,FXint y,FXint w,FXint h){
    FXfloat *buffer;
    FXint used, size;
    if (self->readFeedback(buffer, used, size, x, y, w, h)) {
      VALUE results = rb_ary_new();
      for (FXint i = 0; i < used; i++)
        rb_ary_push(results, rb_float_new(buffer[i]));
      FXFREE(&buffer);
      return results;
    } else {
      return Qnil;
    }
  }
void FXGLViewer_setZSortFunc(FXGLViewer *self,VALUE proc){
      }
VALUE FXGLViewer_getZSortFunc(FXGLViewer const *self){
      return Qnil;
      }
FXLight FXGLViewer_getLight(FXGLViewer const *self){
      FXLight lite;
      self->getLight(lite);
      return lite;
    }

swig_class cFXGLViewer;
static void free_FXGLViewer(FXGLViewer *);
FXGLObject *new_FXGLObject(){
      return new FXRbGLObject();
      }
FXGLObject *FXGLObject_identify(FXGLObject *self,FXuint *path,FXint n){
      return self->identify(path);
      }

swig_class cFXGLObject;
static void free_FXGLObject(FXGLObject *);

static swig_type_info *FXGLObject_dynamic_cast(void **ptr) {
    FXGLObject **ppGLObject = reinterpret_cast<FXGLObject **>(ptr);
    FXGLShape *pGLShape=dynamic_cast<FXGLShape*>(*ppGLObject);
    if(pGLShape){
      *ptr=reinterpret_cast<void*>(pGLShape);
      return SWIG_TypeQuery("FXGLShape *");
      }
    return 0;
}

FXGLShape *new_FXGLShape__SWIG_0(FXfloat x,FXfloat y,FXfloat z,FXuint opts){
      return new FXRbGLShape(x,y,z,opts);
      }
FXGLShape *new_FXGLShape__SWIG_1(FXfloat x,FXfloat y,FXfloat z,FXuint opts,FXMaterial const &front,FXMaterial const &back){
      return new FXRbGLShape(x,y,z,opts,front,back);
      }
FXGLObject *FXGLShape_identify(FXGLShape *self,FXuint *path,FXint n){
      return self->identify(path);
      }
FXVec FXGLShape_getPosition(FXGLShape const *self){
      FXASSERT(self->isMemberOf(FXMETACLASS(FXRbGLShape)));
      return dynamic_cast<const FXRbGLShape*>(self)->getPosition();
      }
void FXGLShape_setPosition(FXGLShape *self,FXVec const &pos){
      FXASSERT(self->isMemberOf(FXMETACLASS(FXRbGLShape)));
      dynamic_cast<FXRbGLShape*>(self)->setPosition(pos);
      }
FXMaterial FXGLShape_getMaterial(FXGLShape const *self,FXint side){
      FXMaterial mtl;
      self->getMaterial(side, mtl);
      return mtl;
      }
void FXGLShape_setRange(FXGLShape *self,FXRange const &box){
      FXASSERT(self->isMemberOf(FXMETACLASS(FXRbGLShape)));
      dynamic_cast<FXRbGLShape*>(self)->setRange(box);
      }

swig_class cFXGLShape;
static void free_FXGLShape(FXGLShape *);
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXVec_allocate(VALUE self) {
#else
     static VALUE _wrap_FXVec_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXVec);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXVec(int argc, VALUE *argv, VALUE self) { FXfloat arg1 = (FXfloat) 0.0f ;
    FXfloat arg2 = (FXfloat) 0.0f ; FXfloat arg3 = (FXfloat) 0.0f ; FXVec *result; if ((argc < 0) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); if (argc > 0) { arg1 = (FXfloat) NUM2DBL(argv[0]); } 
    if (argc > 1) { arg2 = (FXfloat) NUM2DBL(argv[1]); }  if (argc > 2) { arg3 = (FXfloat) NUM2DBL(argv[2]); }  {
        result = (FXVec *)new FXVec(arg1,arg2,arg3); DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result);
        if(rb_block_given_p()){ rb_yield(self); }  }  return self; }
static VALUE _wrap_FXVec___getitem__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXint arg2 ;
    FXfloat result; FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  arg2 = NUM2INT(argv[0]);
    result = (FXfloat)FXVec___getitem__((FXVec const *)arg1,arg2); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXVec___setitem__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXint arg2 ;
    FXfloat arg3 ; FXfloat result; FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  arg2 = NUM2INT(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); result = (FXfloat)FXVec___setitem__(arg1,arg2,arg3); vresult = rb_float_new(result);
    return vresult; }
static VALUE _wrap_FXVec___eq__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ;
    FXbool result; FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = (FXbool)FXVec___eq__((FXVec const *)arg1,(FXVec const &)*arg2); vresult = result ? Qtrue : Qfalse; delete arg2;
    return vresult; }
static VALUE _wrap_FXVec___neg__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec result; FXVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    result = FXVec___neg__((FXVec const *)arg1); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXVec___add__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ;
    FXVec result; FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXVec___add__((FXVec const *)arg1,(FXVec const &)*arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  delete arg2; return vresult; }
static VALUE _wrap_FXVec___sub__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ;
    FXVec result; FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXVec___sub__((FXVec const *)arg1,(FXVec const &)*arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  delete arg2; return vresult; }
static VALUE _wrap_FXVec___mul__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXfloat arg2 ; FXVec result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = FXVec___mul__((FXVec const *)arg1,arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXVec___div__(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXfloat arg2 ; FXVec result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = FXVec___div__((FXVec const *)arg1,arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXVec_dot(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ; FXfloat result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = (FXfloat)FXVec_dot((FXVec const *)arg1,(FXVec const &)*arg2); vresult = rb_float_new(result); delete arg2;
    return vresult; }
static VALUE _wrap_FXVec_cross(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ; FXVec result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXVec_cross((FXVec const *)arg1,(FXVec const &)*arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  delete arg2; return vresult; }
static VALUE _wrap_FXVec_len(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXfloat result; FXVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    result = (FXfloat)FXVec_len((FXVec const *)arg1); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXVec_normalize(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec result; FXVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    result = FXVec_normalize((FXVec const *)arg1); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXVec_normalizeN___(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    result = (FXVec *)FXVec_normalize_self(arg1); vresult = FXRbGetRubyObj(result, "FXVec *"); return vresult; }
static VALUE _wrap_FXVec_lo(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ; FXVec result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXVec_lo((FXVec const *)arg1,(FXVec const &)*arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  delete arg2; return vresult; }
static VALUE _wrap_FXVec_hi(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; FXVec *arg2 = 0 ; FXVec result;
    FXVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXVec_hi((FXVec const *)arg1,(FXVec const &)*arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  delete arg2; return vresult; }
static VALUE _wrap_FXVec_to_a(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = (FXVec *) 0 ; VALUE result; FXVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXVec, 1); }  } 
    result = (VALUE)FXVec_to_a((FXVec const *)arg1); vresult = result; return vresult; }
static VALUE _wrap_new_FXHVec__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHVec *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { result = (FXHVec *)new FXHVec();
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXHVec__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = 0 ; FXHVec *result;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg1 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg1 = new FXHVec(*p); }  }  {
        result = (FXHVec *)new FXHVec((FXHVec const &)*arg1);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    delete arg1; return self; }
static VALUE _wrap_new_FXHVec__SWIG_2(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = 0 ; FXHVec *result;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg1 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg1 = new FXVec(*p); }  }  {
        result = (FXHVec *)new FXHVec((FXVec const &)*arg1);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    delete arg1; return self; }
static VALUE _wrap_new_FXHVec__SWIG_3(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXfloat arg4 = (FXfloat) 1.0f ; FXHVec *result; if ((argc < 3) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); arg1 = (FXfloat) NUM2DBL(argv[0]);
    arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]); if (argc > 3) { arg4 = (FXfloat) NUM2DBL(argv[3]); } 
    { result = (FXHVec *)new FXHVec(arg1,arg2,arg3,arg4); DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result);
        if(rb_block_given_p()){ rb_yield(self); }  }  return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXHVec_allocate(VALUE self) {
#else
     static VALUE _wrap_FXHVec_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXHVec);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXHVec__SWIG_4(int argc, VALUE *argv, VALUE self) { FXColor arg1 ; FXHVec *result;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); arg1 = to_FXColor(argv[0]); {
        result = (FXHVec *)new FXHVec(arg1); DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result);
        if(rb_block_given_p()){ rb_yield(self); }  }  return self; }
static VALUE _wrap_new_FXHVec(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = args[ii]; }  if (argc == 0) {
        return _wrap_new_FXHVec__SWIG_0(nargs, args, self);}  if (argc == 1) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
         if (_v) { return _wrap_new_FXHVec__SWIG_1(nargs, args, self);}  }  if (argc == 1) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
         if (_v) { return _wrap_new_FXHVec__SWIG_2(nargs, args, self);}  }  if (argc == 1) { int _v; {
            _v = ((TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
            return _wrap_new_FXHVec__SWIG_4(nargs, args, self);}  }  if ((argc >= 3) && (argc <= 4)) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { if (argc <= 3) { return _wrap_new_FXHVec__SWIG_3(nargs, args, self);}  {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { return _wrap_new_FXHVec__SWIG_3(nargs, args, self);}  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXHVec'"); return Qnil; }
static VALUE _wrap_FXHVec___getitem__(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXint arg2 ;
    FXfloat result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  arg2 = NUM2INT(argv[0]);
    result = (FXfloat)FXHVec___getitem__(arg1,arg2); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXHVec___setitem__(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXint arg2 ;
    FXfloat arg3 ; FXfloat result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  arg2 = NUM2INT(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); result = (FXfloat)FXHVec___setitem__(arg1,arg2,arg3); vresult = rb_float_new(result);
    return vresult; }
static VALUE _wrap_FXHVec___neg__(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec result;
    FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    result = FXHVec_operator_s___((FXHVec const *)arg1); { FXHVec * resultptr; resultptr = new FXHVec((FXHVec &)result);
        vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); }  return vresult; }
static VALUE _wrap_FXHVec___add__(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    FXHVec result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = FXHVec_operator_a___((FXHVec const *)arg1,(FXHVec const &)*arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    delete arg2; return vresult; }
static VALUE _wrap_FXHVec___sub__(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    FXHVec result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = FXHVec_operator_s___((FXHVec const *)arg1,(FXHVec const &)*arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    delete arg2; return vresult; }
static VALUE _wrap_FXHVec___mul____SWIG_0(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXfloat arg2 ;
    FXHVec result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = FXHVec_operator_m_____SWIG_0((FXHVec const *)arg1,arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    return vresult; }
static VALUE _wrap_FXHVec___div__(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXfloat arg2 ;
    FXHVec result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = FXHVec_operator_d___((FXHVec const *)arg1,arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    return vresult; }
static VALUE _wrap_FXHVec___mul____SWIG_1(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    FXfloat result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = (FXfloat)FXHVec_operator_m_____SWIG_1((FXHVec const *)arg1,(FXHVec const &)*arg2); vresult = rb_float_new(result);
    delete arg2; return vresult; }
static VALUE _wrap_FXHVec___mul__(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 2); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHVec___mul____SWIG_1(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHVec___mul____SWIG_0(nargs, args, self);}  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHVec___mul__'"); return Qnil; }
static VALUE _wrap_FXHVec___eq____SWIG_0(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    bool result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = (bool)FXHVec_operator_ee_____SWIG_0((FXHVec const *)arg1,(FXHVec const &)*arg2); vresult = result ? Qtrue : Qfalse;
    delete arg2; return vresult; }
static VALUE _wrap_FXHVec___eq____SWIG_1(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXfloat arg2 ;
    bool result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = (bool)FXHVec_operator_ee_____SWIG_1((FXHVec const *)arg1,arg2);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXHVec___eq__(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 2); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHVec___eq____SWIG_0(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHVec___eq____SWIG_1(nargs, args, self);}  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHVec___eq__'"); return Qnil; }
static VALUE _wrap_FXHVec_dot(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    FXfloat result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = (FXfloat)FXHVec_dot((FXHVec const *)arg1,(FXHVec const &)*arg2); vresult = rb_float_new(result); delete arg2;
    return vresult; }
static VALUE _wrap_FXHVec_len(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXfloat result; FXHVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    result = (FXfloat)FXHVec_len((FXHVec const *)arg1); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXHVec_normalize(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec result;
    FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    result = FXHVec_normalize((FXHVec const *)arg1); { FXHVec * resultptr; resultptr = new FXHVec((FXHVec &)result);
        vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); }  return vresult; }
static VALUE _wrap_FXHVec_lo(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    FXHVec result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = FXHVec_lo((FXHVec const *)arg1,(FXHVec const &)*arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    delete arg2; return vresult; }
static VALUE _wrap_FXHVec_hi(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXHVec *arg2 = 0 ;
    FXHVec result; FXHVec tmp1 ; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); { if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  }  {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = FXHVec_hi((FXHVec const *)arg1,(FXHVec const &)*arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    delete arg2; return vresult; }
static VALUE _wrap_FXHVec_to_s(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; FXString result; FXHVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    result = FXHVec_to_s((FXHVec const *)arg1); vresult = rb_str_new2((&result)->text()); return vresult; }
static VALUE _wrap_FXHVec_to_a(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = (FXHVec *) 0 ; VALUE result; FXHVec tmp1 ;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); {
        if (TYPE(self) == T_ARRAY) {
            tmp1 = FXHVec(NUM2DBL(rb_ary_entry(self, 0)), NUM2DBL(rb_ary_entry(self, 1)), NUM2DBL(rb_ary_entry(self, 2)), NUM2DBL(rb_ary_entry(self, 3)));
            arg1 = &tmp1; }  else { SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHVec, 1); }  } 
    result = (VALUE)FXHVec_to_a(arg1); vresult = result; return vresult; }
static VALUE _wrap_new_FXQuat__SWIG_0(int argc, VALUE *argv, VALUE self) { FXQuat *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { result = (FXQuat *)new FXQuat();
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXQuat__SWIG_1(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = 0 ; FXfloat arg2 = (FXfloat) 0.0 ;
    FXQuat *result; if ((argc < 1) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg1 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg1 = new FXVec(*p); }  }  if (argc > 1) {
        arg2 = (FXfloat) NUM2DBL(argv[1]); }  { result = (FXQuat *)new FXQuat((FXVec const &)*arg1,arg2);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    delete arg1; return self; }
static VALUE _wrap_new_FXQuat__SWIG_2(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXQuat *result; if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    arg1 = (FXfloat) NUM2DBL(argv[0]); arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]); {
        result = (FXQuat *)new FXQuat(arg1,arg2,arg3); DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result);
        if(rb_block_given_p()){ rb_yield(self); }  }  return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXQuat_allocate(VALUE self) {
#else
     static VALUE _wrap_FXQuat_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXQuat);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXQuat__SWIG_3(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXfloat arg4 ; FXQuat *result; if ((argc < 4) || (argc > 4)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    arg1 = (FXfloat) NUM2DBL(argv[0]); arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]);
    arg4 = (FXfloat) NUM2DBL(argv[3]); { result = (FXQuat *)new FXQuat(arg1,arg2,arg3,arg4);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXQuat(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 4); ii++) { argv[ii] = args[ii]; }  if (argc == 0) {
        return _wrap_new_FXQuat__SWIG_0(nargs, args, self);}  if ((argc >= 1) && (argc <= 2)) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
         if (_v) { if (argc <= 1) { return _wrap_new_FXQuat__SWIG_1(nargs, args, self);}  {
                _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_new_FXQuat__SWIG_1(nargs, args, self);}  }  }  if (argc == 3) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { return _wrap_new_FXQuat__SWIG_2(nargs, args, self);}  }  }  }  if (argc == 4) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { return _wrap_new_FXQuat__SWIG_3(nargs, args, self);}  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXQuat'"); return Qnil; }
static VALUE _wrap_FXQuat_adjust(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXQuat *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); { FXQuat &_result_ref = (arg1)->adjust();
        result = (FXQuat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXQuat *"); return vresult; }
static VALUE _wrap_FXQuat_setRollPitchYaw(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXfloat arg4 ; if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); (arg1)->setRollPitchYaw(arg2,arg3,arg4); return Qnil; }
static VALUE _wrap_FXQuat_getRollPitchYaw(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; VALUE result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); result = (VALUE)FXQuat_getRollPitchYaw(arg1);
    vresult = result; return vresult; }
static VALUE _wrap_FXQuat_exp(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXQuat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); result = FXQuat_exp((FXQuat const *)arg1); {
        FXQuat *resultptr = new FXQuat(result); vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_FXQuat_log(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXQuat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); result = FXQuat_log((FXQuat const *)arg1); {
        FXQuat *resultptr = new FXQuat(result); vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_FXQuat_invert(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXQuat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); result = FXQuat_invert((FXQuat const *)arg1); {
        FXQuat *resultptr = new FXQuat(result); vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_FXQuat_conj(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXQuat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1); result = FXQuat_conj((FXQuat const *)arg1); {
        FXQuat *resultptr = new FXQuat(result); vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_FXQuat___mul__(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = (FXQuat *) 0 ; FXQuat *arg2 = 0 ;
    FXQuat result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXQuat, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXQuat, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = FXQuat___mul__((FXQuat const *)arg1,(FXQuat const &)*arg2); { FXQuat *resultptr = new FXQuat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_FXQuat_arc(int argc, VALUE *argv, VALUE self) { FXVec *arg1 = 0 ; FXVec *arg2 = 0 ; FXQuat result;
    VALUE vresult = Qnil; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); {
        if (TYPE(argv[0]) == T_ARRAY) {
            arg1 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg1 = new FXVec(*p); }  }  {
        if (TYPE(argv[1]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[1], 0)), NUM2DBL(rb_ary_entry(argv[1], 1)), NUM2DBL(rb_ary_entry(argv[1], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[1],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXQuat_arc((FXVec const &)*arg1,(FXVec const &)*arg2); { FXQuat *resultptr = new FXQuat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  delete arg1; delete arg2; return vresult; }
static VALUE _wrap_FXQuat_lerp(int argc, VALUE *argv, VALUE self) { FXQuat *arg1 = 0 ; FXQuat *arg2 = 0 ; FXfloat arg3 ;
    FXQuat result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXQuat, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXQuat, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    arg3 = (FXfloat) NUM2DBL(argv[2]); result = FXQuat_lerp((FXQuat const &)*arg1,(FXQuat const &)*arg2,arg3); {
        FXQuat *resultptr = new FXQuat(result); vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_new_FXHMat__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { result = (FXHMat *)new_FXHMat__SWIG_0();
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXHMat__SWIG_1(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXHMat *result;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    arg1 = (FXfloat) NUM2DBL(argv[0]); { result = (FXHMat *)new FXHMat(arg1);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXHMat__SWIG_2(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXfloat arg4 ; FXfloat arg5 ; FXfloat arg6 ; FXfloat arg7 ; FXfloat arg8 ; FXfloat arg9 ; FXfloat arg10 ; FXfloat arg11 ;
    FXfloat arg12 ; FXfloat arg13 ; FXfloat arg14 ; FXfloat arg15 ; FXfloat arg16 ; FXHMat *result;
    if ((argc < 16) || (argc > 16)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 16)",argc);
    arg1 = (FXfloat) NUM2DBL(argv[0]); arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]);
    arg4 = (FXfloat) NUM2DBL(argv[3]); arg5 = (FXfloat) NUM2DBL(argv[4]); arg6 = (FXfloat) NUM2DBL(argv[5]);
    arg7 = (FXfloat) NUM2DBL(argv[6]); arg8 = (FXfloat) NUM2DBL(argv[7]); arg9 = (FXfloat) NUM2DBL(argv[8]);
    arg10 = (FXfloat) NUM2DBL(argv[9]); arg11 = (FXfloat) NUM2DBL(argv[10]); arg12 = (FXfloat) NUM2DBL(argv[11]);
    arg13 = (FXfloat) NUM2DBL(argv[12]); arg14 = (FXfloat) NUM2DBL(argv[13]); arg15 = (FXfloat) NUM2DBL(argv[14]);
    arg16 = (FXfloat) NUM2DBL(argv[15]); {
        result = (FXHMat *)new FXHMat(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXHMat__SWIG_3(int argc, VALUE *argv, VALUE self) { FXHVec *arg1 = 0 ; FXHVec *arg2 = 0 ;
    FXHVec *arg3 = 0 ; FXHVec *arg4 = 0 ; FXHMat *result; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); { if (TYPE(argv[0]) == T_ARRAY) {
            arg1 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg1 = new FXHVec(*p); }  }  {
        if (TYPE(argv[1]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[1], 0)), NUM2DBL(rb_ary_entry(argv[1], 1)), NUM2DBL(rb_ary_entry(argv[1], 2)), NUM2DBL(rb_ary_entry(argv[1], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[1],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  }  {
        if (TYPE(argv[2]) == T_ARRAY) {
            arg3 = new FXHVec(NUM2DBL(rb_ary_entry(argv[2], 0)), NUM2DBL(rb_ary_entry(argv[2], 1)), NUM2DBL(rb_ary_entry(argv[2], 2)), NUM2DBL(rb_ary_entry(argv[2], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[2],(void **)&p,SWIGTYPE_p_FXHVec,1); arg3 = new FXHVec(*p); }  }  {
        if (TYPE(argv[3]) == T_ARRAY) {
            arg4 = new FXHVec(NUM2DBL(rb_ary_entry(argv[3], 0)), NUM2DBL(rb_ary_entry(argv[3], 1)), NUM2DBL(rb_ary_entry(argv[3], 2)), NUM2DBL(rb_ary_entry(argv[3], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[3],(void **)&p,SWIGTYPE_p_FXHVec,1); arg4 = new FXHVec(*p); }  }  {
        result = (FXHMat *)new FXHMat((FXHVec const &)*arg1,(FXHVec const &)*arg2,(FXHVec const &)*arg3,(FXHVec const &)*arg4);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    delete arg1; delete arg2; delete arg3; delete arg4; return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXHMat_allocate(VALUE self) {
#else
     static VALUE _wrap_FXHMat_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXHMat);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXHMat__SWIG_4(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = 0 ; FXHMat *result;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXHMat, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
    { result = (FXHMat *)new FXHMat((FXHMat const &)*arg1); DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result);
        if(rb_block_given_p()){ rb_yield(self); }  }  return self; }
static VALUE _wrap_new_FXHMat(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[16]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 16); ii++) { argv[ii] = args[ii]; }  if (argc == 0) {
        return _wrap_new_FXHMat__SWIG_0(nargs, args, self);}  if (argc == 1) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { return _wrap_new_FXHMat__SWIG_4(nargs, args, self);}  }  if (argc == 1) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { return _wrap_new_FXHMat__SWIG_1(nargs, args, self);}  }  if (argc == 4) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
             if (_v) { { void *ptr;
                    _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
                 if (_v) { { void *ptr;
                        _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
                     if (_v) { return _wrap_new_FXHMat__SWIG_3(nargs, args, self);}  }  }  }  }  if (argc == 16) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { {
                            _v = ((TYPE(argv[4]) == T_FLOAT) || (TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0; }
                         if (_v) { {
                                _v = ((TYPE(argv[5]) == T_FLOAT) || (TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0; }
                             if (_v) { {
                                    _v = ((TYPE(argv[6]) == T_FLOAT) || (TYPE(argv[6]) == T_FIXNUM) || (TYPE(argv[6]) == T_BIGNUM)) ? 1 : 0; }
                                 if (_v) { {
                                        _v = ((TYPE(argv[7]) == T_FLOAT) || (TYPE(argv[7]) == T_FIXNUM) || (TYPE(argv[7]) == T_BIGNUM)) ? 1 : 0; }
                                     if (_v) { {
                                            _v = ((TYPE(argv[8]) == T_FLOAT) || (TYPE(argv[8]) == T_FIXNUM) || (TYPE(argv[8]) == T_BIGNUM)) ? 1 : 0; }
                                         if (_v) { {
                                                _v = ((TYPE(argv[9]) == T_FLOAT) || (TYPE(argv[9]) == T_FIXNUM) || (TYPE(argv[9]) == T_BIGNUM)) ? 1 : 0; }
                                             if (_v) { {
                                                    _v = ((TYPE(argv[10]) == T_FLOAT) || (TYPE(argv[10]) == T_FIXNUM) || (TYPE(argv[10]) == T_BIGNUM)) ? 1 : 0; }
                                                 if (_v) { {
                                                        _v = ((TYPE(argv[11]) == T_FLOAT) || (TYPE(argv[11]) == T_FIXNUM) || (TYPE(argv[11]) == T_BIGNUM)) ? 1 : 0; }
                                                     if (_v) { {
                                                            _v = ((TYPE(argv[12]) == T_FLOAT) || (TYPE(argv[12]) == T_FIXNUM) || (TYPE(argv[12]) == T_BIGNUM)) ? 1 : 0; }
                                                         if (_v) { {
                                                                _v = ((TYPE(argv[13]) == T_FLOAT) || (TYPE(argv[13]) == T_FIXNUM) || (TYPE(argv[13]) == T_BIGNUM)) ? 1 : 0; }
                                                             if (_v) { {
                                                                    _v = ((TYPE(argv[14]) == T_FLOAT) || (TYPE(argv[14]) == T_FIXNUM) || (TYPE(argv[14]) == T_BIGNUM)) ? 1 : 0; }
                                                                 if (_v) { {
                                                                        _v = ((TYPE(argv[15]) == T_FLOAT) || (TYPE(argv[15]) == T_FIXNUM) || (TYPE(argv[15]) == T_BIGNUM)) ? 1 : 0; }
                                                                     if (_v) {
                                                                        return _wrap_new_FXHMat__SWIG_2(nargs, args, self);}  }
                                                                 }  }  }  }  }  }  }  }  }  }  }  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXHMat'"); return Qnil; }
static VALUE _wrap_FXHMat___add__(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXHMat *arg2 = 0 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHMat, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = FXHMat_operator_a___((FXHMat const *)arg1,(FXHMat const &)*arg2); { FXHMat* resultptr = new FXHMat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat___sub__(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXHMat *arg2 = 0 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHMat, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = FXHMat_operator_s___((FXHMat const *)arg1,(FXHMat const &)*arg2); { FXHMat* resultptr = new FXHMat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat___mul____SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXHMat *arg2 = 0 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHMat, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = FXHMat_operator_m_____SWIG_0((FXHMat const *)arg1,(FXHMat const &)*arg2); { FXHMat* resultptr = new FXHMat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat___mul____SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = FXHMat_operator_m_____SWIG_1((FXHMat const *)arg1,arg2); {
        FXHMat* resultptr = new FXHMat(result); vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat___mul____SWIG_2(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXHVec *arg2 = 0 ;
    FXHVec result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    result = FXHMat_operator_m_____SWIG_2((FXHMat const *)arg1,(FXHVec const &)*arg2); { FXHVec * resultptr;
        resultptr = new FXHVec((FXHVec &)result); vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); } 
    delete arg2; return vresult; }
static VALUE _wrap_FXHMat___mul____SWIG_3(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXVec *arg2 = 0 ;
    FXVec result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    result = FXHMat_operator_m_____SWIG_3((FXHMat const *)arg1,(FXVec const &)*arg2); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  delete arg2; return vresult; }
static VALUE _wrap_FXHMat___mul__(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 2); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHMat___mul____SWIG_0(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXHVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHMat___mul____SWIG_2(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHMat___mul____SWIG_3(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHMat___mul____SWIG_1(nargs, args, self);}  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat___mul__'"); return Qnil; }
static VALUE _wrap_FXHMat___div__(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); result = FXHMat_operator_d___((FXHMat const *)arg1,arg2); {
        FXHMat* resultptr = new FXHMat(result); vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat___neg__(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    result = FXHMat_operator_s___((FXHMat const *)arg1); { FXHMat* resultptr = new FXHMat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat___getitem__(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXint arg2 ;
    FXHVec *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = NUM2INT(argv[0]); { FXHVec &_result_ref = FXHMat___getitem__(arg1,arg2); result = (FXHVec *) &_result_ref; } 
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXHMat_det(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1); result = (FXfloat)FXHMat_det((FXHMat const *)arg1);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXHMat_transpose(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    result = FXHMat_transpose((FXHMat const *)arg1); { FXHMat* resultptr = new FXHMat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat_invert(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ;
    SwigValueWrapper< FXHMat > result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    result = FXHMat_invert((FXHMat const *)arg1); { FXHMat* resultptr = new FXHMat(result);
        vresult = FXRbGetRubyObj(resultptr, "FXHMat *"); }  return vresult; }
static VALUE _wrap_FXHMat_to_s(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXString result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1); result = FXHMat_to_s((FXHMat const *)arg1);
    vresult = rb_str_new2((&result)->text()); return vresult; }
static VALUE _wrap_FXHMat_eye(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXHMat *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1); { FXHMat &_result_ref = (arg1)->eye();
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_ortho(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ; FXfloat arg3 ;
    FXfloat arg4 ; FXfloat arg5 ; FXfloat arg6 ; FXfloat arg7 ; FXHMat *result; VALUE vresult = Qnil;
    if ((argc < 6) || (argc > 6)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); arg5 = (FXfloat) NUM2DBL(argv[3]);
    arg6 = (FXfloat) NUM2DBL(argv[4]); arg7 = (FXfloat) NUM2DBL(argv[5]); {
        FXHMat &_result_ref = (arg1)->ortho(arg2,arg3,arg4,arg5,arg6,arg7); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_frustum(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXfloat arg4 ; FXfloat arg5 ; FXfloat arg6 ; FXfloat arg7 ; FXHMat *result; VALUE vresult = Qnil;
    if ((argc < 6) || (argc > 6)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); arg5 = (FXfloat) NUM2DBL(argv[3]);
    arg6 = (FXfloat) NUM2DBL(argv[4]); arg7 = (FXfloat) NUM2DBL(argv[5]); {
        FXHMat &_result_ref = (arg1)->frustum(arg2,arg3,arg4,arg5,arg6,arg7); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_left(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXHMat *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1); { FXHMat &_result_ref = (arg1)->left();
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_rot__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXQuat *arg2 = 0 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXQuat, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    { FXHMat &_result_ref = (arg1)->rot((FXQuat const &)*arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_rot__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXVec *arg2 = 0 ;
    FXfloat arg3 ; FXfloat arg4 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); {
        FXHMat &_result_ref = (arg1)->rot((FXVec const &)*arg2,arg3,arg4); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); delete arg2; return vresult; }
static VALUE _wrap_FXHMat_rot__SWIG_2(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXVec *arg2 = 0 ;
    FXfloat arg3 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    arg3 = (FXfloat) NUM2DBL(argv[1]); { FXHMat &_result_ref = (arg1)->rot((FXVec const &)*arg2,arg3);
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); delete arg2; return vresult; }
static VALUE _wrap_FXHMat_rot(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[5]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 4); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXQuat, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHMat_rot__SWIG_0(nargs, args, self);}  }  }  if (argc == 3) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
             if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { return _wrap_FXHMat_rot__SWIG_2(nargs, args, self);}  }  }  }  if (argc == 4) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
             if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { return _wrap_FXHMat_rot__SWIG_1(nargs, args, self);}  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat_rot'"); return Qnil; }
static VALUE _wrap_FXHMat_xrot__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); arg3 = (FXfloat) NUM2DBL(argv[1]); { FXHMat &_result_ref = (arg1)->xrot(arg2,arg3);
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_xrot__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); { FXHMat &_result_ref = (arg1)->xrot(arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_xrot(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 3); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHMat_xrot__SWIG_1(nargs, args, self);}  }  }  if (argc == 3) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { return _wrap_FXHMat_xrot__SWIG_0(nargs, args, self);}  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat_xrot'"); return Qnil; }
static VALUE _wrap_FXHMat_yrot__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); arg3 = (FXfloat) NUM2DBL(argv[1]); { FXHMat &_result_ref = (arg1)->yrot(arg2,arg3);
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_yrot__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); { FXHMat &_result_ref = (arg1)->yrot(arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_yrot(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 3); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHMat_yrot__SWIG_1(nargs, args, self);}  }  }  if (argc == 3) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { return _wrap_FXHMat_yrot__SWIG_0(nargs, args, self);}  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat_yrot'"); return Qnil; }
static VALUE _wrap_FXHMat_zrot__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); arg3 = (FXfloat) NUM2DBL(argv[1]); { FXHMat &_result_ref = (arg1)->zrot(arg2,arg3);
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_zrot__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); { FXHMat &_result_ref = (arg1)->zrot(arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_zrot(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[4]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 3); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHMat_zrot__SWIG_1(nargs, args, self);}  }  }  if (argc == 3) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { return _wrap_FXHMat_zrot__SWIG_0(nargs, args, self);}  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat_zrot'"); return Qnil; }
static VALUE _wrap_FXHMat_look(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXVec *arg2 = 0 ;
    FXVec *arg3 = 0 ; FXVec *arg4 = 0 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  }  {
        if (TYPE(argv[1]) == T_ARRAY) {
            arg3 = new FXVec(NUM2DBL(rb_ary_entry(argv[1], 0)), NUM2DBL(rb_ary_entry(argv[1], 1)), NUM2DBL(rb_ary_entry(argv[1], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[1],(void **)&p,SWIGTYPE_p_FXVec,1); arg3 = new FXVec(*p); }  }  {
        if (TYPE(argv[2]) == T_ARRAY) {
            arg4 = new FXVec(NUM2DBL(rb_ary_entry(argv[2], 0)), NUM2DBL(rb_ary_entry(argv[2], 1)), NUM2DBL(rb_ary_entry(argv[2], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[2],(void **)&p,SWIGTYPE_p_FXVec,1); arg4 = new FXVec(*p); }  }  {
        FXHMat &_result_ref = (arg1)->look((FXVec const &)*arg2,(FXVec const &)*arg3,(FXVec const &)*arg4);
        result = (FXHMat *) &_result_ref; }  vresult = FXRbGetRubyObj(result, "FXHMat *"); delete arg2; delete arg3;
    delete arg4; return vresult; }
static VALUE _wrap_FXHMat_trans__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXfloat arg4 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); {
        FXHMat &_result_ref = (arg1)->trans(arg2,arg3,arg4); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_trans__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXVec *arg2 = 0 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  }  {
        FXHMat &_result_ref = (arg1)->trans((FXVec const &)*arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); delete arg2; return vresult; }
static VALUE _wrap_FXHMat_trans(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[5]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 4); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHMat_trans__SWIG_1(nargs, args, self);}  }  }  if (argc == 4) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { return _wrap_FXHMat_trans__SWIG_0(nargs, args, self);}  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat_trans'"); return Qnil; }
static VALUE _wrap_FXHMat_scale__SWIG_0(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXfloat arg4 ; FXHMat *result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); {
        FXHMat &_result_ref = (arg1)->scale(arg2,arg3,arg4); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_scale__SWIG_1(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXfloat arg2 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    arg2 = (FXfloat) NUM2DBL(argv[0]); { FXHMat &_result_ref = (arg1)->scale(arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXHMat_scale__SWIG_2(int argc, VALUE *argv, VALUE self) { FXHMat *arg1 = (FXHMat *) 0 ; FXVec *arg2 = 0 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXHMat, 1);
    { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  }  {
        FXHMat &_result_ref = (arg1)->scale((FXVec const &)*arg2); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); delete arg2; return vresult; }
static VALUE _wrap_FXHMat_scale(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[5]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 4); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXHMat_scale__SWIG_2(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { return _wrap_FXHMat_scale__SWIG_1(nargs, args, self);}  }  }  if (argc == 4) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXHMat, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { return _wrap_FXHMat_scale__SWIG_0(nargs, args, self);}  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXHMat_scale'"); return Qnil; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXRangeSlice_allocate(VALUE self) {
#else
     static VALUE _wrap_FXRangeSlice_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXRangeSlice);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXRangeSlice(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = 0 ; FXint arg2 ; FXRangeSlice *result;
    if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXRange, 1); if (arg1 == NULL) rb_raise(rb_eTypeError, "null reference");
    arg2 = NUM2INT(argv[1]); result = (FXRangeSlice *)new FXRangeSlice(*arg1,arg2); DATA_PTR(self) = (void *) result;
    return self; }
static VALUE _wrap_FXRangeSlice___getitem__(int argc, VALUE *argv, VALUE self) { FXRangeSlice *arg1 = (FXRangeSlice *) 0 ;
    FXint arg2 ; FXfloat result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRangeSlice, 1); arg2 = NUM2INT(argv[0]);
    result = (FXfloat)FXRangeSlice___getitem__((FXRangeSlice const *)arg1,arg2); vresult = rb_float_new(result);
    return vresult; }
static VALUE _wrap_FXRangeSlice___setitem__(int argc, VALUE *argv, VALUE self) { FXRangeSlice *arg1 = (FXRangeSlice *) 0 ;
    FXint arg2 ; FXfloat arg3 ; FXfloat result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRangeSlice, 1); arg2 = NUM2INT(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); result = (FXfloat)FXRangeSlice___setitem__(arg1,arg2,arg3);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRangeSlice_length(int argc, VALUE *argv, VALUE self) { FXRangeSlice *arg1 = (FXRangeSlice *) 0 ;
    int result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRangeSlice, 1);
    result = (int)FXRangeSlice_length((FXRangeSlice const *)arg1); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_new_FXRange__SWIG_0(int argc, VALUE *argv, VALUE self) { FXRange *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { result = (FXRange *)new FXRange();
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXRange_allocate(VALUE self) {
#else
     static VALUE _wrap_FXRange_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXRange);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXRange__SWIG_1(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXfloat arg4 ; FXfloat arg5 ; FXfloat arg6 ; FXRange *result; if ((argc < 6) || (argc > 6))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); arg1 = (FXfloat) NUM2DBL(argv[0]);
    arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]); arg4 = (FXfloat) NUM2DBL(argv[3]);
    arg5 = (FXfloat) NUM2DBL(argv[4]); arg6 = (FXfloat) NUM2DBL(argv[5]); {
        result = (FXRange *)new FXRange(arg1,arg2,arg3,arg4,arg5,arg6);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXRange(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[6]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 6); ii++) { argv[ii] = args[ii]; }  if (argc == 0) {
        return _wrap_new_FXRange__SWIG_0(nargs, args, self);}  if (argc == 6) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { {
                            _v = ((TYPE(argv[4]) == T_FLOAT) || (TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0; }
                         if (_v) { {
                                _v = ((TYPE(argv[5]) == T_FLOAT) || (TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0; }
                             if (_v) { return _wrap_new_FXRange__SWIG_1(nargs, args, self);}  }  }  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXRange'"); return Qnil; }
static VALUE _wrap_FXRange_side(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXint arg2 ;
    FXfloat result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); arg2 = NUM2INT(argv[0]);
    result = (FXfloat)((FXRange const *)arg1)->side(arg2); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRange_width(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXfloat)((FXRange const *)arg1)->width();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRange_height(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXfloat)((FXRange const *)arg1)->height();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRange_depth(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXfloat)((FXRange const *)arg1)->depth();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRange_longest(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXfloat)((FXRange const *)arg1)->longest();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRange_shortest(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXfloat)((FXRange const *)arg1)->shortest();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXRange_emptyq___(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXbool)((FXRange const *)arg1)->empty();
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXRange_overlapsq___(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXRange *arg2 = 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXRange, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = (FXbool)((FXRange const *)arg1)->overlap((FXRange const &)*arg2); vresult = result ? Qtrue : Qfalse;
    return vresult; }
static VALUE _wrap_FXRange_containsq___(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXfloat arg4 ; FXbool result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]);
    result = (FXbool)((FXRange const *)arg1)->contains(arg2,arg3,arg4); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXRange___getitem__(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXint arg2 ;
    SwigValueWrapper< FXRangeSlice > result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); arg2 = NUM2INT(argv[0]);
    result = FXRange___getitem__(arg1,arg2); { FXRangeSlice *resultptr = new FXRangeSlice(result);
        vresult = FXRbGetRubyObj(resultptr, "FXRangeSlice *"); }  return vresult; }
static VALUE _wrap_FXRange___setitem__(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXint arg2 ;
    FXRangeSlice *arg3 = 0 ; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); arg2 = NUM2INT(argv[0]);
    SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_FXRangeSlice, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXRange___setitem__(arg1,arg2,*arg3); return Qnil; }
static VALUE _wrap_FXRange_include__SWIG_0(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ;
    FXRange *arg2 = 0 ; FXRange *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXRange, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    { FXRange &_result_ref = (arg1)->include((FXRange const &)*arg2); result = (FXRange *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXRange *"); return vresult; }
static VALUE _wrap_FXRange_include__SWIG_1(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat arg2 ;
    FXfloat arg3 ; FXfloat arg4 ; FXRange *result; VALUE vresult = Qnil; if ((argc < 3) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    arg3 = (FXfloat) NUM2DBL(argv[1]); arg4 = (FXfloat) NUM2DBL(argv[2]); {
        FXRange &_result_ref = (arg1)->include(arg2,arg3,arg4); result = (FXRange *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXRange *"); return vresult; }
static VALUE _wrap_FXRange_include__SWIG_2(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ;
    FXVec *arg2 = 0 ; FXRange *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  }  {
        FXRange &_result_ref = (arg1)->include((FXVec const &)*arg2); result = (FXRange *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXRange *"); delete arg2; return vresult; }
static VALUE _wrap_FXRange_include(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[5]; int ii; argc = nargs + 1;
    argv[0] = self; for (ii = 1; (ii < argc) && (ii < 4); ii++) { argv[ii] = args[ii-1]; }  if (argc == 2) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXRange, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXRange, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXRange_include__SWIG_0(nargs, args, self);}  }  }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXRange, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXVec, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_FXRange_include__SWIG_2(nargs, args, self);}  }  }  if (argc == 4) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXRange, 0) != -1)) ? 1 : 0; }
         if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { {
                        _v = ((TYPE(argv[3]) == T_FLOAT) || (TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }
                     if (_v) { return _wrap_FXRange_include__SWIG_1(nargs, args, self);}  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'FXRange_include'"); return Qnil; }
static VALUE _wrap_FXRange_clipTo(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXRange *arg2 = 0 ;
    FXRange *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXRange, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    { FXRange &_result_ref = (arg1)->clipTo((FXRange const &)*arg2); result = (FXRange *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXRange *"); return vresult; }
static VALUE _wrap_FXRange_corners(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; VALUE result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (VALUE)FXRange_corners((FXRange const *)arg1);
    vresult = result; return vresult; }
static VALUE _wrap_FXRange_intersectsq___(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXVec *arg2 = 0 ;
    FXVec *arg3 = 0 ; FXbool result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  }  {
        if (TYPE(argv[1]) == T_ARRAY) {
            arg3 = new FXVec(NUM2DBL(rb_ary_entry(argv[1], 0)), NUM2DBL(rb_ary_entry(argv[1], 1)), NUM2DBL(rb_ary_entry(argv[1], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[1],(void **)&p,SWIGTYPE_p_FXVec,1); arg3 = new FXVec(*p); }  } 
    result = (FXbool)FXRange_intersects((FXRange const *)arg1,(FXVec const &)*arg2,(FXVec const &)*arg3);
    vresult = result ? Qtrue : Qfalse; delete arg2; delete arg3; return vresult; }
static VALUE _wrap_FXRange_center(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXVec result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = FXRange_center((FXRange const *)arg1); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXRange_diagonal(int argc, VALUE *argv, VALUE self) { FXRange *arg1 = (FXRange *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXRange, 1); result = (FXfloat)FXRange_diagonal((FXRange const *)arg1);
    vresult = rb_float_new(result); return vresult; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXGLVisual_allocate(VALUE self) {
#else
     static VALUE _wrap_FXGLVisual_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXGLVisual);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXGLVisual(int argc, VALUE *argv, VALUE self) { FXApp *arg1 = (FXApp *) 0 ; FXuint arg2 ;
    FXGLVisual *result; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXApp, 1); arg2 = NUM2UINT(argv[1]); {
        result = (FXGLVisual *)new_FXGLVisual(arg1,arg2); DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result);
        if(rb_block_given_p()){ rb_yield(self); }  }  return self; }
static VALUE _wrap_FXGLVisual_getRedSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); result = (FXint)((FXGLVisual const *)arg1)->getRedSize();
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getGreenSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getGreenSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getBlueSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); result = (FXint)((FXGLVisual const *)arg1)->getBlueSize();
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getAlphaSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getAlphaSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getDepthSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getDepthSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getStencilSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getStencilSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getAccumRedSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getAccumRedSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getAccumGreenSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getAccumGreenSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getAccumBlueSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getAccumBlueSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getAccumAlphaSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getAccumAlphaSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_setRedSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ; FXint arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setRedSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setGreenSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setGreenSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setBlueSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setBlueSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setAlphaSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setAlphaSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setDepthSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setDepthSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setStencilSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setStencilSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setAccumRedSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setAccumRedSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setAccumGreenSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setAccumGreenSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setAccumBlueSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setAccumBlueSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_setAccumAlphaSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); arg2 = NUM2INT(argv[0]); (arg1)->setAccumAlphaSize(arg2);
    return Qnil; }
static VALUE _wrap_FXGLVisual_getActualRedSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualRedSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualGreenSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualGreenSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualBlueSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualBlueSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualAlphaSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualAlphaSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualDepthSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualDepthSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualStencilSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualStencilSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualAccumRedSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualAccumRedSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualAccumGreenSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualAccumGreenSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualAccumBlueSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualAccumBlueSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_getActualAccumAlphaSize(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXint)((FXGLVisual const *)arg1)->getActualAccumAlphaSize(); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLVisual_isDoubleBuffer(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXbool)((FXGLVisual const *)arg1)->isDoubleBuffer(); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLVisual_isStereo(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); result = (FXbool)((FXGLVisual const *)arg1)->isStereo();
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLVisual_isAccelerated(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    result = (FXbool)((FXGLVisual const *)arg1)->isAccelerated(); vresult = result ? Qtrue : Qfalse; return vresult; }
static void
free_FXGLVisual(FXGLVisual *arg1) {
    delete arg1;
}
static VALUE _wrap_FXGLVisual_save(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLVisual_save((FXGLVisual const *)arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLVisual_load(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLVisual_load(arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLVisual_create(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); FXGLVisual_create(arg1); return Qnil; }
static VALUE _wrap_FXGLVisual_detach(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); FXGLVisual_detach(arg1); return Qnil; }
static VALUE _wrap_FXGLVisual_destroy(int argc, VALUE *argv, VALUE self) { FXGLVisual *arg1 = (FXGLVisual *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLVisual, 1); FXGLVisual_destroy(arg1); return Qnil; }
static VALUE _wrap_glUseFXFont(int argc, VALUE *argv, VALUE self) { FXFont *arg1 = (FXFont *) 0 ; int arg2 ; int arg3 ;
    int arg4 ; if ((argc < 4) || (argc > 4)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXFont, 1); arg2 = NUM2INT(argv[1]); arg3 = NUM2INT(argv[2]);
    arg4 = NUM2INT(argv[3]); glUseFXFont(arg1,arg2,arg3,arg4); return Qnil; }
static VALUE _wrap_new_FXGLContext__SWIG_0(int argc, VALUE *argv, VALUE self) { FXApp *arg1 = (FXApp *) 0 ;
    FXGLVisual *arg2 = (FXGLVisual *) 0 ; FXGLContext *result; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXApp, 1);
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXGLVisual, 1); {
        result = (FXGLContext *)new_FXGLContext__SWIG_0(arg1,arg2);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXGLContext_allocate(VALUE self) {
#else
     static VALUE _wrap_FXGLContext_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXGLContext);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXGLContext__SWIG_1(int argc, VALUE *argv, VALUE self) { FXApp *arg1 = (FXApp *) 0 ;
    FXGLVisual *arg2 = (FXGLVisual *) 0 ; FXGLContext *arg3 = (FXGLContext *) 0 ; FXGLContext *result;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXApp, 1);
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXGLVisual, 1);
    SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_FXGLContext, 1); {
        result = (FXGLContext *)new_FXGLContext__SWIG_1(arg1,arg2,arg3);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXGLContext(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[3]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 3); ii++) { argv[ii] = args[ii]; }  if (argc == 2) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXApp, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXGLVisual, 0) != -1)) ? 1 : 0; }
             if (_v) { return _wrap_new_FXGLContext__SWIG_0(nargs, args, self);}  }  }  if (argc == 3) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXApp, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXGLVisual, 0) != -1)) ? 1 : 0; }
             if (_v) { { void *ptr;
                    _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_FXGLContext, 0) != -1)) ? 1 : 0; }
                 if (_v) { return _wrap_new_FXGLContext__SWIG_1(nargs, args, self);}  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXGLContext'"); return Qnil; }
static VALUE _wrap_FXGLContext_isShared(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); result = (FXbool)((FXGLContext const *)arg1)->isShared();
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLContext_getVisual(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    FXGLVisual *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1);
    result = (FXGLVisual *)((FXGLContext const *)arg1)->getVisual(); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLVisual, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  return vresult; }
static VALUE _wrap_FXGLContext_begin(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    FXDrawable *arg2 = (FXDrawable *) 0 ; FXbool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXDrawable, 1); result = (FXbool)(arg1)->begin(arg2);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLContext_end(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); result = (FXbool)(arg1)->end();
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLContext_swapBuffers(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); (arg1)->swapBuffers(); return Qnil; }
static VALUE _wrap_FXGLContext_swapSubBuffers(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    FXint arg2 ; FXint arg3 ; FXint arg4 ; FXint arg5 ; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); (arg1)->swapSubBuffers(arg2,arg3,arg4,arg5); return Qnil; }
static void
free_FXGLContext(FXGLContext *arg1) {
    delete arg1;
}
static VALUE _wrap_FXGLContext_save(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLContext_save((FXGLContext const *)arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLContext_load(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLContext_load(arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLContext_create(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); FXGLContext_create(arg1); return Qnil; }
static VALUE _wrap_FXGLContext_detach(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); FXGLContext_detach(arg1); return Qnil; }
static VALUE _wrap_FXGLContext_destroy(int argc, VALUE *argv, VALUE self) { FXGLContext *arg1 = (FXGLContext *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLContext, 1); FXGLContext_destroy(arg1); return Qnil; }
static VALUE _wrap_new_FXGLCanvas__SWIG_0(int argc, VALUE *argv, VALUE self) { FXComposite *arg1 = (FXComposite *) 0 ;
    FXGLVisual *arg2 = (FXGLVisual *) 0 ; FXObject *arg3 = (FXObject *) 0 ; FXSelector arg4 = (FXSelector) 0 ;
    FXuint arg5 = (FXuint) 0 ; FXint arg6 = (FXint) 0 ; FXint arg7 = (FXint) 0 ; FXint arg8 = (FXint) 0 ;
    FXint arg9 = (FXint) 0 ; FXGLCanvas *result; if ((argc < 2) || (argc > 9))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXComposite, 1);
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXGLVisual, 1); if (argc > 2) {
        SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_FXObject, 1); }  if (argc > 3) { arg4 = NUM2UINT(argv[3]); } 
    if (argc > 4) { arg5 = NUM2UINT(argv[4]); }  if (argc > 5) { arg6 = NUM2INT(argv[5]); }  if (argc > 6) {
        arg7 = NUM2INT(argv[6]); }  if (argc > 7) { arg8 = NUM2INT(argv[7]); }  if (argc > 8) { arg9 = NUM2INT(argv[8]); }  {
        result = (FXGLCanvas *)new_FXGLCanvas__SWIG_0(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXGLCanvas_allocate(VALUE self) {
#else
     static VALUE _wrap_FXGLCanvas_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXGLCanvas);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXGLCanvas__SWIG_1(int argc, VALUE *argv, VALUE self) { FXComposite *arg1 = (FXComposite *) 0 ;
    FXGLVisual *arg2 = (FXGLVisual *) 0 ; FXGLCanvas *arg3 = (FXGLCanvas *) 0 ; FXObject *arg4 = (FXObject *) 0 ;
    FXSelector arg5 = (FXSelector) 0 ; FXuint arg6 = (FXuint) 0 ; FXint arg7 = (FXint) 0 ; FXint arg8 = (FXint) 0 ;
    FXint arg9 = (FXint) 0 ; FXint arg10 = (FXint) 0 ; FXGLCanvas *result; if ((argc < 3) || (argc > 10))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXComposite, 1);
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXGLVisual, 1);
    SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_FXGLCanvas, 1); if (argc > 3) {
        SWIG_ConvertPtr(argv[3], (void **) &arg4, SWIGTYPE_p_FXObject, 1); }  if (argc > 4) { arg5 = NUM2UINT(argv[4]); } 
    if (argc > 5) { arg6 = NUM2UINT(argv[5]); }  if (argc > 6) { arg7 = NUM2INT(argv[6]); }  if (argc > 7) {
        arg8 = NUM2INT(argv[7]); }  if (argc > 8) { arg9 = NUM2INT(argv[8]); }  if (argc > 9) { arg10 = NUM2INT(argv[9]); }  {
        result = (FXGLCanvas *)new_FXGLCanvas__SWIG_1(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXGLCanvas(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[10]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 10); ii++) { argv[ii] = args[ii]; }  if ((argc >= 2) && (argc <= 9)) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXComposite, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXGLVisual, 0) != -1)) ? 1 : 0; }
             if (_v) { if (argc <= 2) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  { void *ptr;
                    _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_FXObject, 0) != -1)) ? 1 : 0; }
                 if (_v) { if (argc <= 3) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  {
                        _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }  if (_v) { if (argc <= 4) {
                            return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  {
                            _v = ((TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                            if (argc <= 5) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  {
                                _v = ((TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                if (argc <= 6) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  {
                                    _v = ((TYPE(argv[6]) == T_FIXNUM) || (TYPE(argv[6]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                    if (argc <= 7) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  {
                                        _v = ((TYPE(argv[7]) == T_FIXNUM) || (TYPE(argv[7]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                        if (argc <= 8) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  {
                                            _v = ((TYPE(argv[8]) == T_FIXNUM) || (TYPE(argv[8]) == T_BIGNUM)) ? 1 : 0; } 
                                        if (_v) { return _wrap_new_FXGLCanvas__SWIG_0(nargs, args, self);}  }  }  }  }  }  }  }
             }  }  if ((argc >= 3) && (argc <= 10)) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXComposite, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXGLVisual, 0) != -1)) ? 1 : 0; }
             if (_v) { { void *ptr;
                    _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_FXGLCanvas, 0) != -1)) ? 1 : 0; }
                 if (_v) { if (argc <= 3) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  { void *ptr;
                        _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_FXObject, 0) != -1)) ? 1 : 0; }
                     if (_v) { if (argc <= 4) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  {
                            _v = ((TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                            if (argc <= 5) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  {
                                _v = ((TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                if (argc <= 6) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  {
                                    _v = ((TYPE(argv[6]) == T_FIXNUM) || (TYPE(argv[6]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                    if (argc <= 7) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  {
                                        _v = ((TYPE(argv[7]) == T_FIXNUM) || (TYPE(argv[7]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                        if (argc <= 8) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  {
                                            _v = ((TYPE(argv[8]) == T_FIXNUM) || (TYPE(argv[8]) == T_BIGNUM)) ? 1 : 0; } 
                                        if (_v) { if (argc <= 9) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  {
                                                _v = ((TYPE(argv[9]) == T_FIXNUM) || (TYPE(argv[9]) == T_BIGNUM)) ? 1 : 0; } 
                                            if (_v) { return _wrap_new_FXGLCanvas__SWIG_1(nargs, args, self);}  }  }  }  }  }  }
                     }  }  }  }  rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXGLCanvas'"); return Qnil; }
static VALUE _wrap_FXGLCanvas_isShared(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); result = (FXbool)((FXGLCanvas const *)arg1)->isShared();
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_getContext(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    unsigned long result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    result = (unsigned long)FXGLCanvas_getContext((FXGLCanvas const *)arg1); vresult = UINT2NUM(result); return vresult; }
static void
free_FXGLCanvas(FXGLCanvas *arg1) {
    delete arg1;
}
static VALUE _wrap_FXGLCanvas_save(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLCanvas_save((FXGLCanvas const *)arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLCanvas_load(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLCanvas_load(arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLCanvas_create(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_create(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_detach(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_detach(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_destroy(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_destroy(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_resize(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ; FXint arg2 ;
    FXint arg3 ; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    FXGLCanvas_resize(arg1,arg2,arg3); return Qnil; }
static VALUE _wrap_FXGLCanvas_getDefaultWidth(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); result = (FXint)FXGLCanvas_getDefaultWidth(arg1);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLCanvas_getDefaultHeight(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); result = (FXint)FXGLCanvas_getDefaultHeight(arg1);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLCanvas_getWidthForHeight(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXint arg2 ; FXint result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = NUM2INT(argv[0]);
    result = (FXint)FXGLCanvas_getWidthForHeight(arg1,arg2); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLCanvas_getHeightForWidth(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXint arg2 ; FXint result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = NUM2INT(argv[0]);
    result = (FXint)FXGLCanvas_getHeightForWidth(arg1,arg2); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLCanvas_canFocus(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    result = (FXbool)FXGLCanvas_canFocus((FXGLCanvas const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_setFocus(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_setFocus(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_killFocus(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_killFocus(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_setDefault(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXbool arg2 = (FXbool) 1 ; if ((argc < 0) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); if (argc > 0) { arg2 = to_FXbool(argv[0]); } 
    FXGLCanvas_setDefault(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLCanvas_enable(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_enable(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_disable(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_disable(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_raiseWindow(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_raise(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_lower(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_lower(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_move(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ; FXint arg2 ;
    FXint arg3 ; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    FXGLCanvas_move(arg1,arg2,arg3); return Qnil; }
static VALUE _wrap_FXGLCanvas_position(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ; FXint arg2 ;
    FXint arg3 ; FXint arg4 ; FXint arg5 ; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); FXGLCanvas_position(arg1,arg2,arg3,arg4,arg5); return Qnil; }
static VALUE _wrap_FXGLCanvas_recalc(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_recalc(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_reparent(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXComposite *arg2 = (FXComposite *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXComposite, 1); FXGLCanvas_reparent(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLCanvas_show(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_show(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_hide(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_hide(arg1); return Qnil; }
static VALUE _wrap_FXGLCanvas_isComposite(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    result = (FXbool)FXGLCanvas_isComposite((FXGLCanvas const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_contains(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ; FXint arg2 ;
    FXint arg3 ; FXbool result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    result = (FXbool)FXGLCanvas_contains((FXGLCanvas const *)arg1,arg2,arg3); vresult = result ? Qtrue : Qfalse;
    return vresult; }
static VALUE _wrap_FXGLCanvas_doesSaveUnder(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    result = (FXbool)FXGLCanvas_doesSaveUnder((FXGLCanvas const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_setBackColor(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXColor arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); arg2 = to_FXColor(argv[0]);
    FXGLCanvas_setBackColor(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLCanvas_makeCurrent(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); result = (FXbool)FXGLCanvas_makeCurrent(arg1);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_makeNonCurrent(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); result = (FXbool)FXGLCanvas_makeNonCurrent(arg1);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_isCurrent(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1);
    result = (FXbool)FXGLCanvas_isCurrent((FXGLCanvas const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLCanvas_swapBuffers(int argc, VALUE *argv, VALUE self) { FXGLCanvas *arg1 = (FXGLCanvas *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLCanvas, 1); FXGLCanvas_swapBuffers(arg1); return Qnil; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXViewport_allocate(VALUE self) {
#else
     static VALUE _wrap_FXViewport_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXViewport);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXViewport(int argc, VALUE *argv, VALUE self) { FXViewport *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); result = (FXViewport *)new FXViewport();
    DATA_PTR(self) = (void *) result; return self; }
static VALUE _wrap_FXViewport_w_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ; FXint arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = NUM2INT(argv[0]); if (arg1) (arg1)->w = arg2;
    return Qnil; }
static VALUE _wrap_FXViewport_w_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ; FXint result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXint) ((arg1)->w); vresult = INT2NUM(result);
    return vresult; }
static VALUE _wrap_FXViewport_h_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ; FXint arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = NUM2INT(argv[0]); if (arg1) (arg1)->h = arg2;
    return Qnil; }
static VALUE _wrap_FXViewport_h_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ; FXint result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXint) ((arg1)->h); vresult = INT2NUM(result);
    return vresult; }
static VALUE _wrap_FXViewport_left_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    if (arg1) (arg1)->left = arg2; return Qnil; }
static VALUE _wrap_FXViewport_left_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXdouble) ((arg1)->left);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXViewport_right_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    if (arg1) (arg1)->right = arg2; return Qnil; }
static VALUE _wrap_FXViewport_right_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXdouble) ((arg1)->right);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXViewport_bottom_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    if (arg1) (arg1)->bottom = arg2; return Qnil; }
static VALUE _wrap_FXViewport_bottom_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXdouble) ((arg1)->bottom);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXViewport_top_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ; FXdouble arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    if (arg1) (arg1)->top = arg2; return Qnil; }
static VALUE _wrap_FXViewport_top_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXdouble) ((arg1)->top);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXViewport_hither_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    if (arg1) (arg1)->hither = arg2; return Qnil; }
static VALUE _wrap_FXViewport_hither_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXdouble) ((arg1)->hither);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXViewport_yon_set(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ; FXdouble arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    if (arg1) (arg1)->yon = arg2; return Qnil; }
static VALUE _wrap_FXViewport_yon_get(int argc, VALUE *argv, VALUE self) { FXViewport *arg1 = (FXViewport *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXViewport, 1); result = (FXdouble) ((arg1)->yon);
    vresult = rb_float_new(result); return vresult; }
static void
free_FXViewport(FXViewport *arg1) {
    delete arg1;
}
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXLight_allocate(VALUE self) {
#else
     static VALUE _wrap_FXLight_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXLight);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXLight(int argc, VALUE *argv, VALUE self) { FXLight *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); result = (FXLight *)new FXLight();
    DATA_PTR(self) = (void *) result; return self; }
static VALUE _wrap_FXLight_ambient_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->ambient = *arg2; return Qnil; }
static VALUE _wrap_FXLight_ambient_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXHVec *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXHVec *)& ((arg1)->ambient);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXLight_diffuse_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->diffuse = *arg2; return Qnil; }
static VALUE _wrap_FXLight_diffuse_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXHVec *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXHVec *)& ((arg1)->diffuse);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXLight_specular_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->specular = *arg2; return Qnil; }
static VALUE _wrap_FXLight_specular_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXHVec *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXHVec *)& ((arg1)->specular);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXLight_position_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->position = *arg2; return Qnil; }
static VALUE _wrap_FXLight_position_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXHVec *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXHVec *)& ((arg1)->position);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXLight_direction_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ;
    FXVec *arg2 = (FXVec *) 0 ; FXVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXVec, 1); }  } 
    if (arg1) (arg1)->direction = *arg2; return Qnil; }
static VALUE _wrap_FXLight_direction_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXVec *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXVec *)& ((arg1)->direction);
    vresult = FXRbGetRubyObj(result, "FXVec *"); return vresult; }
static VALUE _wrap_FXLight_exponent_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    if (arg1) (arg1)->exponent = arg2; return Qnil; }
static VALUE _wrap_FXLight_exponent_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXfloat) ((arg1)->exponent);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXLight_cutoff_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    if (arg1) (arg1)->cutoff = arg2; return Qnil; }
static VALUE _wrap_FXLight_cutoff_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXfloat) ((arg1)->cutoff);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXLight_c_attn_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    if (arg1) (arg1)->c_attn = arg2; return Qnil; }
static VALUE _wrap_FXLight_c_attn_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXfloat) ((arg1)->c_attn);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXLight_l_attn_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    if (arg1) (arg1)->l_attn = arg2; return Qnil; }
static VALUE _wrap_FXLight_l_attn_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXfloat) ((arg1)->l_attn);
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXLight_q_attn_set(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    if (arg1) (arg1)->q_attn = arg2; return Qnil; }
static VALUE _wrap_FXLight_q_attn_get(int argc, VALUE *argv, VALUE self) { FXLight *arg1 = (FXLight *) 0 ; FXfloat result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXLight, 1); result = (FXfloat) ((arg1)->q_attn);
    vresult = rb_float_new(result); return vresult; }
static void
free_FXLight(FXLight *arg1) {
    delete arg1;
}
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXMaterial_allocate(VALUE self) {
#else
     static VALUE _wrap_FXMaterial_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXMaterial);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXMaterial(int argc, VALUE *argv, VALUE self) { FXMaterial *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); result = (FXMaterial *)new FXMaterial();
    DATA_PTR(self) = (void *) result; return self; }
static VALUE _wrap_FXMaterial_ambient_set(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->ambient = *arg2; return Qnil; }
static VALUE _wrap_FXMaterial_ambient_get(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); result = (FXHVec *)& ((arg1)->ambient);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXMaterial_diffuse_set(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->diffuse = *arg2; return Qnil; }
static VALUE _wrap_FXMaterial_diffuse_get(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); result = (FXHVec *)& ((arg1)->diffuse);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXMaterial_specular_set(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->specular = *arg2; return Qnil; }
static VALUE _wrap_FXMaterial_specular_get(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); result = (FXHVec *)& ((arg1)->specular);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXMaterial_emission_set(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *arg2 = (FXHVec *) 0 ; FXHVec tmp2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            tmp2 = FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3)));
            arg2 = &tmp2; }  else { SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXHVec, 1); }  } 
    if (arg1) (arg1)->emission = *arg2; return Qnil; }
static VALUE _wrap_FXMaterial_emission_get(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXHVec *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); result = (FXHVec *)& ((arg1)->emission);
    vresult = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_FXHVec,0); return vresult; }
static VALUE _wrap_FXMaterial_shininess_set(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXfloat arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); arg2 = (FXfloat) NUM2DBL(argv[0]);
    if (arg1) (arg1)->shininess = arg2; return Qnil; }
static VALUE _wrap_FXMaterial_shininess_get(int argc, VALUE *argv, VALUE self) { FXMaterial *arg1 = (FXMaterial *) 0 ;
    FXfloat result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXMaterial, 1); result = (FXfloat) ((arg1)->shininess);
    vresult = rb_float_new(result); return vresult; }
static void
free_FXMaterial(FXMaterial *arg1) {
    delete arg1;
}
static VALUE FXGLViewer_objectType_get(VALUE self) { VALUE _val; _val = UINT2NUM(FXGLViewer::objectType);    return _val; }
static VALUE FXGLViewer_objectType_set(VALUE self, VALUE _val) { FXGLViewer::objectType = NUM2UINT(_val); return _val; }
static VALUE _wrap_FXGLViewer_onPaint(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onPaint(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onEnter(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onEnter(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onLeave(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onLeave(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onMotion(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onMotion(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onMouseWheel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onMouseWheel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onChanged(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onChanged(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onPick(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onPick(arg2,arg3,arg4); vresult = INT2NUM(result);
    return vresult; }
static VALUE _wrap_FXGLViewer_onClicked(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onClicked(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDoubleClicked(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onDoubleClicked(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onTripleClicked(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onTripleClicked(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onLassoed(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onLassoed(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onSelected(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onSelected(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDeselected(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onDeselected(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onInserted(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onInserted(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDeleted(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onDeleted(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onLeftBtnPress(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onLeftBtnPress(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onLeftBtnRelease(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onLeftBtnRelease(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onMiddleBtnPress(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onMiddleBtnPress(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onMiddleBtnRelease(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onMiddleBtnRelease(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onRightBtnPress(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onRightBtnPress(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onRightBtnRelease(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onRightBtnRelease(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUngrabbed(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onUngrabbed(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onKeyPress(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onKeyPress(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onKeyRelease(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onKeyRelease(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onFocusIn(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onFocusIn(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onFocusOut(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onFocusOut(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onClipboardLost(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onClipboardLost(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onClipboardGained(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onClipboardGained(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onClipboardRequest(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onClipboardRequest(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdPerspective(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdPerspective(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdPerspective(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdPerspective(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdParallel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdParallel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdParallel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdParallel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdFront(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdFront(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdFront(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdFront(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdBack(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdBack(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdBack(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdBack(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLeft(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdLeft(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdLeft(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdLeft(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdRight(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdRight(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdRight(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdRight(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdTop(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdTop(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdTop(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdTop(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdBottom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdBottom(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdBottom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdBottom(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdResetView(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdResetView(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdFitView(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdFitView(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDNDEnter(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onDNDEnter(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDNDLeave(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onDNDLeave(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDNDMotion(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onDNDMotion(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onDNDDrop(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onDNDDrop(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onTipTimer(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onTipTimer(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onQueryHelp(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onQueryHelp(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onQueryTip(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onQueryTip(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdXYZDial(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    arg4 = reinterpret_cast<void*>(NUM2INT(argv[2])); result = (long)(arg1)->onCmdXYZDial(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdXYZDial(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdXYZDial(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdRollPitchYaw(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdRollPitchYaw(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdRollPitchYaw(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdRollPitchYaw(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdXYZScale(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdXYZScale(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdXYZScale(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdXYZScale(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdCurrent(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdCurrent(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdCutSel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdCutSel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdCopySel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdCopySel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdPasteSel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdPasteSel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdDeleteSel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdDeleteSel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdDeleteSel(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdDeleteSel(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdBackColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    arg4 = reinterpret_cast<void*>(NUM2UINT(argv[2])); result = (long)(arg1)->onCmdBackColor(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdBackColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdBackColor(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdAmbientColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    arg4 = reinterpret_cast<void*>(NUM2UINT(argv[2])); result = (long)(arg1)->onCmdAmbientColor(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdAmbientColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdAmbientColor(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLock(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdLock(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdLock(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdLock(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLighting(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdLighting(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdLighting(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdLighting(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdFog(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdFog(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdFog(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdFog(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdDither(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdDither(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdDither(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdDither(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdFov(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdFov(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdFov(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdFov(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdZoom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdZoom(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdZoom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdZoom(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLightAmbient(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    arg4 = reinterpret_cast<void*>(NUM2UINT(argv[2])); result = (long)(arg1)->onCmdLightAmbient(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdLightAmbient(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdLightAmbient(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLightDiffuse(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    arg4 = reinterpret_cast<void*>(NUM2UINT(argv[2])); result = (long)(arg1)->onCmdLightDiffuse(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdLightDiffuse(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdLightDiffuse(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLightSpecular(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    arg4 = reinterpret_cast<void*>(NUM2UINT(argv[2])); result = (long)(arg1)->onCmdLightSpecular(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdLightSpecular(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdLightSpecular(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdTurbo(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdTurbo(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onUpdTurbo(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onUpdTurbo(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdPrintImage(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdPrintImage(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdPrintVector(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdPrintVector(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLassoZoom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdLassoZoom(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_onCmdLassoSelect(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = 0;
    result = (long)(arg1)->onCmdLassoSelect(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_objectTypeName(int argc, VALUE *argv, VALUE self) { VALUE result; VALUE vresult = Qnil;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    result = (VALUE)FXGLViewer_objectTypeName(); vresult = result; return vresult; }
static VALUE _wrap_new_FXGLViewer__SWIG_0(int argc, VALUE *argv, VALUE self) { FXComposite *arg1 = (FXComposite *) 0 ;
    FXGLVisual *arg2 = (FXGLVisual *) 0 ; FXObject *arg3 = (FXObject *) 0 ; FXSelector arg4 = (FXSelector) 0 ;
    FXuint arg5 = (FXuint) 0 ; FXint arg6 = (FXint) 0 ; FXint arg7 = (FXint) 0 ; FXint arg8 = (FXint) 0 ;
    FXint arg9 = (FXint) 0 ; FXGLViewer *result; if ((argc < 2) || (argc > 9))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXComposite, 1);
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXGLVisual, 1); if (argc > 2) {
        SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_FXObject, 1); }  if (argc > 3) { arg4 = NUM2UINT(argv[3]); } 
    if (argc > 4) { arg5 = NUM2UINT(argv[4]); }  if (argc > 5) { arg6 = NUM2INT(argv[5]); }  if (argc > 6) {
        arg7 = NUM2INT(argv[6]); }  if (argc > 7) { arg8 = NUM2INT(argv[7]); }  if (argc > 8) { arg9 = NUM2INT(argv[8]); }  {
        result = (FXGLViewer *)new_FXGLViewer__SWIG_0(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXGLViewer_allocate(VALUE self) {
#else
     static VALUE _wrap_FXGLViewer_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXGLViewer);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXGLViewer__SWIG_1(int argc, VALUE *argv, VALUE self) { FXComposite *arg1 = (FXComposite *) 0 ;
    FXGLVisual *arg2 = (FXGLVisual *) 0 ; FXGLViewer *arg3 = (FXGLViewer *) 0 ; FXObject *arg4 = (FXObject *) 0 ;
    FXSelector arg5 = (FXSelector) 0 ; FXuint arg6 = (FXuint) 0 ; FXint arg7 = (FXint) 0 ; FXint arg8 = (FXint) 0 ;
    FXint arg9 = (FXint) 0 ; FXint arg10 = (FXint) 0 ; FXGLViewer *result; if ((argc < 3) || (argc > 10))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_FXComposite, 1);
    SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_FXGLVisual, 1);
    SWIG_ConvertPtr(argv[2], (void **) &arg3, SWIGTYPE_p_FXGLViewer, 1); if (argc > 3) {
        SWIG_ConvertPtr(argv[3], (void **) &arg4, SWIGTYPE_p_FXObject, 1); }  if (argc > 4) { arg5 = NUM2UINT(argv[4]); } 
    if (argc > 5) { arg6 = NUM2UINT(argv[5]); }  if (argc > 6) { arg7 = NUM2INT(argv[6]); }  if (argc > 7) {
        arg8 = NUM2INT(argv[7]); }  if (argc > 8) { arg9 = NUM2INT(argv[8]); }  if (argc > 9) { arg10 = NUM2INT(argv[9]); }  {
        result = (FXGLViewer *)new_FXGLViewer__SWIG_1(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXGLViewer(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[10]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 10); ii++) { argv[ii] = args[ii]; }  if ((argc >= 2) && (argc <= 9)) { int _v; {
            void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXComposite, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXGLVisual, 0) != -1)) ? 1 : 0; }
             if (_v) { if (argc <= 2) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  { void *ptr;
                    _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_FXObject, 0) != -1)) ? 1 : 0; }
                 if (_v) { if (argc <= 3) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  {
                        _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }  if (_v) { if (argc <= 4) {
                            return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  {
                            _v = ((TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                            if (argc <= 5) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  {
                                _v = ((TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                if (argc <= 6) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  {
                                    _v = ((TYPE(argv[6]) == T_FIXNUM) || (TYPE(argv[6]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                    if (argc <= 7) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  {
                                        _v = ((TYPE(argv[7]) == T_FIXNUM) || (TYPE(argv[7]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                        if (argc <= 8) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  {
                                            _v = ((TYPE(argv[8]) == T_FIXNUM) || (TYPE(argv[8]) == T_BIGNUM)) ? 1 : 0; } 
                                        if (_v) { return _wrap_new_FXGLViewer__SWIG_0(nargs, args, self);}  }  }  }  }  }  }  }
             }  }  if ((argc >= 3) && (argc <= 10)) { int _v; { void *ptr;
            _v = (NIL_P(argv[0]) || (TYPE(argv[0]) == T_DATA && SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_FXComposite, 0) != -1)) ? 1 : 0; }
         if (_v) { { void *ptr;
                _v = (NIL_P(argv[1]) || (TYPE(argv[1]) == T_DATA && SWIG_ConvertPtr(argv[1], &ptr, SWIGTYPE_p_FXGLVisual, 0) != -1)) ? 1 : 0; }
             if (_v) { { void *ptr;
                    _v = (NIL_P(argv[2]) || (TYPE(argv[2]) == T_DATA && SWIG_ConvertPtr(argv[2], &ptr, SWIGTYPE_p_FXGLViewer, 0) != -1)) ? 1 : 0; }
                 if (_v) { if (argc <= 3) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  { void *ptr;
                        _v = (NIL_P(argv[3]) || (TYPE(argv[3]) == T_DATA && SWIG_ConvertPtr(argv[3], &ptr, SWIGTYPE_p_FXObject, 0) != -1)) ? 1 : 0; }
                     if (_v) { if (argc <= 4) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  {
                            _v = ((TYPE(argv[4]) == T_FIXNUM) || (TYPE(argv[4]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                            if (argc <= 5) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  {
                                _v = ((TYPE(argv[5]) == T_FIXNUM) || (TYPE(argv[5]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                if (argc <= 6) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  {
                                    _v = ((TYPE(argv[6]) == T_FIXNUM) || (TYPE(argv[6]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                    if (argc <= 7) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  {
                                        _v = ((TYPE(argv[7]) == T_FIXNUM) || (TYPE(argv[7]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                                        if (argc <= 8) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  {
                                            _v = ((TYPE(argv[8]) == T_FIXNUM) || (TYPE(argv[8]) == T_BIGNUM)) ? 1 : 0; } 
                                        if (_v) { if (argc <= 9) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  {
                                                _v = ((TYPE(argv[9]) == T_FIXNUM) || (TYPE(argv[9]) == T_BIGNUM)) ? 1 : 0; } 
                                            if (_v) { return _wrap_new_FXGLViewer__SWIG_1(nargs, args, self);}  }  }  }  }  }  }
                     }  }  }  }  rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXGLViewer'"); return Qnil; }
static VALUE _wrap_FXGLViewer_worldPix(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXdouble)((FXGLViewer const *)arg1)->worldPix();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_modelPix(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXdouble)((FXGLViewer const *)arg1)->modelPix();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_lasso(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; FXint arg4 ; FXint arg5 ; VALUE result; VALUE vresult = Qnil; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); result = (VALUE)FXGLViewer_lasso(arg1,arg2,arg3,arg4,arg5);
    vresult = result; return vresult; }
static VALUE _wrap_FXGLViewer_setBounds(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXRange *arg2 = 0 ; FXbool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXRange, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = (FXbool)(arg1)->setBounds((FXRange const &)*arg2); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_fitToBounds(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXRange *arg2 = 0 ; FXbool result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXRange, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    result = (FXbool)(arg1)->fitToBounds((FXRange const &)*arg2); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_getViewport(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXViewport result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = FXGLViewer_getViewport((FXGLViewer const *)arg1);
    { FXViewport* resultptr = new FXViewport(result);  vresult = FXRbGetRubyObj(resultptr, "FXViewport *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_eyeToScreen(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXVec arg2 ; VALUE result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; } 
    result = (VALUE)FXGLViewer_eyeToScreen(arg1,arg2); vresult = result; return vresult; }
static VALUE _wrap_FXGLViewer_screenToEye(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint arg3 ; FXfloat arg4 = (FXfloat) 0.0 ; FXVec result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 3))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    if (argc > 2) { arg4 = (FXfloat) NUM2DBL(argv[2]); }  result = (arg1)->screenToEye(arg2,arg3,arg4); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_screenToTarget(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint arg3 ; FXVec result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    result = (arg1)->screenToTarget(arg2,arg3); { FXVec* resultptr = new FXVec(result);
        vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_worldToEye(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXVec arg2 ;
    FXVec result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; } 
    result = (arg1)->worldToEye(arg2); { FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }
     return vresult; }
static VALUE _wrap_FXGLViewer_worldToEyeZ(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXVec arg2 ; FXfloat result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; } 
    result = (FXfloat)(arg1)->worldToEyeZ(arg2); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_eyeToWorld(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXVec arg2 ;
    FXVec result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; } 
    result = (arg1)->eyeToWorld(arg2); { FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }
     return vresult; }
static VALUE _wrap_FXGLViewer_worldVector(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint arg3 ; FXint arg4 ; FXint arg5 ; FXVec result; VALUE vresult = Qnil; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); result = (arg1)->worldVector(arg2,arg3,arg4,arg5); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_setMaterial(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXMaterial *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXMaterial, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    (arg1)->setMaterial((FXMaterial const &)*arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getMaterial(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXMaterial result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = FXGLViewer_getMaterial((FXGLViewer const *)arg1);
    { FXMaterial *resultptr = new FXMaterial(result); vresult = FXRbGetRubyObj(resultptr, "FXMaterial *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_setFieldOfView(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    (arg1)->setFieldOfView(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getFieldOfView(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXdouble)((FXGLViewer const *)arg1)->getFieldOfView(); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_setZoom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXdouble arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = (FXdouble) NUM2DBL(argv[0]); (arg1)->setZoom(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getZoom(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXdouble)((FXGLViewer const *)arg1)->getZoom();
    vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_setDistance(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    (arg1)->setDistance(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getDistance(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXdouble)((FXGLViewer const *)arg1)->getDistance(); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_setScale(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXVec arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; }  (arg1)->setScale(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getScale(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXVec result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getScale(); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_setOrientation(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXQuat arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXQuat * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXQuat, 1); if (ptr) arg2 = *ptr; }  (arg1)->setOrientation(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getOrientation(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXQuat result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getOrientation(); {
        FXQuat *resultptr = new FXQuat(result); vresult = FXRbGetRubyObj(resultptr, "FXQuat *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_setCenter(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXVec arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; }  (arg1)->setCenter(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getCenter(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXVec *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); {
        FXVec const &_result_ref = ((FXGLViewer const *)arg1)->getCenter(); result = (FXVec *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXVec *"); return vresult; }
static VALUE _wrap_FXGLViewer_translate(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXVec arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { FXVec * ptr;
        SWIG_ConvertPtr(argv[0], (void **) &ptr, SWIGTYPE_p_FXVec, 1); if (ptr) arg2 = *ptr; }  (arg1)->translate(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getBoreVector(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint arg3 ; VALUE result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    result = (VALUE)FXGLViewer_getBoreVector(arg1,arg2,arg3); vresult = result; return vresult; }
static VALUE _wrap_FXGLViewer_getEyeVector(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXVec result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getEyeVector(); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_getEyePosition(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXVec result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getEyePosition(); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_setHelpText(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXString *arg2 = 0 ; SwigValueWrapper<FXString > p2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); p2 = to_FXString(argv[0]); arg2 = &p2;
    (arg1)->setHelpText((FXString const &)*arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getHelpText(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXString result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getHelpText();
    vresult = rb_str_new2((&result)->text()); return vresult; }
static VALUE _wrap_FXGLViewer_setTipText(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXString *arg2 = 0 ; SwigValueWrapper<FXString > p2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); p2 = to_FXString(argv[0]); arg2 = &p2;
    (arg1)->setTipText((FXString const &)*arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getTipText(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXString result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getTipText();
    vresult = rb_str_new2((&result)->text()); return vresult; }
static VALUE _wrap_FXGLViewer_setOffset(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = (FXdouble) NUM2DBL(argv[0]);
    (arg1)->setOffset(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getOffset(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXdouble result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXdouble)((FXGLViewer const *)arg1)->getOffset(); vresult = rb_float_new(result); return vresult; }
static VALUE _wrap_FXGLViewer_getTransform(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); {
        FXHMat const &_result_ref = ((FXGLViewer const *)arg1)->getTransform(); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXGLViewer_getInvTransform(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXHMat *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); {
        FXHMat const &_result_ref = ((FXGLViewer const *)arg1)->getInvTransform(); result = (FXHMat *) &_result_ref; } 
    vresult = FXRbGetRubyObj(result, "FXHMat *"); return vresult; }
static VALUE _wrap_FXGLViewer_setScene(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXGLObject *arg2 = (FXGLObject *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLObject, 1); (arg1)->setScene(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getScene(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXGLObject *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXGLObject *)((FXGLViewer const *)arg1)->getScene(); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  return vresult; }
static VALUE _wrap_FXGLViewer_setSelection(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXGLObject *arg2 = (FXGLObject *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLObject, 1); (arg1)->setSelection(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getSelection(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXGLObject *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXGLObject *)((FXGLViewer const *)arg1)->getSelection(); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  return vresult; }
static VALUE _wrap_FXGLViewer_setProjection(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXuint arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2UINT(argv[0]); (arg1)->setProjection(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getProjection(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXuint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXuint)((FXGLViewer const *)arg1)->getProjection(); vresult = UINT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_setViewLock(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool arg2 = (FXbool) 1 ; if ((argc < 0) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); if (argc > 0) { arg2 = to_FXbool(argv[0]); } 
    (arg1)->setViewLock(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getViewLock(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXbool)((FXGLViewer const *)arg1)->getViewLock(); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_setBackgroundColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXHVec *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    (arg1)->setBackgroundColor((FXHVec const &)*arg2); delete arg2; return Qnil; }
static VALUE _wrap_FXGLViewer_getBackgroundColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXHVec result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getBackgroundColor();
    { FXHVec * resultptr; resultptr = new FXHVec((FXHVec &)result);
        vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); }  return vresult; }
static VALUE _wrap_FXGLViewer_setAmbientColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXHVec *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXHVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2)), NUM2DBL(rb_ary_entry(argv[0], 3))); }
         else { FXHVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXHVec,1); arg2 = new FXHVec(*p); }  } 
    (arg1)->setAmbientColor((FXHVec const &)*arg2); delete arg2; return Qnil; }
static VALUE _wrap_FXGLViewer_getAmbientColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXHVec result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = ((FXGLViewer const *)arg1)->getAmbientColor(); {
        FXHVec * resultptr; resultptr = new FXHVec((FXHVec &)result);
        vresult = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_FXHVec, 1); }  return vresult; }
static VALUE _wrap_FXGLViewer_readPixels(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; FXint arg4 ; FXint arg5 ; VALUE result; VALUE vresult = Qnil; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); result = (VALUE)FXGLViewer_readPixels(arg1,arg2,arg3,arg4,arg5);
    vresult = result; return vresult; }
static VALUE _wrap_FXGLViewer_readFeedback(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint arg3 ; FXint arg4 ; FXint arg5 ; VALUE result; VALUE vresult = Qnil; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); result = (VALUE)FXGLViewer_readFeedback(arg1,arg2,arg3,arg4,arg5);
    vresult = result; return vresult; }
static VALUE _wrap_FXGLViewer_setZSortFunc(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    VALUE arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = argv[0]; FXGLViewer_setZSortFunc(arg1,arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getZSortFunc(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    VALUE result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (VALUE)FXGLViewer_getZSortFunc((FXGLViewer const *)arg1); vresult = result; return vresult; }
static VALUE _wrap_FXGLViewer_setMaxHits(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); (arg1)->setMaxHits(arg2);
    return Qnil; }
static VALUE _wrap_FXGLViewer_getMaxHits(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXint)((FXGLViewer const *)arg1)->getMaxHits();
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_doesTurbo(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXbool)((FXGLViewer const *)arg1)->doesTurbo();
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_getTurboMode(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXbool)((FXGLViewer const *)arg1)->getTurboMode(); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_setTurboMode(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool arg2 = (FXbool) 1 ; if ((argc < 0) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); if (argc > 0) { arg2 = to_FXbool(argv[0]); } 
    (arg1)->setTurboMode(arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_getLight(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXLight result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = FXGLViewer_getLight((FXGLViewer const *)arg1); {
        FXLight *resultptr = new FXLight(result); vresult = FXRbGetRubyObj(resultptr, "FXLight *"); }  return vresult; }
static VALUE _wrap_FXGLViewer_setLight(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXLight *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXLight, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    (arg1)->setLight((FXLight const &)*arg2); return Qnil; }
static void
free_FXGLViewer(FXGLViewer *arg1) {
    delete arg1;
}
static VALUE _wrap_FXGLViewer_save(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLViewer_save((FXGLViewer const *)arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_load(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLViewer_load(arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_create(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_create(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_detach(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_detach(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_destroy(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_destroy(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_resize(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    FXGLViewer_resize(arg1,arg2,arg3); return Qnil; }
static VALUE _wrap_FXGLViewer_getDefaultWidth(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXint)FXGLViewer_getDefaultWidth(arg1);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_getDefaultHeight(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXint)FXGLViewer_getDefaultHeight(arg1);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_getWidthForHeight(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]);
    result = (FXint)FXGLViewer_getWidthForHeight(arg1,arg2); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_getHeightForWidth(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXint arg2 ; FXint result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]);
    result = (FXint)FXGLViewer_getHeightForWidth(arg1,arg2); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLViewer_canFocus(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXbool)FXGLViewer_canFocus((FXGLViewer const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_setFocus(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_setFocus(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_killFocus(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_killFocus(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_setDefault(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool arg2 = (FXbool) 1 ; if ((argc < 0) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); if (argc > 0) { arg2 = to_FXbool(argv[0]); } 
    FXGLViewer_setDefault(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_enable(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_enable(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_disable(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_disable(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_raiseWindow(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_raise(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_lower(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_lower(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_move(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    FXGLViewer_move(arg1,arg2,arg3); return Qnil; }
static VALUE _wrap_FXGLViewer_position(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; FXint arg4 ; FXint arg5 ; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); FXGLViewer_position(arg1,arg2,arg3,arg4,arg5); return Qnil; }
static VALUE _wrap_FXGLViewer_recalc(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_recalc(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_reparent(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXComposite *arg2 = (FXComposite *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXComposite, 1); FXGLViewer_reparent(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_show(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_show(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_hide(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_hide(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_isComposite(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXbool)FXGLViewer_isComposite((FXGLViewer const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_contains(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; FXbool result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    result = (FXbool)FXGLViewer_contains((FXGLViewer const *)arg1,arg2,arg3); vresult = result ? Qtrue : Qfalse;
    return vresult; }
static VALUE _wrap_FXGLViewer_doesSaveUnder(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXbool)FXGLViewer_doesSaveUnder((FXGLViewer const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_setBackColor(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXColor arg2 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = to_FXColor(argv[0]);
    FXGLViewer_setBackColor(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLViewer_makeCurrent(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXbool)FXGLViewer_makeCurrent(arg1);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_makeNonCurrent(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); result = (FXbool)FXGLViewer_makeNonCurrent(arg1);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_isCurrent(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1);
    result = (FXbool)FXGLViewer_isCurrent((FXGLViewer const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLViewer_swapBuffers(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ;
    if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); FXGLViewer_swapBuffers(arg1); return Qnil; }
static VALUE _wrap_FXGLViewer_select(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; FXint arg4 ; FXint arg5 ; FXGLObject **result; VALUE vresult = Qnil; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    arg4 = NUM2INT(argv[2]); arg5 = NUM2INT(argv[3]); result = (FXGLObject **)FXGLViewer_select(arg1,arg2,arg3,arg4,arg5); {
        vresult=Qnil; if(result){ vresult=rb_ary_new(); register FXGLObject** p=result; while(*p){
                rb_ary_push(vresult,to_ruby(*p)); p++; }  FXFREE(&result); }  }  return vresult; }
static VALUE _wrap_FXGLViewer_pick(int argc, VALUE *argv, VALUE self) { FXGLViewer *arg1 = (FXGLViewer *) 0 ; FXint arg2 ;
    FXint arg3 ; FXGLObject *result; VALUE vresult = Qnil; if ((argc < 2) || (argc > 2))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLViewer, 1); arg2 = NUM2INT(argv[0]); arg3 = NUM2INT(argv[1]);
    result = (FXGLObject *)FXGLViewer_pick(arg1,arg2,arg3); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  return vresult; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXGLObject_allocate(VALUE self) {
#else
     static VALUE _wrap_FXGLObject_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXGLObject);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXGLObject(int argc, VALUE *argv, VALUE self) { FXGLObject *result; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); { result = (FXGLObject *)new_FXGLObject();
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_FXGLObject_identify(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXuint *arg2 = (FXuint *) 0 ; FXint arg3 ; FXGLObject *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1); { Check_Type(argv[0], T_ARRAY);
        FXMALLOC(&arg2,FXuint,RARRAY(argv[0])->len); arg3=static_cast<FXint>(RARRAY(argv[0])->len); for(FXint i=0; i<arg3; i++){
            arg2[i]=NUM2UINT(rb_ary_entry(argv[0],i)); }  }  result = (FXGLObject *)FXGLObject_identify(arg1,arg2,arg3); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  { FXFREE(&arg2); }  return vresult; }
static void
free_FXGLObject(FXGLObject *arg1) {
    delete arg1;
}
static VALUE _wrap_FXGLObject_save(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLObject_save((FXGLObject const *)arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLObject_load(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXStream *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLObject_load(arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLObject_copy(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXGLObject *result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1); result = (FXGLObject *)FXGLObject_copy(arg1); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  return vresult; }
static VALUE _wrap_FXGLObject_bounds(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ; FXRange result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1); result = FXGLObject_bounds(arg1); {
        FXRange* resultptr = new FXRange(result); vresult = FXRbGetRubyObj(resultptr, "FXRange *"); }  return vresult; }
static VALUE _wrap_FXGLObject_draw(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); FXGLObject_draw(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLObject_hit(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); FXGLObject_hit(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLObject_canDrag(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    result = (FXbool)FXGLObject_canDrag((FXGLObject const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLObject_canDelete(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXbool result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    result = (FXbool)FXGLObject_canDelete((FXGLObject const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLObject_drag(int argc, VALUE *argv, VALUE self) { FXGLObject *arg1 = (FXGLObject *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; FXint arg3 ; FXint arg4 ; FXint arg5 ; FXint arg6 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 5) || (argc > 5)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLObject, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); arg3 = NUM2INT(argv[1]); arg4 = NUM2INT(argv[2]);
    arg5 = NUM2INT(argv[3]); arg6 = NUM2INT(argv[4]); result = (FXbool)FXGLObject_drag(arg1,arg2,arg3,arg4,arg5,arg6);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLShape_onDNDDrop(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onDNDDrop(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onDNDMotion(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]); arg4 = to_FXEvent(argv[2]);
    result = (long)(arg1)->onDNDMotion(arg2,arg3,arg4); vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onQueryTip(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onQueryTip(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onCmdShadeOff(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onCmdShadeOff(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onUpdShadeOff(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onUpdShadeOff(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onCmdShadeOn(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onCmdShadeOn(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onUpdShadeOn(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onUpdShadeOn(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onCmdShadeSmooth(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onCmdShadeSmooth(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onUpdShadeSmooth(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onUpdShadeSmooth(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onCmdFrontMaterial(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onCmdFrontMaterial(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onUpdFrontMaterial(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onUpdFrontMaterial(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onCmdBackMaterial(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onCmdBackMaterial(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onUpdBackMaterial(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onUpdBackMaterial(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onCmdDrawingStyle(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onCmdDrawingStyle(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_FXGLShape_onUpdDrawingStyle(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXObject *arg2 = (FXObject *) 0 ; FXSelector arg3 ; void *arg4 = (void *) 0 ; long result; VALUE vresult = Qnil;
    if ((argc < 3) || (argc > 3)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXObject, 1); arg3 = NUM2UINT(argv[1]);
    SWIG_ConvertPtr(argv[2], (void **) &arg4, 0, 1); result = (long)(arg1)->onUpdDrawingStyle(arg2,arg3,arg4);
    vresult = INT2NUM(result); return vresult; }
static VALUE _wrap_new_FXGLShape__SWIG_0(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXuint arg4 ; FXGLShape *result; if ((argc < 4) || (argc > 4))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); arg1 = (FXfloat) NUM2DBL(argv[0]);
    arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]); arg4 = NUM2UINT(argv[3]); {
        result = (FXGLShape *)new_FXGLShape__SWIG_0(arg1,arg2,arg3,arg4);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
static VALUE _wrap_FXGLShape_allocate(VALUE self) {
#else
     static VALUE _wrap_FXGLShape_allocate(int argc, VALUE *argv, VALUE self) {
#endif
         VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_FXGLShape);
#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
        rb_obj_call_init(vresult, argc, argv);
#endif
         return vresult; }
static VALUE _wrap_new_FXGLShape__SWIG_1(int argc, VALUE *argv, VALUE self) { FXfloat arg1 ; FXfloat arg2 ; FXfloat arg3 ;
    FXuint arg4 ; FXMaterial *arg5 = 0 ; FXMaterial *arg6 = 0 ; FXGLShape *result; if ((argc < 6) || (argc > 6))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); arg1 = (FXfloat) NUM2DBL(argv[0]);
    arg2 = (FXfloat) NUM2DBL(argv[1]); arg3 = (FXfloat) NUM2DBL(argv[2]); arg4 = NUM2UINT(argv[3]);
    SWIG_ConvertPtr(argv[4], (void **) &arg5, SWIGTYPE_p_FXMaterial, 1); if (arg5 == NULL) rb_raise(rb_eTypeError, "null reference");
    SWIG_ConvertPtr(argv[5], (void **) &arg6, SWIGTYPE_p_FXMaterial, 1); if (arg6 == NULL) rb_raise(rb_eTypeError, "null reference");
    { result = (FXGLShape *)new_FXGLShape__SWIG_1(arg1,arg2,arg3,arg4,(FXMaterial const &)*arg5,(FXMaterial const &)*arg6);
        DATA_PTR(self) = (void *) result; FXRbRegisterRubyObj(self, result); if(rb_block_given_p()){ rb_yield(self); }  } 
    return self; }
static VALUE _wrap_new_FXGLShape(int nargs, VALUE *args, VALUE self) { int argc; VALUE argv[6]; int ii; argc = nargs;
    for (ii = 0; (ii < argc) && (ii < 6); ii++) { argv[ii] = args[ii]; }  if (argc == 4) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { { _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }  if (_v) {
                        return _wrap_new_FXGLShape__SWIG_0(nargs, args, self);}  }  }  }  }  if (argc == 6) { int _v; {
            _v = ((TYPE(argv[0]) == T_FLOAT) || (TYPE(argv[0]) == T_FIXNUM) || (TYPE(argv[0]) == T_BIGNUM)) ? 1 : 0; } 
        if (_v) { { _v = ((TYPE(argv[1]) == T_FLOAT) || (TYPE(argv[1]) == T_FIXNUM) || (TYPE(argv[1]) == T_BIGNUM)) ? 1 : 0; } 
            if (_v) { {
                    _v = ((TYPE(argv[2]) == T_FLOAT) || (TYPE(argv[2]) == T_FIXNUM) || (TYPE(argv[2]) == T_BIGNUM)) ? 1 : 0; } 
                if (_v) { { _v = ((TYPE(argv[3]) == T_FIXNUM) || (TYPE(argv[3]) == T_BIGNUM)) ? 1 : 0; }  if (_v) { { void *ptr;
                            _v = (NIL_P(argv[4]) || (TYPE(argv[4]) == T_DATA && SWIG_ConvertPtr(argv[4], &ptr, SWIGTYPE_p_FXMaterial, 0) != -1)) ? 1 : 0; }
                         if (_v) { { void *ptr;
                                _v = (NIL_P(argv[5]) || (TYPE(argv[5]) == T_DATA && SWIG_ConvertPtr(argv[5], &ptr, SWIGTYPE_p_FXMaterial, 0) != -1)) ? 1 : 0; }
                             if (_v) { return _wrap_new_FXGLShape__SWIG_1(nargs, args, self);}  }  }  }  }  }  } 
    rb_raise(rb_eArgError, "No matching function for overloaded 'new_FXGLShape'"); return Qnil; }
static VALUE _wrap_FXGLShape_identify(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXuint *arg2 = (FXuint *) 0 ; FXint arg3 ; FXGLObject *result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); { Check_Type(argv[0], T_ARRAY);
        FXMALLOC(&arg2,FXuint,RARRAY(argv[0])->len); arg3=static_cast<FXint>(RARRAY(argv[0])->len); for(FXint i=0; i<arg3; i++){
            arg2[i]=NUM2UINT(rb_ary_entry(argv[0],i)); }  }  result = (FXGLObject *)FXGLShape_identify(arg1,arg2,arg3); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  { FXFREE(&arg2); }  return vresult; }
static VALUE _wrap_FXGLShape_setTipText(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXString *arg2 = 0 ; SwigValueWrapper<FXString > p2 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); p2 = to_FXString(argv[0]); arg2 = &p2;
    (arg1)->setTipText((FXString const &)*arg2); return Qnil; }
static VALUE _wrap_FXGLShape_getTipText(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXString result; VALUE vresult = Qnil; if ((argc < 0) || (argc > 0))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); result = ((FXGLShape const *)arg1)->getTipText();
    vresult = rb_str_new2((&result)->text()); return vresult; }
static VALUE _wrap_FXGLShape_setMaterial(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXint arg2 ;
    FXMaterial *arg3 = 0 ; if ((argc < 2) || (argc > 2)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); arg2 = NUM2INT(argv[0]);
    SWIG_ConvertPtr(argv[1], (void **) &arg3, SWIGTYPE_p_FXMaterial, 1); if (arg3 == NULL) rb_raise(rb_eTypeError, "null reference");
    (arg1)->setMaterial(arg2,(FXMaterial const &)*arg3); return Qnil; }
static VALUE _wrap_FXGLShape_getPosition(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXVec result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); result = FXGLShape_getPosition((FXGLShape const *)arg1); {
        FXVec* resultptr = new FXVec(result); vresult = FXRbGetRubyObj(resultptr, "FXVec *"); }  return vresult; }
static VALUE _wrap_FXGLShape_setPosition(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXVec *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); { if (TYPE(argv[0]) == T_ARRAY) {
            arg2 = new FXVec(NUM2DBL(rb_ary_entry(argv[0], 0)), NUM2DBL(rb_ary_entry(argv[0], 1)), NUM2DBL(rb_ary_entry(argv[0], 2))); }
         else { FXVec *p; SWIG_ConvertPtr(argv[0],(void **)&p,SWIGTYPE_p_FXVec,1); arg2 = new FXVec(*p); }  } 
    FXGLShape_setPosition(arg1,(FXVec const &)*arg2); delete arg2; return Qnil; }
static VALUE _wrap_FXGLShape_getMaterial(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXint arg2 ;
    FXMaterial result; VALUE vresult = Qnil; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); arg2 = NUM2INT(argv[0]);
    result = FXGLShape_getMaterial((FXGLShape const *)arg1,arg2); { FXMaterial *resultptr = new FXMaterial(result);
        vresult = FXRbGetRubyObj(resultptr, "FXMaterial *"); }  return vresult; }
static VALUE _wrap_FXGLShape_setRange(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXRange *arg2 = 0 ; if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXRange, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLShape_setRange(arg1,(FXRange const &)*arg2); return Qnil; }
static void
free_FXGLShape(FXGLShape *arg1) {
    delete arg1;
}
static VALUE _wrap_FXGLShape_save(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXStream *arg2 = 0 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLShape_save((FXGLShape const *)arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLShape_load(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXStream *arg2 = 0 ;
    if ((argc < 1) || (argc > 1)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXStream, 1); if (arg2 == NULL) rb_raise(rb_eTypeError, "null reference");
    FXGLShape_load(arg1,*arg2); return Qnil; }
static VALUE _wrap_FXGLShape_copy(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXGLObject *result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); result = (FXGLObject *)FXGLShape_copy(arg1); {
        swig_type_info *ty = SWIG_TypeDynamicCast(SWIGTYPE_p_FXGLObject, (void **) &result);
        vresult = FXRbGetRubyObj(result, ty); }  return vresult; }
static VALUE _wrap_FXGLShape_bounds(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXRange result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1); result = FXGLShape_bounds(arg1); {
        FXRange* resultptr = new FXRange(result); vresult = FXRbGetRubyObj(resultptr, "FXRange *"); }  return vresult; }
static VALUE _wrap_FXGLShape_draw(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); FXGLShape_draw(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLShape_hit(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); FXGLShape_hit(arg1,arg2); return Qnil; }
static VALUE _wrap_FXGLShape_canDrag(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    result = (FXbool)FXGLShape_canDrag((FXGLShape const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLShape_canDelete(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 0) || (argc > 0)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    result = (FXbool)FXGLShape_canDelete((FXGLShape const *)arg1); vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLShape_drag(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; FXint arg3 ; FXint arg4 ; FXint arg5 ; FXint arg6 ; FXbool result;
    VALUE vresult = Qnil; if ((argc < 5) || (argc > 5)) rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); arg3 = NUM2INT(argv[1]); arg4 = NUM2INT(argv[2]);
    arg5 = NUM2INT(argv[3]); arg6 = NUM2INT(argv[4]); result = (FXbool)FXGLShape_drag(arg1,arg2,arg3,arg4,arg5,arg6);
    vresult = result ? Qtrue : Qfalse; return vresult; }
static VALUE _wrap_FXGLShape_drawshape(int argc, VALUE *argv, VALUE self) { FXGLShape *arg1 = (FXGLShape *) 0 ;
    FXGLViewer *arg2 = (FXGLViewer *) 0 ; if ((argc < 1) || (argc > 1))
    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc);
    SWIG_ConvertPtr(self, (void **) &arg1, SWIGTYPE_p_FXGLShape, 1);
    SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_FXGLViewer, 1); FXGLShape_drawshape(arg1,arg2); return Qnil; }

/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */

static void *_p_FXDriveBoxTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *)(FXListBox *) ((FXDriveBox *) x));
}
static void *_p_FXTabBookTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *)(FXTabBar *) ((FXTabBook *) x));
}
static void *_p_FXGroupBoxTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXGroupBox *) x));
}
static void *_p_FXShellTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *)  ((FXShell *) x));
}
static void *_p_FXScrollAreaTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *)  ((FXScrollArea *) x));
}
static void *_p_FXPopupTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXShell *) ((FXPopup *) x));
}
static void *_p_FXScrollWindowTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXScrollArea *) ((FXScrollWindow *) x));
}
static void *_p_FXRootWindowTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *)  ((FXRootWindow *) x));
}
static void *_p_FXTopWindowTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXShell *) ((FXTopWindow *) x));
}
static void *_p_FXMainWindowTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXShell *)(FXTopWindow *) ((FXMainWindow *) x));
}
static void *_p_FXComboBoxTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXComboBox *) x));
}
static void *_p_FXHorizontalFrameTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXHorizontalFrame *) x));
}
static void *_p_FXVerticalFrameTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXVerticalFrame *) x));
}
static void *_p_FX4SplitterTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *)  ((FX4Splitter *) x));
}
static void *_p_FXSplitterTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *)  ((FXSplitter *) x));
}
static void *_p_FXSpinnerTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXSpinner *) x));
}
static void *_p_FXPackerTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *)  ((FXPacker *) x));
}
static void *_p_FXDirBoxTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *)(FXTreeListBox *) ((FXDirBox *) x));
}
static void *_p_FXSwitcherTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXSwitcher *) x));
}
static void *_p_FXFontSelectorTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXFontSelector *) x));
}
static void *_p_FXColorSelectorTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXColorSelector *) x));
}
static void *_p_FXFileSelectorTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXFileSelector *) x));
}
static void *_p_FXDirSelectorTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXDirSelector *) x));
}
static void *_p_FXShutterTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *)(FXVerticalFrame *) ((FXShutter *) x));
}
static void *_p_FXTreeListBoxTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXTreeListBox *) x));
}
static void *_p_FXListBoxTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXListBox *) x));
}
static void *_p_FXMatrixTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXMatrix *) x));
}
static void *_p_FXToolbarTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXToolbar *) x));
}
static void *_p_FXShutterItemTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *)(FXVerticalFrame *) ((FXShutterItem *) x));
}
static void *_p_FXTooltipTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXShell *) ((FXTooltip *) x));
}
static void *_p_FXTabBarTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *) ((FXTabBar *) x));
}
static void *_p_FXStatusbarTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXPacker *)(FXHorizontalFrame *) ((FXStatusbar *) x));
}
static void *_p_FXImageViewTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXScrollArea *) ((FXImageView *) x));
}
static void *_p_FXToolbarShellTo_p_FXComposite(void *x) {
    return (void *)((FXComposite *) (FXShell *)(FXTopWindow *) ((FXToolbarShell *) x));
}
static void *_p_FXDriveBoxTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *)(FXListBox *) ((FXDriveBox *) x));
}
static void *_p_FXToolbarTabTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXToolbarTab *) x));
}
static void *_p_FXScrollbarTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXScrollbar *) x));
}
static void *_p_FXCompositeTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXComposite *) x));
}
static void *_p_FXTextFieldTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXTextField *) x));
}
static void *_p_FXStatuslineTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXStatusline *) x));
}
static void *_p_FXTabBookTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *)(FXTabBar *) ((FXTabBook *) x));
}
static void *_p_FXGLViewerTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXCanvas *)(FXGLCanvas *) ((FXGLViewer *) x));
}
static void *_p_FXArrowButtonTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXArrowButton *) x));
}
static void *_p_FXGroupBoxTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXGroupBox *) x));
}
static void *_p_FXShellTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *) ((FXShell *) x));
}
static void *_p_FXScrollAreaTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *) ((FXScrollArea *) x));
}
static void *_p_FXPopupTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXShell *) ((FXPopup *) x));
}
static void *_p_FXScrollWindowTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXScrollArea *) ((FXScrollWindow *) x));
}
static void *_p_FXRootWindowTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *) ((FXRootWindow *) x));
}
static void *_p_FXTopWindowTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXShell *) ((FXTopWindow *) x));
}
static void *_p_FXMainWindowTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXShell *)(FXTopWindow *) ((FXMainWindow *) x));
}
static void *_p_FXCanvasTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXCanvas *) x));
}
static void *_p_FXScrollCornerTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXScrollCorner *) x));
}
static void *_p_FXGLCanvasTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXCanvas *) ((FXGLCanvas *) x));
}
static void *_p_FXVerticalSeparatorTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXVerticalSeparator *) x));
}
static void *_p_FXHorizontalSeparatorTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXHorizontalSeparator *) x));
}
static void *_p_FXComboBoxTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXComboBox *) x));
}
static void *_p_FXHorizontalFrameTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXHorizontalFrame *) x));
}
static void *_p_FXVerticalFrameTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXVerticalFrame *) x));
}
static void *_p_FX4SplitterTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *) ((FX4Splitter *) x));
}
static void *_p_FXSplitterTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *) ((FXSplitter *) x));
}
static void *_p_FXSpinnerTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXSpinner *) x));
}
static void *_p_FXPackerTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *) ((FXPacker *) x));
}
static void *_p_FXColorWheelTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXColorWheel *) x));
}
static void *_p_FXDirBoxTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *)(FXTreeListBox *) ((FXDirBox *) x));
}
static void *_p_FXToolbarGripTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXToolbarGrip *) x));
}
static void *_p_FXDragCornerTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXDragCorner *) x));
}
static void *_p_FXSwitcherTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXSwitcher *) x));
}
static void *_p_FXDirSelectorTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXDirSelector *) x));
}
static void *_p_FXFileSelectorTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXFileSelector *) x));
}
static void *_p_FXColorSelectorTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXColorSelector *) x));
}
static void *_p_FXFontSelectorTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXFontSelector *) x));
}
static void *_p_FXShutterTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutter *) x));
}
static void *_p_FXProgressBarTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXProgressBar *) x));
}
static void *_p_FXListBoxTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXListBox *) x));
}
static void *_p_FXTreeListBoxTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXTreeListBox *) x));
}
static void *_p_FXHeaderTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXHeader *) x));
}
static void *_p_FXMatrixTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXMatrix *) x));
}
static void *_p_FXColorWellTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXColorWell *) x));
}
static void *_p_FXShutterItemTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutterItem *) x));
}
static void *_p_FXToolbarTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXToolbar *) x));
}
static void *_p_FXDialTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXDial *) x));
}
static void *_p_FXTooltipTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXShell *) ((FXTooltip *) x));
}
static void *_p_FXFrameTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *)  ((FXFrame *) x));
}
static void *_p_FXTabBarTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *) ((FXTabBar *) x));
}
static void *_p_FXStatusbarTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXPacker *)(FXHorizontalFrame *) ((FXStatusbar *) x));
}
static void *_p_FXImageViewTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXScrollArea *) ((FXImageView *) x));
}
static void *_p_FXSliderTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXSlider *) x));
}
static void *_p_FXColorBarTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXFrame *) ((FXColorBar *) x));
}
static void *_p_FXToolbarShellTo_p_FXWindow(void *x) {
    return (void *)((FXWindow *) (FXComposite *)(FXShell *)(FXTopWindow *) ((FXToolbarShell *) x));
}
static void *_p_FXGLCanvasTo_p_FXCanvas(void *x) {
    return (void *)((FXCanvas *)  ((FXGLCanvas *) x));
}
static void *_p_FXGLViewerTo_p_FXCanvas(void *x) {
    return (void *)((FXCanvas *) (FXGLCanvas *) ((FXGLViewer *) x));
}
static void *_p_FXGLViewerTo_p_FXGLCanvas(void *x) {
    return (void *)((FXGLCanvas *)  ((FXGLViewer *) x));
}
static void *_p_FXDocumentTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXDocument *) x));
}
static void *_p_FXRegistryTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXDict *)(FXSettings *) ((FXRegistry *) x));
}
static void *_p_FXHeaderItemTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXHeaderItem *) x));
}
static void *_p_FXShutterItemTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutterItem *) x));
}
static void *_p_FXColorBarTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXColorBar *) x));
}
static void *_p_FXTabBarTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXTabBar *) x));
}
static void *_p_FXSwitcherTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXSwitcher *) x));
}
static void *_p_FXTextFieldTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXTextField *) x));
}
static void *_p_FXDriveBoxTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXListBox *) ((FXDriveBox *) x));
}
static void *_p_FXIconDictTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXDict *) ((FXIconDict *) x));
}
static void *_p_FXMatrixTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXMatrix *) x));
}
static void *_p_FXFileDictTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXDict *) ((FXFileDict *) x));
}
static void *_p_FXRecentFilesTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXRecentFiles *) x));
}
static void *_p_FXScrollCornerTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXScrollCorner *) x));
}
static void *_p_FXArrowButtonTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXArrowButton *) x));
}
static void *_p_FXGLViewerTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXCanvas *)(FXGLCanvas *) ((FXGLViewer *) x));
}
static void *_p_FXPopupTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *) ((FXPopup *) x));
}
static void *_p_FXTooltipTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *) ((FXTooltip *) x));
}
static void *_p_FXDrawableTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *) ((FXDrawable *) x));
}
static void *_p_FXAppTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXApp *) x));
}
static void *_p_FXHeaderTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXHeader *) x));
}
static void *_p_FX4SplitterTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *) ((FX4Splitter *) x));
}
static void *_p_FXSplitterTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *) ((FXSplitter *) x));
}
static void *_p_FXPackerTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *) ((FXPacker *) x));
}
static void *_p_FXTabBookTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXTabBar *) ((FXTabBook *) x));
}
static void *_p_FXVerticalSeparatorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXVerticalSeparator *) x));
}
static void *_p_FXHorizontalSeparatorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXHorizontalSeparator *) x));
}
static void *_p_FXScrollbarTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXScrollbar *) x));
}
static void *_p_FXIdTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXId *) x));
}
static void *_p_FXGLShapeTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXGLObject *) ((FXGLShape *) x));
}
static void *_p_FXProgressBarTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXProgressBar *) x));
}
static void *_p_FXShutterTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutter *) x));
}
static void *_p_FXGLContextTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *) ((FXGLContext *) x));
}
static void *_p_FXStatusbarTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXHorizontalFrame *) ((FXStatusbar *) x));
}
static void *_p_FXCompositeTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXComposite *) x));
}
static void *_p_FXSliderTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXSlider *) x));
}
static void *_p_FXSettingsTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXDict *) ((FXSettings *) x));
}
static void *_p_FXGroupBoxTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXGroupBox *) x));
}
static void *_p_FXDebugTargetTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXDebugTarget *) x));
}
static void *_p_FXDataTargetTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXDataTarget *) x));
}
static void *_p_FXTreeListBoxTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXTreeListBox *) x));
}
static void *_p_FXListBoxTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXListBox *) x));
}
static void *_p_FXCanvasTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXCanvas *) x));
}
static void *_p_FXGLCanvasTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXCanvas *) ((FXGLCanvas *) x));
}
static void *_p_FXColorWheelTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXColorWheel *) x));
}
static void *_p_FXVisualTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *) ((FXVisual *) x));
}
static void *_p_FXToolbarGripTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXToolbarGrip *) x));
}
static void *_p_FXGLVisualTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXVisual *) ((FXGLVisual *) x));
}
static void *_p_FXFontTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *) ((FXFont *) x));
}
static void *_p_FXComboBoxTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXComboBox *) x));
}
static void *_p_FXFrameTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXFrame *) x));
}
static void *_p_FXStringDictTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXDict *) ((FXStringDict *) x));
}
static void *_p_FXDelegatorTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXDelegator *) x));
}
static void *_p_FXAccelTableTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXAccelTable *) x));
}
static void *_p_FXToolbarTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXToolbar *) x));
}
static void *_p_FXCursorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *) ((FXCursor *) x));
}
static void *_p_FXCURCursorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXCursor *) ((FXCURCursor *) x));
}
static void *_p_FXGIFCursorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXCursor *) ((FXGIFCursor *) x));
}
static void *_p_FXGLObjectTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXGLObject *) x));
}
static void *_p_FXSpinnerTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXSpinner *) x));
}
static void *_p_FXScrollWindowTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXScrollArea *) ((FXScrollWindow *) x));
}
static void *_p_FXWindowTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *) ((FXWindow *) x));
}
static void *_p_FXRootWindowTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *) ((FXRootWindow *) x));
}
static void *_p_FXTopWindowTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *) ((FXTopWindow *) x));
}
static void *_p_FXMainWindowTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *)(FXTopWindow *) ((FXMainWindow *) x));
}
static void *_p_FXToolbarTabTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXToolbarTab *) x));
}
static void *_p_FXDictTo_p_FXObject(void *x) {
    return (void *)((FXObject *)  ((FXDict *) x));
}
static void *_p_FXShellTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *) ((FXShell *) x));
}
static void *_p_FXScrollAreaTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *) ((FXScrollArea *) x));
}
static void *_p_FXColorWellTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXColorWell *) x));
}
static void *_p_FXDragCornerTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *) ((FXDragCorner *) x));
}
static void *_p_FXStatuslineTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXStatusline *) x));
}
static void *_p_FXDialTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXFrame *) ((FXDial *) x));
}
static void *_p_FXHorizontalFrameTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXHorizontalFrame *) x));
}
static void *_p_FXVerticalFrameTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXVerticalFrame *) x));
}
static void *_p_FXImageViewTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXScrollArea *) ((FXImageView *) x));
}
static void *_p_FXFontSelectorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXFontSelector *) x));
}
static void *_p_FXColorSelectorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXColorSelector *) x));
}
static void *_p_FXFileSelectorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXFileSelector *) x));
}
static void *_p_FXDirSelectorTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXDirSelector *) x));
}
static void *_p_FXToolbarShellTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *)(FXTopWindow *) ((FXToolbarShell *) x));
}
static void *_p_FXDirBoxTo_p_FXObject(void *x) {
    return (void *)((FXObject *) (FXId *)(FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXTreeListBox *) ((FXDirBox *) x));
}
static void *_p_FXGLShapeTo_p_FXGLObject(void *x) {
    return (void *)((FXGLObject *)  ((FXGLShape *) x));
}
static void *_p_FXQuatTo_p_FXHVec(void *x) {
    return (void *)((FXHVec *)  ((FXQuat *) x));
}
static void *_p_FXDriveBoxTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *)(FXListBox *) ((FXDriveBox *) x));
}
static void *_p_FXToolbarTabTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXToolbarTab *) x));
}
static void *_p_FXScrollbarTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXScrollbar *) x));
}
static void *_p_FXCompositeTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXComposite *) x));
}
static void *_p_FXTextFieldTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXTextField *) x));
}
static void *_p_FXStatuslineTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXStatusline *) x));
}
static void *_p_FXTabBookTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *)(FXTabBar *) ((FXTabBook *) x));
}
static void *_p_FXGLViewerTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXCanvas *)(FXGLCanvas *) ((FXGLViewer *) x));
}
static void *_p_FXArrowButtonTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXArrowButton *) x));
}
static void *_p_FXGroupBoxTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXGroupBox *) x));
}
static void *_p_FXShellTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *) ((FXShell *) x));
}
static void *_p_FXScrollAreaTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *) ((FXScrollArea *) x));
}
static void *_p_FXPopupTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXShell *) ((FXPopup *) x));
}
static void *_p_FXScrollWindowTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXScrollArea *) ((FXScrollWindow *) x));
}
static void *_p_FXWindowTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *)  ((FXWindow *) x));
}
static void *_p_FXRootWindowTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *) ((FXRootWindow *) x));
}
static void *_p_FXTopWindowTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXShell *) ((FXTopWindow *) x));
}
static void *_p_FXMainWindowTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXShell *)(FXTopWindow *) ((FXMainWindow *) x));
}
static void *_p_FXCanvasTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXCanvas *) x));
}
static void *_p_FXScrollCornerTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXScrollCorner *) x));
}
static void *_p_FXGLCanvasTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXCanvas *) ((FXGLCanvas *) x));
}
static void *_p_FXVerticalSeparatorTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXVerticalSeparator *) x));
}
static void *_p_FXHorizontalSeparatorTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXHorizontalSeparator *) x));
}
static void *_p_FXComboBoxTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXComboBox *) x));
}
static void *_p_FXHorizontalFrameTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXHorizontalFrame *) x));
}
static void *_p_FXVerticalFrameTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXVerticalFrame *) x));
}
static void *_p_FX4SplitterTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *) ((FX4Splitter *) x));
}
static void *_p_FXSplitterTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *) ((FXSplitter *) x));
}
static void *_p_FXPackerTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *) ((FXPacker *) x));
}
static void *_p_FXSpinnerTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXSpinner *) x));
}
static void *_p_FXColorWheelTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXColorWheel *) x));
}
static void *_p_FXDirBoxTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *)(FXTreeListBox *) ((FXDirBox *) x));
}
static void *_p_FXToolbarGripTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXToolbarGrip *) x));
}
static void *_p_FXDragCornerTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXDragCorner *) x));
}
static void *_p_FXSwitcherTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXSwitcher *) x));
}
static void *_p_FXDirSelectorTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXDirSelector *) x));
}
static void *_p_FXFileSelectorTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXFileSelector *) x));
}
static void *_p_FXColorSelectorTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXColorSelector *) x));
}
static void *_p_FXFontSelectorTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXFontSelector *) x));
}
static void *_p_FXShutterTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutter *) x));
}
static void *_p_FXProgressBarTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXProgressBar *) x));
}
static void *_p_FXListBoxTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXListBox *) x));
}
static void *_p_FXTreeListBoxTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXTreeListBox *) x));
}
static void *_p_FXHeaderTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXHeader *) x));
}
static void *_p_FXMatrixTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXMatrix *) x));
}
static void *_p_FXColorWellTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXColorWell *) x));
}
static void *_p_FXShutterItemTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutterItem *) x));
}
static void *_p_FXToolbarTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXToolbar *) x));
}
static void *_p_FXDialTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXDial *) x));
}
static void *_p_FXTooltipTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXShell *) ((FXTooltip *) x));
}
static void *_p_FXFrameTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *) ((FXFrame *) x));
}
static void *_p_FXTabBarTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *) ((FXTabBar *) x));
}
static void *_p_FXStatusbarTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXPacker *)(FXHorizontalFrame *) ((FXStatusbar *) x));
}
static void *_p_FXImageViewTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXScrollArea *) ((FXImageView *) x));
}
static void *_p_FXSliderTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXSlider *) x));
}
static void *_p_FXColorBarTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXFrame *) ((FXColorBar *) x));
}
static void *_p_FXToolbarShellTo_p_FXDrawable(void *x) {
    return (void *)((FXDrawable *) (FXWindow *)(FXComposite *)(FXShell *)(FXTopWindow *) ((FXToolbarShell *) x));
}
static void *_p_FXFileStreamTo_p_FXStream(void *x) {
    return (void *)((FXStream *)  ((FXFileStream *) x));
}
static void *_p_FXMemoryStreamTo_p_FXStream(void *x) {
    return (void *)((FXStream *)  ((FXMemoryStream *) x));
}
static void *_p_FXDriveBoxTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXListBox *) ((FXDriveBox *) x));
}
static void *_p_FXToolbarTabTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXToolbarTab *) x));
}
static void *_p_FXScrollbarTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXScrollbar *) x));
}
static void *_p_FXCompositeTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXComposite *) x));
}
static void *_p_FXStatuslineTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXStatusline *) x));
}
static void *_p_FXTextFieldTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXTextField *) x));
}
static void *_p_FXTabBookTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXTabBar *) ((FXTabBook *) x));
}
static void *_p_FXGLViewerTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXCanvas *)(FXGLCanvas *) ((FXGLViewer *) x));
}
static void *_p_FXArrowButtonTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXArrowButton *) x));
}
static void *_p_FXGroupBoxTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXGroupBox *) x));
}
static void *_p_FXShellTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *) ((FXShell *) x));
}
static void *_p_FXScrollAreaTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *) ((FXScrollArea *) x));
}
static void *_p_FXPopupTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *) ((FXPopup *) x));
}
static void *_p_FXScrollWindowTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXScrollArea *) ((FXScrollWindow *) x));
}
static void *_p_FXWindowTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *) ((FXWindow *) x));
}
static void *_p_FXRootWindowTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *) ((FXRootWindow *) x));
}
static void *_p_FXTopWindowTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *) ((FXTopWindow *) x));
}
static void *_p_FXMainWindowTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *)(FXTopWindow *) ((FXMainWindow *) x));
}
static void *_p_FXCanvasTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXCanvas *) x));
}
static void *_p_FXScrollCornerTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXScrollCorner *) x));
}
static void *_p_FXGLCanvasTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXCanvas *) ((FXGLCanvas *) x));
}
static void *_p_FXHorizontalSeparatorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXHorizontalSeparator *) x));
}
static void *_p_FXVerticalSeparatorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXVerticalSeparator *) x));
}
static void *_p_FXComboBoxTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXComboBox *) x));
}
static void *_p_FXVerticalFrameTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXVerticalFrame *) x));
}
static void *_p_FXHorizontalFrameTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXHorizontalFrame *) x));
}
static void *_p_FX4SplitterTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *) ((FX4Splitter *) x));
}
static void *_p_FXSplitterTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *) ((FXSplitter *) x));
}
static void *_p_FXPackerTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *) ((FXPacker *) x));
}
static void *_p_FXSpinnerTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXSpinner *) x));
}
static void *_p_FXColorWheelTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXColorWheel *) x));
}
static void *_p_FXGLContextTo_p_FXId(void *x) {
    return (void *)((FXId *)  ((FXGLContext *) x));
}
static void *_p_FXFontTo_p_FXId(void *x) {
    return (void *)((FXId *)  ((FXFont *) x));
}
static void *_p_FXDirBoxTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXTreeListBox *) ((FXDirBox *) x));
}
static void *_p_FXToolbarGripTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXToolbarGrip *) x));
}
static void *_p_FXDragCornerTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXDragCorner *) x));
}
static void *_p_FXSwitcherTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXSwitcher *) x));
}
static void *_p_FXDirSelectorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXDirSelector *) x));
}
static void *_p_FXFileSelectorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXFileSelector *) x));
}
static void *_p_FXColorSelectorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXColorSelector *) x));
}
static void *_p_FXFontSelectorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXFontSelector *) x));
}
static void *_p_FXShutterTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutter *) x));
}
static void *_p_FXDrawableTo_p_FXId(void *x) {
    return (void *)((FXId *)  ((FXDrawable *) x));
}
static void *_p_FXCursorTo_p_FXId(void *x) {
    return (void *)((FXId *)  ((FXCursor *) x));
}
static void *_p_FXCURCursorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXCursor *) ((FXCURCursor *) x));
}
static void *_p_FXGIFCursorTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXCursor *) ((FXGIFCursor *) x));
}
static void *_p_FXProgressBarTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXProgressBar *) x));
}
static void *_p_FXListBoxTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXListBox *) x));
}
static void *_p_FXTreeListBoxTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXTreeListBox *) x));
}
static void *_p_FXHeaderTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXHeader *) x));
}
static void *_p_FXMatrixTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXMatrix *) x));
}
static void *_p_FXColorWellTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXColorWell *) x));
}
static void *_p_FXShutterItemTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXVerticalFrame *) ((FXShutterItem *) x));
}
static void *_p_FXToolbarTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXToolbar *) x));
}
static void *_p_FXDialTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXDial *) x));
}
static void *_p_FXTooltipTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *) ((FXTooltip *) x));
}
static void *_p_FXFrameTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *) ((FXFrame *) x));
}
static void *_p_FXTabBarTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *) ((FXTabBar *) x));
}
static void *_p_FXStatusbarTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXPacker *)(FXHorizontalFrame *) ((FXStatusbar *) x));
}
static void *_p_FXImageViewTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXScrollArea *) ((FXImageView *) x));
}
static void *_p_FXSliderTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXSlider *) x));
}
static void *_p_FXVisualTo_p_FXId(void *x) {
    return (void *)((FXId *)  ((FXVisual *) x));
}
static void *_p_FXGLVisualTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXVisual *) ((FXGLVisual *) x));
}
static void *_p_FXColorBarTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXFrame *) ((FXColorBar *) x));
}
static void *_p_FXToolbarShellTo_p_FXId(void *x) {
    return (void *)((FXId *) (FXDrawable *)(FXWindow *)(FXComposite *)(FXShell *)(FXTopWindow *) ((FXToolbarShell *) x));
}
static void *_p_FXGLVisualTo_p_FXVisual(void *x) {
    return (void *)((FXVisual *)  ((FXGLVisual *) x));
}
static swig_type_info _swigt__p_FXGLCanvas[] = {{"_p_FXGLCanvas", 0, "FXGLCanvas *", 0},{"_p_FXGLCanvas"},{"_p_FXGLViewer", _p_FXGLViewerTo_p_FXGLCanvas},{0}};
static swig_type_info _swigt__p_FXCanvas[] = {{"_p_FXCanvas", 0, "FXCanvas *", 0},{"_p_FXCanvas"},{"_p_FXGLCanvas", _p_FXGLCanvasTo_p_FXCanvas},{"_p_FXGLViewer", _p_FXGLViewerTo_p_FXCanvas},{0}};
static swig_type_info _swigt__p_FXGLObject[] = {{"_p_FXGLObject", 0, "FXGLObject *", 0},{"_p_FXGLShape", _p_FXGLShapeTo_p_FXGLObject},{"_p_FXGLObject"},{0}};
static swig_type_info _swigt__p_FXObject[] = {{"_p_FXObject", 0, "FXObject *", 0},{"_p_FXDocument", _p_FXDocumentTo_p_FXObject},{"_p_FXRegistry", _p_FXRegistryTo_p_FXObject},{"_p_FXHeaderItem", _p_FXHeaderItemTo_p_FXObject},{"_p_FXShutterItem", _p_FXShutterItemTo_p_FXObject},{"_p_FXColorBar", _p_FXColorBarTo_p_FXObject},{"_p_FXTabBar", _p_FXTabBarTo_p_FXObject},{"_p_FXSwitcher", _p_FXSwitcherTo_p_FXObject},{"_p_FXTextField", _p_FXTextFieldTo_p_FXObject},{"_p_FXDriveBox", _p_FXDriveBoxTo_p_FXObject},{"_p_FXIconDict", _p_FXIconDictTo_p_FXObject},{"_p_FXMatrix", _p_FXMatrixTo_p_FXObject},{"_p_FXFileDict", _p_FXFileDictTo_p_FXObject},{"_p_FXRecentFiles", _p_FXRecentFilesTo_p_FXObject},{"_p_FXScrollCorner", _p_FXScrollCornerTo_p_FXObject},{"_p_FXArrowButton", _p_FXArrowButtonTo_p_FXObject},{"_p_FXGLViewer", _p_FXGLViewerTo_p_FXObject},{"_p_FXPopup", _p_FXPopupTo_p_FXObject},{"_p_FXTooltip", _p_FXTooltipTo_p_FXObject},{"_p_FXDrawable", _p_FXDrawableTo_p_FXObject},{"_p_FXFont", _p_FXFontTo_p_FXObject},{"_p_FXHeader", _p_FXHeaderTo_p_FXObject},{"_p_FX4Splitter", _p_FX4SplitterTo_p_FXObject},{"_p_FXSplitter", _p_FXSplitterTo_p_FXObject},{"_p_FXApp", _p_FXAppTo_p_FXObject},{"_p_FXPacker", _p_FXPackerTo_p_FXObject},{"_p_FXTabBook", _p_FXTabBookTo_p_FXObject},{"_p_FXVerticalSeparator", _p_FXVerticalSeparatorTo_p_FXObject},{"_p_FXHorizontalSeparator", _p_FXHorizontalSeparatorTo_p_FXObject},{"_p_FXScrollbar", _p_FXScrollbarTo_p_FXObject},{"_p_FXGLShape", _p_FXGLShapeTo_p_FXObject},{"_p_FXProgressBar", _p_FXProgressBarTo_p_FXObject},{"_p_FXShutter", _p_FXShutterTo_p_FXObject},{"_p_FXGLContext", _p_FXGLContextTo_p_FXObject},{"_p_FXStatusbar", _p_FXStatusbarTo_p_FXObject},{"_p_FXComposite", _p_FXCompositeTo_p_FXObject},{"_p_FXDict", _p_FXDictTo_p_FXObject},{"_p_FXSlider", _p_FXSliderTo_p_FXObject},{"_p_FXSettings", _p_FXSettingsTo_p_FXObject},{"_p_FXGroupBox", _p_FXGroupBoxTo_p_FXObject},{"_p_FXDebugTarget", _p_FXDebugTargetTo_p_FXObject},{"_p_FXDataTarget", _p_FXDataTargetTo_p_FXObject},{"_p_FXTreeListBox", _p_FXTreeListBoxTo_p_FXObject},{"_p_FXListBox", _p_FXListBoxTo_p_FXObject},{"_p_FXCanvas", _p_FXCanvasTo_p_FXObject},{"_p_FXGLCanvas", _p_FXGLCanvasTo_p_FXObject},{"_p_FXId", _p_FXIdTo_p_FXObject},{"_p_FXColorWheel", _p_FXColorWheelTo_p_FXObject},{"_p_FXDial", _p_FXDialTo_p_FXObject},{"_p_FXToolbarGrip", _p_FXToolbarGripTo_p_FXObject},{"_p_FXVisual", _p_FXVisualTo_p_FXObject},{"_p_FXGLVisual", _p_FXGLVisualTo_p_FXObject},{"_p_FXComboBox", _p_FXComboBoxTo_p_FXObject},{"_p_FXFrame", _p_FXFrameTo_p_FXObject},{"_p_FXStringDict", _p_FXStringDictTo_p_FXObject},{"_p_FXDelegator", _p_FXDelegatorTo_p_FXObject},{"_p_FXAccelTable", _p_FXAccelTableTo_p_FXObject},{"_p_FXToolbar", _p_FXToolbarTo_p_FXObject},{"_p_FXObject"},{"_p_FXCursor", _p_FXCursorTo_p_FXObject},{"_p_FXCURCursor", _p_FXCURCursorTo_p_FXObject},{"_p_FXGIFCursor", _p_FXGIFCursorTo_p_FXObject},{"_p_FXGLObject", _p_FXGLObjectTo_p_FXObject},{"_p_FXSpinner", _p_FXSpinnerTo_p_FXObject},{"_p_FXWindow", _p_FXWindowTo_p_FXObject},{"_p_FXScrollWindow", _p_FXScrollWindowTo_p_FXObject},{"_p_FXRootWindow", _p_FXRootWindowTo_p_FXObject},{"_p_FXTopWindow", _p_FXTopWindowTo_p_FXObject},{"_p_FXMainWindow", _p_FXMainWindowTo_p_FXObject},{"_p_FXToolbarTab", _p_FXToolbarTabTo_p_FXObject},{"_p_FXShell", _p_FXShellTo_p_FXObject},{"_p_FXScrollArea", _p_FXScrollAreaTo_p_FXObject},{"_p_FXColorWell", _p_FXColorWellTo_p_FXObject},{"_p_FXDragCorner", _p_FXDragCornerTo_p_FXObject},{"_p_FXStatusline", _p_FXStatuslineTo_p_FXObject},{"_p_FXVerticalFrame", _p_FXVerticalFrameTo_p_FXObject},{"_p_FXHorizontalFrame", _p_FXHorizontalFrameTo_p_FXObject},{"_p_FXImageView", _p_FXImageViewTo_p_FXObject},{"_p_FXFontSelector", _p_FXFontSelectorTo_p_FXObject},{"_p_FXColorSelector", _p_FXColorSelectorTo_p_FXObject},{"_p_FXFileSelector", _p_FXFileSelectorTo_p_FXObject},{"_p_FXDirSelector", _p_FXDirSelectorTo_p_FXObject},{"_p_FXToolbarShell", _p_FXToolbarShellTo_p_FXObject},{"_p_FXDirBox", _p_FXDirBoxTo_p_FXObject},{0}};
static swig_type_info _swigt__p_FXRange[] = {{"_p_FXRange", 0, "FXRange *", 0},{"_p_FXRange"},{0}};
static swig_type_info _swigt__p_FXQuat[] = {{"_p_FXQuat", 0, "FXQuat *", 0},{"_p_FXQuat"},{0}};
static swig_type_info _swigt__p_FXGLContext[] = {{"_p_FXGLContext", 0, "FXGLContext *", 0},{"_p_FXGLContext"},{0}};
static swig_type_info _swigt__p_FXWindow[] = {{"_p_FXWindow", 0, "FXWindow *", 0},{"_p_FXDriveBox", _p_FXDriveBoxTo_p_FXWindow},{"_p_FXDial", _p_FXDialTo_p_FXWindow},{"_p_FXToolbarTab", _p_FXToolbarTabTo_p_FXWindow},{"_p_FXScrollbar", _p_FXScrollbarTo_p_FXWindow},{"_p_FXComposite", _p_FXCompositeTo_p_FXWindow},{"_p_FXTabBook", _p_FXTabBookTo_p_FXWindow},{"_p_FXGLViewer", _p_FXGLViewerTo_p_FXWindow},{"_p_FXTextField", _p_FXTextFieldTo_p_FXWindow},{"_p_FXStatusline", _p_FXStatuslineTo_p_FXWindow},{"_p_FXArrowButton", _p_FXArrowButtonTo_p_FXWindow},{"_p_FXGroupBox", _p_FXGroupBoxTo_p_FXWindow},{"_p_FXShell", _p_FXShellTo_p_FXWindow},{"_p_FXScrollArea", _p_FXScrollAreaTo_p_FXWindow},{"_p_FXPopup", _p_FXPopupTo_p_FXWindow},{"_p_FXMainWindow", _p_FXMainWindowTo_p_FXWindow},{"_p_FXWindow"},{"_p_FXScrollWindow", _p_FXScrollWindowTo_p_FXWindow},{"_p_FXRootWindow", _p_FXRootWindowTo_p_FXWindow},{"_p_FXTopWindow", _p_FXTopWindowTo_p_FXWindow},{"_p_FXScrollCorner", _p_FXScrollCornerTo_p_FXWindow},{"_p_FXGLCanvas", _p_FXGLCanvasTo_p_FXWindow},{"_p_FXCanvas", _p_FXCanvasTo_p_FXWindow},{"_p_FXComboBox", _p_FXComboBoxTo_p_FXWindow},{"_p_FXHorizontalSeparator", _p_FXHorizontalSeparatorTo_p_FXWindow},{"_p_FXVerticalSeparator", _p_FXVerticalSeparatorTo_p_FXWindow},{"_p_FXVerticalFrame", _p_FXVerticalFrameTo_p_FXWindow},{"_p_FXHorizontalFrame", _p_FXHorizontalFrameTo_p_FXWindow},{"_p_FX4Splitter", _p_FX4SplitterTo_p_FXWindow},{"_p_FXSplitter", _p_FXSplitterTo_p_FXWindow},{"_p_FXSpinner", _p_FXSpinnerTo_p_FXWindow},{"_p_FXPacker", _p_FXPackerTo_p_FXWindow},{"_p_FXColorWheel", _p_FXColorWheelTo_p_FXWindow},{"_p_FXDirBox", _p_FXDirBoxTo_p_FXWindow},{"_p_FXToolbarGrip", _p_FXToolbarGripTo_p_FXWindow},{"_p_FXDragCorner", _p_FXDragCornerTo_p_FXWindow},{"_p_FXSwitcher", _p_FXSwitcherTo_p_FXWindow},{"_p_FXFontSelector", _p_FXFontSelectorTo_p_FXWindow},{"_p_FXColorSelector", _p_FXColorSelectorTo_p_FXWindow},{"_p_FXFileSelector", _p_FXFileSelectorTo_p_FXWindow},{"_p_FXDirSelector", _p_FXDirSelectorTo_p_FXWindow},{"_p_FXShutter", _p_FXShutterTo_p_FXWindow},{"_p_FXProgressBar", _p_FXProgressBarTo_p_FXWindow},{"_p_FXTreeListBox", _p_FXTreeListBoxTo_p_FXWindow},{"_p_FXListBox", _p_FXListBoxTo_p_FXWindow},{"_p_FXHeader", _p_FXHeaderTo_p_FXWindow},{"_p_FXMatrix", _p_FXMatrixTo_p_FXWindow},{"_p_FXToolbar", _p_FXToolbarTo_p_FXWindow},{"_p_FXShutterItem", _p_FXShutterItemTo_p_FXWindow},{"_p_FXColorWell", _p_FXColorWellTo_p_FXWindow},{"_p_FXTooltip", _p_FXTooltipTo_p_FXWindow},{"_p_FXTabBar", _p_FXTabBarTo_p_FXWindow},{"_p_FXFrame", _p_FXFrameTo_p_FXWindow},{"_p_FXStatusbar", _p_FXStatusbarTo_p_FXWindow},{"_p_FXImageView", _p_FXImageViewTo_p_FXWindow},{"_p_FXSlider", _p_FXSliderTo_p_FXWindow},{"_p_FXColorBar", _p_FXColorBarTo_p_FXWindow},{"_p_FXToolbarShell", _p_FXToolbarShellTo_p_FXWindow},{0}};
static swig_type_info _swigt__p_FXComposite[] = {{"_p_FXComposite", 0, "FXComposite *", 0},{"_p_FXDriveBox", _p_FXDriveBoxTo_p_FXComposite},{"_p_FXComposite"},{"_p_FXTabBook", _p_FXTabBookTo_p_FXComposite},{"_p_FXGroupBox", _p_FXGroupBoxTo_p_FXComposite},{"_p_FXShell", _p_FXShellTo_p_FXComposite},{"_p_FXScrollArea", _p_FXScrollAreaTo_p_FXComposite},{"_p_FXPopup", _p_FXPopupTo_p_FXComposite},{"_p_FXScrollWindow", _p_FXScrollWindowTo_p_FXComposite},{"_p_FXRootWindow", _p_FXRootWindowTo_p_FXComposite},{"_p_FXTopWindow", _p_FXTopWindowTo_p_FXComposite},{"_p_FXMainWindow", _p_FXMainWindowTo_p_FXComposite},{"_p_FXComboBox", _p_FXComboBoxTo_p_FXComposite},{"_p_FXHorizontalFrame", _p_FXHorizontalFrameTo_p_FXComposite},{"_p_FXVerticalFrame", _p_FXVerticalFrameTo_p_FXComposite},{"_p_FX4Splitter", _p_FX4SplitterTo_p_FXComposite},{"_p_FXSplitter", _p_FXSplitterTo_p_FXComposite},{"_p_FXSpinner", _p_FXSpinnerTo_p_FXComposite},{"_p_FXPacker", _p_FXPackerTo_p_FXComposite},{"_p_FXDirBox", _p_FXDirBoxTo_p_FXComposite},{"_p_FXSwitcher", _p_FXSwitcherTo_p_FXComposite},{"_p_FXFontSelector", _p_FXFontSelectorTo_p_FXComposite},{"_p_FXColorSelector", _p_FXColorSelectorTo_p_FXComposite},{"_p_FXFileSelector", _p_FXFileSelectorTo_p_FXComposite},{"_p_FXDirSelector", _p_FXDirSelectorTo_p_FXComposite},{"_p_FXShutter", _p_FXShutterTo_p_FXComposite},{"_p_FXTreeListBox", _p_FXTreeListBoxTo_p_FXComposite},{"_p_FXListBox", _p_FXListBoxTo_p_FXComposite},{"_p_FXMatrix", _p_FXMatrixTo_p_FXComposite},{"_p_FXToolbar", _p_FXToolbarTo_p_FXComposite},{"_p_FXShutterItem", _p_FXShutterItemTo_p_FXComposite},{"_p_FXTooltip", _p_FXTooltipTo_p_FXComposite},{"_p_FXTabBar", _p_FXTabBarTo_p_FXComposite},{"_p_FXStatusbar", _p_FXStatusbarTo_p_FXComposite},{"_p_FXImageView", _p_FXImageViewTo_p_FXComposite},{"_p_FXToolbarShell", _p_FXToolbarShellTo_p_FXComposite},{0}};
static swig_type_info _swigt__p_FXVec[] = {{"_p_FXVec", 0, "FXVec *", 0},{"_p_FXVec"},{0}};
static swig_type_info _swigt__p_FXId[] = {{"_p_FXId", 0, "FXId *", 0},{"_p_FXDriveBox", _p_FXDriveBoxTo_p_FXId},{"_p_FXDial", _p_FXDialTo_p_FXId},{"_p_FXToolbarTab", _p_FXToolbarTabTo_p_FXId},{"_p_FXScrollbar", _p_FXScrollbarTo_p_FXId},{"_p_FXComposite", _p_FXCompositeTo_p_FXId},{"_p_FXTabBook", _p_FXTabBookTo_p_FXId},{"_p_FXGLViewer", _p_FXGLViewerTo_p_FXId},{"_p_FXTextField", _p_FXTextFieldTo_p_FXId},{"_p_FXStatusline", _p_FXStatuslineTo_p_FXId},{"_p_FXId"},{"_p_FXArrowButton", _p_FXArrowButtonTo_p_FXId},{"_p_FXGroupBox", _p_FXGroupBoxTo_p_FXId},{"_p_FXShell", _p_FXShellTo_p_FXId},{"_p_FXScrollArea", _p_FXScrollAreaTo_p_FXId},{"_p_FXPopup", _p_FXPopupTo_p_FXId},{"_p_FXMainWindow", _p_FXMainWindowTo_p_FXId},{"_p_FXScrollWindow", _p_FXScrollWindowTo_p_FXId},{"_p_FXRootWindow", _p_FXRootWindowTo_p_FXId},{"_p_FXTopWindow", _p_FXTopWindowTo_p_FXId},{"_p_FXScrollCorner", _p_FXScrollCornerTo_p_FXId},{"_p_FXWindow", _p_FXWindowTo_p_FXId},{"_p_FXGLCanvas", _p_FXGLCanvasTo_p_FXId},{"_p_FXCanvas", _p_FXCanvasTo_p_FXId},{"_p_FXComboBox", _p_FXComboBoxTo_p_FXId},{"_p_FXHorizontalSeparator", _p_FXHorizontalSeparatorTo_p_FXId},{"_p_FXVerticalSeparator", _p_FXVerticalSeparatorTo_p_FXId},{"_p_FXVerticalFrame", _p_FXVerticalFrameTo_p_FXId},{"_p_FXHorizontalFrame", _p_FXHorizontalFrameTo_p_FXId},{"_p_FX4Splitter", _p_FX4SplitterTo_p_FXId},{"_p_FXSplitter", _p_FXSplitterTo_p_FXId},{"_p_FXSpinner", _p_FXSpinnerTo_p_FXId},{"_p_FXPacker", _p_FXPackerTo_p_FXId},{"_p_FXColorWheel", _p_FXColorWheelTo_p_FXId},{"_p_FXGLContext", _p_FXGLContextTo_p_FXId},{"_p_FXDirBox", _p_FXDirBoxTo_p_FXId},{"_p_FXToolbarGrip", _p_FXToolbarGripTo_p_FXId},{"_p_FXDragCorner", _p_FXDragCornerTo_p_FXId},{"_p_FXSwitcher", _p_FXSwitcherTo_p_FXId},{"_p_FXFontSelector", _p_FXFontSelectorTo_p_FXId},{"_p_FXColorSelector", _p_FXColorSelectorTo_p_FXId},{"_p_FXFileSelector", _p_FXFileSelectorTo_p_FXId},{"_p_FXDirSelector", _p_FXDirSelectorTo_p_FXId},{"_p_FXShutter", _p_FXShutterTo_p_FXId},{"_p_FXProgressBar", _p_FXProgressBarTo_p_FXId},{"_p_FXDrawable", _p_FXDrawableTo_p_FXId},{"_p_FXCursor", _p_FXCursorTo_p_FXId},{"_p_FXCURCursor", _p_FXCURCursorTo_p_FXId},{"_p_FXGIFCursor", _p_FXGIFCursorTo_p_FXId},{"_p_FXTreeListBox", _p_FXTreeListBoxTo_p_FXId},{"_p_FXListBox", _p_FXListBoxTo_p_FXId},{"_p_FXHeader", _p_FXHeaderTo_p_FXId},{"_p_FXMatrix", _p_FXMatrixTo_p_FXId},{"_p_FXToolbar", _p_FXToolbarTo_p_FXId},{"_p_FXShutterItem", _p_FXShutterItemTo_p_FXId},{"_p_FXColorWell", _p_FXColorWellTo_p_FXId},{"_p_FXTooltip", _p_FXTooltipTo_p_FXId},{"_p_FXTabBar", _p_FXTabBarTo_p_FXId},{"_p_FXFrame", _p_FXFrameTo_p_FXId},{"_p_FXFont", _p_FXFontTo_p_FXId},{"_p_FXStatusbar", _p_FXStatusbarTo_p_FXId},{"_p_FXImageView", _p_FXImageViewTo_p_FXId},{"_p_FXSlider", _p_FXSliderTo_p_FXId},{"_p_FXVisual", _p_FXVisualTo_p_FXId},{"_p_FXGLVisual", _p_FXGLVisualTo_p_FXId},{"_p_FXColorBar", _p_FXColorBarTo_p_FXId},{"_p_FXToolbarShell", _p_FXToolbarShellTo_p_FXId},{0}};
static swig_type_info _swigt__p_FXFont[] = {{"_p_FXFont", 0, "FXFont *", 0},{"_p_FXFont"},{0}};
static swig_type_info _swigt__p_FXViewport[] = {{"_p_FXViewport", 0, "FXViewport *", 0},{"_p_FXViewport"},{0}};
static swig_type_info _swigt__p_FXMaterial[] = {{"_p_FXMaterial", 0, "FXMaterial *", 0},{"_p_FXMaterial"},{0}};
static swig_type_info _swigt__p_FXDrawable[] = {{"_p_FXDrawable", 0, "FXDrawable *", 0},{"_p_FXDriveBox", _p_FXDriveBoxTo_p_FXDrawable},{"_p_FXDial", _p_FXDialTo_p_FXDrawable},{"_p_FXToolbarTab", _p_FXToolbarTabTo_p_FXDrawable},{"_p_FXScrollbar", _p_FXScrollbarTo_p_FXDrawable},{"_p_FXComposite", _p_FXCompositeTo_p_FXDrawable},{"_p_FXTabBook", _p_FXTabBookTo_p_FXDrawable},{"_p_FXGLViewer", _p_FXGLViewerTo_p_FXDrawable},{"_p_FXTextField", _p_FXTextFieldTo_p_FXDrawable},{"_p_FXStatusline", _p_FXStatuslineTo_p_FXDrawable},{"_p_FXArrowButton", _p_FXArrowButtonTo_p_FXDrawable},{"_p_FXGroupBox", _p_FXGroupBoxTo_p_FXDrawable},{"_p_FXShell", _p_FXShellTo_p_FXDrawable},{"_p_FXScrollArea", _p_FXScrollAreaTo_p_FXDrawable},{"_p_FXPopup", _p_FXPopupTo_p_FXDrawable},{"_p_FXMainWindow", _p_FXMainWindowTo_p_FXDrawable},{"_p_FXScrollWindow", _p_FXScrollWindowTo_p_FXDrawable},{"_p_FXRootWindow", _p_FXRootWindowTo_p_FXDrawable},{"_p_FXTopWindow", _p_FXTopWindowTo_p_FXDrawable},{"_p_FXScrollCorner", _p_FXScrollCornerTo_p_FXDrawable},{"_p_FXWindow", _p_FXWindowTo_p_FXDrawable},{"_p_FXGLCanvas", _p_FXGLCanvasTo_p_FXDrawable},{"_p_FXCanvas", _p_FXCanvasTo_p_FXDrawable},{"_p_FXComboBox", _p_FXComboBoxTo_p_FXDrawable},{"_p_FXHorizontalSeparator", _p_FXHorizontalSeparatorTo_p_FXDrawable},{"_p_FXVerticalSeparator", _p_FXVerticalSeparatorTo_p_FXDrawable},{"_p_FXVerticalFrame", _p_FXVerticalFrameTo_p_FXDrawable},{"_p_FXHorizontalFrame", _p_FXHorizontalFrameTo_p_FXDrawable},{"_p_FX4Splitter", _p_FX4SplitterTo_p_FXDrawable},{"_p_FXSplitter", _p_FXSplitterTo_p_FXDrawable},{"_p_FXSpinner", _p_FXSpinnerTo_p_FXDrawable},{"_p_FXPacker", _p_FXPackerTo_p_FXDrawable},{"_p_FXColorWheel", _p_FXColorWheelTo_p_FXDrawable},{"_p_FXDirBox", _p_FXDirBoxTo_p_FXDrawable},{"_p_FXToolbarGrip", _p_FXToolbarGripTo_p_FXDrawable},{"_p_FXDragCorner", _p_FXDragCornerTo_p_FXDrawable},{"_p_FXSwitcher", _p_FXSwitcherTo_p_FXDrawable},{"_p_FXFontSelector", _p_FXFontSelectorTo_p_FXDrawable},{"_p_FXColorSelector", _p_FXColorSelectorTo_p_FXDrawable},{"_p_FXFileSelector", _p_FXFileSelectorTo_p_FXDrawable},{"_p_FXDirSelector", _p_FXDirSelectorTo_p_FXDrawable},{"_p_FXShutter", _p_FXShutterTo_p_FXDrawable},{"_p_FXDrawable"},{"_p_FXProgressBar", _p_FXProgressBarTo_p_FXDrawable},{"_p_FXTreeListBox", _p_FXTreeListBoxTo_p_FXDrawable},{"_p_FXListBox", _p_FXListBoxTo_p_FXDrawable},{"_p_FXHeader", _p_FXHeaderTo_p_FXDrawable},{"_p_FXMatrix", _p_FXMatrixTo_p_FXDrawable},{"_p_FXToolbar", _p_FXToolbarTo_p_FXDrawable},{"_p_FXShutterItem", _p_FXShutterItemTo_p_FXDrawable},{"_p_FXColorWell", _p_FXColorWellTo_p_FXDrawable},{"_p_FXTooltip", _p_FXTooltipTo_p_FXDrawable},{"_p_FXTabBar", _p_FXTabBarTo_p_FXDrawable},{"_p_FXFrame", _p_FXFrameTo_p_FXDrawable},{"_p_FXStatusbar", _p_FXStatusbarTo_p_FXDrawable},{"_p_FXImageView", _p_FXImageViewTo_p_FXDrawable},{"_p_FXSlider", _p_FXSliderTo_p_FXDrawable},{"_p_FXColorBar", _p_FXColorBarTo_p_FXDrawable},{"_p_FXToolbarShell", _p_FXToolbarShellTo_p_FXDrawable},{0}};
static swig_type_info _swigt__p_FXStream[] = {{"_p_FXStream", 0, "FXStream *", 0},{"_p_FXFileStream", _p_FXFileStreamTo_p_FXStream},{"_p_FXMemoryStream", _p_FXMemoryStreamTo_p_FXStream},{"_p_FXStream"},{0}};
static swig_type_info _swigt__p_FXHVec[] = {{"_p_FXHVec", 0, "FXHVec *", 0},{"_p_FXQuat", _p_FXQuatTo_p_FXHVec},{"_p_FXHVec"},{0}};
static swig_type_info _swigt__p_FXGLViewer[] = {{"_p_FXGLViewer", 0, "FXGLViewer *", 0},{"_p_FXGLViewer"},{0}};
static swig_type_info _swigt__p_FXVisual[] = {{"_p_FXVisual", 0, "FXVisual *", 0},{"_p_FXVisual"},{"_p_FXGLVisual", _p_FXGLVisualTo_p_FXVisual},{0}};
static swig_type_info _swigt__p_FXGLVisual[] = {{"_p_FXGLVisual", 0, "FXGLVisual *", 0},{"_p_FXGLVisual"},{0}};
static swig_type_info _swigt__p_FXLight[] = {{"_p_FXLight", 0, "FXLight *", 0},{"_p_FXLight"},{0}};
static swig_type_info _swigt__p_FXApp[] = {{"_p_FXApp", 0, "FXApp *", 0},{"_p_FXApp"},{0}};
static swig_type_info _swigt__p_FXuint[] = {{"_p_FXuint", 0, "FXuint *", 0},{"_p_FXuint"},{0}};
static swig_type_info _swigt__p_FXRangeSlice[] = {{"_p_FXRangeSlice", 0, "FXRangeSlice *", 0},{"_p_FXRangeSlice"},{0}};
static swig_type_info _swigt__p_FXHMat[] = {{"_p_FXHMat", 0, "FXHMat *", 0},{"_p_FXHMat"},{0}};
static swig_type_info _swigt__p_FXGLShape[] = {{"_p_FXGLShape", 0, "FXGLShape *", 0},{"_p_FXGLShape"},{0}};

static swig_type_info *swig_types_initial[] = {
_swigt__p_FXGLCanvas, 
_swigt__p_FXCanvas, 
_swigt__p_FXGLObject, 
_swigt__p_FXObject, 
_swigt__p_FXRange, 
_swigt__p_FXQuat, 
_swigt__p_FXGLContext, 
_swigt__p_FXWindow, 
_swigt__p_FXComposite, 
_swigt__p_FXVec, 
_swigt__p_FXId, 
_swigt__p_FXFont, 
_swigt__p_FXViewport, 
_swigt__p_FXMaterial, 
_swigt__p_FXDrawable, 
_swigt__p_FXStream, 
_swigt__p_FXHVec, 
_swigt__p_FXGLViewer, 
_swigt__p_FXVisual, 
_swigt__p_FXGLVisual, 
_swigt__p_FXLight, 
_swigt__p_FXApp, 
_swigt__p_FXuint, 
_swigt__p_FXRangeSlice, 
_swigt__p_FXHMat, 
_swigt__p_FXGLShape, 
0
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */


#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) Init_opengl(void) {
    int i;
    
    SWIG_InitRuntime();
    
    for (i = 0; swig_types_initial[i]; i++) {
        swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
        SWIG_define_class(swig_types[i]);
    }
    
    
    cFXVec.klass = rb_define_class_under(mFox, "FXVec", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXVec, (void *) &cFXVec);
    rb_define_alloc_func(cFXVec.klass, _wrap_FXVec_allocate);
    rb_define_method(cFXVec.klass, "initialize", VALUEFUNC(_wrap_new_FXVec), -1);
    rb_define_method(cFXVec.klass, "[]", VALUEFUNC(_wrap_FXVec___getitem__), -1);
    rb_define_method(cFXVec.klass, "[]=", VALUEFUNC(_wrap_FXVec___setitem__), -1);
    rb_define_method(cFXVec.klass, "==", VALUEFUNC(_wrap_FXVec___eq__), -1);
    rb_define_method(cFXVec.klass, "-@", VALUEFUNC(_wrap_FXVec___neg__), -1);
    rb_define_method(cFXVec.klass, "+", VALUEFUNC(_wrap_FXVec___add__), -1);
    rb_define_method(cFXVec.klass, "-", VALUEFUNC(_wrap_FXVec___sub__), -1);
    rb_define_method(cFXVec.klass, "*", VALUEFUNC(_wrap_FXVec___mul__), -1);
    rb_define_method(cFXVec.klass, "/", VALUEFUNC(_wrap_FXVec___div__), -1);
    rb_define_method(cFXVec.klass, "dot", VALUEFUNC(_wrap_FXVec_dot), -1);
    rb_define_method(cFXVec.klass, "cross", VALUEFUNC(_wrap_FXVec_cross), -1);
    rb_define_method(cFXVec.klass, "len", VALUEFUNC(_wrap_FXVec_len), -1);
    rb_define_method(cFXVec.klass, "normalize", VALUEFUNC(_wrap_FXVec_normalize), -1);
    rb_define_method(cFXVec.klass, "normalize!", VALUEFUNC(_wrap_FXVec_normalizeN___), -1);
    rb_define_method(cFXVec.klass, "lo", VALUEFUNC(_wrap_FXVec_lo), -1);
    rb_define_method(cFXVec.klass, "hi", VALUEFUNC(_wrap_FXVec_hi), -1);
    rb_define_method(cFXVec.klass, "to_a", VALUEFUNC(_wrap_FXVec_to_a), -1);
    cFXVec.mark = 0;
    cFXVec.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXHVec.klass = rb_define_class_under(mFox, "FXHVec", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXHVec, (void *) &cFXHVec);
    rb_define_alloc_func(cFXHVec.klass, _wrap_FXHVec_allocate);
    rb_define_method(cFXHVec.klass, "initialize", VALUEFUNC(_wrap_new_FXHVec), -1);
    rb_define_method(cFXHVec.klass, "[]", VALUEFUNC(_wrap_FXHVec___getitem__), -1);
    rb_define_method(cFXHVec.klass, "[]=", VALUEFUNC(_wrap_FXHVec___setitem__), -1);
    rb_define_method(cFXHVec.klass, "-@", VALUEFUNC(_wrap_FXHVec___neg__), -1);
    rb_define_method(cFXHVec.klass, "+", VALUEFUNC(_wrap_FXHVec___add__), -1);
    rb_define_method(cFXHVec.klass, "-", VALUEFUNC(_wrap_FXHVec___sub__), -1);
    rb_define_method(cFXHVec.klass, "/", VALUEFUNC(_wrap_FXHVec___div__), -1);
    rb_define_method(cFXHVec.klass, "*", VALUEFUNC(_wrap_FXHVec___mul__), -1);
    rb_define_method(cFXHVec.klass, "==", VALUEFUNC(_wrap_FXHVec___eq__), -1);
    rb_define_method(cFXHVec.klass, "dot", VALUEFUNC(_wrap_FXHVec_dot), -1);
    rb_define_method(cFXHVec.klass, "len", VALUEFUNC(_wrap_FXHVec_len), -1);
    rb_define_method(cFXHVec.klass, "normalize", VALUEFUNC(_wrap_FXHVec_normalize), -1);
    rb_define_method(cFXHVec.klass, "lo", VALUEFUNC(_wrap_FXHVec_lo), -1);
    rb_define_method(cFXHVec.klass, "hi", VALUEFUNC(_wrap_FXHVec_hi), -1);
    rb_define_method(cFXHVec.klass, "to_s", VALUEFUNC(_wrap_FXHVec_to_s), -1);
    rb_define_method(cFXHVec.klass, "to_a", VALUEFUNC(_wrap_FXHVec_to_a), -1);
    cFXHVec.mark = 0;
    cFXHVec.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXQuat.klass = rb_define_class_under(mFox, "FXQuat", ((swig_class *) SWIGTYPE_p_FXHVec->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXQuat, (void *) &cFXQuat);
    rb_define_alloc_func(cFXQuat.klass, _wrap_FXQuat_allocate);
    rb_define_method(cFXQuat.klass, "initialize", VALUEFUNC(_wrap_new_FXQuat), -1);
    rb_define_method(cFXQuat.klass, "adjust", VALUEFUNC(_wrap_FXQuat_adjust), -1);
    rb_define_method(cFXQuat.klass, "setRollPitchYaw", VALUEFUNC(_wrap_FXQuat_setRollPitchYaw), -1);
    rb_define_method(cFXQuat.klass, "getRollPitchYaw", VALUEFUNC(_wrap_FXQuat_getRollPitchYaw), -1);
    rb_define_method(cFXQuat.klass, "exp", VALUEFUNC(_wrap_FXQuat_exp), -1);
    rb_define_method(cFXQuat.klass, "log", VALUEFUNC(_wrap_FXQuat_log), -1);
    rb_define_method(cFXQuat.klass, "invert", VALUEFUNC(_wrap_FXQuat_invert), -1);
    rb_define_method(cFXQuat.klass, "conj", VALUEFUNC(_wrap_FXQuat_conj), -1);
    rb_define_method(cFXQuat.klass, "*", VALUEFUNC(_wrap_FXQuat___mul__), -1);
    rb_define_singleton_method(cFXQuat.klass, "arc", VALUEFUNC(_wrap_FXQuat_arc), -1);
    rb_define_singleton_method(cFXQuat.klass, "lerp", VALUEFUNC(_wrap_FXQuat_lerp), -1);
    cFXQuat.mark = 0;
    cFXQuat.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXHMat.klass = rb_define_class_under(mFox, "FXHMat", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXHMat, (void *) &cFXHMat);
    rb_define_alloc_func(cFXHMat.klass, _wrap_FXHMat_allocate);
    rb_define_method(cFXHMat.klass, "initialize", VALUEFUNC(_wrap_new_FXHMat), -1);
    rb_define_method(cFXHMat.klass, "+", VALUEFUNC(_wrap_FXHMat___add__), -1);
    rb_define_method(cFXHMat.klass, "-", VALUEFUNC(_wrap_FXHMat___sub__), -1);
    rb_define_method(cFXHMat.klass, "*", VALUEFUNC(_wrap_FXHMat___mul__), -1);
    rb_define_method(cFXHMat.klass, "/", VALUEFUNC(_wrap_FXHMat___div__), -1);
    rb_define_method(cFXHMat.klass, "-@", VALUEFUNC(_wrap_FXHMat___neg__), -1);
    rb_define_method(cFXHMat.klass, "[]", VALUEFUNC(_wrap_FXHMat___getitem__), -1);
    rb_define_method(cFXHMat.klass, "det", VALUEFUNC(_wrap_FXHMat_det), -1);
    rb_define_method(cFXHMat.klass, "transpose", VALUEFUNC(_wrap_FXHMat_transpose), -1);
    rb_define_method(cFXHMat.klass, "invert", VALUEFUNC(_wrap_FXHMat_invert), -1);
    rb_define_method(cFXHMat.klass, "to_s", VALUEFUNC(_wrap_FXHMat_to_s), -1);
    rb_define_method(cFXHMat.klass, "eye", VALUEFUNC(_wrap_FXHMat_eye), -1);
    rb_define_method(cFXHMat.klass, "ortho", VALUEFUNC(_wrap_FXHMat_ortho), -1);
    rb_define_method(cFXHMat.klass, "frustum", VALUEFUNC(_wrap_FXHMat_frustum), -1);
    rb_define_method(cFXHMat.klass, "left", VALUEFUNC(_wrap_FXHMat_left), -1);
    rb_define_method(cFXHMat.klass, "rot", VALUEFUNC(_wrap_FXHMat_rot), -1);
    rb_define_method(cFXHMat.klass, "xrot", VALUEFUNC(_wrap_FXHMat_xrot), -1);
    rb_define_method(cFXHMat.klass, "yrot", VALUEFUNC(_wrap_FXHMat_yrot), -1);
    rb_define_method(cFXHMat.klass, "zrot", VALUEFUNC(_wrap_FXHMat_zrot), -1);
    rb_define_method(cFXHMat.klass, "look", VALUEFUNC(_wrap_FXHMat_look), -1);
    rb_define_method(cFXHMat.klass, "trans", VALUEFUNC(_wrap_FXHMat_trans), -1);
    rb_define_method(cFXHMat.klass, "scale", VALUEFUNC(_wrap_FXHMat_scale), -1);
    cFXHMat.mark = 0;
    cFXHMat.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXRangeSlice.klass = rb_define_class_under(mFox, "FXRangeSlice", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXRangeSlice, (void *) &cFXRangeSlice);
    rb_define_alloc_func(cFXRangeSlice.klass, _wrap_FXRangeSlice_allocate);
    rb_define_method(cFXRangeSlice.klass, "initialize", VALUEFUNC(_wrap_new_FXRangeSlice), -1);
    rb_define_method(cFXRangeSlice.klass, "[]", VALUEFUNC(_wrap_FXRangeSlice___getitem__), -1);
    rb_define_method(cFXRangeSlice.klass, "[]=", VALUEFUNC(_wrap_FXRangeSlice___setitem__), -1);
    rb_define_method(cFXRangeSlice.klass, "length", VALUEFUNC(_wrap_FXRangeSlice_length), -1);
    cFXRangeSlice.mark = 0;
    cFXRangeSlice.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXRange.klass = rb_define_class_under(mFox, "FXRange", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXRange, (void *) &cFXRange);
    rb_define_alloc_func(cFXRange.klass, _wrap_FXRange_allocate);
    rb_define_method(cFXRange.klass, "initialize", VALUEFUNC(_wrap_new_FXRange), -1);
    rb_define_method(cFXRange.klass, "side", VALUEFUNC(_wrap_FXRange_side), -1);
    rb_define_method(cFXRange.klass, "width", VALUEFUNC(_wrap_FXRange_width), -1);
    rb_define_method(cFXRange.klass, "height", VALUEFUNC(_wrap_FXRange_height), -1);
    rb_define_method(cFXRange.klass, "depth", VALUEFUNC(_wrap_FXRange_depth), -1);
    rb_define_method(cFXRange.klass, "longest", VALUEFUNC(_wrap_FXRange_longest), -1);
    rb_define_method(cFXRange.klass, "shortest", VALUEFUNC(_wrap_FXRange_shortest), -1);
    rb_define_method(cFXRange.klass, "empty?", VALUEFUNC(_wrap_FXRange_emptyq___), -1);
    rb_define_method(cFXRange.klass, "overlaps?", VALUEFUNC(_wrap_FXRange_overlapsq___), -1);
    rb_define_method(cFXRange.klass, "contains?", VALUEFUNC(_wrap_FXRange_containsq___), -1);
    rb_define_method(cFXRange.klass, "[]", VALUEFUNC(_wrap_FXRange___getitem__), -1);
    rb_define_method(cFXRange.klass, "[]=", VALUEFUNC(_wrap_FXRange___setitem__), -1);
    rb_define_method(cFXRange.klass, "include", VALUEFUNC(_wrap_FXRange_include), -1);
    rb_define_method(cFXRange.klass, "clipTo", VALUEFUNC(_wrap_FXRange_clipTo), -1);
    rb_define_method(cFXRange.klass, "corners", VALUEFUNC(_wrap_FXRange_corners), -1);
    rb_define_method(cFXRange.klass, "intersects?", VALUEFUNC(_wrap_FXRange_intersectsq___), -1);
    rb_define_method(cFXRange.klass, "center", VALUEFUNC(_wrap_FXRange_center), -1);
    rb_define_method(cFXRange.klass, "diagonal", VALUEFUNC(_wrap_FXRange_diagonal), -1);
    cFXRange.mark = 0;
    cFXRange.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXGLVisual.klass = rb_define_class_under(mFox, "FXGLVisual", ((swig_class *) SWIGTYPE_p_FXVisual->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXGLVisual, (void *) &cFXGLVisual);
    rb_define_alloc_func(cFXGLVisual.klass, _wrap_FXGLVisual_allocate);
    rb_define_method(cFXGLVisual.klass, "initialize", VALUEFUNC(_wrap_new_FXGLVisual), -1);
    rb_define_method(cFXGLVisual.klass, "getRedSize", VALUEFUNC(_wrap_FXGLVisual_getRedSize), -1);
    rb_define_method(cFXGLVisual.klass, "getGreenSize", VALUEFUNC(_wrap_FXGLVisual_getGreenSize), -1);
    rb_define_method(cFXGLVisual.klass, "getBlueSize", VALUEFUNC(_wrap_FXGLVisual_getBlueSize), -1);
    rb_define_method(cFXGLVisual.klass, "getAlphaSize", VALUEFUNC(_wrap_FXGLVisual_getAlphaSize), -1);
    rb_define_method(cFXGLVisual.klass, "getDepthSize", VALUEFUNC(_wrap_FXGLVisual_getDepthSize), -1);
    rb_define_method(cFXGLVisual.klass, "getStencilSize", VALUEFUNC(_wrap_FXGLVisual_getStencilSize), -1);
    rb_define_method(cFXGLVisual.klass, "getAccumRedSize", VALUEFUNC(_wrap_FXGLVisual_getAccumRedSize), -1);
    rb_define_method(cFXGLVisual.klass, "getAccumGreenSize", VALUEFUNC(_wrap_FXGLVisual_getAccumGreenSize), -1);
    rb_define_method(cFXGLVisual.klass, "getAccumBlueSize", VALUEFUNC(_wrap_FXGLVisual_getAccumBlueSize), -1);
    rb_define_method(cFXGLVisual.klass, "getAccumAlphaSize", VALUEFUNC(_wrap_FXGLVisual_getAccumAlphaSize), -1);
    rb_define_method(cFXGLVisual.klass, "setRedSize", VALUEFUNC(_wrap_FXGLVisual_setRedSize), -1);
    rb_define_method(cFXGLVisual.klass, "setGreenSize", VALUEFUNC(_wrap_FXGLVisual_setGreenSize), -1);
    rb_define_method(cFXGLVisual.klass, "setBlueSize", VALUEFUNC(_wrap_FXGLVisual_setBlueSize), -1);
    rb_define_method(cFXGLVisual.klass, "setAlphaSize", VALUEFUNC(_wrap_FXGLVisual_setAlphaSize), -1);
    rb_define_method(cFXGLVisual.klass, "setDepthSize", VALUEFUNC(_wrap_FXGLVisual_setDepthSize), -1);
    rb_define_method(cFXGLVisual.klass, "setStencilSize", VALUEFUNC(_wrap_FXGLVisual_setStencilSize), -1);
    rb_define_method(cFXGLVisual.klass, "setAccumRedSize", VALUEFUNC(_wrap_FXGLVisual_setAccumRedSize), -1);
    rb_define_method(cFXGLVisual.klass, "setAccumGreenSize", VALUEFUNC(_wrap_FXGLVisual_setAccumGreenSize), -1);
    rb_define_method(cFXGLVisual.klass, "setAccumBlueSize", VALUEFUNC(_wrap_FXGLVisual_setAccumBlueSize), -1);
    rb_define_method(cFXGLVisual.klass, "setAccumAlphaSize", VALUEFUNC(_wrap_FXGLVisual_setAccumAlphaSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualRedSize", VALUEFUNC(_wrap_FXGLVisual_getActualRedSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualGreenSize", VALUEFUNC(_wrap_FXGLVisual_getActualGreenSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualBlueSize", VALUEFUNC(_wrap_FXGLVisual_getActualBlueSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualAlphaSize", VALUEFUNC(_wrap_FXGLVisual_getActualAlphaSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualDepthSize", VALUEFUNC(_wrap_FXGLVisual_getActualDepthSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualStencilSize", VALUEFUNC(_wrap_FXGLVisual_getActualStencilSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualAccumRedSize", VALUEFUNC(_wrap_FXGLVisual_getActualAccumRedSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualAccumGreenSize", VALUEFUNC(_wrap_FXGLVisual_getActualAccumGreenSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualAccumBlueSize", VALUEFUNC(_wrap_FXGLVisual_getActualAccumBlueSize), -1);
    rb_define_method(cFXGLVisual.klass, "getActualAccumAlphaSize", VALUEFUNC(_wrap_FXGLVisual_getActualAccumAlphaSize), -1);
    rb_define_method(cFXGLVisual.klass, "isDoubleBuffer", VALUEFUNC(_wrap_FXGLVisual_isDoubleBuffer), -1);
    rb_define_method(cFXGLVisual.klass, "isStereo", VALUEFUNC(_wrap_FXGLVisual_isStereo), -1);
    rb_define_method(cFXGLVisual.klass, "isAccelerated", VALUEFUNC(_wrap_FXGLVisual_isAccelerated), -1);
    rb_define_method(cFXGLVisual.klass, "save", VALUEFUNC(_wrap_FXGLVisual_save), -1);
    rb_define_method(cFXGLVisual.klass, "load", VALUEFUNC(_wrap_FXGLVisual_load), -1);
    rb_define_method(cFXGLVisual.klass, "create", VALUEFUNC(_wrap_FXGLVisual_create), -1);
    rb_define_method(cFXGLVisual.klass, "detach", VALUEFUNC(_wrap_FXGLVisual_detach), -1);
    rb_define_method(cFXGLVisual.klass, "destroy", VALUEFUNC(_wrap_FXGLVisual_destroy), -1);
    cFXGLVisual.mark = (void (*)(void *)) FXRbGLVisual::markfunc;
    cFXGLVisual.destroy = (void (*)(void *)) FXRbGLVisual::freefunc;
    rb_define_module_function(mFox, "glUseFXFont", VALUEFUNC(_wrap_glUseFXFont), -1);
    
    cFXGLContext.klass = rb_define_class_under(mFox, "FXGLContext", ((swig_class *) SWIGTYPE_p_FXId->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXGLContext, (void *) &cFXGLContext);
    rb_define_alloc_func(cFXGLContext.klass, _wrap_FXGLContext_allocate);
    rb_define_method(cFXGLContext.klass, "initialize", VALUEFUNC(_wrap_new_FXGLContext), -1);
    rb_define_method(cFXGLContext.klass, "isShared", VALUEFUNC(_wrap_FXGLContext_isShared), -1);
    rb_define_method(cFXGLContext.klass, "getVisual", VALUEFUNC(_wrap_FXGLContext_getVisual), -1);
    rb_define_method(cFXGLContext.klass, "begin", VALUEFUNC(_wrap_FXGLContext_begin), -1);
    rb_define_method(cFXGLContext.klass, "end", VALUEFUNC(_wrap_FXGLContext_end), -1);
    rb_define_method(cFXGLContext.klass, "swapBuffers", VALUEFUNC(_wrap_FXGLContext_swapBuffers), -1);
    rb_define_method(cFXGLContext.klass, "swapSubBuffers", VALUEFUNC(_wrap_FXGLContext_swapSubBuffers), -1);
    rb_define_method(cFXGLContext.klass, "save", VALUEFUNC(_wrap_FXGLContext_save), -1);
    rb_define_method(cFXGLContext.klass, "load", VALUEFUNC(_wrap_FXGLContext_load), -1);
    rb_define_method(cFXGLContext.klass, "create", VALUEFUNC(_wrap_FXGLContext_create), -1);
    rb_define_method(cFXGLContext.klass, "detach", VALUEFUNC(_wrap_FXGLContext_detach), -1);
    rb_define_method(cFXGLContext.klass, "destroy", VALUEFUNC(_wrap_FXGLContext_destroy), -1);
    cFXGLContext.mark = (void (*)(void *)) FXRbGLContext::markfunc;
    cFXGLContext.destroy = (void (*)(void *)) FXRbObject::freefunc;
    
    cFXGLCanvas.klass = rb_define_class_under(mFox, "FXGLCanvas", ((swig_class *) SWIGTYPE_p_FXCanvas->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXGLCanvas, (void *) &cFXGLCanvas);
    rb_define_alloc_func(cFXGLCanvas.klass, _wrap_FXGLCanvas_allocate);
    rb_define_method(cFXGLCanvas.klass, "initialize", VALUEFUNC(_wrap_new_FXGLCanvas), -1);
    rb_define_method(cFXGLCanvas.klass, "isShared", VALUEFUNC(_wrap_FXGLCanvas_isShared), -1);
    rb_define_method(cFXGLCanvas.klass, "getContext", VALUEFUNC(_wrap_FXGLCanvas_getContext), -1);
    rb_define_method(cFXGLCanvas.klass, "save", VALUEFUNC(_wrap_FXGLCanvas_save), -1);
    rb_define_method(cFXGLCanvas.klass, "load", VALUEFUNC(_wrap_FXGLCanvas_load), -1);
    rb_define_method(cFXGLCanvas.klass, "create", VALUEFUNC(_wrap_FXGLCanvas_create), -1);
    rb_define_method(cFXGLCanvas.klass, "detach", VALUEFUNC(_wrap_FXGLCanvas_detach), -1);
    rb_define_method(cFXGLCanvas.klass, "destroy", VALUEFUNC(_wrap_FXGLCanvas_destroy), -1);
    rb_define_method(cFXGLCanvas.klass, "resize", VALUEFUNC(_wrap_FXGLCanvas_resize), -1);
    rb_define_method(cFXGLCanvas.klass, "getDefaultWidth", VALUEFUNC(_wrap_FXGLCanvas_getDefaultWidth), -1);
    rb_define_method(cFXGLCanvas.klass, "getDefaultHeight", VALUEFUNC(_wrap_FXGLCanvas_getDefaultHeight), -1);
    rb_define_method(cFXGLCanvas.klass, "getWidthForHeight", VALUEFUNC(_wrap_FXGLCanvas_getWidthForHeight), -1);
    rb_define_method(cFXGLCanvas.klass, "getHeightForWidth", VALUEFUNC(_wrap_FXGLCanvas_getHeightForWidth), -1);
    rb_define_method(cFXGLCanvas.klass, "canFocus", VALUEFUNC(_wrap_FXGLCanvas_canFocus), -1);
    rb_define_method(cFXGLCanvas.klass, "setFocus", VALUEFUNC(_wrap_FXGLCanvas_setFocus), -1);
    rb_define_method(cFXGLCanvas.klass, "killFocus", VALUEFUNC(_wrap_FXGLCanvas_killFocus), -1);
    rb_define_method(cFXGLCanvas.klass, "setDefault", VALUEFUNC(_wrap_FXGLCanvas_setDefault), -1);
    rb_define_method(cFXGLCanvas.klass, "enable", VALUEFUNC(_wrap_FXGLCanvas_enable), -1);
    rb_define_method(cFXGLCanvas.klass, "disable", VALUEFUNC(_wrap_FXGLCanvas_disable), -1);
    rb_define_method(cFXGLCanvas.klass, "raiseWindow", VALUEFUNC(_wrap_FXGLCanvas_raiseWindow), -1);
    rb_define_method(cFXGLCanvas.klass, "lower", VALUEFUNC(_wrap_FXGLCanvas_lower), -1);
    rb_define_method(cFXGLCanvas.klass, "move", VALUEFUNC(_wrap_FXGLCanvas_move), -1);
    rb_define_method(cFXGLCanvas.klass, "position", VALUEFUNC(_wrap_FXGLCanvas_position), -1);
    rb_define_method(cFXGLCanvas.klass, "recalc", VALUEFUNC(_wrap_FXGLCanvas_recalc), -1);
    rb_define_method(cFXGLCanvas.klass, "reparent", VALUEFUNC(_wrap_FXGLCanvas_reparent), -1);
    rb_define_method(cFXGLCanvas.klass, "show", VALUEFUNC(_wrap_FXGLCanvas_show), -1);
    rb_define_method(cFXGLCanvas.klass, "hide", VALUEFUNC(_wrap_FXGLCanvas_hide), -1);
    rb_define_method(cFXGLCanvas.klass, "isComposite", VALUEFUNC(_wrap_FXGLCanvas_isComposite), -1);
    rb_define_method(cFXGLCanvas.klass, "contains", VALUEFUNC(_wrap_FXGLCanvas_contains), -1);
    rb_define_method(cFXGLCanvas.klass, "doesSaveUnder", VALUEFUNC(_wrap_FXGLCanvas_doesSaveUnder), -1);
    rb_define_method(cFXGLCanvas.klass, "setBackColor", VALUEFUNC(_wrap_FXGLCanvas_setBackColor), -1);
    rb_define_method(cFXGLCanvas.klass, "makeCurrent", VALUEFUNC(_wrap_FXGLCanvas_makeCurrent), -1);
    rb_define_method(cFXGLCanvas.klass, "makeNonCurrent", VALUEFUNC(_wrap_FXGLCanvas_makeNonCurrent), -1);
    rb_define_method(cFXGLCanvas.klass, "isCurrent", VALUEFUNC(_wrap_FXGLCanvas_isCurrent), -1);
    rb_define_method(cFXGLCanvas.klass, "swapBuffers", VALUEFUNC(_wrap_FXGLCanvas_swapBuffers), -1);
    cFXGLCanvas.mark = (void (*)(void *)) FXRbGLCanvas::markfunc;
    cFXGLCanvas.destroy = (void (*)(void *)) FXRbObject::freefunc;
    
    SWIGTYPE_p_FXGLCanvas->dcast = (swig_dycast_func) FXGLCanvas_dynamic_cast;
    
    rb_define_const(mFox,"PICK_TOL", INT2NUM(3));
    rb_define_const(mFox,"VIEWER_LOCKED", INT2NUM(VIEWER_LOCKED));
    rb_define_const(mFox,"VIEWER_LIGHTING", INT2NUM(VIEWER_LIGHTING));
    rb_define_const(mFox,"VIEWER_FOG", INT2NUM(VIEWER_FOG));
    rb_define_const(mFox,"VIEWER_DITHER", INT2NUM(VIEWER_DITHER));
    
    cFXViewport.klass = rb_define_class_under(mFox, "FXViewport", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXViewport, (void *) &cFXViewport);
    rb_define_alloc_func(cFXViewport.klass, _wrap_FXViewport_allocate);
    rb_define_method(cFXViewport.klass, "initialize", VALUEFUNC(_wrap_new_FXViewport), -1);
    rb_define_method(cFXViewport.klass, "w=", VALUEFUNC(_wrap_FXViewport_w_set), -1);
    rb_define_method(cFXViewport.klass, "w", VALUEFUNC(_wrap_FXViewport_w_get), -1);
    rb_define_method(cFXViewport.klass, "h=", VALUEFUNC(_wrap_FXViewport_h_set), -1);
    rb_define_method(cFXViewport.klass, "h", VALUEFUNC(_wrap_FXViewport_h_get), -1);
    rb_define_method(cFXViewport.klass, "left=", VALUEFUNC(_wrap_FXViewport_left_set), -1);
    rb_define_method(cFXViewport.klass, "left", VALUEFUNC(_wrap_FXViewport_left_get), -1);
    rb_define_method(cFXViewport.klass, "right=", VALUEFUNC(_wrap_FXViewport_right_set), -1);
    rb_define_method(cFXViewport.klass, "right", VALUEFUNC(_wrap_FXViewport_right_get), -1);
    rb_define_method(cFXViewport.klass, "bottom=", VALUEFUNC(_wrap_FXViewport_bottom_set), -1);
    rb_define_method(cFXViewport.klass, "bottom", VALUEFUNC(_wrap_FXViewport_bottom_get), -1);
    rb_define_method(cFXViewport.klass, "top=", VALUEFUNC(_wrap_FXViewport_top_set), -1);
    rb_define_method(cFXViewport.klass, "top", VALUEFUNC(_wrap_FXViewport_top_get), -1);
    rb_define_method(cFXViewport.klass, "hither=", VALUEFUNC(_wrap_FXViewport_hither_set), -1);
    rb_define_method(cFXViewport.klass, "hither", VALUEFUNC(_wrap_FXViewport_hither_get), -1);
    rb_define_method(cFXViewport.klass, "yon=", VALUEFUNC(_wrap_FXViewport_yon_set), -1);
    rb_define_method(cFXViewport.klass, "yon", VALUEFUNC(_wrap_FXViewport_yon_get), -1);
    cFXViewport.mark = 0;
    cFXViewport.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXLight.klass = rb_define_class_under(mFox, "FXLight", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXLight, (void *) &cFXLight);
    rb_define_alloc_func(cFXLight.klass, _wrap_FXLight_allocate);
    rb_define_method(cFXLight.klass, "initialize", VALUEFUNC(_wrap_new_FXLight), -1);
    rb_define_method(cFXLight.klass, "ambient=", VALUEFUNC(_wrap_FXLight_ambient_set), -1);
    rb_define_method(cFXLight.klass, "ambient", VALUEFUNC(_wrap_FXLight_ambient_get), -1);
    rb_define_method(cFXLight.klass, "diffuse=", VALUEFUNC(_wrap_FXLight_diffuse_set), -1);
    rb_define_method(cFXLight.klass, "diffuse", VALUEFUNC(_wrap_FXLight_diffuse_get), -1);
    rb_define_method(cFXLight.klass, "specular=", VALUEFUNC(_wrap_FXLight_specular_set), -1);
    rb_define_method(cFXLight.klass, "specular", VALUEFUNC(_wrap_FXLight_specular_get), -1);
    rb_define_method(cFXLight.klass, "position=", VALUEFUNC(_wrap_FXLight_position_set), -1);
    rb_define_method(cFXLight.klass, "position", VALUEFUNC(_wrap_FXLight_position_get), -1);
    rb_define_method(cFXLight.klass, "direction=", VALUEFUNC(_wrap_FXLight_direction_set), -1);
    rb_define_method(cFXLight.klass, "direction", VALUEFUNC(_wrap_FXLight_direction_get), -1);
    rb_define_method(cFXLight.klass, "exponent=", VALUEFUNC(_wrap_FXLight_exponent_set), -1);
    rb_define_method(cFXLight.klass, "exponent", VALUEFUNC(_wrap_FXLight_exponent_get), -1);
    rb_define_method(cFXLight.klass, "cutoff=", VALUEFUNC(_wrap_FXLight_cutoff_set), -1);
    rb_define_method(cFXLight.klass, "cutoff", VALUEFUNC(_wrap_FXLight_cutoff_get), -1);
    rb_define_method(cFXLight.klass, "c_attn=", VALUEFUNC(_wrap_FXLight_c_attn_set), -1);
    rb_define_method(cFXLight.klass, "c_attn", VALUEFUNC(_wrap_FXLight_c_attn_get), -1);
    rb_define_method(cFXLight.klass, "l_attn=", VALUEFUNC(_wrap_FXLight_l_attn_set), -1);
    rb_define_method(cFXLight.klass, "l_attn", VALUEFUNC(_wrap_FXLight_l_attn_get), -1);
    rb_define_method(cFXLight.klass, "q_attn=", VALUEFUNC(_wrap_FXLight_q_attn_set), -1);
    rb_define_method(cFXLight.klass, "q_attn", VALUEFUNC(_wrap_FXLight_q_attn_get), -1);
    cFXLight.mark = 0;
    cFXLight.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXMaterial.klass = rb_define_class_under(mFox, "FXMaterial", rb_cObject);
    SWIG_TypeClientData(SWIGTYPE_p_FXMaterial, (void *) &cFXMaterial);
    rb_define_alloc_func(cFXMaterial.klass, _wrap_FXMaterial_allocate);
    rb_define_method(cFXMaterial.klass, "initialize", VALUEFUNC(_wrap_new_FXMaterial), -1);
    rb_define_method(cFXMaterial.klass, "ambient=", VALUEFUNC(_wrap_FXMaterial_ambient_set), -1);
    rb_define_method(cFXMaterial.klass, "ambient", VALUEFUNC(_wrap_FXMaterial_ambient_get), -1);
    rb_define_method(cFXMaterial.klass, "diffuse=", VALUEFUNC(_wrap_FXMaterial_diffuse_set), -1);
    rb_define_method(cFXMaterial.klass, "diffuse", VALUEFUNC(_wrap_FXMaterial_diffuse_get), -1);
    rb_define_method(cFXMaterial.klass, "specular=", VALUEFUNC(_wrap_FXMaterial_specular_set), -1);
    rb_define_method(cFXMaterial.klass, "specular", VALUEFUNC(_wrap_FXMaterial_specular_get), -1);
    rb_define_method(cFXMaterial.klass, "emission=", VALUEFUNC(_wrap_FXMaterial_emission_set), -1);
    rb_define_method(cFXMaterial.klass, "emission", VALUEFUNC(_wrap_FXMaterial_emission_get), -1);
    rb_define_method(cFXMaterial.klass, "shininess=", VALUEFUNC(_wrap_FXMaterial_shininess_set), -1);
    rb_define_method(cFXMaterial.klass, "shininess", VALUEFUNC(_wrap_FXMaterial_shininess_get), -1);
    cFXMaterial.mark = 0;
    cFXMaterial.destroy = (void (*)(void *)) FXRbUnregisterRubyObj;
    
    cFXGLViewer.klass = rb_define_class_under(mFox, "FXGLViewer", ((swig_class *) SWIGTYPE_p_FXGLCanvas->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXGLViewer, (void *) &cFXGLViewer);
    rb_define_alloc_func(cFXGLViewer.klass, _wrap_FXGLViewer_allocate);
    rb_define_method(cFXGLViewer.klass, "initialize", VALUEFUNC(_wrap_new_FXGLViewer), -1);
    rb_define_singleton_method(cFXGLViewer.klass, "objectType", VALUEFUNC(FXGLViewer_objectType_get), 0);
    rb_define_singleton_method(cFXGLViewer.klass, "objectType=", VALUEFUNC(FXGLViewer_objectType_set), 1);
    rb_define_method(cFXGLViewer.klass, "onPaint", VALUEFUNC(_wrap_FXGLViewer_onPaint), -1);
    rb_define_method(cFXGLViewer.klass, "onEnter", VALUEFUNC(_wrap_FXGLViewer_onEnter), -1);
    rb_define_method(cFXGLViewer.klass, "onLeave", VALUEFUNC(_wrap_FXGLViewer_onLeave), -1);
    rb_define_method(cFXGLViewer.klass, "onMotion", VALUEFUNC(_wrap_FXGLViewer_onMotion), -1);
    rb_define_method(cFXGLViewer.klass, "onMouseWheel", VALUEFUNC(_wrap_FXGLViewer_onMouseWheel), -1);
    rb_define_method(cFXGLViewer.klass, "onChanged", VALUEFUNC(_wrap_FXGLViewer_onChanged), -1);
    rb_define_method(cFXGLViewer.klass, "onPick", VALUEFUNC(_wrap_FXGLViewer_onPick), -1);
    rb_define_method(cFXGLViewer.klass, "onClicked", VALUEFUNC(_wrap_FXGLViewer_onClicked), -1);
    rb_define_method(cFXGLViewer.klass, "onDoubleClicked", VALUEFUNC(_wrap_FXGLViewer_onDoubleClicked), -1);
    rb_define_method(cFXGLViewer.klass, "onTripleClicked", VALUEFUNC(_wrap_FXGLViewer_onTripleClicked), -1);
    rb_define_method(cFXGLViewer.klass, "onLassoed", VALUEFUNC(_wrap_FXGLViewer_onLassoed), -1);
    rb_define_method(cFXGLViewer.klass, "onSelected", VALUEFUNC(_wrap_FXGLViewer_onSelected), -1);
    rb_define_method(cFXGLViewer.klass, "onDeselected", VALUEFUNC(_wrap_FXGLViewer_onDeselected), -1);
    rb_define_method(cFXGLViewer.klass, "onInserted", VALUEFUNC(_wrap_FXGLViewer_onInserted), -1);
    rb_define_method(cFXGLViewer.klass, "onDeleted", VALUEFUNC(_wrap_FXGLViewer_onDeleted), -1);
    rb_define_method(cFXGLViewer.klass, "onLeftBtnPress", VALUEFUNC(_wrap_FXGLViewer_onLeftBtnPress), -1);
    rb_define_method(cFXGLViewer.klass, "onLeftBtnRelease", VALUEFUNC(_wrap_FXGLViewer_onLeftBtnRelease), -1);
    rb_define_method(cFXGLViewer.klass, "onMiddleBtnPress", VALUEFUNC(_wrap_FXGLViewer_onMiddleBtnPress), -1);
    rb_define_method(cFXGLViewer.klass, "onMiddleBtnRelease", VALUEFUNC(_wrap_FXGLViewer_onMiddleBtnRelease), -1);
    rb_define_method(cFXGLViewer.klass, "onRightBtnPress", VALUEFUNC(_wrap_FXGLViewer_onRightBtnPress), -1);
    rb_define_method(cFXGLViewer.klass, "onRightBtnRelease", VALUEFUNC(_wrap_FXGLViewer_onRightBtnRelease), -1);
    rb_define_method(cFXGLViewer.klass, "onUngrabbed", VALUEFUNC(_wrap_FXGLViewer_onUngrabbed), -1);
    rb_define_method(cFXGLViewer.klass, "onKeyPress", VALUEFUNC(_wrap_FXGLViewer_onKeyPress), -1);
    rb_define_method(cFXGLViewer.klass, "onKeyRelease", VALUEFUNC(_wrap_FXGLViewer_onKeyRelease), -1);
    rb_define_method(cFXGLViewer.klass, "onFocusIn", VALUEFUNC(_wrap_FXGLViewer_onFocusIn), -1);
    rb_define_method(cFXGLViewer.klass, "onFocusOut", VALUEFUNC(_wrap_FXGLViewer_onFocusOut), -1);
    rb_define_method(cFXGLViewer.klass, "onClipboardLost", VALUEFUNC(_wrap_FXGLViewer_onClipboardLost), -1);
    rb_define_method(cFXGLViewer.klass, "onClipboardGained", VALUEFUNC(_wrap_FXGLViewer_onClipboardGained), -1);
    rb_define_method(cFXGLViewer.klass, "onClipboardRequest", VALUEFUNC(_wrap_FXGLViewer_onClipboardRequest), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdPerspective", VALUEFUNC(_wrap_FXGLViewer_onCmdPerspective), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdPerspective", VALUEFUNC(_wrap_FXGLViewer_onUpdPerspective), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdParallel", VALUEFUNC(_wrap_FXGLViewer_onCmdParallel), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdParallel", VALUEFUNC(_wrap_FXGLViewer_onUpdParallel), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdFront", VALUEFUNC(_wrap_FXGLViewer_onCmdFront), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdFront", VALUEFUNC(_wrap_FXGLViewer_onUpdFront), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdBack", VALUEFUNC(_wrap_FXGLViewer_onCmdBack), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdBack", VALUEFUNC(_wrap_FXGLViewer_onUpdBack), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLeft", VALUEFUNC(_wrap_FXGLViewer_onCmdLeft), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdLeft", VALUEFUNC(_wrap_FXGLViewer_onUpdLeft), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdRight", VALUEFUNC(_wrap_FXGLViewer_onCmdRight), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdRight", VALUEFUNC(_wrap_FXGLViewer_onUpdRight), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdTop", VALUEFUNC(_wrap_FXGLViewer_onCmdTop), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdTop", VALUEFUNC(_wrap_FXGLViewer_onUpdTop), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdBottom", VALUEFUNC(_wrap_FXGLViewer_onCmdBottom), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdBottom", VALUEFUNC(_wrap_FXGLViewer_onUpdBottom), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdResetView", VALUEFUNC(_wrap_FXGLViewer_onCmdResetView), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdFitView", VALUEFUNC(_wrap_FXGLViewer_onCmdFitView), -1);
    rb_define_method(cFXGLViewer.klass, "onDNDEnter", VALUEFUNC(_wrap_FXGLViewer_onDNDEnter), -1);
    rb_define_method(cFXGLViewer.klass, "onDNDLeave", VALUEFUNC(_wrap_FXGLViewer_onDNDLeave), -1);
    rb_define_method(cFXGLViewer.klass, "onDNDMotion", VALUEFUNC(_wrap_FXGLViewer_onDNDMotion), -1);
    rb_define_method(cFXGLViewer.klass, "onDNDDrop", VALUEFUNC(_wrap_FXGLViewer_onDNDDrop), -1);
    rb_define_method(cFXGLViewer.klass, "onTipTimer", VALUEFUNC(_wrap_FXGLViewer_onTipTimer), -1);
    rb_define_method(cFXGLViewer.klass, "onQueryHelp", VALUEFUNC(_wrap_FXGLViewer_onQueryHelp), -1);
    rb_define_method(cFXGLViewer.klass, "onQueryTip", VALUEFUNC(_wrap_FXGLViewer_onQueryTip), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdXYZDial", VALUEFUNC(_wrap_FXGLViewer_onCmdXYZDial), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdXYZDial", VALUEFUNC(_wrap_FXGLViewer_onUpdXYZDial), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdRollPitchYaw", VALUEFUNC(_wrap_FXGLViewer_onCmdRollPitchYaw), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdRollPitchYaw", VALUEFUNC(_wrap_FXGLViewer_onUpdRollPitchYaw), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdXYZScale", VALUEFUNC(_wrap_FXGLViewer_onCmdXYZScale), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdXYZScale", VALUEFUNC(_wrap_FXGLViewer_onUpdXYZScale), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdCurrent", VALUEFUNC(_wrap_FXGLViewer_onUpdCurrent), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdCutSel", VALUEFUNC(_wrap_FXGLViewer_onCmdCutSel), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdCopySel", VALUEFUNC(_wrap_FXGLViewer_onCmdCopySel), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdPasteSel", VALUEFUNC(_wrap_FXGLViewer_onCmdPasteSel), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdDeleteSel", VALUEFUNC(_wrap_FXGLViewer_onCmdDeleteSel), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdDeleteSel", VALUEFUNC(_wrap_FXGLViewer_onUpdDeleteSel), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdBackColor", VALUEFUNC(_wrap_FXGLViewer_onCmdBackColor), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdBackColor", VALUEFUNC(_wrap_FXGLViewer_onUpdBackColor), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdAmbientColor", VALUEFUNC(_wrap_FXGLViewer_onCmdAmbientColor), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdAmbientColor", VALUEFUNC(_wrap_FXGLViewer_onUpdAmbientColor), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLock", VALUEFUNC(_wrap_FXGLViewer_onCmdLock), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdLock", VALUEFUNC(_wrap_FXGLViewer_onUpdLock), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLighting", VALUEFUNC(_wrap_FXGLViewer_onCmdLighting), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdLighting", VALUEFUNC(_wrap_FXGLViewer_onUpdLighting), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdFog", VALUEFUNC(_wrap_FXGLViewer_onCmdFog), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdFog", VALUEFUNC(_wrap_FXGLViewer_onUpdFog), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdDither", VALUEFUNC(_wrap_FXGLViewer_onCmdDither), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdDither", VALUEFUNC(_wrap_FXGLViewer_onUpdDither), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdFov", VALUEFUNC(_wrap_FXGLViewer_onCmdFov), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdFov", VALUEFUNC(_wrap_FXGLViewer_onUpdFov), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdZoom", VALUEFUNC(_wrap_FXGLViewer_onCmdZoom), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdZoom", VALUEFUNC(_wrap_FXGLViewer_onUpdZoom), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLightAmbient", VALUEFUNC(_wrap_FXGLViewer_onCmdLightAmbient), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdLightAmbient", VALUEFUNC(_wrap_FXGLViewer_onUpdLightAmbient), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLightDiffuse", VALUEFUNC(_wrap_FXGLViewer_onCmdLightDiffuse), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdLightDiffuse", VALUEFUNC(_wrap_FXGLViewer_onUpdLightDiffuse), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLightSpecular", VALUEFUNC(_wrap_FXGLViewer_onCmdLightSpecular), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdLightSpecular", VALUEFUNC(_wrap_FXGLViewer_onUpdLightSpecular), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdTurbo", VALUEFUNC(_wrap_FXGLViewer_onCmdTurbo), -1);
    rb_define_method(cFXGLViewer.klass, "onUpdTurbo", VALUEFUNC(_wrap_FXGLViewer_onUpdTurbo), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdPrintImage", VALUEFUNC(_wrap_FXGLViewer_onCmdPrintImage), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdPrintVector", VALUEFUNC(_wrap_FXGLViewer_onCmdPrintVector), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLassoZoom", VALUEFUNC(_wrap_FXGLViewer_onCmdLassoZoom), -1);
    rb_define_method(cFXGLViewer.klass, "onCmdLassoSelect", VALUEFUNC(_wrap_FXGLViewer_onCmdLassoSelect), -1);
    rb_define_const(cFXGLViewer.klass,"PARALLEL", INT2NUM(FXGLViewer::PARALLEL));
    rb_define_const(cFXGLViewer.klass,"PERSPECTIVE", INT2NUM(FXGLViewer::PERSPECTIVE));
    rb_define_const(cFXGLViewer.klass,"OFFSETPROJECTION", INT2NUM(FXGLViewer::OFFSETPROJECTION));
    rb_define_const(cFXGLViewer.klass,"SURFACEPROJECTION", INT2NUM(FXGLViewer::SURFACEPROJECTION));
    rb_define_const(cFXGLViewer.klass,"ID_PERSPECTIVE", INT2NUM(FXGLViewer::ID_PERSPECTIVE));
    rb_define_const(cFXGLViewer.klass,"ID_PARALLEL", INT2NUM(FXGLViewer::ID_PARALLEL));
    rb_define_const(cFXGLViewer.klass,"ID_FRONT", INT2NUM(FXGLViewer::ID_FRONT));
    rb_define_const(cFXGLViewer.klass,"ID_BACK", INT2NUM(FXGLViewer::ID_BACK));
    rb_define_const(cFXGLViewer.klass,"ID_LEFT", INT2NUM(FXGLViewer::ID_LEFT));
    rb_define_const(cFXGLViewer.klass,"ID_RIGHT", INT2NUM(FXGLViewer::ID_RIGHT));
    rb_define_const(cFXGLViewer.klass,"ID_TOP", INT2NUM(FXGLViewer::ID_TOP));
    rb_define_const(cFXGLViewer.klass,"ID_BOTTOM", INT2NUM(FXGLViewer::ID_BOTTOM));
    rb_define_const(cFXGLViewer.klass,"ID_RESETVIEW", INT2NUM(FXGLViewer::ID_RESETVIEW));
    rb_define_const(cFXGLViewer.klass,"ID_FITVIEW", INT2NUM(FXGLViewer::ID_FITVIEW));
    rb_define_const(cFXGLViewer.klass,"ID_TIPTIMER", INT2NUM(FXGLViewer::ID_TIPTIMER));
    rb_define_const(cFXGLViewer.klass,"ID_BACK_COLOR", INT2NUM(FXGLViewer::ID_BACK_COLOR));
    rb_define_const(cFXGLViewer.klass,"ID_AMBIENT_COLOR", INT2NUM(FXGLViewer::ID_AMBIENT_COLOR));
    rb_define_const(cFXGLViewer.klass,"ID_LIGHT_AMBIENT", INT2NUM(FXGLViewer::ID_LIGHT_AMBIENT));
    rb_define_const(cFXGLViewer.klass,"ID_LIGHT_DIFFUSE", INT2NUM(FXGLViewer::ID_LIGHT_DIFFUSE));
    rb_define_const(cFXGLViewer.klass,"ID_LIGHT_SPECULAR", INT2NUM(FXGLViewer::ID_LIGHT_SPECULAR));
    rb_define_const(cFXGLViewer.klass,"ID_LIGHTING", INT2NUM(FXGLViewer::ID_LIGHTING));
    rb_define_const(cFXGLViewer.klass,"ID_TURBO", INT2NUM(FXGLViewer::ID_TURBO));
    rb_define_const(cFXGLViewer.klass,"ID_FOG", INT2NUM(FXGLViewer::ID_FOG));
    rb_define_const(cFXGLViewer.klass,"ID_DITHER", INT2NUM(FXGLViewer::ID_DITHER));
    rb_define_const(cFXGLViewer.klass,"ID_SCALE_X", INT2NUM(FXGLViewer::ID_SCALE_X));
    rb_define_const(cFXGLViewer.klass,"ID_SCALE_Y", INT2NUM(FXGLViewer::ID_SCALE_Y));
    rb_define_const(cFXGLViewer.klass,"ID_SCALE_Z", INT2NUM(FXGLViewer::ID_SCALE_Z));
    rb_define_const(cFXGLViewer.klass,"ID_DIAL_X", INT2NUM(FXGLViewer::ID_DIAL_X));
    rb_define_const(cFXGLViewer.klass,"ID_DIAL_Y", INT2NUM(FXGLViewer::ID_DIAL_Y));
    rb_define_const(cFXGLViewer.klass,"ID_DIAL_Z", INT2NUM(FXGLViewer::ID_DIAL_Z));
    rb_define_const(cFXGLViewer.klass,"ID_ROLL", INT2NUM(FXGLViewer::ID_ROLL));
    rb_define_const(cFXGLViewer.klass,"ID_PITCH", INT2NUM(FXGLViewer::ID_PITCH));
    rb_define_const(cFXGLViewer.klass,"ID_YAW", INT2NUM(FXGLViewer::ID_YAW));
    rb_define_const(cFXGLViewer.klass,"ID_FOV", INT2NUM(FXGLViewer::ID_FOV));
    rb_define_const(cFXGLViewer.klass,"ID_ZOOM", INT2NUM(FXGLViewer::ID_ZOOM));
    rb_define_const(cFXGLViewer.klass,"ID_LOCK", INT2NUM(FXGLViewer::ID_LOCK));
    rb_define_const(cFXGLViewer.klass,"ID_CUT_SEL", INT2NUM(FXGLViewer::ID_CUT_SEL));
    rb_define_const(cFXGLViewer.klass,"ID_COPY_SEL", INT2NUM(FXGLViewer::ID_COPY_SEL));
    rb_define_const(cFXGLViewer.klass,"ID_PASTE_SEL", INT2NUM(FXGLViewer::ID_PASTE_SEL));
    rb_define_const(cFXGLViewer.klass,"ID_DELETE_SEL", INT2NUM(FXGLViewer::ID_DELETE_SEL));
    rb_define_const(cFXGLViewer.klass,"ID_PRINT_IMAGE", INT2NUM(FXGLViewer::ID_PRINT_IMAGE));
    rb_define_const(cFXGLViewer.klass,"ID_PRINT_VECTOR", INT2NUM(FXGLViewer::ID_PRINT_VECTOR));
    rb_define_const(cFXGLViewer.klass,"ID_LASSO_ZOOM", INT2NUM(FXGLViewer::ID_LASSO_ZOOM));
    rb_define_const(cFXGLViewer.klass,"ID_LASSO_SELECT", INT2NUM(FXGLViewer::ID_LASSO_SELECT));
    rb_define_const(cFXGLViewer.klass,"ID_LAST", INT2NUM(FXGLViewer::ID_LAST));
    rb_define_singleton_method(cFXGLViewer.klass, "objectTypeName", VALUEFUNC(_wrap_FXGLViewer_objectTypeName), -1);
    rb_define_method(cFXGLViewer.klass, "worldPix", VALUEFUNC(_wrap_FXGLViewer_worldPix), -1);
    rb_define_method(cFXGLViewer.klass, "modelPix", VALUEFUNC(_wrap_FXGLViewer_modelPix), -1);
    rb_define_method(cFXGLViewer.klass, "lasso", VALUEFUNC(_wrap_FXGLViewer_lasso), -1);
    rb_define_method(cFXGLViewer.klass, "setBounds", VALUEFUNC(_wrap_FXGLViewer_setBounds), -1);
    rb_define_method(cFXGLViewer.klass, "fitToBounds", VALUEFUNC(_wrap_FXGLViewer_fitToBounds), -1);
    rb_define_method(cFXGLViewer.klass, "getViewport", VALUEFUNC(_wrap_FXGLViewer_getViewport), -1);
    rb_define_method(cFXGLViewer.klass, "eyeToScreen", VALUEFUNC(_wrap_FXGLViewer_eyeToScreen), -1);
    rb_define_method(cFXGLViewer.klass, "screenToEye", VALUEFUNC(_wrap_FXGLViewer_screenToEye), -1);
    rb_define_method(cFXGLViewer.klass, "screenToTarget", VALUEFUNC(_wrap_FXGLViewer_screenToTarget), -1);
    rb_define_method(cFXGLViewer.klass, "worldToEye", VALUEFUNC(_wrap_FXGLViewer_worldToEye), -1);
    rb_define_method(cFXGLViewer.klass, "worldToEyeZ", VALUEFUNC(_wrap_FXGLViewer_worldToEyeZ), -1);
    rb_define_method(cFXGLViewer.klass, "eyeToWorld", VALUEFUNC(_wrap_FXGLViewer_eyeToWorld), -1);
    rb_define_method(cFXGLViewer.klass, "worldVector", VALUEFUNC(_wrap_FXGLViewer_worldVector), -1);
    rb_define_method(cFXGLViewer.klass, "setMaterial", VALUEFUNC(_wrap_FXGLViewer_setMaterial), -1);
    rb_define_method(cFXGLViewer.klass, "getMaterial", VALUEFUNC(_wrap_FXGLViewer_getMaterial), -1);
    rb_define_method(cFXGLViewer.klass, "setFieldOfView", VALUEFUNC(_wrap_FXGLViewer_setFieldOfView), -1);
    rb_define_method(cFXGLViewer.klass, "getFieldOfView", VALUEFUNC(_wrap_FXGLViewer_getFieldOfView), -1);
    rb_define_method(cFXGLViewer.klass, "setZoom", VALUEFUNC(_wrap_FXGLViewer_setZoom), -1);
    rb_define_method(cFXGLViewer.klass, "getZoom", VALUEFUNC(_wrap_FXGLViewer_getZoom), -1);
    rb_define_method(cFXGLViewer.klass, "setDistance", VALUEFUNC(_wrap_FXGLViewer_setDistance), -1);
    rb_define_method(cFXGLViewer.klass, "getDistance", VALUEFUNC(_wrap_FXGLViewer_getDistance), -1);
    rb_define_method(cFXGLViewer.klass, "setScale", VALUEFUNC(_wrap_FXGLViewer_setScale), -1);
    rb_define_method(cFXGLViewer.klass, "getScale", VALUEFUNC(_wrap_FXGLViewer_getScale), -1);
    rb_define_method(cFXGLViewer.klass, "setOrientation", VALUEFUNC(_wrap_FXGLViewer_setOrientation), -1);
    rb_define_method(cFXGLViewer.klass, "getOrientation", VALUEFUNC(_wrap_FXGLViewer_getOrientation), -1);
    rb_define_method(cFXGLViewer.klass, "setCenter", VALUEFUNC(_wrap_FXGLViewer_setCenter), -1);
    rb_define_method(cFXGLViewer.klass, "getCenter", VALUEFUNC(_wrap_FXGLViewer_getCenter), -1);
    rb_define_method(cFXGLViewer.klass, "translate", VALUEFUNC(_wrap_FXGLViewer_translate), -1);
    rb_define_method(cFXGLViewer.klass, "getBoreVector", VALUEFUNC(_wrap_FXGLViewer_getBoreVector), -1);
    rb_define_method(cFXGLViewer.klass, "getEyeVector", VALUEFUNC(_wrap_FXGLViewer_getEyeVector), -1);
    rb_define_method(cFXGLViewer.klass, "getEyePosition", VALUEFUNC(_wrap_FXGLViewer_getEyePosition), -1);
    rb_define_method(cFXGLViewer.klass, "setHelpText", VALUEFUNC(_wrap_FXGLViewer_setHelpText), -1);
    rb_define_method(cFXGLViewer.klass, "getHelpText", VALUEFUNC(_wrap_FXGLViewer_getHelpText), -1);
    rb_define_method(cFXGLViewer.klass, "setTipText", VALUEFUNC(_wrap_FXGLViewer_setTipText), -1);
    rb_define_method(cFXGLViewer.klass, "getTipText", VALUEFUNC(_wrap_FXGLViewer_getTipText), -1);
    rb_define_method(cFXGLViewer.klass, "setOffset", VALUEFUNC(_wrap_FXGLViewer_setOffset), -1);
    rb_define_method(cFXGLViewer.klass, "getOffset", VALUEFUNC(_wrap_FXGLViewer_getOffset), -1);
    rb_define_method(cFXGLViewer.klass, "getTransform", VALUEFUNC(_wrap_FXGLViewer_getTransform), -1);
    rb_define_method(cFXGLViewer.klass, "getInvTransform", VALUEFUNC(_wrap_FXGLViewer_getInvTransform), -1);
    rb_define_method(cFXGLViewer.klass, "setScene", VALUEFUNC(_wrap_FXGLViewer_setScene), -1);
    rb_define_method(cFXGLViewer.klass, "getScene", VALUEFUNC(_wrap_FXGLViewer_getScene), -1);
    rb_define_method(cFXGLViewer.klass, "setSelection", VALUEFUNC(_wrap_FXGLViewer_setSelection), -1);
    rb_define_method(cFXGLViewer.klass, "getSelection", VALUEFUNC(_wrap_FXGLViewer_getSelection), -1);
    rb_define_method(cFXGLViewer.klass, "setProjection", VALUEFUNC(_wrap_FXGLViewer_setProjection), -1);
    rb_define_method(cFXGLViewer.klass, "getProjection", VALUEFUNC(_wrap_FXGLViewer_getProjection), -1);
    rb_define_method(cFXGLViewer.klass, "setViewLock", VALUEFUNC(_wrap_FXGLViewer_setViewLock), -1);
    rb_define_method(cFXGLViewer.klass, "getViewLock", VALUEFUNC(_wrap_FXGLViewer_getViewLock), -1);
    rb_define_method(cFXGLViewer.klass, "setBackgroundColor", VALUEFUNC(_wrap_FXGLViewer_setBackgroundColor), -1);
    rb_define_method(cFXGLViewer.klass, "getBackgroundColor", VALUEFUNC(_wrap_FXGLViewer_getBackgroundColor), -1);
    rb_define_method(cFXGLViewer.klass, "setAmbientColor", VALUEFUNC(_wrap_FXGLViewer_setAmbientColor), -1);
    rb_define_method(cFXGLViewer.klass, "getAmbientColor", VALUEFUNC(_wrap_FXGLViewer_getAmbientColor), -1);
    rb_define_method(cFXGLViewer.klass, "readPixels", VALUEFUNC(_wrap_FXGLViewer_readPixels), -1);
    rb_define_method(cFXGLViewer.klass, "readFeedback", VALUEFUNC(_wrap_FXGLViewer_readFeedback), -1);
    rb_define_method(cFXGLViewer.klass, "setZSortFunc", VALUEFUNC(_wrap_FXGLViewer_setZSortFunc), -1);
    rb_define_method(cFXGLViewer.klass, "getZSortFunc", VALUEFUNC(_wrap_FXGLViewer_getZSortFunc), -1);
    rb_define_method(cFXGLViewer.klass, "setMaxHits", VALUEFUNC(_wrap_FXGLViewer_setMaxHits), -1);
    rb_define_method(cFXGLViewer.klass, "getMaxHits", VALUEFUNC(_wrap_FXGLViewer_getMaxHits), -1);
    rb_define_method(cFXGLViewer.klass, "doesTurbo", VALUEFUNC(_wrap_FXGLViewer_doesTurbo), -1);
    rb_define_method(cFXGLViewer.klass, "getTurboMode", VALUEFUNC(_wrap_FXGLViewer_getTurboMode), -1);
    rb_define_method(cFXGLViewer.klass, "setTurboMode", VALUEFUNC(_wrap_FXGLViewer_setTurboMode), -1);
    rb_define_method(cFXGLViewer.klass, "getLight", VALUEFUNC(_wrap_FXGLViewer_getLight), -1);
    rb_define_method(cFXGLViewer.klass, "setLight", VALUEFUNC(_wrap_FXGLViewer_setLight), -1);
    rb_define_method(cFXGLViewer.klass, "save", VALUEFUNC(_wrap_FXGLViewer_save), -1);
    rb_define_method(cFXGLViewer.klass, "load", VALUEFUNC(_wrap_FXGLViewer_load), -1);
    rb_define_method(cFXGLViewer.klass, "create", VALUEFUNC(_wrap_FXGLViewer_create), -1);
    rb_define_method(cFXGLViewer.klass, "detach", VALUEFUNC(_wrap_FXGLViewer_detach), -1);
    rb_define_method(cFXGLViewer.klass, "destroy", VALUEFUNC(_wrap_FXGLViewer_destroy), -1);
    rb_define_method(cFXGLViewer.klass, "resize", VALUEFUNC(_wrap_FXGLViewer_resize), -1);
    rb_define_method(cFXGLViewer.klass, "getDefaultWidth", VALUEFUNC(_wrap_FXGLViewer_getDefaultWidth), -1);
    rb_define_method(cFXGLViewer.klass, "getDefaultHeight", VALUEFUNC(_wrap_FXGLViewer_getDefaultHeight), -1);
    rb_define_method(cFXGLViewer.klass, "getWidthForHeight", VALUEFUNC(_wrap_FXGLViewer_getWidthForHeight), -1);
    rb_define_method(cFXGLViewer.klass, "getHeightForWidth", VALUEFUNC(_wrap_FXGLViewer_getHeightForWidth), -1);
    rb_define_method(cFXGLViewer.klass, "canFocus", VALUEFUNC(_wrap_FXGLViewer_canFocus), -1);
    rb_define_method(cFXGLViewer.klass, "setFocus", VALUEFUNC(_wrap_FXGLViewer_setFocus), -1);
    rb_define_method(cFXGLViewer.klass, "killFocus", VALUEFUNC(_wrap_FXGLViewer_killFocus), -1);
    rb_define_method(cFXGLViewer.klass, "setDefault", VALUEFUNC(_wrap_FXGLViewer_setDefault), -1);
    rb_define_method(cFXGLViewer.klass, "enable", VALUEFUNC(_wrap_FXGLViewer_enable), -1);
    rb_define_method(cFXGLViewer.klass, "disable", VALUEFUNC(_wrap_FXGLViewer_disable), -1);
    rb_define_method(cFXGLViewer.klass, "raiseWindow", VALUEFUNC(_wrap_FXGLViewer_raiseWindow), -1);
    rb_define_method(cFXGLViewer.klass, "lower", VALUEFUNC(_wrap_FXGLViewer_lower), -1);
    rb_define_method(cFXGLViewer.klass, "move", VALUEFUNC(_wrap_FXGLViewer_move), -1);
    rb_define_method(cFXGLViewer.klass, "position", VALUEFUNC(_wrap_FXGLViewer_position), -1);
    rb_define_method(cFXGLViewer.klass, "recalc", VALUEFUNC(_wrap_FXGLViewer_recalc), -1);
    rb_define_method(cFXGLViewer.klass, "reparent", VALUEFUNC(_wrap_FXGLViewer_reparent), -1);
    rb_define_method(cFXGLViewer.klass, "show", VALUEFUNC(_wrap_FXGLViewer_show), -1);
    rb_define_method(cFXGLViewer.klass, "hide", VALUEFUNC(_wrap_FXGLViewer_hide), -1);
    rb_define_method(cFXGLViewer.klass, "isComposite", VALUEFUNC(_wrap_FXGLViewer_isComposite), -1);
    rb_define_method(cFXGLViewer.klass, "contains", VALUEFUNC(_wrap_FXGLViewer_contains), -1);
    rb_define_method(cFXGLViewer.klass, "doesSaveUnder", VALUEFUNC(_wrap_FXGLViewer_doesSaveUnder), -1);
    rb_define_method(cFXGLViewer.klass, "setBackColor", VALUEFUNC(_wrap_FXGLViewer_setBackColor), -1);
    rb_define_method(cFXGLViewer.klass, "makeCurrent", VALUEFUNC(_wrap_FXGLViewer_makeCurrent), -1);
    rb_define_method(cFXGLViewer.klass, "makeNonCurrent", VALUEFUNC(_wrap_FXGLViewer_makeNonCurrent), -1);
    rb_define_method(cFXGLViewer.klass, "isCurrent", VALUEFUNC(_wrap_FXGLViewer_isCurrent), -1);
    rb_define_method(cFXGLViewer.klass, "swapBuffers", VALUEFUNC(_wrap_FXGLViewer_swapBuffers), -1);
    rb_define_method(cFXGLViewer.klass, "select", VALUEFUNC(_wrap_FXGLViewer_select), -1);
    rb_define_method(cFXGLViewer.klass, "pick", VALUEFUNC(_wrap_FXGLViewer_pick), -1);
    cFXGLViewer.mark = (void (*)(void *)) FXRbGLViewer::markfunc;
    cFXGLViewer.destroy = (void (*)(void *)) FXRbObject::freefunc;
    
    cFXGLObject.klass = rb_define_class_under(mFox, "FXGLObject", ((swig_class *) SWIGTYPE_p_FXObject->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXGLObject, (void *) &cFXGLObject);
    rb_define_alloc_func(cFXGLObject.klass, _wrap_FXGLObject_allocate);
    rb_define_method(cFXGLObject.klass, "initialize", VALUEFUNC(_wrap_new_FXGLObject), -1);
    rb_define_const(cFXGLObject.klass,"ID_LAST", INT2NUM(FXGLObject::ID_LAST));
    rb_define_method(cFXGLObject.klass, "identify", VALUEFUNC(_wrap_FXGLObject_identify), -1);
    rb_define_method(cFXGLObject.klass, "save", VALUEFUNC(_wrap_FXGLObject_save), -1);
    rb_define_method(cFXGLObject.klass, "load", VALUEFUNC(_wrap_FXGLObject_load), -1);
    rb_define_method(cFXGLObject.klass, "copy", VALUEFUNC(_wrap_FXGLObject_copy), -1);
    rb_define_method(cFXGLObject.klass, "bounds", VALUEFUNC(_wrap_FXGLObject_bounds), -1);
    rb_define_method(cFXGLObject.klass, "draw", VALUEFUNC(_wrap_FXGLObject_draw), -1);
    rb_define_method(cFXGLObject.klass, "hit", VALUEFUNC(_wrap_FXGLObject_hit), -1);
    rb_define_method(cFXGLObject.klass, "canDrag", VALUEFUNC(_wrap_FXGLObject_canDrag), -1);
    rb_define_method(cFXGLObject.klass, "canDelete", VALUEFUNC(_wrap_FXGLObject_canDelete), -1);
    rb_define_method(cFXGLObject.klass, "drag", VALUEFUNC(_wrap_FXGLObject_drag), -1);
    cFXGLObject.mark = (void (*)(void *)) FXRbGLObject::markfunc;
    cFXGLObject.destroy = (void (*)(void *)) FXRbObject::freefunc;
    
    SWIGTYPE_p_FXGLObject->dcast = (swig_dycast_func) FXGLObject_dynamic_cast;
    
    rb_define_const(mFox,"SURFACE_SINGLESIDED", INT2NUM(SURFACE_SINGLESIDED));
    rb_define_const(mFox,"SURFACE_DUALSIDED", INT2NUM(SURFACE_DUALSIDED));
    rb_define_const(mFox,"SHADING_NONE", INT2NUM(SHADING_NONE));
    rb_define_const(mFox,"SHADING_SMOOTH", INT2NUM(SHADING_SMOOTH));
    rb_define_const(mFox,"SHADING_FLAT", INT2NUM(SHADING_FLAT));
    rb_define_const(mFox,"FACECULLING_OFF", INT2NUM(FACECULLING_OFF));
    rb_define_const(mFox,"FACECULLING_ON", INT2NUM(FACECULLING_ON));
    rb_define_const(mFox,"STYLE_SURFACE", INT2NUM(STYLE_SURFACE));
    rb_define_const(mFox,"STYLE_WIREFRAME", INT2NUM(STYLE_WIREFRAME));
    rb_define_const(mFox,"STYLE_POINTS", INT2NUM(STYLE_POINTS));
    rb_define_const(mFox,"STYLE_BOUNDBOX", INT2NUM(STYLE_BOUNDBOX));
    
    cFXGLShape.klass = rb_define_class_under(mFox, "FXGLShape", ((swig_class *) SWIGTYPE_p_FXGLObject->clientdata)->klass);
    SWIG_TypeClientData(SWIGTYPE_p_FXGLShape, (void *) &cFXGLShape);
    rb_define_alloc_func(cFXGLShape.klass, _wrap_FXGLShape_allocate);
    rb_define_method(cFXGLShape.klass, "initialize", VALUEFUNC(_wrap_new_FXGLShape), -1);
    rb_define_method(cFXGLShape.klass, "onDNDDrop", VALUEFUNC(_wrap_FXGLShape_onDNDDrop), -1);
    rb_define_method(cFXGLShape.klass, "onDNDMotion", VALUEFUNC(_wrap_FXGLShape_onDNDMotion), -1);
    rb_define_method(cFXGLShape.klass, "onQueryTip", VALUEFUNC(_wrap_FXGLShape_onQueryTip), -1);
    rb_define_method(cFXGLShape.klass, "onCmdShadeOff", VALUEFUNC(_wrap_FXGLShape_onCmdShadeOff), -1);
    rb_define_method(cFXGLShape.klass, "onUpdShadeOff", VALUEFUNC(_wrap_FXGLShape_onUpdShadeOff), -1);
    rb_define_method(cFXGLShape.klass, "onCmdShadeOn", VALUEFUNC(_wrap_FXGLShape_onCmdShadeOn), -1);
    rb_define_method(cFXGLShape.klass, "onUpdShadeOn", VALUEFUNC(_wrap_FXGLShape_onUpdShadeOn), -1);
    rb_define_method(cFXGLShape.klass, "onCmdShadeSmooth", VALUEFUNC(_wrap_FXGLShape_onCmdShadeSmooth), -1);
    rb_define_method(cFXGLShape.klass, "onUpdShadeSmooth", VALUEFUNC(_wrap_FXGLShape_onUpdShadeSmooth), -1);
    rb_define_method(cFXGLShape.klass, "onCmdFrontMaterial", VALUEFUNC(_wrap_FXGLShape_onCmdFrontMaterial), -1);
    rb_define_method(cFXGLShape.klass, "onUpdFrontMaterial", VALUEFUNC(_wrap_FXGLShape_onUpdFrontMaterial), -1);
    rb_define_method(cFXGLShape.klass, "onCmdBackMaterial", VALUEFUNC(_wrap_FXGLShape_onCmdBackMaterial), -1);
    rb_define_method(cFXGLShape.klass, "onUpdBackMaterial", VALUEFUNC(_wrap_FXGLShape_onUpdBackMaterial), -1);
    rb_define_method(cFXGLShape.klass, "onCmdDrawingStyle", VALUEFUNC(_wrap_FXGLShape_onCmdDrawingStyle), -1);
    rb_define_method(cFXGLShape.klass, "onUpdDrawingStyle", VALUEFUNC(_wrap_FXGLShape_onUpdDrawingStyle), -1);
    rb_define_const(cFXGLShape.klass,"ID_SHADEOFF", INT2NUM(FXGLShape::ID_SHADEOFF));
    rb_define_const(cFXGLShape.klass,"ID_SHADEON", INT2NUM(FXGLShape::ID_SHADEON));
    rb_define_const(cFXGLShape.klass,"ID_SHADESMOOTH", INT2NUM(FXGLShape::ID_SHADESMOOTH));
    rb_define_const(cFXGLShape.klass,"ID_TOGGLE_SIDED", INT2NUM(FXGLShape::ID_TOGGLE_SIDED));
    rb_define_const(cFXGLShape.klass,"ID_TOGGLE_CULLING", INT2NUM(FXGLShape::ID_TOGGLE_CULLING));
    rb_define_const(cFXGLShape.klass,"ID_STYLE_POINTS", INT2NUM(FXGLShape::ID_STYLE_POINTS));
    rb_define_const(cFXGLShape.klass,"ID_STYLE_WIREFRAME", INT2NUM(FXGLShape::ID_STYLE_WIREFRAME));
    rb_define_const(cFXGLShape.klass,"ID_STYLE_SURFACE", INT2NUM(FXGLShape::ID_STYLE_SURFACE));
    rb_define_const(cFXGLShape.klass,"ID_STYLE_BOUNDINGBOX", INT2NUM(FXGLShape::ID_STYLE_BOUNDINGBOX));
    rb_define_const(cFXGLShape.klass,"ID_FRONT_MATERIAL", INT2NUM(FXGLShape::ID_FRONT_MATERIAL));
    rb_define_const(cFXGLShape.klass,"ID_BACK_MATERIAL", INT2NUM(FXGLShape::ID_BACK_MATERIAL));
    rb_define_const(cFXGLShape.klass,"ID_LAST", INT2NUM(FXGLShape::ID_LAST));
    rb_define_method(cFXGLShape.klass, "identify", VALUEFUNC(_wrap_FXGLShape_identify), -1);
    rb_define_method(cFXGLShape.klass, "setTipText", VALUEFUNC(_wrap_FXGLShape_setTipText), -1);
    rb_define_method(cFXGLShape.klass, "getTipText", VALUEFUNC(_wrap_FXGLShape_getTipText), -1);
    rb_define_method(cFXGLShape.klass, "setMaterial", VALUEFUNC(_wrap_FXGLShape_setMaterial), -1);
    rb_define_method(cFXGLShape.klass, "getPosition", VALUEFUNC(_wrap_FXGLShape_getPosition), -1);
    rb_define_method(cFXGLShape.klass, "setPosition", VALUEFUNC(_wrap_FXGLShape_setPosition), -1);
    rb_define_method(cFXGLShape.klass, "getMaterial", VALUEFUNC(_wrap_FXGLShape_getMaterial), -1);
    rb_define_method(cFXGLShape.klass, "setRange", VALUEFUNC(_wrap_FXGLShape_setRange), -1);
    rb_define_method(cFXGLShape.klass, "save", VALUEFUNC(_wrap_FXGLShape_save), -1);
    rb_define_method(cFXGLShape.klass, "load", VALUEFUNC(_wrap_FXGLShape_load), -1);
    rb_define_method(cFXGLShape.klass, "copy", VALUEFUNC(_wrap_FXGLShape_copy), -1);
    rb_define_method(cFXGLShape.klass, "bounds", VALUEFUNC(_wrap_FXGLShape_bounds), -1);
    rb_define_method(cFXGLShape.klass, "draw", VALUEFUNC(_wrap_FXGLShape_draw), -1);
    rb_define_method(cFXGLShape.klass, "hit", VALUEFUNC(_wrap_FXGLShape_hit), -1);
    rb_define_method(cFXGLShape.klass, "canDrag", VALUEFUNC(_wrap_FXGLShape_canDrag), -1);
    rb_define_method(cFXGLShape.klass, "canDelete", VALUEFUNC(_wrap_FXGLShape_canDelete), -1);
    rb_define_method(cFXGLShape.klass, "drag", VALUEFUNC(_wrap_FXGLShape_drag), -1);
    rb_define_method(cFXGLShape.klass, "drawshape", VALUEFUNC(_wrap_FXGLShape_drawshape), -1);
    cFXGLShape.mark = (void (*)(void *)) FXRbGLShape::markfunc;
    cFXGLShape.destroy = (void (*)(void *)) FXRbObject::freefunc;
}

