/*
 * FILE : ../src/fox3d.cpp
 * 
 * This file was automatically generated by :
 * Simplified Wrapper and Interface Generator (SWIG)
 * Version 1.1 (Build 883)
 * 
 * Portions Copyright (c) 1995-1998
 * The University of Utah and The Regents of the University of California.
 * Permission is granted to distribute this file in any manner provided
 * this notice remains intact.
 * 
 * Do not make changes to this file--changes will be lost!
 *
 */


#define SWIGCODE
/* Implementation : PYTHON */

#define SWIGPYTHON
#include <string.h>
#include <stdlib.h>
/* Definitions for Windows/Unix exporting */
#if defined(__WIN32__)
#   if defined(_MSC_VER)
#	define SWIGEXPORT(a) __declspec(dllexport) a
#   else
#	if defined(__BORLANDC__)
#	    define SWIGEXPORT(a) a _export 
#	else
#	    define SWIGEXPORT(a) a 
#	endif
#   endif
#else
#   define SWIGEXPORT(a) a 
#endif

#include "Python.h"

#ifdef __cplusplus
extern "C" {
#endif
extern void SWIG_MakePtr(char *, void *, char *);
extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *));
extern char *SWIG_GetPtr(char *, void **, char *);
extern char *SWIG_GetPtrObj(PyObject *, void **, char *);
extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
extern PyObject *SWIG_newvarlink(void);
#ifdef __cplusplus
}
#endif
#define SWIG_init    initfox3dc

#define SWIG_name    "fox3dc"

#include "fx.h"
#include "fx3d.h"
#include "FXCURCursor.h"
#include "FXJPGImage.h"
#include "FXJPGIcon.h"
#include "FXPNGIcon.h"
#include "FXPNGImage.h"
#include "FXTIFIcon.h"
#include "FXTIFImage.h"
#include "FXRGBIcon.h"
#include "FXRGBImage.h"
#include "FXICOIcon.h"
#include "FXICOImage.h"
#include "FXPyApp.h"
#include "FXPy.h"

FXPy_IMPLEMENT(FXPyGLCanvas,FXGLCanvas,NULL,0)
FXPy_IMPLEMENT(FXPyGLCone,FXGLCone,NULL,0)
FXPy_IMPLEMENT(FXPyGLCube,FXGLCube,NULL,0)
FXPy_IMPLEMENT(FXPyGLCylinder,FXGLCylinder,NULL,0)
FXPy_IMPLEMENT(FXPyGLGroup,FXGLGroup,NULL,0)
FXPy_IMPLEMENT(FXPyGLLine,FXGLLine,NULL,0)
FXPy_IMPLEMENT(FXPyGLObject,FXGLObject,NULL,0)
FXPy_IMPLEMENT(FXPyGLPoint,FXGLPoint,NULL,0)
FXPy_IMPLEMENT(FXPyGLShape,FXGLShape,NULL,0)
FXPy_IMPLEMENT(FXPyGLSphere,FXGLSphere,NULL,0)
FXPy_IMPLEMENT(FXPyGLTriangleMesh,FXGLTriangleMesh,NULL,0)
FXPy_IMPLEMENT(FXPyGLViewer,FXGLViewer,NULL,0)
FXPy_IMPLEMENT(FXPyGLVisual,FXGLVisual,NULL,0)
FXPy_IMPLEMENT(FXPyGLContext,FXGLContext,NULL,0)

  /**
  * Construct an OpenGL context with its own private display list.
  */
  FXPyGLContext* CreateGLContext1(FXApp* a, FXGLVisual *vis) {
    return new FXPyGLContext(a, vis);
  }

  /**
  * Construct an OpenGL context sharing display lists with an existing GL context.
  */
  FXPyGLContext* CreateGLContext2(FXApp* a, FXGLVisual* vis, FXGLContext *s) {
    return new FXPyGLContext(a, vis, s);
  }

  FXPyGLCanvas* CreateGLCanvas1(FXComposite* p,FXGLVisual *vis,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0) {
    return new FXPyGLCanvas(p,vis,tgt,sel,opts,x,y,w,h);
  }
  
  FXPyGLCanvas* CreateGLCanvas2(FXComposite* p,FXGLVisual *vis,FXGLCanvas *sharegroup,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0) {
    return new FXPyGLCanvas(p,vis,sharegroup,tgt,sel,opts,x,y,w,h);
  }

  FXPyGLViewer *CreateGLViewer1(FXComposite* p,FXGLVisual *vis,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0) {
    return new FXPyGLViewer(p,vis,tgt,sel,opts,x,y,w,h);
  }

  FXPyGLViewer* CreateGLViewer2(FXComposite* p,FXGLVisual *vis,FXGLViewer *sharegroup,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0) {
    return new FXPyGLViewer(p,vis,sharegroup,tgt,sel,opts,x,y,w,h);
  }
#ifdef __cplusplus
extern "C" {
#endif
static PyObject *_wrap_CreateGLContext1(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLContext * _result;
    FXApp * _arg0;
    FXGLVisual * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "a","vis", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:CreateGLContext1",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXApp_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of CreateGLContext1. Expected _FXApp_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of CreateGLContext1. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLContext *)CreateGLContext1(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLContext_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static PyObject *_wrap_CreateGLContext2(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLContext * _result;
    FXApp * _arg0;
    FXGLVisual * _arg1;
    FXGLContext * _arg2;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _argo2 = 0;
    char *_kwnames[] = { "a","vis","s", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO:CreateGLContext2",_kwnames,&_argo0,&_argo1,&_argo2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXApp_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of CreateGLContext2. Expected _FXApp_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of CreateGLContext2. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_argo2) {
        if (_argo2 == Py_None) { _arg2 = NULL; }
        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of CreateGLContext2. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLContext *)CreateGLContext2(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLContext_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static PyObject *_wrap_CreateGLCanvas1(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _result;
    FXComposite * _arg0;
    FXGLVisual * _arg1;
    FXObject * _arg2 = (FXObject *) NULL;
    FXSelector  _arg3 = (FXSelector ) 0;
    FXuint  _arg4 = (FXuint ) 0;
    FXint  _arg5 = (FXint ) 0;
    FXint  _arg6 = (FXint ) 0;
    FXint  _arg7 = (FXint ) 0;
    FXint  _arg8 = (FXint ) 0;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "p","vis","tgt","sel","opts","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|Oiiiiii:CreateGLCanvas1",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of CreateGLCanvas1. Expected _FXComposite_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of CreateGLCanvas1. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_obj2)
{
    if (_obj2 == Py_None)
	_arg2 = NULL;
    else
	SWIG_GetPtrObj(_obj2, (void**) &_arg2, "_FXObject_p");
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLCanvas *)CreateGLCanvas1(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLCanvas_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static PyObject *_wrap_CreateGLCanvas2(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _result;
    FXComposite * _arg0;
    FXGLVisual * _arg1;
    FXGLCanvas * _arg2;
    FXObject * _arg3 = (FXObject *) NULL;
    FXSelector  _arg4 = (FXSelector ) 0;
    FXuint  _arg5 = (FXuint ) 0;
    FXint  _arg6 = (FXint ) 0;
    FXint  _arg7 = (FXint ) 0;
    FXint  _arg8 = (FXint ) 0;
    FXint  _arg9 = (FXint ) 0;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _argo2 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "p","vis","sharegroup","tgt","sel","opts","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|Oiiiiii:CreateGLCanvas2",_kwnames,&_argo0,&_argo1,&_argo2,&_obj3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_arg9)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of CreateGLCanvas2. Expected _FXComposite_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of CreateGLCanvas2. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_argo2) {
        if (_argo2 == Py_None) { _arg2 = NULL; }
        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of CreateGLCanvas2. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
    if (_obj3)
{
    if (_obj3 == Py_None)
	_arg3 = NULL;
    else
	SWIG_GetPtrObj(_obj3, (void**) &_arg3, "_FXObject_p");
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLCanvas *)CreateGLCanvas2(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLCanvas_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static PyObject *_wrap_CreateGLViewer1(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _result;
    FXComposite * _arg0;
    FXGLVisual * _arg1;
    FXObject * _arg2 = (FXObject *) NULL;
    FXSelector  _arg3 = (FXSelector ) 0;
    FXuint  _arg4 = (FXuint ) 0;
    FXint  _arg5 = (FXint ) 0;
    FXint  _arg6 = (FXint ) 0;
    FXint  _arg7 = (FXint ) 0;
    FXint  _arg8 = (FXint ) 0;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "p","vis","tgt","sel","opts","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|Oiiiiii:CreateGLViewer1",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of CreateGLViewer1. Expected _FXComposite_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of CreateGLViewer1. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_obj2)
{
    if (_obj2 == Py_None)
	_arg2 = NULL;
    else
	SWIG_GetPtrObj(_obj2, (void**) &_arg2, "_FXObject_p");
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLViewer *)CreateGLViewer1(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLViewer_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static PyObject *_wrap_CreateGLViewer2(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _result;
    FXComposite * _arg0;
    FXGLVisual * _arg1;
    FXGLViewer * _arg2;
    FXObject * _arg3 = (FXObject *) NULL;
    FXSelector  _arg4 = (FXSelector ) 0;
    FXuint  _arg5 = (FXuint ) 0;
    FXint  _arg6 = (FXint ) 0;
    FXint  _arg7 = (FXint ) 0;
    FXint  _arg8 = (FXint ) 0;
    FXint  _arg9 = (FXint ) 0;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _argo2 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "p","vis","sharegroup","tgt","sel","opts","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOO|Oiiiiii:CreateGLViewer2",_kwnames,&_argo0,&_argo1,&_argo2,&_obj3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_arg9)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of CreateGLViewer2. Expected _FXComposite_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of CreateGLViewer2. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_argo2) {
        if (_argo2 == Py_None) { _arg2 = NULL; }
        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of CreateGLViewer2. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_obj3)
{
    if (_obj3 == Py_None)
	_arg3 = NULL;
    else
	SWIG_GetPtrObj(_obj3, (void**) &_arg3, "_FXObject_p");
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLViewer *)CreateGLViewer2(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLViewer_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static void *SwigFXGLContextToFXObject(void *ptr) {
    FXGLContext *src;
    FXObject *dest;
    src = (FXGLContext *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FX_GLContext_isShared(_swigobj)  (_swigobj->isShared())
static PyObject *_wrap_FX_GLContext_isShared(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_isShared",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_isShared. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLContext_isShared(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLContext_getVisual(_swigobj)  (_swigobj->getVisual())
static PyObject *_wrap_FX_GLContext_getVisual(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _result;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_getVisual",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_getVisual. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLVisual *)FX_GLContext_getVisual(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLVisual_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLContext_create(_swigobj)  (_swigobj->create())
static PyObject *_wrap_FX_GLContext_create(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_create",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_create. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLContext_create(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLContext_detach(_swigobj)  (_swigobj->detach())
static PyObject *_wrap_FX_GLContext_detach(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_detach",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_detach. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLContext_detach(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLContext_destroy(_swigobj)  (_swigobj->destroy())
static PyObject *_wrap_FX_GLContext_destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_destroy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_destroy. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLContext_destroy(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLContext_begin(_swigobj,_swigarg0)  (_swigobj->begin(_swigarg0))
static PyObject *_wrap_FX_GLContext_begin(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLContext * _arg0;
    FXDrawable * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","drawable", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLContext_begin",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_begin. Expected _FXGLContext_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXDrawable_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLContext_begin. Expected _FXDrawable_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLContext_begin(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLContext_end(_swigobj)  (_swigobj->end())
static PyObject *_wrap_FX_GLContext_end(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_end",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_end. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLContext_end(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLContext_swapBuffers(_swigobj)  (_swigobj->swapBuffers())
static PyObject *_wrap_FX_GLContext_swapBuffers(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLContext_swapBuffers",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_swapBuffers. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLContext_swapBuffers(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLContext_swapSubBuffers(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->swapSubBuffers(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_FX_GLContext_swapSubBuffers(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLContext * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FX_GLContext_swapSubBuffers",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLContext_swapSubBuffers. Expected _FXGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLContext_swapSubBuffers(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static void *SwigFXPyGLContextToFXGLContext(void *ptr) {
    FXPyGLContext *src;
    FXGLContext *dest;
    src = (FXPyGLContext *) ptr;
    dest = (FXGLContext *) src;
    return (void *) dest;
}

static void *SwigFXPyGLContextToFXObject(void *ptr) {
    FXPyGLContext *src;
    FXObject *dest;
    src = (FXPyGLContext *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLContext(_swigarg0,_swigarg1) (new FXPyGLContext(_swigarg0,_swigarg1))
static PyObject *_wrap_new_FXGLContext(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLContext * _result;
    FXApp * _arg0;
    FXGLVisual * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "a","vis", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:new_FXGLContext",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXApp_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_FXGLContext. Expected _FXApp_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_FXGLContext. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLContext *)new_FXGLContext(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLContext_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLContext_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLContext_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLContext * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLContext_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLContext_onDefault. Expected _FXPyGLContext_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLContext_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLContext_create(_swigobj)  (_swigobj->_create())
static PyObject *_wrap_FXGLContext_create(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLContext_create",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLContext_create. Expected _FXPyGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLContext_create(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLContext_destroy(_swigobj)  (_swigobj->_destroy())
static PyObject *_wrap_FXGLContext_destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLContext_destroy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLContext_destroy. Expected _FXPyGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLContext_destroy(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLContext_detach(_swigobj)  (_swigobj->_detach())
static PyObject *_wrap_FXGLContext_detach(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLContext * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLContext_detach",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLContext_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLContext_detach. Expected _FXPyGLContext_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLContext_detach(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static void *SwigFXGLVisualToFXVisual(void *ptr) {
    FXGLVisual *src;
    FXVisual *dest;
    src = (FXGLVisual *) ptr;
    dest = (FXVisual *) src;
    return (void *) dest;
}

static void *SwigFXGLVisualToFXId(void *ptr) {
    FXGLVisual *src;
    FXId *dest;
    src = (FXGLVisual *) ptr;
    dest = (FXId *) src;
    return (void *) dest;
}

static void *SwigFXGLVisualToFXObject(void *ptr) {
    FXGLVisual *src;
    FXObject *dest;
    src = (FXGLVisual *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FX_GLVisual(_swigarg0,_swigarg1) (new FXGLVisual(_swigarg0,_swigarg1))
static PyObject *_wrap_new_FX_GLVisual(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _result;
    FXApp * _arg0;
    FXuint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "a","flags", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:new_FX_GLVisual",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXApp_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_FX_GLVisual. Expected _FXApp_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLVisual *)new_FX_GLVisual(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLVisual_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLVisual_getRedSize(_swigobj)  (_swigobj->getRedSize())
static PyObject *_wrap_FX_GLVisual_getRedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getRedSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getRedSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getRedSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getGreenSize(_swigobj)  (_swigobj->getGreenSize())
static PyObject *_wrap_FX_GLVisual_getGreenSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getGreenSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getGreenSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getGreenSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getBlueSize(_swigobj)  (_swigobj->getBlueSize())
static PyObject *_wrap_FX_GLVisual_getBlueSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getBlueSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getBlueSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getBlueSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getAlphaSize(_swigobj)  (_swigobj->getAlphaSize())
static PyObject *_wrap_FX_GLVisual_getAlphaSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getAlphaSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getAlphaSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getAlphaSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getDepthSize(_swigobj)  (_swigobj->getDepthSize())
static PyObject *_wrap_FX_GLVisual_getDepthSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getDepthSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getDepthSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getDepthSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getStencilSize(_swigobj)  (_swigobj->getStencilSize())
static PyObject *_wrap_FX_GLVisual_getStencilSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getStencilSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getStencilSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getStencilSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getAccumRedSize(_swigobj)  (_swigobj->getAccumRedSize())
static PyObject *_wrap_FX_GLVisual_getAccumRedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getAccumRedSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getAccumRedSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getAccumRedSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getAccumGreenSize(_swigobj)  (_swigobj->getAccumGreenSize())
static PyObject *_wrap_FX_GLVisual_getAccumGreenSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getAccumGreenSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getAccumGreenSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getAccumGreenSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getAccumBlueSize(_swigobj)  (_swigobj->getAccumBlueSize())
static PyObject *_wrap_FX_GLVisual_getAccumBlueSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getAccumBlueSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getAccumBlueSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getAccumBlueSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getAccumAlphaSize(_swigobj)  (_swigobj->getAccumAlphaSize())
static PyObject *_wrap_FX_GLVisual_getAccumAlphaSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getAccumAlphaSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getAccumAlphaSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getAccumAlphaSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_setRedSize(_swigobj,_swigarg0)  (_swigobj->setRedSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setRedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","rs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setRedSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setRedSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setRedSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setGreenSize(_swigobj,_swigarg0)  (_swigobj->setGreenSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setGreenSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","gs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setGreenSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setGreenSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setGreenSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setBlueSize(_swigobj,_swigarg0)  (_swigobj->setBlueSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setBlueSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","bs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setBlueSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setBlueSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setBlueSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setAlphaSize(_swigobj,_swigarg0)  (_swigobj->setAlphaSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setAlphaSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","as", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setAlphaSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setAlphaSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setAlphaSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setDepthSize(_swigobj,_swigarg0)  (_swigobj->setDepthSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setDepthSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","ds", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setDepthSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setDepthSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setDepthSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setStencilSize(_swigobj,_swigarg0)  (_swigobj->setStencilSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setStencilSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","ss", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setStencilSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setStencilSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setStencilSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setAccumRedSize(_swigobj,_swigarg0)  (_swigobj->setAccumRedSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setAccumRedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","rs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setAccumRedSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setAccumRedSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setAccumRedSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setAccumGreenSize(_swigobj,_swigarg0)  (_swigobj->setAccumGreenSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setAccumGreenSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","gs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setAccumGreenSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setAccumGreenSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setAccumGreenSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setAccumBlueSize(_swigobj,_swigarg0)  (_swigobj->setAccumBlueSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setAccumBlueSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","bs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setAccumBlueSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setAccumBlueSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setAccumBlueSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_setAccumAlphaSize(_swigobj,_swigarg0)  (_swigobj->setAccumAlphaSize(_swigarg0))
static PyObject *_wrap_FX_GLVisual_setAccumAlphaSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","as", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLVisual_setAccumAlphaSize",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_setAccumAlphaSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_setAccumAlphaSize(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_getActualRedSize(_swigobj)  (_swigobj->getActualRedSize())
static PyObject *_wrap_FX_GLVisual_getActualRedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualRedSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualRedSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualRedSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualGreenSize(_swigobj)  (_swigobj->getActualGreenSize())
static PyObject *_wrap_FX_GLVisual_getActualGreenSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualGreenSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualGreenSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualGreenSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualBlueSize(_swigobj)  (_swigobj->getActualBlueSize())
static PyObject *_wrap_FX_GLVisual_getActualBlueSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualBlueSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualBlueSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualBlueSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualAlphaSize(_swigobj)  (_swigobj->getActualAlphaSize())
static PyObject *_wrap_FX_GLVisual_getActualAlphaSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualAlphaSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualAlphaSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualAlphaSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualDepthSize(_swigobj)  (_swigobj->getActualDepthSize())
static PyObject *_wrap_FX_GLVisual_getActualDepthSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualDepthSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualDepthSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualDepthSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualStencilSize(_swigobj)  (_swigobj->getActualStencilSize())
static PyObject *_wrap_FX_GLVisual_getActualStencilSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualStencilSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualStencilSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualStencilSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualAccumRedSize(_swigobj)  (_swigobj->getActualAccumRedSize())
static PyObject *_wrap_FX_GLVisual_getActualAccumRedSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualAccumRedSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualAccumRedSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualAccumRedSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualAccumGreenSize(_swigobj)  (_swigobj->getActualAccumGreenSize())
static PyObject *_wrap_FX_GLVisual_getActualAccumGreenSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualAccumGreenSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualAccumGreenSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualAccumGreenSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualAccumBlueSize(_swigobj)  (_swigobj->getActualAccumBlueSize())
static PyObject *_wrap_FX_GLVisual_getActualAccumBlueSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualAccumBlueSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualAccumBlueSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualAccumBlueSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_getActualAccumAlphaSize(_swigobj)  (_swigobj->getActualAccumAlphaSize())
static PyObject *_wrap_FX_GLVisual_getActualAccumAlphaSize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_getActualAccumAlphaSize",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_getActualAccumAlphaSize. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLVisual_getActualAccumAlphaSize(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLVisual_isDoubleBuffer(_swigobj)  (_swigobj->isDoubleBuffer())
static PyObject *_wrap_FX_GLVisual_isDoubleBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_isDoubleBuffer",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_isDoubleBuffer. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLVisual_isDoubleBuffer(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLVisual_isStereo(_swigobj)  (_swigobj->isStereo())
static PyObject *_wrap_FX_GLVisual_isStereo(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_isStereo",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_isStereo. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLVisual_isStereo(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLVisual_isAccelerated(_swigobj)  (_swigobj->isAccelerated())
static PyObject *_wrap_FX_GLVisual_isAccelerated(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_isAccelerated",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_isAccelerated. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLVisual_isAccelerated(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLVisual_create(_swigobj)  (_swigobj->create())
static PyObject *_wrap_FX_GLVisual_create(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_create",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_create. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_create(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_detach(_swigobj)  (_swigobj->detach())
static PyObject *_wrap_FX_GLVisual_detach(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_detach",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_detach. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_detach(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLVisual_destroy(_swigobj)  (_swigobj->destroy())
static PyObject *_wrap_FX_GLVisual_destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLVisual * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLVisual_destroy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLVisual_destroy. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLVisual_destroy(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static void *SwigFXPyGLVisualToFXGLVisual(void *ptr) {
    FXPyGLVisual *src;
    FXGLVisual *dest;
    src = (FXPyGLVisual *) ptr;
    dest = (FXGLVisual *) src;
    return (void *) dest;
}

static void *SwigFXPyGLVisualToFXVisual(void *ptr) {
    FXPyGLVisual *src;
    FXVisual *dest;
    src = (FXPyGLVisual *) ptr;
    dest = (FXVisual *) src;
    return (void *) dest;
}

static void *SwigFXPyGLVisualToFXId(void *ptr) {
    FXPyGLVisual *src;
    FXId *dest;
    src = (FXPyGLVisual *) ptr;
    dest = (FXId *) src;
    return (void *) dest;
}

static void *SwigFXPyGLVisualToFXObject(void *ptr) {
    FXPyGLVisual *src;
    FXObject *dest;
    src = (FXPyGLVisual *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLVisual(_swigarg0,_swigarg1) (new FXPyGLVisual(_swigarg0,_swigarg1))
static PyObject *_wrap_new_FXGLVisual(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLVisual * _result;
    FXApp * _arg0;
    FXuint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "a","flags", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:new_FXGLVisual",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXApp_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_FXGLVisual. Expected _FXApp_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLVisual *)new_FXGLVisual(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLVisual_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLVisual_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLVisual_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLVisual * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLVisual_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLVisual_onDefault. Expected _FXPyGLVisual_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLVisual_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

static void *SwigFXGLCanvasToFXCanvas(void *ptr) {
    FXGLCanvas *src;
    FXCanvas *dest;
    src = (FXGLCanvas *) ptr;
    dest = (FXCanvas *) src;
    return (void *) dest;
}

static void *SwigFXGLCanvasToFXWindow(void *ptr) {
    FXGLCanvas *src;
    FXWindow *dest;
    src = (FXGLCanvas *) ptr;
    dest = (FXWindow *) src;
    return (void *) dest;
}

static void *SwigFXGLCanvasToFXDrawable(void *ptr) {
    FXGLCanvas *src;
    FXDrawable *dest;
    src = (FXGLCanvas *) ptr;
    dest = (FXDrawable *) src;
    return (void *) dest;
}

static void *SwigFXGLCanvasToFXId(void *ptr) {
    FXGLCanvas *src;
    FXId *dest;
    src = (FXGLCanvas *) ptr;
    dest = (FXId *) src;
    return (void *) dest;
}

static void *SwigFXGLCanvasToFXObject(void *ptr) {
    FXGLCanvas *src;
    FXObject *dest;
    src = (FXGLCanvas *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FX_GLCanvas_isShared(_swigobj)  (_swigobj->isShared())
static PyObject *_wrap_FX_GLCanvas_isShared(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCanvas_isShared",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCanvas_isShared. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLCanvas_isShared(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLCanvas_isCurrent(_swigobj)  (_swigobj->isCurrent())
static PyObject *_wrap_FX_GLCanvas_isCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCanvas_isCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCanvas_isCurrent. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLCanvas_isCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLCanvas_makeCurrent(_swigobj)  (_swigobj->makeCurrent())
static PyObject *_wrap_FX_GLCanvas_makeCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCanvas_makeCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCanvas_makeCurrent. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLCanvas_makeCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLCanvas_getContext(_swigobj)  (_swigobj->getContext())
static PyObject *_wrap_FX_GLCanvas_getContext(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    void * _result;
    FXGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCanvas_getContext",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCanvas_getContext. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (void *)FX_GLCanvas_getContext(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_void_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLCanvas_makeNonCurrent(_swigobj)  (_swigobj->makeNonCurrent())
static PyObject *_wrap_FX_GLCanvas_makeNonCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCanvas_makeNonCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCanvas_makeNonCurrent. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLCanvas_makeNonCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLCanvas_swapBuffers(_swigobj)  (_swigobj->swapBuffers())
static PyObject *_wrap_FX_GLCanvas_swapBuffers(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCanvas_swapBuffers",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCanvas_swapBuffers. Expected _FXGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCanvas_swapBuffers(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static void *SwigFXPyGLCanvasToFXGLCanvas(void *ptr) {
    FXPyGLCanvas *src;
    FXGLCanvas *dest;
    src = (FXPyGLCanvas *) ptr;
    dest = (FXGLCanvas *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCanvasToFXCanvas(void *ptr) {
    FXPyGLCanvas *src;
    FXCanvas *dest;
    src = (FXPyGLCanvas *) ptr;
    dest = (FXCanvas *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCanvasToFXWindow(void *ptr) {
    FXPyGLCanvas *src;
    FXWindow *dest;
    src = (FXPyGLCanvas *) ptr;
    dest = (FXWindow *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCanvasToFXDrawable(void *ptr) {
    FXPyGLCanvas *src;
    FXDrawable *dest;
    src = (FXPyGLCanvas *) ptr;
    dest = (FXDrawable *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCanvasToFXId(void *ptr) {
    FXPyGLCanvas *src;
    FXId *dest;
    src = (FXPyGLCanvas *) ptr;
    dest = (FXId *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCanvasToFXObject(void *ptr) {
    FXPyGLCanvas *src;
    FXObject *dest;
    src = (FXPyGLCanvas *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new FXPyGLCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8))
static PyObject *_wrap_new_FXGLCanvas(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _result;
    FXComposite * _arg0;
    FXGLVisual * _arg1;
    FXObject * _arg2 = (FXObject *) NULL;
    FXSelector  _arg3 = (FXSelector ) 0;
    FXuint  _arg4 = (FXuint ) 0;
    FXint  _arg5 = (FXint ) 0;
    FXint  _arg6 = (FXint ) 0;
    FXint  _arg7 = (FXint ) 0;
    FXint  _arg8 = (FXint ) 0;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "p","vis","tgt","sel","opts","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|Oiiiiii:new_FXGLCanvas",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_FXGLCanvas. Expected _FXComposite_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_FXGLCanvas. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_obj2)
{
    if (_obj2 == Py_None)
	_arg2 = NULL;
    else
	SWIG_GetPtrObj(_obj2, (void**) &_arg2, "_FXObject_p");
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLCanvas *)new_FXGLCanvas(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLCanvas_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLCanvas_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLCanvas_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLCanvas * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLCanvas_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_onDefault. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLCanvas_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLCanvas_create(_swigobj)  (_swigobj->_create())
static PyObject *_wrap_FXGLCanvas_create(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_create",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_create. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_create(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_destroy(_swigobj)  (_swigobj->_destroy())
static PyObject *_wrap_FXGLCanvas_destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_destroy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_destroy. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_destroy(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_detach(_swigobj)  (_swigobj->_detach())
static PyObject *_wrap_FXGLCanvas_detach(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_detach",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_detach. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_detach(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_resize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_resize(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLCanvas_resize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLCanvas_resize",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_resize. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_resize(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_getDefaultWidth(_swigobj)  (_swigobj->_getDefaultWidth())
static PyObject *_wrap_FXGLCanvas_getDefaultWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_getDefaultWidth",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_getDefaultWidth. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLCanvas_getDefaultWidth(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLCanvas_getDefaultHeight(_swigobj)  (_swigobj->_getDefaultHeight())
static PyObject *_wrap_FXGLCanvas_getDefaultHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_getDefaultHeight",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_getDefaultHeight. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLCanvas_getDefaultHeight(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLCanvas_show(_swigobj)  (_swigobj->_show())
static PyObject *_wrap_FXGLCanvas_show(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_show",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_show. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_show(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_hide(_swigobj)  (_swigobj->_hide())
static PyObject *_wrap_FXGLCanvas_hide(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_hide",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_hide. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_hide(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_enable(_swigobj)  (_swigobj->_enable())
static PyObject *_wrap_FXGLCanvas_enable(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_enable",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_enable. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_enable(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_disable(_swigobj)  (_swigobj->_disable())
static PyObject *_wrap_FXGLCanvas_disable(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_disable",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_disable. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_disable(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_canFocus(_swigobj)  (_swigobj->_canFocus())
static PyObject *_wrap_FXGLCanvas_canFocus(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_canFocus",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_canFocus. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_canFocus(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_setFocus(_swigobj)  (_swigobj->_setFocus())
static PyObject *_wrap_FXGLCanvas_setFocus(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_setFocus",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_setFocus. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_setFocus(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_killFocus(_swigobj)  (_swigobj->_killFocus())
static PyObject *_wrap_FXGLCanvas_killFocus(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_killFocus",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_killFocus. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_killFocus(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_setDefault(_swigobj,_swigarg0)  (_swigobj->_setDefault(_swigarg0))
static PyObject *_wrap_FXGLCanvas_setDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    FXbool  _arg1 = (FXbool ) TRUE;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","enable", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|b:FXGLCanvas_setDefault",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_setDefault. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_setDefault(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_recalc(_swigobj)  (_swigobj->_recalc())
static PyObject *_wrap_FXGLCanvas_recalc(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_recalc",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_recalc. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_recalc(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_layout(_swigobj)  (_swigobj->_layout())
static PyObject *_wrap_FXGLCanvas_layout(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_layout",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_layout. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_layout(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_lower(_swigobj)  (_swigobj->_lowerWindow())
static PyObject *_wrap_FXGLCanvas_lower(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_lower",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_lower. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_lower(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_move(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_move(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLCanvas_move(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLCanvas_move",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_move. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_move(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_position(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->_position(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_FXGLCanvas_position(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FXGLCanvas_position",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_position. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_position(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_isComposite(_swigobj)  (_swigobj->_isComposite())
static PyObject *_wrap_FXGLCanvas_isComposite(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_isComposite",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_isComposite. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_isComposite(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_contains(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_contains(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLCanvas_contains(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLCanvas_contains",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_contains. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_contains(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_getWidthForHeight(_swigobj,_swigarg0)  (_swigobj->_getWidthForHeight(_swigarg0))
static PyObject *_wrap_FXGLCanvas_getWidthForHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLCanvas * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXGLCanvas_getWidthForHeight",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_getWidthForHeight. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLCanvas_getWidthForHeight(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLCanvas_getHeightForWidth(_swigobj,_swigarg0)  (_swigobj->_getHeightForWidth(_swigarg0))
static PyObject *_wrap_FXGLCanvas_getHeightForWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLCanvas * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","w", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXGLCanvas_getHeightForWidth",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_getHeightForWidth. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLCanvas_getHeightForWidth(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLCanvas_doesSaveUnder(_swigobj)  (_swigobj->_doesSaveUnder())
static PyObject *_wrap_FXGLCanvas_doesSaveUnder(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_doesSaveUnder",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_doesSaveUnder. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_doesSaveUnder(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_reparent(_swigobj,_swigarg0)  (_swigobj->_reparent(_swigarg0))
static PyObject *_wrap_FXGLCanvas_reparent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    FXComposite * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","newparent", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCanvas_reparent",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_reparent. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCanvas_reparent. Expected _FXComposite_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_reparent(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_setBackColor(_swigobj,_swigarg0)  (_swigobj->_setBackColor(_swigarg0))
static PyObject *_wrap_FXGLCanvas_setBackColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    FXColor  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","clr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXGLCanvas_setBackColor",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_setBackColor. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_setBackColor(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCanvas_isCurrent(_swigobj)  (_swigobj->_isCurrent())
static PyObject *_wrap_FXGLCanvas_isCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_isCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_isCurrent. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_isCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_makeCurrent(_swigobj)  (_swigobj->_makeCurrent())
static PyObject *_wrap_FXGLCanvas_makeCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_makeCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_makeCurrent. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_makeCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_makeNonCurrent(_swigobj)  (_swigobj->_makeNonCurrent())
static PyObject *_wrap_FXGLCanvas_makeNonCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_makeNonCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_makeNonCurrent. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCanvas_makeNonCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCanvas_swapBuffers(_swigobj)  (_swigobj->_swapBuffers())
static PyObject *_wrap_FXGLCanvas_swapBuffers(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCanvas * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCanvas_swapBuffers",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCanvas_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCanvas_swapBuffers. Expected _FXPyGLCanvas_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCanvas_swapBuffers(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXViewport_w_set(_swigobj,_swigval) (_swigobj->w = _swigval,_swigval)
static PyObject *_wrap_FXViewport_w_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXViewport * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","w", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXViewport_w_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_w_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXViewport_w_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXViewport_w_get(_swigobj) ((FXint ) _swigobj->w)
static PyObject *_wrap_FXViewport_w_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_w_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_w_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXViewport_w_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXViewport_h_set(_swigobj,_swigval) (_swigobj->h = _swigval,_swigval)
static PyObject *_wrap_FXViewport_h_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXViewport * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXViewport_h_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_h_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXViewport_h_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXViewport_h_get(_swigobj) ((FXint ) _swigobj->h)
static PyObject *_wrap_FXViewport_h_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_h_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_h_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXViewport_h_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXViewport_left_set(_swigobj,_swigval) (_swigobj->left = _swigval,_swigval)
static PyObject *_wrap_FXViewport_left_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","left", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FXViewport_left_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_left_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_left_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_left_get(_swigobj) ((FXdouble ) _swigobj->left)
static PyObject *_wrap_FXViewport_left_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_left_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_left_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_left_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_right_set(_swigobj,_swigval) (_swigobj->right = _swigval,_swigval)
static PyObject *_wrap_FXViewport_right_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","right", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FXViewport_right_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_right_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_right_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_right_get(_swigobj) ((FXdouble ) _swigobj->right)
static PyObject *_wrap_FXViewport_right_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_right_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_right_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_right_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_bottom_set(_swigobj,_swigval) (_swigobj->bottom = _swigval,_swigval)
static PyObject *_wrap_FXViewport_bottom_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","bottom", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FXViewport_bottom_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_bottom_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_bottom_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_bottom_get(_swigobj) ((FXdouble ) _swigobj->bottom)
static PyObject *_wrap_FXViewport_bottom_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_bottom_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_bottom_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_bottom_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_top_set(_swigobj,_swigval) (_swigobj->top = _swigval,_swigval)
static PyObject *_wrap_FXViewport_top_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","top", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FXViewport_top_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_top_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_top_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_top_get(_swigobj) ((FXdouble ) _swigobj->top)
static PyObject *_wrap_FXViewport_top_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_top_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_top_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_top_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_hither_set(_swigobj,_swigval) (_swigobj->hither = _swigval,_swigval)
static PyObject *_wrap_FXViewport_hither_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","hither", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FXViewport_hither_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_hither_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_hither_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_hither_get(_swigobj) ((FXdouble ) _swigobj->hither)
static PyObject *_wrap_FXViewport_hither_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_hither_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_hither_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_hither_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_yon_set(_swigobj,_swigval) (_swigobj->yon = _swigval,_swigval)
static PyObject *_wrap_FXViewport_yon_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","yon", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FXViewport_yon_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_yon_set. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_yon_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXViewport_yon_get(_swigobj) ((FXdouble ) _swigobj->yon)
static PyObject *_wrap_FXViewport_yon_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXViewport * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXViewport_yon_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXViewport_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXViewport_yon_get. Expected _FXViewport_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FXViewport_yon_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FXLight_ambient_set(_swigobj,_swigval) (_swigobj->ambient = *(_swigval),_swigval)
static PyObject *_wrap_FXLight_ambient_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","ambient", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXLight_ambient_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_ambient_set. Expected _FXLight_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXLight_ambient_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_ambient_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_ambient_get(_swigobj) (&_swigobj->ambient)
static PyObject *_wrap_FXLight_ambient_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_ambient_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_ambient_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_ambient_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_diffuse_set(_swigobj,_swigval) (_swigobj->diffuse = *(_swigval),_swigval)
static PyObject *_wrap_FXLight_diffuse_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","diffuse", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXLight_diffuse_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_diffuse_set. Expected _FXLight_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXLight_diffuse_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_diffuse_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_diffuse_get(_swigobj) (&_swigobj->diffuse)
static PyObject *_wrap_FXLight_diffuse_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_diffuse_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_diffuse_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_diffuse_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_specular_set(_swigobj,_swigval) (_swigobj->specular = *(_swigval),_swigval)
static PyObject *_wrap_FXLight_specular_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","specular", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXLight_specular_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_specular_set. Expected _FXLight_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXLight_specular_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_specular_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_specular_get(_swigobj) (&_swigobj->specular)
static PyObject *_wrap_FXLight_specular_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_specular_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_specular_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_specular_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_position_set(_swigobj,_swigval) (_swigobj->position = *(_swigval),_swigval)
static PyObject *_wrap_FXLight_position_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","position", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXLight_position_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_position_set. Expected _FXLight_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXLight_position_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_position_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_position_get(_swigobj) (&_swigobj->position)
static PyObject *_wrap_FXLight_position_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_position_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_position_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXLight_position_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_direction_set(_swigobj,_swigval) (_swigobj->direction = *(_swigval),_swigval)
static PyObject *_wrap_FXLight_direction_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXLight * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","direction", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXLight_direction_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_direction_set. Expected _FXLight_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXLight_direction_set. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXVec *)FXLight_direction_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_direction_get(_swigobj) (&_swigobj->direction)
static PyObject *_wrap_FXLight_direction_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_direction_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_direction_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXVec *)FXLight_direction_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXLight_exponent_set(_swigobj,_swigval) (_swigobj->exponent = _swigval,_swigval)
static PyObject *_wrap_FXLight_exponent_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","exponent", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FXLight_exponent_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_exponent_set. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_exponent_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_exponent_get(_swigobj) ((FXfloat ) _swigobj->exponent)
static PyObject *_wrap_FXLight_exponent_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_exponent_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_exponent_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_exponent_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_cutoff_set(_swigobj,_swigval) (_swigobj->cutoff = _swigval,_swigval)
static PyObject *_wrap_FXLight_cutoff_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","cutoff", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FXLight_cutoff_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_cutoff_set. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_cutoff_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_cutoff_get(_swigobj) ((FXfloat ) _swigobj->cutoff)
static PyObject *_wrap_FXLight_cutoff_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_cutoff_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_cutoff_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_cutoff_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_c_attn_set(_swigobj,_swigval) (_swigobj->c_attn = _swigval,_swigval)
static PyObject *_wrap_FXLight_c_attn_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","c_attn", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FXLight_c_attn_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_c_attn_set. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_c_attn_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_c_attn_get(_swigobj) ((FXfloat ) _swigobj->c_attn)
static PyObject *_wrap_FXLight_c_attn_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_c_attn_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_c_attn_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_c_attn_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_l_attn_set(_swigobj,_swigval) (_swigobj->l_attn = _swigval,_swigval)
static PyObject *_wrap_FXLight_l_attn_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","l_attn", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FXLight_l_attn_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_l_attn_set. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_l_attn_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_l_attn_get(_swigobj) ((FXfloat ) _swigobj->l_attn)
static PyObject *_wrap_FXLight_l_attn_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_l_attn_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_l_attn_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_l_attn_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_q_attn_set(_swigobj,_swigval) (_swigobj->q_attn = _swigval,_swigval)
static PyObject *_wrap_FXLight_q_attn_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","q_attn", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FXLight_q_attn_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_q_attn_set. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_q_attn_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXLight_q_attn_get(_swigobj) ((FXfloat ) _swigobj->q_attn)
static PyObject *_wrap_FXLight_q_attn_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXLight * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXLight_q_attn_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXLight_q_attn_get. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXLight_q_attn_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXMaterial_ambient_set(_swigobj,_swigval) (_swigobj->ambient = *(_swigval),_swigval)
static PyObject *_wrap_FXMaterial_ambient_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","ambient", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXMaterial_ambient_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_ambient_set. Expected _FXMaterial_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXMaterial_ambient_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_ambient_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_ambient_get(_swigobj) (&_swigobj->ambient)
static PyObject *_wrap_FXMaterial_ambient_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXMaterial_ambient_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_ambient_get. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_ambient_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_diffuse_set(_swigobj,_swigval) (_swigobj->diffuse = *(_swigval),_swigval)
static PyObject *_wrap_FXMaterial_diffuse_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","diffuse", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXMaterial_diffuse_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_diffuse_set. Expected _FXMaterial_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXMaterial_diffuse_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_diffuse_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_diffuse_get(_swigobj) (&_swigobj->diffuse)
static PyObject *_wrap_FXMaterial_diffuse_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXMaterial_diffuse_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_diffuse_get. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_diffuse_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_specular_set(_swigobj,_swigval) (_swigobj->specular = *(_swigval),_swigval)
static PyObject *_wrap_FXMaterial_specular_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","specular", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXMaterial_specular_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_specular_set. Expected _FXMaterial_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXMaterial_specular_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_specular_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_specular_get(_swigobj) (&_swigobj->specular)
static PyObject *_wrap_FXMaterial_specular_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXMaterial_specular_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_specular_get. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_specular_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_emission_set(_swigobj,_swigval) (_swigobj->emission = *(_swigval),_swigval)
static PyObject *_wrap_FXMaterial_emission_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","emission", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXMaterial_emission_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_emission_set. Expected _FXMaterial_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXMaterial_emission_set. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_emission_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_emission_get(_swigobj) (&_swigobj->emission)
static PyObject *_wrap_FXMaterial_emission_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXMaterial * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXMaterial_emission_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_emission_get. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXHVec *)FXMaterial_emission_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXMaterial_shininess_set(_swigobj,_swigval) (_swigobj->shininess = _swigval,_swigval)
static PyObject *_wrap_FXMaterial_shininess_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXMaterial * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","shininess", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FXMaterial_shininess_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_shininess_set. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXMaterial_shininess_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXMaterial_shininess_get(_swigobj) ((FXfloat ) _swigobj->shininess)
static PyObject *_wrap_FXMaterial_shininess_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXMaterial * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXMaterial_shininess_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXMaterial_shininess_get. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXMaterial_shininess_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

static void *SwigFXGLViewerToFXGLCanvas(void *ptr) {
    FXGLViewer *src;
    FXGLCanvas *dest;
    src = (FXGLViewer *) ptr;
    dest = (FXGLCanvas *) src;
    return (void *) dest;
}

static void *SwigFXGLViewerToFXCanvas(void *ptr) {
    FXGLViewer *src;
    FXCanvas *dest;
    src = (FXGLViewer *) ptr;
    dest = (FXCanvas *) src;
    return (void *) dest;
}

static void *SwigFXGLViewerToFXWindow(void *ptr) {
    FXGLViewer *src;
    FXWindow *dest;
    src = (FXGLViewer *) ptr;
    dest = (FXWindow *) src;
    return (void *) dest;
}

static void *SwigFXGLViewerToFXDrawable(void *ptr) {
    FXGLViewer *src;
    FXDrawable *dest;
    src = (FXGLViewer *) ptr;
    dest = (FXDrawable *) src;
    return (void *) dest;
}

static void *SwigFXGLViewerToFXId(void *ptr) {
    FXGLViewer *src;
    FXId *dest;
    src = (FXGLViewer *) ptr;
    dest = (FXId *) src;
    return (void *) dest;
}

static void *SwigFXGLViewerToFXObject(void *ptr) {
    FXGLViewer *src;
    FXObject *dest;
    src = (FXGLViewer *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

static int _wrap_FXGLViewer__objectType_set(PyObject *val) {
    FXDragType  tval;

    tval = (FXDragType )PyInt_AsLong(val);
    if (PyErr_Occurred()) {
        PyErr_SetString(PyExc_TypeError,"C variable 'FX_GLViewer_objectType'(FXDragType )");
        return 1; 
    }
    FXGLViewer::objectType = tval;
    return 0;
}

static PyObject *_wrap_FXGLViewer__objectType_get() {
    PyObject * pyobj;

    pyobj = PyInt_FromLong((long) FXGLViewer::objectType);
    return pyobj;
}

#define FX_GLViewer_onPaint(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onPaint(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onPaint(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onPaint",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onPaint. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onPaint. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onPaint(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onEnter(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onEnter(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onEnter(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onEnter",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onEnter. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onEnter. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onEnter(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onLeave(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onLeave(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onLeave(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onLeave",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onLeave. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onLeave. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onLeave(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onMotion(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onMotion(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onMotion(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onMotion",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onMotion. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onMotion. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onMotion(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onMouseWheel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onMouseWheel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onMouseWheel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onMouseWheel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onMouseWheel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onMouseWheel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onMouseWheel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onChanged(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onChanged(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onChanged(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onChanged",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onChanged. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onChanged. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onChanged(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onPick(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onPick(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onPick(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onPick",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onPick. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onPick. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onPick(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onClicked(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onClicked(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onClicked(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onClicked",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onClicked. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onClicked. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onClicked(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDoubleClicked(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDoubleClicked(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDoubleClicked(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDoubleClicked",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDoubleClicked. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDoubleClicked. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDoubleClicked(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onTripleClicked(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onTripleClicked(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onTripleClicked(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onTripleClicked",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onTripleClicked. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onTripleClicked. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onTripleClicked(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onLassoed(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onLassoed(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onLassoed(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onLassoed",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onLassoed. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onLassoed. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onLassoed(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onSelected(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onSelected(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onSelected(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onSelected",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onSelected. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onSelected. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onSelected(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDeselected(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDeselected(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDeselected(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDeselected",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDeselected. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDeselected. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDeselected(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onInserted(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onInserted(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onInserted(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onInserted",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onInserted. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onInserted. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onInserted(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDeleted(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDeleted(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDeleted(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDeleted",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDeleted. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDeleted. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDeleted(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onLeftBtnPress(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onLeftBtnPress(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onLeftBtnPress(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onLeftBtnPress",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onLeftBtnPress. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onLeftBtnPress. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onLeftBtnPress(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onLeftBtnRelease(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onLeftBtnRelease(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onLeftBtnRelease(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onLeftBtnRelease",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onLeftBtnRelease. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onLeftBtnRelease. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onLeftBtnRelease(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onMiddleBtnPress(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onMiddleBtnPress(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onMiddleBtnPress(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onMiddleBtnPress",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onMiddleBtnPress. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onMiddleBtnPress. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onMiddleBtnPress(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onMiddleBtnRelease(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onMiddleBtnRelease(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onMiddleBtnRelease(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onMiddleBtnRelease",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onMiddleBtnRelease. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onMiddleBtnRelease. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onMiddleBtnRelease(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onRightBtnPress(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onRightBtnPress(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onRightBtnPress(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onRightBtnPress",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onRightBtnPress. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onRightBtnPress. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onRightBtnPress(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onRightBtnRelease(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onRightBtnRelease(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onRightBtnRelease(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onRightBtnRelease",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onRightBtnRelease. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onRightBtnRelease. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onRightBtnRelease(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUngrabbed(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUngrabbed(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUngrabbed(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUngrabbed",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUngrabbed. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUngrabbed. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUngrabbed(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onKeyPress(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onKeyPress(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onKeyPress(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onKeyPress",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onKeyPress. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onKeyPress. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onKeyPress(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onKeyRelease(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onKeyRelease(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onKeyRelease(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onKeyRelease",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onKeyRelease. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onKeyRelease. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onKeyRelease(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onFocusIn(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onFocusIn(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onFocusIn(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onFocusIn",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onFocusIn. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onFocusIn. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onFocusIn(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onFocusOut(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onFocusOut(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onFocusOut(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onFocusOut",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onFocusOut. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onFocusOut. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onFocusOut(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onClipboardLost(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onClipboardLost(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onClipboardLost(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onClipboardLost",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onClipboardLost. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onClipboardLost. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onClipboardLost(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onClipboardGained(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onClipboardGained(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onClipboardGained(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onClipboardGained",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onClipboardGained. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onClipboardGained. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onClipboardGained(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onClipboardRequest(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onClipboardRequest(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onClipboardRequest(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onClipboardRequest",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onClipboardRequest. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onClipboardRequest. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onClipboardRequest(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdPerspective(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdPerspective(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdPerspective(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdPerspective",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdPerspective. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdPerspective. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdPerspective(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdPerspective(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdPerspective(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdPerspective(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdPerspective",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdPerspective. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdPerspective. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdPerspective(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdParallel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdParallel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdParallel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdParallel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdParallel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdParallel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdParallel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdParallel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdParallel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdParallel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdParallel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdParallel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdParallel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdParallel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdFront(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdFront(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdFront(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdFront",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdFront. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdFront. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdFront(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdFront(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdFront(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdFront(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdFront",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdFront. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdFront. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdFront(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdBack(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdBack(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdBack(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdBack",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdBack. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdBack. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdBack(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdBack(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdBack(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdBack(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdBack",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdBack. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdBack. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdBack(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLeft(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLeft",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLeft. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLeft. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLeft(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdLeft(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdLeft(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdLeft(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdLeft",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdLeft. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdLeft. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdLeft(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdRight(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdRight(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdRight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdRight",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdRight. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdRight. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdRight(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdRight(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdRight(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdRight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdRight",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdRight. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdRight. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdRight(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdTop(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdTop(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdTop(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdTop",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdTop. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdTop. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdTop(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdTop(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdTop(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdTop(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdTop",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdTop. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdTop. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdTop(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdBottom(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdBottom(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdBottom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdBottom",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdBottom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdBottom. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdBottom(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdBottom(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdBottom(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdBottom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdBottom",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdBottom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdBottom. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdBottom(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdResetView(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdResetView(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdResetView(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdResetView",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdResetView. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdResetView. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdResetView(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdFitView(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdFitView(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdFitView(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdFitView",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdFitView. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdFitView. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdFitView(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDNDEnter(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDNDEnter(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDNDEnter(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDNDEnter",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDNDEnter. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDNDEnter. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDNDEnter(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDNDLeave(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDNDLeave(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDNDLeave(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDNDLeave",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDNDLeave. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDNDLeave. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDNDLeave(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDNDMotion(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDNDMotion(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDNDMotion(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDNDMotion",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDNDMotion. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDNDMotion. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDNDMotion(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onDNDDrop(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDNDDrop(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onDNDDrop(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onDNDDrop",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onDNDDrop. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onDNDDrop. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onDNDDrop(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onTipTimer(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onTipTimer(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onTipTimer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onTipTimer",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onTipTimer. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onTipTimer. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onTipTimer(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onQueryHelp(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onQueryHelp(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onQueryHelp(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onQueryHelp",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onQueryHelp. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onQueryHelp. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onQueryHelp(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onQueryTip(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onQueryTip(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onQueryTip(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onQueryTip",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onQueryTip. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onQueryTip. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onQueryTip(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdXYZDial(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdXYZDial(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdXYZDial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdXYZDial",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdXYZDial. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdXYZDial. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdXYZDial(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdXYZDial(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdXYZDial(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdXYZDial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdXYZDial",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdXYZDial. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdXYZDial. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdXYZDial(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdRollPitchYaw(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdRollPitchYaw(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdRollPitchYaw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdRollPitchYaw",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdRollPitchYaw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdRollPitchYaw. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdRollPitchYaw(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdRollPitchYaw(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdRollPitchYaw(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdRollPitchYaw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdRollPitchYaw",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdRollPitchYaw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdRollPitchYaw. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdRollPitchYaw(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdXYZScale(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdXYZScale(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdXYZScale(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdXYZScale",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdXYZScale. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdXYZScale. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdXYZScale(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdXYZScale(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdXYZScale(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdXYZScale(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdXYZScale",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdXYZScale. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdXYZScale. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdXYZScale(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdCurrent(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdCurrent(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdCurrent",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdCurrent. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdCurrent. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdCurrent(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdCutSel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdCutSel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdCutSel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdCutSel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdCutSel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdCutSel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdCutSel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdCopySel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdCopySel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdCopySel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdCopySel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdCopySel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdCopySel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdCopySel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdPasteSel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdPasteSel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdPasteSel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdPasteSel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdPasteSel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdPasteSel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdPasteSel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdDeleteSel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdDeleteSel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdDeleteSel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdDeleteSel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdDeleteSel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdDeleteSel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdDeleteSel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdDeleteSel(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdDeleteSel(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdDeleteSel(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdDeleteSel",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdDeleteSel. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdDeleteSel. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdDeleteSel(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdBackColor(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdBackColor(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdBackColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdBackColor",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdBackColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdBackColor. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdBackColor(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdBackColor(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdBackColor(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdBackColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdBackColor",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdBackColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdBackColor. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdBackColor(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdAmbientColor(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdAmbientColor(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdAmbientColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdAmbientColor",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdAmbientColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdAmbientColor. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdAmbientColor(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdAmbientColor(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdAmbientColor(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdAmbientColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdAmbientColor",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdAmbientColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdAmbientColor. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdAmbientColor(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLock(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLock(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLock(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLock",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLock. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLock. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLock(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdLock(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdLock(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdLock(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdLock",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdLock. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdLock. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdLock(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLighting(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLighting(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLighting(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLighting",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLighting. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLighting. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLighting(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdLighting(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdLighting(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdLighting(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdLighting",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdLighting. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdLighting. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdLighting(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdFog(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdFog(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdFog(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdFog",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdFog. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdFog. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdFog(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdFog(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdFog(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdFog(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdFog",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdFog. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdFog. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdFog(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdDither(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdDither(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdDither(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdDither",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdDither. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdDither. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdDither(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdDither(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdDither(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdDither(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdDither",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdDither. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdDither. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdDither(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdFov(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdFov(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdFov(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdFov",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdFov. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdFov. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdFov(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdFov(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdFov(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdFov(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdFov",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdFov. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdFov. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdFov(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdZoom(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdZoom(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdZoom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdZoom",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdZoom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdZoom. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdZoom(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdZoom(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdZoom(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdZoom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdZoom",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdZoom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdZoom. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdZoom(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLightAmbient(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLightAmbient(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLightAmbient(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLightAmbient",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLightAmbient. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLightAmbient. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLightAmbient(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdLightAmbient(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdLightAmbient(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdLightAmbient(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdLightAmbient",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdLightAmbient. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdLightAmbient. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdLightAmbient(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLightDiffuse(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLightDiffuse(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLightDiffuse(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLightDiffuse",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLightDiffuse. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLightDiffuse. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLightDiffuse(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdLightDiffuse(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdLightDiffuse(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdLightDiffuse(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdLightDiffuse",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdLightDiffuse. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdLightDiffuse. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdLightDiffuse(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLightSpecular(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLightSpecular(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLightSpecular(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLightSpecular",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLightSpecular. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLightSpecular. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLightSpecular(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdLightSpecular(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdLightSpecular(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdLightSpecular(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdLightSpecular",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdLightSpecular. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdLightSpecular. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdLightSpecular(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdTurbo(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdTurbo(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdTurbo(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdTurbo",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdTurbo. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdTurbo. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdTurbo(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onUpdTurbo(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdTurbo(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onUpdTurbo(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onUpdTurbo",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onUpdTurbo. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onUpdTurbo. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onUpdTurbo(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdPrintImage(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdPrintImage(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdPrintImage(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdPrintImage",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdPrintImage. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdPrintImage. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdPrintImage(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdPrintVector(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdPrintVector(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdPrintVector(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdPrintVector",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdPrintVector. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdPrintVector. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdPrintVector(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLassoZoom(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLassoZoom(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLassoZoom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLassoZoom",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLassoZoom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLassoZoom. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLassoZoom(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_onCmdLassoSelect(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdLassoSelect(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_onCmdLassoSelect(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLViewer_onCmdLassoSelect",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_onCmdLassoSelect. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLViewer_onCmdLassoSelect. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLViewer_onCmdLassoSelect(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLViewer_worldPix(_swigobj)  (_swigobj->worldPix())
static PyObject *_wrap_FX_GLViewer_worldPix(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_worldPix",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_worldPix. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FX_GLViewer_worldPix(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FX_GLViewer_modelPix(_swigobj)  (_swigobj->modelPix())
static PyObject *_wrap_FX_GLViewer_modelPix(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_modelPix",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_modelPix. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FX_GLViewer_modelPix(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

static PyObject * FXGLViewer_lasso(FXGLViewer *self,FXint  x1,FXint  y1,FXint  x2,FXint  y2) {
      FXGLObject **items = self->lasso(x1,y1,x2,y2);
      int size = 0;
      if (items) {
        while (items[size])
          size++;
      }

      FXbool doSave = FXPyRestoreThread();
      PyObject *obj = PyList_New(size);
      if (!obj) {
	if (items) FXFREE(&items);
        FXPySaveThread(doSave);
	return NULL;
      }

      for (FXint i=0; i<size; i++) {
	PyObject *listitem = FXPyMakeShadowObject(items[i]);
	if (!listitem || PyList_SetItem(obj, i, listitem) < 0) {
	  FXFREE(&items);
	  Py_DECREF(obj);
          FXPySaveThread(doSave);
	  return NULL;
	}
      }

      // Clean up local copy
      if (items) FXFREE(&items);
      FXPySaveThread(doSave);
      return obj;
    }
static PyObject *_wrap_FX_GLViewer_lasso(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    PyObject * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x1","y1","x2","y2", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FX_GLViewer_lasso",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_lasso. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (PyObject *)FXGLViewer_lasso(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}{
  _resultobj = _result;
}
    return _resultobj;
}

static PyObject * FXGLViewer_select(FXGLViewer *self,FXint  x,FXint  y,FXint  w,FXint  h) {
      FXGLObject **items = self->select(x,y,w,h);
      int size = 0;
      if (items) {
        while (items[size])
          size++;
      }
      FXbool doSave = FXPyRestoreThread();
      PyObject *obj = PyList_New(size);
      if (!obj) {
	if (items) FXFREE(&items);
        FXPySaveThread(doSave);
	return NULL;
      }

      for (FXint i=0; i<size; i++) {
	char _ptemp[128];
	SWIG_MakePtr(_ptemp,(char*)items[i],"_FXGLObject_p");
	PyObject *listitem = Py_BuildValue("s",_ptemp);
	if (!listitem || PyList_SetItem(obj,i,listitem) < 0) {
	  Py_DECREF(obj);
	  FXFREE(&items);
          FXPySaveThread(doSave);
	  return NULL;
	}
      }

      // Clean up local copy
      if (items) FXFREE(&items);
      FXPySaveThread(doSave);
      return obj;
    }
static PyObject *_wrap_FX_GLViewer_select(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    PyObject * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FX_GLViewer_select",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_select. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (PyObject *)FXGLViewer_select(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}{
  _resultobj = _result;
}
    return _resultobj;
}

#define FX_GLViewer_pick(_swigobj,_swigarg0,_swigarg1)  (_swigobj->pick(_swigarg0,_swigarg1))
static PyObject *_wrap_FX_GLViewer_pick(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FX_GLViewer_pick",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_pick. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FX_GLViewer_pick(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FX_GLViewer_setBounds(_swigobj,_swigarg0)  (_swigobj->setBounds(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setBounds(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLViewer * _arg0;
    FXRange * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","box", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setBounds",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setBounds. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXRange_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setBounds. Expected _FXRange_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLViewer_setBounds(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLViewer_fitToBounds(_swigobj,_swigarg0)  (_swigobj->fitToBounds(_swigarg0))
static PyObject *_wrap_FX_GLViewer_fitToBounds(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLViewer * _arg0;
    FXRange * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","box", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_fitToBounds",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_fitToBounds. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXRange_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_fitToBounds. Expected _FXRange_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLViewer_fitToBounds(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static FXViewport * FXGLViewer_getViewport(FXGLViewer *self) {
      FXViewport *viewport = new FXViewport;
      self->getViewport(*viewport);
      return viewport;
    }
static PyObject *_wrap_FX_GLViewer_getViewport(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXViewport * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getViewport",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getViewport. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXViewport *)FXGLViewer_getViewport(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXViewport_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static PyObject * FXGLViewer_eyeToScreen(FXGLViewer *self,const FXVec & e) {
      FXint sx,sy;
      self->eyeToScreen(sx,sy,e);
      FXbool doSave = FXPyRestoreThread();
      PyObject* tuple = PyTuple_New(2);
      if (tuple) {
        PyObject *obj1 = PyInt_FromLong(sx);
	if (!obj1 || PyTuple_SetItem(tuple, 0, obj1) < 0) {
	  Py_DECREF(tuple);
          FXPySaveThread(doSave);
	  return NULL;
	}
        PyObject *obj2 = PyInt_FromLong(sy);
	if (!obj2 || PyTuple_SetItem(tuple, 1, obj2) < 0) {
	  Py_DECREF(tuple);
          FXPySaveThread(doSave);
	  return NULL;
	}
      }
      FXPySaveThread(doSave);
      return tuple;
    }
static PyObject *_wrap_FX_GLViewer_eyeToScreen(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    PyObject * _result;
    FXGLViewer * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","e", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_eyeToScreen",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_eyeToScreen. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_eyeToScreen. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (PyObject *)FXGLViewer_eyeToScreen(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}{
  _resultobj = _result;
}
    return _resultobj;
}

#define FX_GLViewer_screenToEye(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->screenToEye(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLViewer_screenToEye(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXfloat  _arg3 = (FXfloat ) 0.0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","sx","sy","eyez", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii|f:FX_GLViewer_screenToEye",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_screenToEye. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_screenToEye(_arg0,_arg1,_arg2,_arg3));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_screenToTarget(_swigobj,_swigarg0,_swigarg1)  (_swigobj->screenToTarget(_swigarg0,_swigarg1))
static PyObject *_wrap_FX_GLViewer_screenToTarget(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","sx","sy", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FX_GLViewer_screenToTarget",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_screenToTarget. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_screenToTarget(_arg0,_arg1,_arg2));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_worldToEye(_swigobj,_swigarg0)  (_swigobj->worldToEye(_swigarg0))
static PyObject *_wrap_FX_GLViewer_worldToEye(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","w", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_worldToEye",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_worldToEye. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_worldToEye. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_worldToEye(_arg0,*_arg1));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_worldToEyeZ(_swigobj,_swigarg0)  (_swigobj->worldToEyeZ(_swigarg0))
static PyObject *_wrap_FX_GLViewer_worldToEyeZ(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLViewer * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","w", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_worldToEyeZ",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_worldToEyeZ. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_worldToEyeZ. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLViewer_worldToEyeZ(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FX_GLViewer_eyeToWorld(_swigobj,_swigarg0)  (_swigobj->eyeToWorld(_swigarg0))
static PyObject *_wrap_FX_GLViewer_eyeToWorld(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","e", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_eyeToWorld",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_eyeToWorld. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_eyeToWorld. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_eyeToWorld(_arg0,*_arg1));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_worldVector(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->worldVector(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_FX_GLViewer_worldVector(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","fx","fy","tx","ty", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FX_GLViewer_worldVector",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_worldVector. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_worldVector(_arg0,_arg1,_arg2,_arg3,_arg4));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_setMaterial(_swigobj,_swigarg0)  (_swigobj->setMaterial(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXMaterial * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","mtl", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setMaterial",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setMaterial. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setMaterial. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setMaterial(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static FXMaterial * FXGLViewer_getMaterial(FXGLViewer *self) {
      FXMaterial *mtl = new FXMaterial;
      self->getMaterial(*mtl);
      return mtl;
    }
static PyObject *_wrap_FX_GLViewer_getMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXMaterial * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getMaterial",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getMaterial. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXMaterial *)FXGLViewer_getMaterial(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXMaterial_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLViewer_setFieldOfView(_swigobj,_swigarg0)  (_swigobj->setFieldOfView(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setFieldOfView(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","fv", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FX_GLViewer_setFieldOfView",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setFieldOfView. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setFieldOfView(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getFieldOfView(_swigobj)  (_swigobj->getFieldOfView())
static PyObject *_wrap_FX_GLViewer_getFieldOfView(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getFieldOfView",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getFieldOfView. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FX_GLViewer_getFieldOfView(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FX_GLViewer_setZoom(_swigobj,_swigarg0)  (_swigobj->setZoom(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setZoom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","zm", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FX_GLViewer_setZoom",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setZoom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setZoom(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getZoom(_swigobj)  (_swigobj->getZoom())
static PyObject *_wrap_FX_GLViewer_getZoom(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getZoom",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getZoom. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FX_GLViewer_getZoom(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FX_GLViewer_setDistance(_swigobj,_swigarg0)  (_swigobj->setDistance(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setDistance(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","ed", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FX_GLViewer_setDistance",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setDistance. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setDistance(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getDistance(_swigobj)  (_swigobj->getDistance())
static PyObject *_wrap_FX_GLViewer_getDistance(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getDistance",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getDistance. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FX_GLViewer_getDistance(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

#define FX_GLViewer_setOrientation(_swigobj,_swigarg0)  (_swigobj->setOrientation(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setOrientation(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXQuat * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","rot", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setOrientation",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setOrientation. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXQuat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setOrientation. Expected _FXQuat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setOrientation(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getOrientation(_swigobj)  (_swigobj->getOrientation())
static PyObject *_wrap_FX_GLViewer_getOrientation(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXQuat * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getOrientation",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getOrientation. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        const FXQuat & _result_ref = FX_GLViewer_getOrientation(_arg0);
    _result = (FXQuat *) &_result_ref;

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXQuat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLViewer_setCenter(_swigobj,_swigarg0)  (_swigobj->setCenter(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setCenter(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","cntr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setCenter",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setCenter. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setCenter. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setCenter(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getCenter(_swigobj)  (_swigobj->getCenter())
static PyObject *_wrap_FX_GLViewer_getCenter(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getCenter",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getCenter. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        const FXVec & _result_ref = FX_GLViewer_getCenter(_arg0);
    _result = (FXVec *) &_result_ref;

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLViewer_translate(_swigobj,_swigarg0)  (_swigobj->translate(_swigarg0))
static PyObject *_wrap_FX_GLViewer_translate(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","vec", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_translate",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_translate. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_translate. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_translate(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static PyObject * FXGLViewer_getBoreVector(FXGLViewer *self,FXint  sx,FXint  sy) {
      FXVec point,dir;
      self->getBoreVector(sx,sy,point,dir);
      FXbool doSave = FXPyRestoreThread();
      PyObject* tuple = PyTuple_New(2);
      if (!tuple) {
        FXPySaveThread(doSave);
	return NULL;
      }

      PyObject* pointList = PyList_New(3);
      if (!pointList) {
	Py_DECREF(tuple);
        FXPySaveThread(doSave);
	return NULL;
      }

      PyObject* dirList = PyList_New(3);
      if (!dirList) {
	Py_DECREF(pointList);
	Py_DECREF(tuple);
        FXPySaveThread(doSave);
	return NULL;
      }

      for (int i=0; i<3; i++) {
        if (PyList_SetItem(pointList,i,Py_BuildValue("f",point[i])) < 0) {
	  Py_DECREF(pointList);
	  Py_DECREF(dirList);
	  Py_DECREF(tuple);
          FXPySaveThread(doSave);
	  return NULL;
	}
        if (PyList_SetItem(dirList,i,Py_BuildValue("f",dir[i])) < 0) {
	  Py_DECREF(pointList);
	  Py_DECREF(dirList);
	  Py_DECREF(tuple);
          FXPySaveThread(doSave);
	  return NULL;
	}
      }
      if (PyTuple_SetItem(tuple, 0, pointList) < 0) {
	Py_DECREF(dirList);
	Py_DECREF(tuple);
        FXPySaveThread(doSave);
	return NULL;
      }
      if (PyTuple_SetItem(tuple, 1, dirList) < 0) {
	Py_DECREF(tuple);
        FXPySaveThread(doSave);
	return NULL;
      }
      FXPySaveThread(doSave);
      return tuple;
    }
static PyObject *_wrap_FX_GLViewer_getBoreVector(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    PyObject * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","sx","sy", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FX_GLViewer_getBoreVector",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getBoreVector. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (PyObject *)FXGLViewer_getBoreVector(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}{
  _resultobj = _result;
}
    return _resultobj;
}

#define FX_GLViewer_getEyeVector(_swigobj)  (_swigobj->getEyeVector())
static PyObject *_wrap_FX_GLViewer_getEyeVector(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getEyeVector",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getEyeVector. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_getEyeVector(_arg0));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_getEyePosition(_swigobj)  (_swigobj->getEyePosition())
static PyObject *_wrap_FX_GLViewer_getEyePosition(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getEyePosition",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getEyePosition. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXVec (FX_GLViewer_getEyePosition(_arg0));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_setHelpText(_swigobj,_swigarg0)  (_swigobj->setHelpText(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setHelpText(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXString * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    char *_kwnames[] = { "self","text", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setHelpText",_kwnames,&_argo0,&_obj1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setHelpText. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = new FXString;
    else if (!PyString_Check(_obj1)) {
	PyErr_SetString(PyExc_TypeError, "not a string");
	return NULL;
    }
    else
	_arg1 = new FXString(PyString_AsString(_obj1));
}
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setHelpText(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
{
    delete _arg1;
}
    return _resultobj;
}

#define FX_GLViewer_getHelpText(_swigobj)  (_swigobj->getHelpText())
static PyObject *_wrap_FX_GLViewer_getHelpText(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXString * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getHelpText",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getHelpText. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXString (FX_GLViewer_getHelpText(_arg0));

    FXPy_END_ALLOW_THREADS
}{
    _resultobj = PyString_FromString(_result->text());
}
{
    delete _result;
}
    return _resultobj;
}

#define FX_GLViewer_setTipText(_swigobj,_swigarg0)  (_swigobj->setTipText(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setTipText(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXString * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    char *_kwnames[] = { "self","text", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setTipText",_kwnames,&_argo0,&_obj1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setTipText. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = new FXString;
    else if (!PyString_Check(_obj1)) {
	PyErr_SetString(PyExc_TypeError, "not a string");
	return NULL;
    }
    else
	_arg1 = new FXString(PyString_AsString(_obj1));
}
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setTipText(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
{
    delete _arg1;
}
    return _resultobj;
}

#define FX_GLViewer_getTipText(_swigobj)  (_swigobj->getTipText())
static PyObject *_wrap_FX_GLViewer_getTipText(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXString * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getTipText",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getTipText. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXString (FX_GLViewer_getTipText(_arg0));

    FXPy_END_ALLOW_THREADS
}{
    _resultobj = PyString_FromString(_result->text());
}
{
    delete _result;
}
    return _resultobj;
}

#define FX_GLViewer_getTransform(_swigobj)  (_swigobj->getTransform())
static PyObject *_wrap_FX_GLViewer_getTransform(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHMat * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getTransform",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getTransform. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        const FXHMat & _result_ref = FX_GLViewer_getTransform(_arg0);
    _result = (FXHMat *) &_result_ref;

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHMat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLViewer_getInvTransform(_swigobj)  (_swigobj->getInvTransform())
static PyObject *_wrap_FX_GLViewer_getInvTransform(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHMat * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getInvTransform",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getInvTransform. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        const FXHMat & _result_ref = FX_GLViewer_getInvTransform(_arg0);
    _result = (FXHMat *) &_result_ref;

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXHMat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLViewer_setScene(_swigobj,_swigarg0)  (_swigobj->setScene(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setScene(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXGLObject * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","sc", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setScene",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setScene. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setScene. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setScene(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getScene(_swigobj)  (_swigobj->getScene())
static PyObject *_wrap_FX_GLViewer_getScene(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getScene",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getScene. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FX_GLViewer_getScene(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FX_GLViewer_setSelection(_swigobj,_swigarg0)  (_swigobj->setSelection(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXGLObject * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","sel", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setSelection",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setSelection. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setSelection. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setSelection(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getSelection(_swigobj)  (_swigobj->getSelection())
static PyObject *_wrap_FX_GLViewer_getSelection(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getSelection",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getSelection. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FX_GLViewer_getSelection(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FX_GLViewer_setProjection(_swigobj,_swigarg0)  (_swigobj->setProjection(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setProjection(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXuint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","proj", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLViewer_setProjection",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setProjection. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setProjection(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getProjection(_swigobj)  (_swigobj->getProjection())
static PyObject *_wrap_FX_GLViewer_getProjection(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXuint  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getProjection",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getProjection. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXuint )FX_GLViewer_getProjection(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLViewer_setViewLock(_swigobj,_swigarg0)  (_swigobj->setViewLock(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setViewLock(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXbool  _arg1 = (FXbool ) TRUE;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","lock", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|b:FX_GLViewer_setViewLock",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setViewLock. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setViewLock(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getViewLock(_swigobj)  (_swigobj->getViewLock())
static PyObject *_wrap_FX_GLViewer_getViewLock(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getViewLock",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getViewLock. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLViewer_getViewLock(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLViewer_setBackgroundColor(_swigobj,_swigarg0)  (_swigobj->setBackgroundColor(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setBackgroundColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","clr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setBackgroundColor",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setBackgroundColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setBackgroundColor. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setBackgroundColor(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getBackgroundColor(_swigobj)  (_swigobj->getBackgroundColor())
static PyObject *_wrap_FX_GLViewer_getBackgroundColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getBackgroundColor",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getBackgroundColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXHVec (FX_GLViewer_getBackgroundColor(_arg0));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXHVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

#define FX_GLViewer_setAmbientColor(_swigobj,_swigarg0)  (_swigobj->setAmbientColor(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setAmbientColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXHVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","clr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setAmbientColor",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setAmbientColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXHVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setAmbientColor. Expected _FXHVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setAmbientColor(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getAmbientColor(_swigobj)  (_swigobj->getAmbientColor())
static PyObject *_wrap_FX_GLViewer_getAmbientColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXHVec * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getAmbientColor",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getAmbientColor. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXHVec (FX_GLViewer_getAmbientColor(_arg0));

    FXPy_END_ALLOW_THREADS
}    SWIG_MakePtr(_ptemp, (void *) _result,"_FXHVec_p");
    _resultobj = Py_BuildValue("s",_ptemp);
    return _resultobj;
}

static PyObject * FXGLViewer_readPixels(FXGLViewer *self,FXint  x,FXint  y,FXint  w,FXint  h) {
      FXuchar *buffer;
      if(self->readPixels(buffer,x,y,w,h)){
	char *charBuffer;
	FXint nbytes=3*w*h;
	if(FXMALLOC(&charBuffer,char,nbytes)){
	  memcpy((void*)charBuffer,(void*)buffer,nbytes);
	  FXFREE(&buffer);
          FXbool doSave=FXPyRestoreThread();
	  PyObject *result=PyString_FromString(charBuffer);
          FXPySaveThread(doSave);
	  FXFREE(&charBuffer);
	  return result;
          }
	else{
	  FXFREE(&buffer);
          FXbool doSave=FXPyRestoreThread();
          PyErr_SetString(PyExc_MemoryError,"out of memory");
          FXPySaveThread(doSave);
	  return NULL;
	  }
        }
      else{
        FXbool doSave=FXPyRestoreThread();
        PyErr_SetString(PyExc_MemoryError,"out of memory");
        FXPySaveThread(doSave);
	return NULL;
        }
      }
static PyObject *_wrap_FX_GLViewer_readPixels(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    PyObject * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FX_GLViewer_readPixels",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_readPixels. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (PyObject *)FXGLViewer_readPixels(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}{
  _resultobj = _result;
}
    return _resultobj;
}

static PyObject * 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)){
        FXbool doSave=FXPyRestoreThread();
	PyObject *list=PyList_New(used);
	if(!list){
	  FXFREE(&buffer);
          FXPySaveThread(doSave);
	  return NULL;
	  }
	for(FXint i=0;i<used;i++){
	  PyObject *flt=PyFloat_FromDouble(buffer[i]);
	  if(!flt){
	    FXFREE(&buffer);
	    Py_DECREF(list);
            FXPySaveThread(doSave);
	    return NULL;
	    }
	  PyList_SetItem(list,i,flt);
	  }
        FXPySaveThread(doSave);
	FXFREE(&buffer);
	return list;
	}
      else{
        PyErr_SetString(PyExc_MemoryError,"out of memory");
	return NULL;
	}
      }
static PyObject *_wrap_FX_GLViewer_readFeedback(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    PyObject * _result;
    FXGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FX_GLViewer_readFeedback",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_readFeedback. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (PyObject *)FXGLViewer_readFeedback(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}{
  _resultobj = _result;
}
    return _resultobj;
}

#define FX_GLViewer_setMaxHits(_swigobj,_swigarg0)  (_swigobj->setMaxHits(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setMaxHits(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXuint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","maxh", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLViewer_setMaxHits",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setMaxHits. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setMaxHits(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getMaxHits(_swigobj)  (_swigobj->getMaxHits())
static PyObject *_wrap_FX_GLViewer_getMaxHits(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXuint  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getMaxHits",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getMaxHits. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXuint )FX_GLViewer_getMaxHits(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLViewer_doesTurbo(_swigobj)  (_swigobj->doesTurbo())
static PyObject *_wrap_FX_GLViewer_doesTurbo(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_doesTurbo",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_doesTurbo. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLViewer_doesTurbo(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLViewer_getTurboMode(_swigobj)  (_swigobj->getTurboMode())
static PyObject *_wrap_FX_GLViewer_getTurboMode(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getTurboMode",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getTurboMode. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLViewer_getTurboMode(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLViewer_setTurboMode(_swigobj,_swigarg0)  (_swigobj->setTurboMode(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setTurboMode(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXbool  _arg1 = (FXbool ) TRUE;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","turbo", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|b:FX_GLViewer_setTurboMode",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setTurboMode. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setTurboMode(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_setLight(_swigobj,_swigarg0)  (_swigobj->setLight(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setLight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXLight * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","lite", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLViewer_setLight",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setLight. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXLight_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLViewer_setLight. Expected _FXLight_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setLight(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static FXLight * FXGLViewer_getLight(FXGLViewer *self) {
      FXLight *lite = new FXLight;
      self->getLight(*lite);
      return lite;
    }
static PyObject *_wrap_FX_GLViewer_getLight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXLight * _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getLight",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getLight. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXLight *)FXGLViewer_getLight(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXLight_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLViewer_setOffset(_swigobj,_swigarg0)  (_swigobj->setOffset(_swigarg0))
static PyObject *_wrap_FX_GLViewer_setOffset(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLViewer * _arg0;
    FXdouble  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","offs", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Od:FX_GLViewer_setOffset",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_setOffset. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLViewer_setOffset(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLViewer_getOffset(_swigobj)  (_swigobj->getOffset())
static PyObject *_wrap_FX_GLViewer_getOffset(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXdouble  _result;
    FXGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLViewer_getOffset",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLViewer_getOffset. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXdouble )FX_GLViewer_getOffset(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("d",_result);
    return _resultobj;
}

static void *SwigFXPyGLViewerToFXGLViewer(void *ptr) {
    FXPyGLViewer *src;
    FXGLViewer *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXGLViewer *) src;
    return (void *) dest;
}

static void *SwigFXPyGLViewerToFXGLCanvas(void *ptr) {
    FXPyGLViewer *src;
    FXGLCanvas *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXGLCanvas *) src;
    return (void *) dest;
}

static void *SwigFXPyGLViewerToFXCanvas(void *ptr) {
    FXPyGLViewer *src;
    FXCanvas *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXCanvas *) src;
    return (void *) dest;
}

static void *SwigFXPyGLViewerToFXWindow(void *ptr) {
    FXPyGLViewer *src;
    FXWindow *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXWindow *) src;
    return (void *) dest;
}

static void *SwigFXPyGLViewerToFXDrawable(void *ptr) {
    FXPyGLViewer *src;
    FXDrawable *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXDrawable *) src;
    return (void *) dest;
}

static void *SwigFXPyGLViewerToFXId(void *ptr) {
    FXPyGLViewer *src;
    FXId *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXId *) src;
    return (void *) dest;
}

static void *SwigFXPyGLViewerToFXObject(void *ptr) {
    FXPyGLViewer *src;
    FXObject *dest;
    src = (FXPyGLViewer *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLViewer(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new FXPyGLViewer(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8))
static PyObject *_wrap_new_FXGLViewer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _result;
    FXComposite * _arg0;
    FXGLVisual * _arg1;
    FXObject * _arg2 = (FXObject *) NULL;
    FXSelector  _arg3 = (FXSelector ) 0;
    FXuint  _arg4 = (FXuint ) 0;
    FXint  _arg5 = (FXint ) 0;
    FXint  _arg6 = (FXint ) 0;
    FXint  _arg7 = (FXint ) 0;
    FXint  _arg8 = (FXint ) 0;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    PyObject * _obj2 = 0;
    char *_kwnames[] = { "p","vis","tgt","sel","opts","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO|Oiiiiii:new_FXGLViewer",_kwnames,&_argo0,&_argo1,&_obj2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_FXGLViewer. Expected _FXComposite_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLVisual_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_FXGLViewer. Expected _FXGLVisual_p.");
        return NULL;
        }
    }
    if (_obj2)
{
    if (_obj2 == Py_None)
	_arg2 = NULL;
    else
	SWIG_GetPtrObj(_obj2, (void**) &_arg2, "_FXObject_p");
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLViewer *)new_FXGLViewer(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLViewer_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLViewer_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLViewer_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLViewer * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLViewer_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_onDefault. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLViewer_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLViewer_create(_swigobj)  (_swigobj->_create())
static PyObject *_wrap_FXGLViewer_create(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_create",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_create. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_create(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_destroy(_swigobj)  (_swigobj->_destroy())
static PyObject *_wrap_FXGLViewer_destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_destroy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_destroy. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_destroy(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_detach(_swigobj)  (_swigobj->_detach())
static PyObject *_wrap_FXGLViewer_detach(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_detach",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_detach. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_detach(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_resize(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_resize(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLViewer_resize(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLViewer_resize",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_resize. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_resize(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_getDefaultWidth(_swigobj)  (_swigobj->_getDefaultWidth())
static PyObject *_wrap_FXGLViewer_getDefaultWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_getDefaultWidth",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_getDefaultWidth. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLViewer_getDefaultWidth(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLViewer_getDefaultHeight(_swigobj)  (_swigobj->_getDefaultHeight())
static PyObject *_wrap_FXGLViewer_getDefaultHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_getDefaultHeight",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_getDefaultHeight. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLViewer_getDefaultHeight(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLViewer_show(_swigobj)  (_swigobj->_show())
static PyObject *_wrap_FXGLViewer_show(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_show",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_show. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_show(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_hide(_swigobj)  (_swigobj->_hide())
static PyObject *_wrap_FXGLViewer_hide(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_hide",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_hide. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_hide(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_enable(_swigobj)  (_swigobj->_enable())
static PyObject *_wrap_FXGLViewer_enable(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_enable",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_enable. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_enable(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_disable(_swigobj)  (_swigobj->_disable())
static PyObject *_wrap_FXGLViewer_disable(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_disable",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_disable. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_disable(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_canFocus(_swigobj)  (_swigobj->_canFocus())
static PyObject *_wrap_FXGLViewer_canFocus(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_canFocus",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_canFocus. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_canFocus(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_setFocus(_swigobj)  (_swigobj->_setFocus())
static PyObject *_wrap_FXGLViewer_setFocus(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_setFocus",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_setFocus. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_setFocus(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_killFocus(_swigobj)  (_swigobj->_killFocus())
static PyObject *_wrap_FXGLViewer_killFocus(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_killFocus",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_killFocus. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_killFocus(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_setDefault(_swigobj,_swigarg0)  (_swigobj->_setDefault(_swigarg0))
static PyObject *_wrap_FXGLViewer_setDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    FXbool  _arg1 = (FXbool ) TRUE;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","enable", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|b:FXGLViewer_setDefault",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_setDefault. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_setDefault(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_recalc(_swigobj)  (_swigobj->_recalc())
static PyObject *_wrap_FXGLViewer_recalc(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_recalc",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_recalc. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_recalc(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_layout(_swigobj)  (_swigobj->_layout())
static PyObject *_wrap_FXGLViewer_layout(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_layout",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_layout. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_layout(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_lower(_swigobj)  (_swigobj->_lowerWindow())
static PyObject *_wrap_FXGLViewer_lower(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_lower",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_lower. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_lower(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_move(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_move(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLViewer_move(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLViewer_move",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_move. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_move(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_position(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->_position(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_FXGLViewer_position(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FXGLViewer_position",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_position. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_position(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_isComposite(_swigobj)  (_swigobj->_isComposite())
static PyObject *_wrap_FXGLViewer_isComposite(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_isComposite",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_isComposite. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_isComposite(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_contains(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_contains(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLViewer_contains(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLViewer_contains",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_contains. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_contains(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_getWidthForHeight(_swigobj,_swigarg0)  (_swigobj->_getWidthForHeight(_swigarg0))
static PyObject *_wrap_FXGLViewer_getWidthForHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXGLViewer_getWidthForHeight",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_getWidthForHeight. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLViewer_getWidthForHeight(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLViewer_getHeightForWidth(_swigobj,_swigarg0)  (_swigobj->_getHeightForWidth(_swigarg0))
static PyObject *_wrap_FXGLViewer_getHeightForWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","w", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXGLViewer_getHeightForWidth",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_getHeightForWidth. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FXGLViewer_getHeightForWidth(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FXGLViewer_doesSaveUnder(_swigobj)  (_swigobj->_doesSaveUnder())
static PyObject *_wrap_FXGLViewer_doesSaveUnder(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_doesSaveUnder",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_doesSaveUnder. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_doesSaveUnder(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_reparent(_swigobj,_swigarg0)  (_swigobj->_reparent(_swigarg0))
static PyObject *_wrap_FXGLViewer_reparent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    FXComposite * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","newparent", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLViewer_reparent",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_reparent. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXComposite_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLViewer_reparent. Expected _FXComposite_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_reparent(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_setBackColor(_swigobj,_swigarg0)  (_swigobj->_setBackColor(_swigarg0))
static PyObject *_wrap_FXGLViewer_setBackColor(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    FXColor  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","clr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FXGLViewer_setBackColor",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_setBackColor. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_setBackColor(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_isCurrent(_swigobj)  (_swigobj->_isCurrent())
static PyObject *_wrap_FXGLViewer_isCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_isCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_isCurrent. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_isCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_makeCurrent(_swigobj)  (_swigobj->_makeCurrent())
static PyObject *_wrap_FXGLViewer_makeCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_makeCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_makeCurrent. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_makeCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_makeNonCurrent(_swigobj)  (_swigobj->_makeNonCurrent())
static PyObject *_wrap_FXGLViewer_makeNonCurrent(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_makeNonCurrent",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_makeNonCurrent. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLViewer_makeNonCurrent(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLViewer_swapBuffers(_swigobj)  (_swigobj->_swapBuffers())
static PyObject *_wrap_FXGLViewer_swapBuffers(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLViewer * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLViewer_swapBuffers",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_swapBuffers. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLViewer_swapBuffers(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLViewer_select(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3)  (_swigobj->_select(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_FXGLViewer_select(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject ** _result;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y","w","h", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oiiii:FXGLViewer_select",_kwnames,&_argo0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_select. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject **)FXGLViewer_select(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLObject_pp");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLViewer_pick(_swigobj,_swigarg0,_swigarg1)  (_swigobj->_pick(_swigarg0,_swigarg1))
static PyObject *_wrap_FXGLViewer_pick(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLViewer * _arg0;
    FXint  _arg1;
    FXint  _arg2;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","x","y", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii:FXGLViewer_pick",_kwnames,&_argo0,&_arg1,&_arg2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLViewer_pick. Expected _FXPyGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLViewer_pick(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

static int _wrap_FXPyGLViewer__objectType_set(PyObject *val) {
    FXDragType  tval;

    tval = (FXDragType )PyInt_AsLong(val);
    if (PyErr_Occurred()) {
        PyErr_SetString(PyExc_TypeError,"C variable 'FXGLViewer_objectType'(FXDragType )");
        return 1; 
    }
    FXPyGLViewer::objectType = tval;
    return 0;
}

static PyObject *_wrap_FXPyGLViewer__objectType_get() {
    PyObject * pyobj;

    pyobj = PyInt_FromLong((long) FXPyGLViewer::objectType);
    return pyobj;
}

static void *SwigFXGLObjectToFXObject(void *ptr) {
    FXGLObject *src;
    FXObject *dest;
    src = (FXGLObject *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FX_GLObject() (new FXGLObject())
static PyObject *_wrap_new_FX_GLObject(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    char *_kwnames[] = {  NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_FX_GLObject",_kwnames)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)new_FX_GLObject();

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

static FXRange * FXGLObject_bounds(FXGLObject *self,FXRange & box) {
      self->bounds(box);
      return &box;
    }
static PyObject *_wrap_FX_GLObject_bounds(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXRange * _result;
    FXGLObject * _arg0;
    FXRange * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","box", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLObject_bounds",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_bounds. Expected _FXGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXRange_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLObject_bounds. Expected _FXRange_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXRange *)FXGLObject_bounds(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXRange_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLObject_draw(_swigobj,_swigarg0)  (_swigobj->draw(_swigarg0))
static PyObject *_wrap_FX_GLObject_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLObject_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_draw. Expected _FXGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLObject_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLObject_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLObject_hit(_swigobj,_swigarg0)  (_swigobj->hit(_swigarg0))
static PyObject *_wrap_FX_GLObject_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLObject_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_hit. Expected _FXGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLObject_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLObject_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLObject_copy(_swigobj)  (_swigobj->copy())
static PyObject *_wrap_FX_GLObject_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXGLObject * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLObject_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_copy. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FX_GLObject_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FX_GLObject_identify(_swigobj,_swigarg0)  (_swigobj->identify(_swigarg0))
static PyObject *_wrap_FX_GLObject_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXGLObject * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLObject_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_identify. Expected _FXGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLObject_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FX_GLObject_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FX_GLObject_canDrag(_swigobj)  (_swigobj->canDrag())
static PyObject *_wrap_FX_GLObject_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLObject * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLObject_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_canDrag. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLObject_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLObject_canDelete(_swigobj)  (_swigobj->canDelete())
static PyObject *_wrap_FX_GLObject_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLObject * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLObject_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_canDelete. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLObject_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FX_GLObject_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FX_GLObject_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXGLObject * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FX_GLObject_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLObject_drag. Expected _FXGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLObject_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FX_GLObject_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXPyGLObjectToFXGLObject(void *ptr) {
    FXPyGLObject *src;
    FXGLObject *dest;
    src = (FXPyGLObject *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLObjectToFXObject(void *ptr) {
    FXPyGLObject *src;
    FXObject *dest;
    src = (FXPyGLObject *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLObject() (new FXPyGLObject())
static PyObject *_wrap_new_FXGLObject(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLObject * _result;
    char *_kwnames[] = {  NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_FXGLObject",_kwnames)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLObject *)new_FXGLObject();

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLObject_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLObject_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLObject_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLObject * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLObject_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_onDefault. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLObject_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLObject_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLObject_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLObject * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLObject_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_draw. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLObject_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLObject_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLObject_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLObject_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLObject * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLObject_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_hit. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLObject_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLObject_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLObject_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLObject_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLObject * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLObject_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_copy. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLObject_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLObject_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLObject_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLObject * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLObject_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_identify. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLObject_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLObject_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLObject_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLObject_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLObject * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLObject_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_canDrag. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLObject_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLObject_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLObject_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLObject * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLObject_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_canDelete. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLObject_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLObject_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLObject_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLObject * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLObject_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLObject_drag. Expected _FXPyGLObject_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLObject_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLObject_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLGroupToFXGLObject(void *ptr) {
    FXGLGroup *src;
    FXGLObject *dest;
    src = (FXGLGroup *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLGroupToFXObject(void *ptr) {
    FXGLGroup *src;
    FXObject *dest;
    src = (FXGLGroup *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FX_GLGroup() (new FXGLGroup())
static PyObject *_wrap_new_FX_GLGroup(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _result;
    char *_kwnames[] = {  NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_FX_GLGroup",_kwnames)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLGroup *)new_FX_GLGroup();

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLGroup_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLGroup_getList(_swigobj)  (_swigobj->getList())
static PyObject *_wrap_FX_GLGroup_getList(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObjectList * _result;
    FXGLGroup * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLGroup_getList",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_getList. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLObjectList & _result_ref = FX_GLGroup_getList(_arg0);
    _result = (FXGLObjectList *) &_result_ref;

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLObjectList_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLGroup_no(_swigobj)  (_swigobj->no())
static PyObject *_wrap_FX_GLGroup_no(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXuint  _result;
    FXGLGroup * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLGroup_no",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_no. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXuint )FX_GLGroup_no(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLGroup_child(_swigobj,_swigarg0)  (_swigobj->child(_swigarg0))
static PyObject *_wrap_FX_GLGroup_child(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXGLGroup * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","pos", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLGroup_child",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_child. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FX_GLGroup_child(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FX_GLGroup_insert(_swigobj,_swigarg0,_swigarg1)  (_swigobj->insert(_swigarg0,_swigarg1))
static PyObject *_wrap_FX_GLGroup_insert(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    FXint  _arg1;
    FXGLObject * _arg2;
    PyObject * _argo0 = 0;
    PyObject * _argo2 = 0;
    char *_kwnames[] = { "self","pos","obj", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiO:FX_GLGroup_insert",_kwnames,&_argo0,&_arg1,&_argo2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_insert. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
    if (_argo2) {
        if (_argo2 == Py_None) { _arg2 = NULL; }
        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of FX_GLGroup_insert. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_insert(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLGroup_prepend(_swigobj,_swigarg0)  (_swigobj->prepend(_swigarg0))
static PyObject *_wrap_FX_GLGroup_prepend(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    FXGLObject * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","obj", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLGroup_prepend",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_prepend. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLGroup_prepend. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_prepend(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLGroup_append(_swigobj,_swigarg0)  (_swigobj->append(_swigarg0))
static PyObject *_wrap_FX_GLGroup_append(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    FXGLObject * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","obj", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLGroup_append",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_append. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLGroup_append. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_append(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLGroup_replace(_swigobj,_swigarg0,_swigarg1)  (_swigobj->replace(_swigarg0,_swigarg1))
static PyObject *_wrap_FX_GLGroup_replace(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    FXint  _arg1;
    FXGLObject * _arg2;
    PyObject * _argo0 = 0;
    PyObject * _argo2 = 0;
    char *_kwnames[] = { "self","pos","obj", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiO:FX_GLGroup_replace",_kwnames,&_argo0,&_arg1,&_argo2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_replace. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
    if (_argo2) {
        if (_argo2 == Py_None) { _arg2 = NULL; }
        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of FX_GLGroup_replace. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_replace(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLGroup_removeObj(_swigobj,_swigarg0)  (_swigobj->remove(_swigarg0))
static PyObject *_wrap_FX_GLGroup_removeObj(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    FXGLObject * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","obj", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLGroup_removeObj",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_removeObj. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLObject_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLGroup_removeObj. Expected _FXGLObject_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_removeObj(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLGroup_removePos(_swigobj,_swigarg0)  (_swigobj->remove(_swigarg0))
static PyObject *_wrap_FX_GLGroup_removePos(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","pos", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLGroup_removePos",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_removePos. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_removePos(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLGroup_clear(_swigobj)  (_swigobj->clear())
static PyObject *_wrap_FX_GLGroup_clear(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLGroup * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLGroup_clear",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLGroup_clear. Expected _FXGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLGroup_clear(_arg0);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static void *SwigFXPyGLGroupToFXGLGroup(void *ptr) {
    FXPyGLGroup *src;
    FXGLGroup *dest;
    src = (FXPyGLGroup *) ptr;
    dest = (FXGLGroup *) src;
    return (void *) dest;
}

static void *SwigFXPyGLGroupToFXGLObject(void *ptr) {
    FXPyGLGroup *src;
    FXGLObject *dest;
    src = (FXPyGLGroup *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLGroupToFXObject(void *ptr) {
    FXPyGLGroup *src;
    FXObject *dest;
    src = (FXPyGLGroup *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLGroup() (new FXPyGLGroup())
static PyObject *_wrap_new_FXGLGroup(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLGroup * _result;
    char *_kwnames[] = {  NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_FXGLGroup",_kwnames)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLGroup *)new_FXGLGroup();

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLGroup_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLGroup_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLGroup_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLGroup * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLGroup_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_onDefault. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLGroup_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLGroup_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLGroup_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLGroup * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLGroup_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_draw. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLGroup_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLGroup_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLGroup_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLGroup_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLGroup * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLGroup_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_hit. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLGroup_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLGroup_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLGroup_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLGroup_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLGroup * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLGroup_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_copy. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLGroup_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLGroup_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLGroup_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLGroup * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLGroup_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_identify. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLGroup_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLGroup_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLGroup_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLGroup_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLGroup * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLGroup_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_canDrag. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLGroup_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLGroup_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLGroup_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLGroup * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLGroup_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_canDelete. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLGroup_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLGroup_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLGroup_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLGroup * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLGroup_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLGroup_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLGroup_drag. Expected _FXPyGLGroup_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLGroup_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLGroup_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLShapeToFXGLObject(void *ptr) {
    FXGLShape *src;
    FXGLObject *dest;
    src = (FXGLShape *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLShapeToFXObject(void *ptr) {
    FXGLShape *src;
    FXObject *dest;
    src = (FXGLShape *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FX_GLShape_onDNDDrop(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDNDDrop(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onDNDDrop(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onDNDDrop",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onDNDDrop. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onDNDDrop. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onDNDDrop(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onDNDMotion(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onDNDMotion(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onDNDMotion(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onDNDMotion",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onDNDMotion. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onDNDMotion. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onDNDMotion(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onQueryTip(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onQueryTip(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onQueryTip(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onQueryTip",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onQueryTip. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onQueryTip. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onQueryTip(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onCmdShadeOff(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdShadeOff(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onCmdShadeOff(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onCmdShadeOff",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onCmdShadeOff. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onCmdShadeOff. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onCmdShadeOff(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onUpdShadeOff(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdShadeOff(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onUpdShadeOff(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onUpdShadeOff",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onUpdShadeOff. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onUpdShadeOff. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onUpdShadeOff(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onCmdShadeOn(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdShadeOn(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onCmdShadeOn(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onCmdShadeOn",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onCmdShadeOn. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onCmdShadeOn. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onCmdShadeOn(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onUpdShadeOn(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdShadeOn(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onUpdShadeOn(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onUpdShadeOn",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onUpdShadeOn. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onUpdShadeOn. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onUpdShadeOn(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onCmdShadeSmooth(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdShadeSmooth(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onCmdShadeSmooth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onCmdShadeSmooth",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onCmdShadeSmooth. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onCmdShadeSmooth. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onCmdShadeSmooth(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onUpdShadeSmooth(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdShadeSmooth(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onUpdShadeSmooth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onUpdShadeSmooth",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onUpdShadeSmooth. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onUpdShadeSmooth. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onUpdShadeSmooth(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onCmdFrontMaterial(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdFrontMaterial(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onCmdFrontMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onCmdFrontMaterial",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onCmdFrontMaterial. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onCmdFrontMaterial. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onCmdFrontMaterial(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onUpdFrontMaterial(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdFrontMaterial(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onUpdFrontMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onUpdFrontMaterial",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onUpdFrontMaterial. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onUpdFrontMaterial. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onUpdFrontMaterial(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onCmdBackMaterial(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdBackMaterial(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onCmdBackMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onCmdBackMaterial",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onCmdBackMaterial. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onCmdBackMaterial. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onCmdBackMaterial(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onUpdBackMaterial(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdBackMaterial(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onUpdBackMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onUpdBackMaterial",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onUpdBackMaterial. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onUpdBackMaterial. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onUpdBackMaterial(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onCmdDrawingStyle(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onCmdDrawingStyle(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onCmdDrawingStyle(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onCmdDrawingStyle",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onCmdDrawingStyle. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onCmdDrawingStyle. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onCmdDrawingStyle(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FX_GLShape_onUpdDrawingStyle(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->onUpdDrawingStyle(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FX_GLShape_onUpdDrawingStyle(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _argo3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","arg4", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FX_GLShape_onUpdDrawingStyle",_kwnames,&_argo0,&_obj1,&_arg2,&_argo3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_onUpdDrawingStyle. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
    if (_argo3) {
        if (_argo3 == Py_None) { _arg3 = NULL; }
        else if (SWIG_GetPtrObj(_argo3,(void **) &_arg3,(char *) 0 )) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of FX_GLShape_onUpdDrawingStyle. Expected _void_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FX_GLShape_onUpdDrawingStyle(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define new_FX_GLShape(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new FXGLShape(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_new_FX_GLShape(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLShape * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXuint  _arg3;
    char *_kwnames[] = { "x","y","z","opts", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fffi:new_FX_GLShape",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLShape *)new_FX_GLShape(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLShape_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLShape_setTipText(_swigobj,_swigarg0)  (_swigobj->setTipText(_swigarg0))
static PyObject *_wrap_FX_GLShape_setTipText(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLShape * _arg0;
    FXString * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    char *_kwnames[] = { "self","text", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLShape_setTipText",_kwnames,&_argo0,&_obj1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_setTipText. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = new FXString;
    else if (!PyString_Check(_obj1)) {
	PyErr_SetString(PyExc_TypeError, "not a string");
	return NULL;
    }
    else
	_arg1 = new FXString(PyString_AsString(_obj1));
}
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLShape_setTipText(_arg0,*_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
{
    delete _arg1;
}
    return _resultobj;
}

#define FX_GLShape_getTipText(_swigobj)  (_swigobj->getTipText())
static PyObject *_wrap_FX_GLShape_getTipText(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXString * _result;
    FXGLShape * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLShape_getTipText",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_getTipText. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = new FXString (FX_GLShape_getTipText(_arg0));

    FXPy_END_ALLOW_THREADS
}{
    _resultobj = PyString_FromString(_result->text());
}
{
    delete _result;
}
    return _resultobj;
}

#define FX_GLShape_setMaterial(_swigobj,_swigarg0,_swigarg1)  (_swigobj->setMaterial(_swigarg0,_swigarg1))
static PyObject *_wrap_FX_GLShape_setMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLShape * _arg0;
    FXint  _arg1;
    FXMaterial * _arg2;
    PyObject * _argo0 = 0;
    PyObject * _argo2 = 0;
    char *_kwnames[] = { "self","side","mtl", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OiO:FX_GLShape_setMaterial",_kwnames,&_argo0,&_arg1,&_argo2)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_setMaterial. Expected _FXGLShape_p.");
        return NULL;
        }
    }
    if (_argo2) {
        if (_argo2 == Py_None) { _arg2 = NULL; }
        else if (SWIG_GetPtrObj(_argo2,(void **) &_arg2,"_FXMaterial_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of FX_GLShape_setMaterial. Expected _FXMaterial_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLShape_setMaterial(_arg0,_arg1,*_arg2);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

static FXMaterial * FXGLShape_getMaterial(FXGLShape *self,FXint  side) {
      FXMaterial *mtl = new FXMaterial;
      self->getMaterial(side,*mtl);
      return mtl;
    }
static PyObject *_wrap_FX_GLShape_getMaterial(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXMaterial * _result;
    FXGLShape * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","side", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLShape_getMaterial",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLShape_getMaterial. Expected _FXGLShape_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXMaterial *)FXGLShape_getMaterial(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXMaterial_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static void *SwigFXPyGLShapeToFXGLShape(void *ptr) {
    FXPyGLShape *src;
    FXGLShape *dest;
    src = (FXPyGLShape *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXPyGLShapeToFXGLObject(void *ptr) {
    FXPyGLShape *src;
    FXGLObject *dest;
    src = (FXPyGLShape *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLShapeToFXObject(void *ptr) {
    FXPyGLShape *src;
    FXObject *dest;
    src = (FXPyGLShape *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLShape(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new FXPyGLShape(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_new_FXGLShape(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLShape * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXuint  _arg3;
    char *_kwnames[] = { "x","y","z","opts", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fffi:new_FXGLShape",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLShape *)new_FXGLShape(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLShape_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLShape_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLShape_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLShape * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLShape_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_onDefault. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLShape_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLShape_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLShape_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLShape * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLShape_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_draw. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLShape_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLShape_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLShape_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLShape_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLShape * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLShape_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_hit. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLShape_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLShape_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLShape_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLShape_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLShape * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLShape_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_copy. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLShape_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLShape_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLShape_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLShape * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLShape_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_identify. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLShape_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLShape_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLShape_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLShape_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLShape * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLShape_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_canDrag. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLShape_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLShape_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLShape_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLShape * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLShape_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_canDelete. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLShape_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLShape_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLShape_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLShape * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLShape_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLShape_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLShape_drag. Expected _FXPyGLShape_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLShape_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLShape_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLPointToFXGLObject(void *ptr) {
    FXGLPoint *src;
    FXGLObject *dest;
    src = (FXGLPoint *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLPointToFXObject(void *ptr) {
    FXGLPoint *src;
    FXObject *dest;
    src = (FXGLPoint *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FXGLPoint_pos_set(_swigobj,_swigval) (_swigobj->pos = *(_swigval),_swigval)
static PyObject *_wrap_FX_GLPoint_pos_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLPoint * _arg0;
    FXVec * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","pos", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLPoint_pos_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLPoint_pos_set. Expected _FXGLPoint_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXVec_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLPoint_pos_set. Expected _FXVec_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXVec *)FXGLPoint_pos_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLPoint_pos_get(_swigobj) (&_swigobj->pos)
static PyObject *_wrap_FX_GLPoint_pos_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXVec * _result;
    FXGLPoint * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLPoint_pos_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLPoint_pos_get. Expected _FXGLPoint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXVec *)FXGLPoint_pos_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXVec_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define new_FX_GLPoint(_swigarg0,_swigarg1,_swigarg2) (new FXGLPoint(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_new_FX_GLPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLPoint * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    char *_kwnames[] = { "x","y","z", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff:new_FX_GLPoint",_kwnames,&_arg0,&_arg1,&_arg2)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLPoint *)new_FX_GLPoint(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLPoint_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static void *SwigFXPyGLPointToFXGLPoint(void *ptr) {
    FXPyGLPoint *src;
    FXGLPoint *dest;
    src = (FXPyGLPoint *) ptr;
    dest = (FXGLPoint *) src;
    return (void *) dest;
}

static void *SwigFXPyGLPointToFXGLObject(void *ptr) {
    FXPyGLPoint *src;
    FXGLObject *dest;
    src = (FXPyGLPoint *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLPointToFXObject(void *ptr) {
    FXPyGLPoint *src;
    FXObject *dest;
    src = (FXPyGLPoint *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLPoint(_swigarg0,_swigarg1,_swigarg2) (new FXPyGLPoint(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_new_FXGLPoint(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLPoint * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    char *_kwnames[] = { "x","y","z", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff:new_FXGLPoint",_kwnames,&_arg0,&_arg1,&_arg2)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLPoint *)new_FXGLPoint(_arg0,_arg1,_arg2);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLPoint_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLPoint_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLPoint_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLPoint * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLPoint_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_onDefault. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLPoint_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLPoint_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLPoint_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLPoint * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLPoint_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_draw. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLPoint_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLPoint_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLPoint_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLPoint_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLPoint * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLPoint_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_hit. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLPoint_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLPoint_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLPoint_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLPoint_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLPoint * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLPoint_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_copy. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLPoint_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLPoint_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLPoint_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLPoint * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLPoint_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_identify. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLPoint_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLPoint_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLPoint_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLPoint_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLPoint * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLPoint_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_canDrag. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLPoint_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLPoint_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLPoint_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLPoint * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLPoint_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_canDelete. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLPoint_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLPoint_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLPoint_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLPoint * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLPoint_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLPoint_drag. Expected _FXPyGLPoint_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLPoint_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLPoint_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLLineToFXGLObject(void *ptr) {
    FXGLLine *src;
    FXGLObject *dest;
    src = (FXGLLine *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLLineToFXObject(void *ptr) {
    FXGLLine *src;
    FXObject *dest;
    src = (FXGLLine *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FXGLLine_fm_set(_swigobj,_swigval) (_swigobj->fm = *(_swigval),_swigval)
static PyObject *_wrap_FX_GLLine_fm_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLPoint * _result;
    FXGLLine * _arg0;
    FXGLPoint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","fm", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLLine_fm_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLLine_fm_set. Expected _FXGLLine_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLLine_fm_set. Expected _FXGLPoint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLPoint *)FXGLLine_fm_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLPoint_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLLine_fm_get(_swigobj) (&_swigobj->fm)
static PyObject *_wrap_FX_GLLine_fm_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLPoint * _result;
    FXGLLine * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLLine_fm_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLLine_fm_get. Expected _FXGLLine_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLPoint *)FXGLLine_fm_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLPoint_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLLine_to_set(_swigobj,_swigval) (_swigobj->to = *(_swigval),_swigval)
static PyObject *_wrap_FX_GLLine_to_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLPoint * _result;
    FXGLLine * _arg0;
    FXGLPoint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","to", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLLine_to_set",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLLine_to_set. Expected _FXGLLine_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLPoint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLLine_to_set. Expected _FXGLPoint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLPoint *)FXGLLine_to_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLPoint_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLLine_to_get(_swigobj) (&_swigobj->to)
static PyObject *_wrap_FX_GLLine_to_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLPoint * _result;
    FXGLLine * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLLine_to_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLLine_to_get. Expected _FXGLLine_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLPoint *)FXGLLine_to_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLPoint_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define new_FX_GLLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new FXGLLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
static PyObject *_wrap_new_FX_GLLine(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLLine * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3;
    FXfloat  _arg4;
    FXfloat  _arg5;
    char *_kwnames[] = { "fx","fy","fz","tx","ty","tz", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"ffffff:new_FX_GLLine",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLLine *)new_FX_GLLine(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLLine_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static void *SwigFXPyGLLineToFXGLLine(void *ptr) {
    FXPyGLLine *src;
    FXGLLine *dest;
    src = (FXPyGLLine *) ptr;
    dest = (FXGLLine *) src;
    return (void *) dest;
}

static void *SwigFXPyGLLineToFXGLObject(void *ptr) {
    FXPyGLLine *src;
    FXGLObject *dest;
    src = (FXPyGLLine *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLLineToFXObject(void *ptr) {
    FXPyGLLine *src;
    FXObject *dest;
    src = (FXPyGLLine *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new FXPyGLLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
static PyObject *_wrap_new_FXGLLine(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLLine * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3;
    FXfloat  _arg4;
    FXfloat  _arg5;
    char *_kwnames[] = { "fx","fy","fz","tx","ty","tz", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"ffffff:new_FXGLLine",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLLine *)new_FXGLLine(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLLine_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLLine_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLLine_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLLine * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLLine_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_onDefault. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLLine_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLLine_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLLine_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLLine * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLLine_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_draw. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLLine_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLLine_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLLine_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLLine_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLLine * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLLine_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_hit. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLLine_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLLine_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLLine_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLLine_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLLine * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLLine_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_copy. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLLine_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLLine_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLLine_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLLine * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLLine_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_identify. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLLine_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLLine_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLLine_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLLine_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLLine * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLLine_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_canDrag. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLLine_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLLine_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLLine_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLLine * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLLine_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_canDelete. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLLine_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLLine_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLLine_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLLine * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLLine_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLLine_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLLine_drag. Expected _FXPyGLLine_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLLine_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLLine_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLCubeToFXGLShape(void *ptr) {
    FXGLCube *src;
    FXGLShape *dest;
    src = (FXGLCube *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXGLCubeToFXGLObject(void *ptr) {
    FXGLCube *src;
    FXGLObject *dest;
    src = (FXGLCube *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLCubeToFXObject(void *ptr) {
    FXGLCube *src;
    FXObject *dest;
    src = (FXGLCube *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FXGLCube_width_set(_swigobj,_swigval) (_swigobj->width = _swigval,_swigval)
static PyObject *_wrap_FX_GLCube_width_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","width", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCube_width_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_width_set. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCube_width_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCube_width_get(_swigobj) ((FXfloat ) _swigobj->width)
static PyObject *_wrap_FX_GLCube_width_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCube_width_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_width_get. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCube_width_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCube_height_set(_swigobj,_swigval) (_swigobj->height = _swigval,_swigval)
static PyObject *_wrap_FX_GLCube_height_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","height", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCube_height_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_height_set. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCube_height_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCube_height_get(_swigobj) ((FXfloat ) _swigobj->height)
static PyObject *_wrap_FX_GLCube_height_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCube_height_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_height_get. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCube_height_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCube_depth_set(_swigobj,_swigval) (_swigobj->depth = _swigval,_swigval)
static PyObject *_wrap_FX_GLCube_depth_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","depth", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCube_depth_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_depth_set. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCube_depth_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCube_depth_get(_swigobj) ((FXfloat ) _swigobj->depth)
static PyObject *_wrap_FX_GLCube_depth_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCube_depth_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_depth_get. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCube_depth_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define new_FX_GLCube(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new FXGLCube(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
static PyObject *_wrap_new_FX_GLCube(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCube * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    FXfloat  _arg4 = (FXfloat ) 1.0;
    FXfloat  _arg5 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","w","h","d", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|fff:new_FX_GLCube",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLCube *)new_FX_GLCube(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLCube_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLCube_setWidth(_swigobj,_swigarg0)  (_swigobj->setWidth(_swigarg0))
static PyObject *_wrap_FX_GLCube_setWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCube * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","w", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCube_setWidth",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_setWidth. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCube_setWidth(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCube_getWidth(_swigobj)  (_swigobj->getWidth())
static PyObject *_wrap_FX_GLCube_getWidth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCube_getWidth",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_getWidth. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCube_getWidth(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FX_GLCube_setHeight(_swigobj,_swigarg0)  (_swigobj->setHeight(_swigarg0))
static PyObject *_wrap_FX_GLCube_setHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCube * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCube_setHeight",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_setHeight. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCube_setHeight(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCube_getHeight(_swigobj)  (_swigobj->getHeight())
static PyObject *_wrap_FX_GLCube_getHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCube_getHeight",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_getHeight. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCube_getHeight(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FX_GLCube_setDepth(_swigobj,_swigarg0)  (_swigobj->setDepth(_swigarg0))
static PyObject *_wrap_FX_GLCube_setDepth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCube * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","d", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCube_setDepth",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_setDepth. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCube_setDepth(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCube_getDepth(_swigobj)  (_swigobj->getDepth())
static PyObject *_wrap_FX_GLCube_getDepth(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCube_getDepth",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCube_getDepth. Expected _FXGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCube_getDepth(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

static void *SwigFXPyGLCubeToFXGLCube(void *ptr) {
    FXPyGLCube *src;
    FXGLCube *dest;
    src = (FXPyGLCube *) ptr;
    dest = (FXGLCube *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCubeToFXGLShape(void *ptr) {
    FXPyGLCube *src;
    FXGLShape *dest;
    src = (FXPyGLCube *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCubeToFXGLObject(void *ptr) {
    FXPyGLCube *src;
    FXGLObject *dest;
    src = (FXPyGLCube *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCubeToFXObject(void *ptr) {
    FXPyGLCube *src;
    FXObject *dest;
    src = (FXPyGLCube *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLCube(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new FXPyGLCube(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5))
static PyObject *_wrap_new_FXGLCube(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCube * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    FXfloat  _arg4 = (FXfloat ) 1.0;
    FXfloat  _arg5 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","w","h","d", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|fff:new_FXGLCube",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLCube *)new_FXGLCube(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLCube_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLCube_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLCube_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLCube * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLCube_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_onDefault. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLCube_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLCube_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLCube_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCube * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCube_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_draw. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCube_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCube_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCube_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLCube_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCube * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCube_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_hit. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCube_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCube_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCube_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLCube_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCube_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_copy. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLCube_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLCube_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLCube_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLCube * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCube_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_identify. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCube_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLCube_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLCube_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLCube_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCube_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_canDrag. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCube_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCube_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLCube_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCube * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCube_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_canDelete. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCube_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCube_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLCube_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCube * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLCube_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCube_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCube_drag. Expected _FXPyGLCube_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCube_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCube_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLSphereToFXGLShape(void *ptr) {
    FXGLSphere *src;
    FXGLShape *dest;
    src = (FXGLSphere *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXGLSphereToFXGLObject(void *ptr) {
    FXGLSphere *src;
    FXGLObject *dest;
    src = (FXGLSphere *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLSphereToFXObject(void *ptr) {
    FXGLSphere *src;
    FXObject *dest;
    src = (FXGLSphere *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FXGLSphere_radius_set(_swigobj,_swigval) (_swigobj->radius = _swigval,_swigval)
static PyObject *_wrap_FX_GLSphere_radius_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLSphere * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","radius", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLSphere_radius_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_radius_set. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLSphere_radius_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLSphere_radius_get(_swigobj) ((FXfloat ) _swigobj->radius)
static PyObject *_wrap_FX_GLSphere_radius_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLSphere_radius_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_radius_get. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLSphere_radius_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define new_FX_GLSphere(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new FXGLSphere(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_new_FX_GLSphere(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLSphere * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","r", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|f:new_FX_GLSphere",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLSphere *)new_FX_GLSphere(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLSphere_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLSphere_setRadius(_swigobj,_swigarg0)  (_swigobj->setRadius(_swigarg0))
static PyObject *_wrap_FX_GLSphere_setRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLSphere * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","r", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLSphere_setRadius",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_setRadius. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLSphere_setRadius(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLSphere_getRadius(_swigobj)  (_swigobj->getRadius())
static PyObject *_wrap_FX_GLSphere_getRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLSphere_getRadius",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_getRadius. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLSphere_getRadius(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FX_GLSphere_setSlices(_swigobj,_swigarg0)  (_swigobj->setSlices(_swigarg0))
static PyObject *_wrap_FX_GLSphere_setSlices(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLSphere * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","s", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLSphere_setSlices",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_setSlices. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLSphere_setSlices(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLSphere_getSlices(_swigobj)  (_swigobj->getSlices())
static PyObject *_wrap_FX_GLSphere_getSlices(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLSphere_getSlices",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_getSlices. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLSphere_getSlices(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLSphere_setStacks(_swigobj,_swigarg0)  (_swigobj->setStacks(_swigarg0))
static PyObject *_wrap_FX_GLSphere_setStacks(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLSphere * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","s", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLSphere_setStacks",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_setStacks. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLSphere_setStacks(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLSphere_getStacks(_swigobj)  (_swigobj->getStacks())
static PyObject *_wrap_FX_GLSphere_getStacks(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLSphere_getStacks",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLSphere_getStacks. Expected _FXGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLSphere_getStacks(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

static void *SwigFXPyGLSphereToFXGLSphere(void *ptr) {
    FXPyGLSphere *src;
    FXGLSphere *dest;
    src = (FXPyGLSphere *) ptr;
    dest = (FXGLSphere *) src;
    return (void *) dest;
}

static void *SwigFXPyGLSphereToFXGLShape(void *ptr) {
    FXPyGLSphere *src;
    FXGLShape *dest;
    src = (FXPyGLSphere *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXPyGLSphereToFXGLObject(void *ptr) {
    FXPyGLSphere *src;
    FXGLObject *dest;
    src = (FXPyGLSphere *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLSphereToFXObject(void *ptr) {
    FXPyGLSphere *src;
    FXObject *dest;
    src = (FXPyGLSphere *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLSphere(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new FXPyGLSphere(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_new_FXGLSphere(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLSphere * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","r", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|f:new_FXGLSphere",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLSphere *)new_FXGLSphere(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLSphere_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLSphere_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLSphere_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLSphere * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLSphere_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_onDefault. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLSphere_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLSphere_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLSphere_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLSphere * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLSphere_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_draw. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLSphere_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLSphere_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLSphere_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLSphere_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLSphere * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLSphere_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_hit. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLSphere_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLSphere_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLSphere_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLSphere_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLSphere_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_copy. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLSphere_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLSphere_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLSphere_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLSphere * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLSphere_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_identify. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLSphere_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLSphere_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLSphere_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLSphere_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLSphere_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_canDrag. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLSphere_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLSphere_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLSphere_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLSphere * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLSphere_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_canDelete. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLSphere_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLSphere_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLSphere_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLSphere * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLSphere_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLSphere_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLSphere_drag. Expected _FXPyGLSphere_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLSphere_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLSphere_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLCylinderToFXGLShape(void *ptr) {
    FXGLCylinder *src;
    FXGLShape *dest;
    src = (FXGLCylinder *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXGLCylinderToFXGLObject(void *ptr) {
    FXGLCylinder *src;
    FXGLObject *dest;
    src = (FXGLCylinder *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLCylinderToFXObject(void *ptr) {
    FXGLCylinder *src;
    FXObject *dest;
    src = (FXGLCylinder *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FXGLCylinder_height_set(_swigobj,_swigval) (_swigobj->height = _swigval,_swigval)
static PyObject *_wrap_FX_GLCylinder_height_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCylinder * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","height", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCylinder_height_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_height_set. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCylinder_height_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCylinder_height_get(_swigobj) ((FXfloat ) _swigobj->height)
static PyObject *_wrap_FX_GLCylinder_height_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCylinder_height_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_height_get. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCylinder_height_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCylinder_radius_set(_swigobj,_swigval) (_swigobj->radius = _swigval,_swigval)
static PyObject *_wrap_FX_GLCylinder_radius_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCylinder * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","radius", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCylinder_radius_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_radius_set. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCylinder_radius_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCylinder_radius_get(_swigobj) ((FXfloat ) _swigobj->radius)
static PyObject *_wrap_FX_GLCylinder_radius_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCylinder_radius_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_radius_get. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCylinder_radius_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define new_FX_GLCylinder(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new FXGLCylinder(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_new_FX_GLCylinder(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCylinder * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    FXfloat  _arg4 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","h","r", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|ff:new_FX_GLCylinder",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLCylinder *)new_FX_GLCylinder(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLCylinder_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLCylinder_setRadius(_swigobj,_swigarg0)  (_swigobj->setRadius(_swigarg0))
static PyObject *_wrap_FX_GLCylinder_setRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCylinder * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","r", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCylinder_setRadius",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_setRadius. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCylinder_setRadius(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCylinder_getRadius(_swigobj)  (_swigobj->getRadius())
static PyObject *_wrap_FX_GLCylinder_getRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCylinder_getRadius",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_getRadius. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCylinder_getRadius(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FX_GLCylinder_setHeight(_swigobj,_swigarg0)  (_swigobj->setHeight(_swigarg0))
static PyObject *_wrap_FX_GLCylinder_setHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCylinder * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCylinder_setHeight",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_setHeight. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCylinder_setHeight(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCylinder_getHeight(_swigobj)  (_swigobj->getHeight())
static PyObject *_wrap_FX_GLCylinder_getHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCylinder_getHeight",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCylinder_getHeight. Expected _FXGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCylinder_getHeight(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

static void *SwigFXPyGLCylinderToFXGLCylinder(void *ptr) {
    FXPyGLCylinder *src;
    FXGLCylinder *dest;
    src = (FXPyGLCylinder *) ptr;
    dest = (FXGLCylinder *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCylinderToFXGLShape(void *ptr) {
    FXPyGLCylinder *src;
    FXGLShape *dest;
    src = (FXPyGLCylinder *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCylinderToFXGLObject(void *ptr) {
    FXPyGLCylinder *src;
    FXGLObject *dest;
    src = (FXPyGLCylinder *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLCylinderToFXObject(void *ptr) {
    FXPyGLCylinder *src;
    FXObject *dest;
    src = (FXPyGLCylinder *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLCylinder(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new FXPyGLCylinder(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_new_FXGLCylinder(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCylinder * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    FXfloat  _arg4 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","h","r", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|ff:new_FXGLCylinder",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLCylinder *)new_FXGLCylinder(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLCylinder_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLCylinder_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLCylinder_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLCylinder * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLCylinder_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_onDefault. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLCylinder_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLCylinder_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLCylinder_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCylinder * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCylinder_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_draw. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCylinder_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCylinder_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCylinder_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLCylinder_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCylinder * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCylinder_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_hit. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCylinder_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCylinder_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCylinder_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLCylinder_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCylinder_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_copy. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLCylinder_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLCylinder_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLCylinder_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLCylinder * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCylinder_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_identify. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCylinder_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLCylinder_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLCylinder_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLCylinder_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCylinder_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_canDrag. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCylinder_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCylinder_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLCylinder_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCylinder * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCylinder_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_canDelete. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCylinder_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCylinder_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLCylinder_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCylinder * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLCylinder_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCylinder_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCylinder_drag. Expected _FXPyGLCylinder_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCylinder_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCylinder_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLConeToFXGLShape(void *ptr) {
    FXGLCone *src;
    FXGLShape *dest;
    src = (FXGLCone *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXGLConeToFXGLObject(void *ptr) {
    FXGLCone *src;
    FXGLObject *dest;
    src = (FXGLCone *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLConeToFXObject(void *ptr) {
    FXGLCone *src;
    FXObject *dest;
    src = (FXGLCone *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define FXGLCone_height_set(_swigobj,_swigval) (_swigobj->height = _swigval,_swigval)
static PyObject *_wrap_FX_GLCone_height_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCone * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","height", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCone_height_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_height_set. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCone_height_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCone_height_get(_swigobj) ((FXfloat ) _swigobj->height)
static PyObject *_wrap_FX_GLCone_height_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCone_height_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_height_get. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCone_height_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCone_radius_set(_swigobj,_swigval) (_swigobj->radius = _swigval,_swigval)
static PyObject *_wrap_FX_GLCone_radius_set(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCone * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","radius", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCone_radius_set",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_radius_set. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCone_radius_set(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FXGLCone_radius_get(_swigobj) ((FXfloat ) _swigobj->radius)
static PyObject *_wrap_FX_GLCone_radius_get(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCone_radius_get",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_radius_get. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FXGLCone_radius_get(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define new_FX_GLCone(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new FXGLCone(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_new_FX_GLCone(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCone * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    FXfloat  _arg4 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","h","r", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|ff:new_FX_GLCone",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLCone *)new_FX_GLCone(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLCone_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLCone_setRadius(_swigobj,_swigarg0)  (_swigobj->setRadius(_swigarg0))
static PyObject *_wrap_FX_GLCone_setRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCone * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","r", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCone_setRadius",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_setRadius. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCone_setRadius(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCone_getRadius(_swigobj)  (_swigobj->getRadius())
static PyObject *_wrap_FX_GLCone_getRadius(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCone_getRadius",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_getRadius. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCone_getRadius(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

#define FX_GLCone_setHeight(_swigobj,_swigarg0)  (_swigobj->setHeight(_swigarg0))
static PyObject *_wrap_FX_GLCone_setHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLCone * _arg0;
    FXfloat  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","h", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Of:FX_GLCone_setHeight",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_setHeight. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLCone_setHeight(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLCone_getHeight(_swigobj)  (_swigobj->getHeight())
static PyObject *_wrap_FX_GLCone_getHeight(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat  _result;
    FXGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLCone_getHeight",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLCone_getHeight. Expected _FXGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat )FX_GLCone_getHeight(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("f",_result);
    return _resultobj;
}

static void *SwigFXPyGLConeToFXGLCone(void *ptr) {
    FXPyGLCone *src;
    FXGLCone *dest;
    src = (FXPyGLCone *) ptr;
    dest = (FXGLCone *) src;
    return (void *) dest;
}

static void *SwigFXPyGLConeToFXGLShape(void *ptr) {
    FXPyGLCone *src;
    FXGLShape *dest;
    src = (FXPyGLCone *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXPyGLConeToFXGLObject(void *ptr) {
    FXPyGLCone *src;
    FXGLObject *dest;
    src = (FXPyGLCone *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLConeToFXObject(void *ptr) {
    FXPyGLCone *src;
    FXObject *dest;
    src = (FXPyGLCone *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLCone(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new FXPyGLCone(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_new_FXGLCone(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCone * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXfloat  _arg3 = (FXfloat ) 1.0;
    FXfloat  _arg4 = (FXfloat ) 1.0;
    char *_kwnames[] = { "x","y","z","h","r", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fff|ff:new_FXGLCone",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) 
        return NULL;
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLCone *)new_FXGLCone(_arg0,_arg1,_arg2,_arg3,_arg4);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLCone_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLCone_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLCone_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLCone * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLCone_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_onDefault. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLCone_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLCone_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLCone_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCone * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCone_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_draw. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCone_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCone_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCone_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLCone_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLCone * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCone_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_hit. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCone_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLCone_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLCone_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLCone_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCone_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_copy. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLCone_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLCone_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLCone_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLCone * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLCone_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_identify. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCone_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLCone_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLCone_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLCone_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCone_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_canDrag. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCone_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCone_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLCone_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCone * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLCone_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_canDelete. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCone_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLCone_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLCone_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLCone * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLCone_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLCone_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLCone_drag. Expected _FXPyGLCone_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLCone_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLCone_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static void *SwigFXGLTriangleMeshToFXGLShape(void *ptr) {
    FXGLTriangleMesh *src;
    FXGLShape *dest;
    src = (FXGLTriangleMesh *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXGLTriangleMeshToFXGLObject(void *ptr) {
    FXGLTriangleMesh *src;
    FXGLObject *dest;
    src = (FXGLTriangleMesh *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXGLTriangleMeshToFXObject(void *ptr) {
    FXGLTriangleMesh *src;
    FXObject *dest;
    src = (FXGLTriangleMesh *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FX_GLTriangleMesh(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new FXGLTriangleMesh(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7))
static PyObject *_wrap_new_FX_GLTriangleMesh(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLTriangleMesh * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXint  _arg3;
    FXfloat * _arg4;
    FXfloat * _arg5 = (FXfloat *) NULL;
    FXfloat * _arg6 = (FXfloat *) NULL;
    FXfloat * _arg7 = (FXfloat *) NULL;
    PyObject * _argo4 = 0;
    PyObject * _argo5 = 0;
    PyObject * _argo6 = 0;
    PyObject * _argo7 = 0;
    char *_kwnames[] = { "x","y","z","nv","v","n","c","t", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fffiO|OOO:new_FX_GLTriangleMesh",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_argo4,&_argo5,&_argo6,&_argo7)) 
        return NULL;
    if (_argo4) {
        if (_argo4 == Py_None) { _arg4 = NULL; }
        else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_FX_GLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
    if (_argo5) {
        if (_argo5 == Py_None) { _arg5 = NULL; }
        else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_FX_GLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
    if (_argo6) {
        if (_argo6 == Py_None) { _arg6 = NULL; }
        else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_FX_GLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
    if (_argo7) {
        if (_argo7 == Py_None) { _arg7 = NULL; }
        else if (SWIG_GetPtrObj(_argo7,(void **) &_arg7,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_FX_GLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLTriangleMesh *)new_FX_GLTriangleMesh(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXGLTriangleMesh_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLTriangleMesh_setVertexNumber(_swigobj,_swigarg0)  (_swigobj->setVertexNumber(_swigarg0))
static PyObject *_wrap_FX_GLTriangleMesh_setVertexNumber(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLTriangleMesh * _arg0;
    FXint  _arg1;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self","nvertices", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oi:FX_GLTriangleMesh_setVertexNumber",_kwnames,&_argo0,&_arg1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_setVertexNumber. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLTriangleMesh_setVertexNumber(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLTriangleMesh_getVertexNumber(_swigobj)  (_swigobj->getVertexNumber())
static PyObject *_wrap_FX_GLTriangleMesh_getVertexNumber(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXint  _result;
    FXGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLTriangleMesh_getVertexNumber",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_getVertexNumber. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXint )FX_GLTriangleMesh_getVertexNumber(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("i",_result);
    return _resultobj;
}

#define FX_GLTriangleMesh_setVertexBuffer(_swigobj,_swigarg0)  (_swigobj->setVertexBuffer(_swigarg0))
static PyObject *_wrap_FX_GLTriangleMesh_setVertexBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLTriangleMesh * _arg0;
    FXfloat * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","vertices", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLTriangleMesh_setVertexBuffer",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_setVertexBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLTriangleMesh_setVertexBuffer. Expected _FXfloat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLTriangleMesh_setVertexBuffer(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLTriangleMesh_setColorBuffer(_swigobj,_swigarg0)  (_swigobj->setColorBuffer(_swigarg0))
static PyObject *_wrap_FX_GLTriangleMesh_setColorBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLTriangleMesh * _arg0;
    FXfloat * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","colors", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLTriangleMesh_setColorBuffer",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_setColorBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLTriangleMesh_setColorBuffer. Expected _FXfloat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLTriangleMesh_setColorBuffer(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLTriangleMesh_setNormalBuffer(_swigobj,_swigarg0)  (_swigobj->setNormalBuffer(_swigarg0))
static PyObject *_wrap_FX_GLTriangleMesh_setNormalBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLTriangleMesh * _arg0;
    FXfloat * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","normals", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLTriangleMesh_setNormalBuffer",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_setNormalBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLTriangleMesh_setNormalBuffer. Expected _FXfloat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLTriangleMesh_setNormalBuffer(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLTriangleMesh_setTextureCoordBuffer(_swigobj,_swigarg0)  (_swigobj->setTextureCoordBuffer(_swigarg0))
static PyObject *_wrap_FX_GLTriangleMesh_setTextureCoordBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLTriangleMesh * _arg0;
    FXfloat * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","textures", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FX_GLTriangleMesh_setTextureCoordBuffer",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_setTextureCoordBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FX_GLTriangleMesh_setTextureCoordBuffer. Expected _FXfloat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FX_GLTriangleMesh_setTextureCoordBuffer(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FX_GLTriangleMesh_getVertexBuffer(_swigobj)  (_swigobj->getVertexBuffer())
static PyObject *_wrap_FX_GLTriangleMesh_getVertexBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat * _result;
    FXGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLTriangleMesh_getVertexBuffer",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_getVertexBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat *)FX_GLTriangleMesh_getVertexBuffer(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXfloat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLTriangleMesh_getColorBuffer(_swigobj)  (_swigobj->getColorBuffer())
static PyObject *_wrap_FX_GLTriangleMesh_getColorBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat * _result;
    FXGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLTriangleMesh_getColorBuffer",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_getColorBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat *)FX_GLTriangleMesh_getColorBuffer(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXfloat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLTriangleMesh_getNormalBuffer(_swigobj)  (_swigobj->getNormalBuffer())
static PyObject *_wrap_FX_GLTriangleMesh_getNormalBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat * _result;
    FXGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLTriangleMesh_getNormalBuffer",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_getNormalBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat *)FX_GLTriangleMesh_getNormalBuffer(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXfloat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FX_GLTriangleMesh_getTextureCoordBuffer(_swigobj)  (_swigobj->getTextureCoordBuffer())
static PyObject *_wrap_FX_GLTriangleMesh_getTextureCoordBuffer(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXfloat * _result;
    FXGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FX_GLTriangleMesh_getTextureCoordBuffer",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FX_GLTriangleMesh_getTextureCoordBuffer. Expected _FXGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXfloat *)FX_GLTriangleMesh_getTextureCoordBuffer(_arg0);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXfloat_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

static void *SwigFXPyGLTriangleMeshToFXGLTriangleMesh(void *ptr) {
    FXPyGLTriangleMesh *src;
    FXGLTriangleMesh *dest;
    src = (FXPyGLTriangleMesh *) ptr;
    dest = (FXGLTriangleMesh *) src;
    return (void *) dest;
}

static void *SwigFXPyGLTriangleMeshToFXGLShape(void *ptr) {
    FXPyGLTriangleMesh *src;
    FXGLShape *dest;
    src = (FXPyGLTriangleMesh *) ptr;
    dest = (FXGLShape *) src;
    return (void *) dest;
}

static void *SwigFXPyGLTriangleMeshToFXGLObject(void *ptr) {
    FXPyGLTriangleMesh *src;
    FXGLObject *dest;
    src = (FXPyGLTriangleMesh *) ptr;
    dest = (FXGLObject *) src;
    return (void *) dest;
}

static void *SwigFXPyGLTriangleMeshToFXObject(void *ptr) {
    FXPyGLTriangleMesh *src;
    FXObject *dest;
    src = (FXPyGLTriangleMesh *) ptr;
    dest = (FXObject *) src;
    return (void *) dest;
}

#define new_FXGLTriangleMesh(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new FXPyGLTriangleMesh(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7))
static PyObject *_wrap_new_FXGLTriangleMesh(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLTriangleMesh * _result;
    FXfloat  _arg0;
    FXfloat  _arg1;
    FXfloat  _arg2;
    FXint  _arg3;
    FXfloat * _arg4;
    FXfloat * _arg5 = (FXfloat *) NULL;
    FXfloat * _arg6 = (FXfloat *) NULL;
    FXfloat * _arg7 = (FXfloat *) NULL;
    PyObject * _argo4 = 0;
    PyObject * _argo5 = 0;
    PyObject * _argo6 = 0;
    PyObject * _argo7 = 0;
    char *_kwnames[] = { "x","y","z","nv","v","n","c","t", NULL };
    char _ptemp[128];

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"fffiO|OOO:new_FXGLTriangleMesh",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3,&_argo4,&_argo5,&_argo6,&_argo7)) 
        return NULL;
    if (_argo4) {
        if (_argo4 == Py_None) { _arg4 = NULL; }
        else if (SWIG_GetPtrObj(_argo4,(void **) &_arg4,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_FXGLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
    if (_argo5) {
        if (_argo5 == Py_None) { _arg5 = NULL; }
        else if (SWIG_GetPtrObj(_argo5,(void **) &_arg5,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_FXGLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
    if (_argo6) {
        if (_argo6 == Py_None) { _arg6 = NULL; }
        else if (SWIG_GetPtrObj(_argo6,(void **) &_arg6,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_FXGLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
    if (_argo7) {
        if (_argo7 == Py_None) { _arg7 = NULL; }
        else if (SWIG_GetPtrObj(_argo7,(void **) &_arg7,"_FXfloat_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_FXGLTriangleMesh. Expected _FXfloat_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXPyGLTriangleMesh *)new_FXGLTriangleMesh(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7);

    FXPy_END_ALLOW_THREADS
}    if (_result) {
        SWIG_MakePtr(_ptemp, (char *) _result,"_FXPyGLTriangleMesh_p");
        _resultobj = Py_BuildValue("s",_ptemp);
    } else {
        Py_INCREF(Py_None);
        _resultobj = Py_None;
    }
    return _resultobj;
}

#define FXGLTriangleMesh_onDefault(_swigobj,_swigarg0,_swigarg1,_swigarg2)  (_swigobj->_onDefault(_swigarg0,_swigarg1,_swigarg2))
static PyObject *_wrap_FXGLTriangleMesh_onDefault(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    long  _result;
    FXPyGLTriangleMesh * _arg0;
    FXObject * _arg1;
    FXSelector  _arg2;
    void * _arg3;
    PyObject * _argo0 = 0;
    PyObject * _obj1 = 0;
    PyObject * _obj3 = 0;
    char *_kwnames[] = { "self","arg2","arg3","ptr", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiO:FXGLTriangleMesh_onDefault",_kwnames,&_argo0,&_obj1,&_arg2,&_obj3)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_onDefault. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    if (_obj1 == Py_None)
	_arg1 = NULL;
    else
	SWIG_GetPtrObj(_obj1, (void**) &_arg1, "_FXObject_p");
}
{
    _arg3 = NULL;
    if (PyObject_HasAttrString(_obj3, "this")) {
	PyObject *obj = PyObject_GetAttrString(_obj3, "this");
	char *str = PyString_AsString(obj);
	if (str) {
	    if (!strcmp(str, "NULL"))
		_arg3 = NULL;
	}
	else
	    _arg3 = (void*) _obj3;
	Py_DECREF(obj);
    }
    else
	_arg3 = (void*) _obj3;
}
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (long )FXGLTriangleMesh_onDefault(_arg0,_arg1,_arg2,_arg3);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("l",_result);
    return _resultobj;
}

#define FXGLTriangleMesh_draw(_swigobj,_swigarg0)  (_swigobj->_draw(_swigarg0))
static PyObject *_wrap_FXGLTriangleMesh_draw(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLTriangleMesh * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLTriangleMesh_draw",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_draw. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLTriangleMesh_draw. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLTriangleMesh_draw(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLTriangleMesh_hit(_swigobj,_swigarg0)  (_swigobj->_hit(_swigarg0))
static PyObject *_wrap_FXGLTriangleMesh_hit(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXPyGLTriangleMesh * _arg0;
    FXGLViewer * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLTriangleMesh_hit",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_hit. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLTriangleMesh_hit. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        FXGLTriangleMesh_hit(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}    Py_INCREF(Py_None);
    _resultobj = Py_None;
    return _resultobj;
}

#define FXGLTriangleMesh_copy(_swigobj)  (_swigobj->_copy())
static PyObject *_wrap_FXGLTriangleMesh_copy(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLTriangleMesh_copy",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_copy. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLTriangleMesh_copy(_arg0);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLTriangleMesh_identify(_swigobj,_swigarg0)  (_swigobj->_identify(_swigarg0))
static PyObject *_wrap_FXGLTriangleMesh_identify(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXGLObject * _result;
    FXPyGLTriangleMesh * _arg0;
    FXuint * _arg1;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","path", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:FXGLTriangleMesh_identify",_kwnames,&_argo0,&_argo1)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_identify. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXuint_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLTriangleMesh_identify. Expected _FXuint_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXGLObject *)FXGLTriangleMesh_identify(_arg0,_arg1);

    FXPy_END_ALLOW_THREADS
}{
    if (_result) {
	_resultobj = FXPyMakeShadowObject(_result);
    } else {
	Py_INCREF(Py_None);
	_resultobj = Py_None;
    }
}
    return _resultobj;
}

#define FXGLTriangleMesh_canDrag(_swigobj)  (_swigobj->_canDrag())
static PyObject *_wrap_FXGLTriangleMesh_canDrag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLTriangleMesh_canDrag",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_canDrag. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLTriangleMesh_canDrag(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLTriangleMesh_canDelete(_swigobj)  (_swigobj->_canDelete())
static PyObject *_wrap_FXGLTriangleMesh_canDelete(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLTriangleMesh * _arg0;
    PyObject * _argo0 = 0;
    char *_kwnames[] = { "self", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:FXGLTriangleMesh_canDelete",_kwnames,&_argo0)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_canDelete. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLTriangleMesh_canDelete(_arg0);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

#define FXGLTriangleMesh_drag(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)  (_swigobj->_drag(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4))
static PyObject *_wrap_FXGLTriangleMesh_drag(PyObject *self, PyObject *args, PyObject *kwargs) {
    PyObject * _resultobj;
    FXbool  _result;
    FXPyGLTriangleMesh * _arg0;
    FXGLViewer * _arg1;
    FXint  _arg2;
    FXint  _arg3;
    FXint  _arg4;
    FXint  _arg5;
    PyObject * _argo0 = 0;
    PyObject * _argo1 = 0;
    char *_kwnames[] = { "self","viewer","fx","fy","tx","ty", NULL };

    self = self;
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OOiiii:FXGLTriangleMesh_drag",_kwnames,&_argo0,&_argo1,&_arg2,&_arg3,&_arg4,&_arg5)) 
        return NULL;
    if (_argo0) {
        if (_argo0 == Py_None) { _arg0 = NULL; }
        else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_FXPyGLTriangleMesh_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of FXGLTriangleMesh_drag. Expected _FXPyGLTriangleMesh_p.");
        return NULL;
        }
    }
    if (_argo1) {
        if (_argo1 == Py_None) { _arg1 = NULL; }
        else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_FXGLViewer_p")) {
            PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of FXGLTriangleMesh_drag. Expected _FXGLViewer_p.");
        return NULL;
        }
    }
{
    FXPy_BEGIN_ALLOW_THREADS
        _result = (FXbool )FXGLTriangleMesh_drag(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5);

    FXPy_END_ALLOW_THREADS
}    _resultobj = Py_BuildValue("b",_result);
    return _resultobj;
}

static PyMethodDef fox3dcMethods[] = {
	 { "FXGLTriangleMesh_drag", (PyCFunction) _wrap_FXGLTriangleMesh_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_canDelete", (PyCFunction) _wrap_FXGLTriangleMesh_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_canDrag", (PyCFunction) _wrap_FXGLTriangleMesh_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_identify", (PyCFunction) _wrap_FXGLTriangleMesh_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_copy", (PyCFunction) _wrap_FXGLTriangleMesh_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_hit", (PyCFunction) _wrap_FXGLTriangleMesh_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_draw", (PyCFunction) _wrap_FXGLTriangleMesh_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLTriangleMesh_onDefault", (PyCFunction) _wrap_FXGLTriangleMesh_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLTriangleMesh", (PyCFunction) _wrap_new_FXGLTriangleMesh, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_getTextureCoordBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_getTextureCoordBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_getNormalBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_getNormalBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_getColorBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_getColorBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_getVertexBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_getVertexBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_setTextureCoordBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_setTextureCoordBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_setNormalBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_setNormalBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_setColorBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_setColorBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_setVertexBuffer", (PyCFunction) _wrap_FX_GLTriangleMesh_setVertexBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_getVertexNumber", (PyCFunction) _wrap_FX_GLTriangleMesh_getVertexNumber, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLTriangleMesh_setVertexNumber", (PyCFunction) _wrap_FX_GLTriangleMesh_setVertexNumber, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLTriangleMesh", (PyCFunction) _wrap_new_FX_GLTriangleMesh, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_radius_get", (PyCFunction) _wrap_FX_GLCone_radius_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_radius_set", (PyCFunction) _wrap_FX_GLCone_radius_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_height_get", (PyCFunction) _wrap_FX_GLCone_height_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_height_set", (PyCFunction) _wrap_FX_GLCone_height_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_drag", (PyCFunction) _wrap_FXGLCone_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_canDelete", (PyCFunction) _wrap_FXGLCone_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_canDrag", (PyCFunction) _wrap_FXGLCone_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_identify", (PyCFunction) _wrap_FXGLCone_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_copy", (PyCFunction) _wrap_FXGLCone_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_hit", (PyCFunction) _wrap_FXGLCone_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_draw", (PyCFunction) _wrap_FXGLCone_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCone_onDefault", (PyCFunction) _wrap_FXGLCone_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLCone", (PyCFunction) _wrap_new_FXGLCone, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_getHeight", (PyCFunction) _wrap_FX_GLCone_getHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_setHeight", (PyCFunction) _wrap_FX_GLCone_setHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_getRadius", (PyCFunction) _wrap_FX_GLCone_getRadius, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_setRadius", (PyCFunction) _wrap_FX_GLCone_setRadius, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLCone", (PyCFunction) _wrap_new_FX_GLCone, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_radius_get", (PyCFunction) _wrap_FX_GLCone_radius_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_radius_set", (PyCFunction) _wrap_FX_GLCone_radius_set, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_height_get", (PyCFunction) _wrap_FX_GLCone_height_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCone_height_set", (PyCFunction) _wrap_FX_GLCone_height_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_radius_get", (PyCFunction) _wrap_FX_GLCylinder_radius_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_radius_set", (PyCFunction) _wrap_FX_GLCylinder_radius_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_height_get", (PyCFunction) _wrap_FX_GLCylinder_height_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_height_set", (PyCFunction) _wrap_FX_GLCylinder_height_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_drag", (PyCFunction) _wrap_FXGLCylinder_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_canDelete", (PyCFunction) _wrap_FXGLCylinder_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_canDrag", (PyCFunction) _wrap_FXGLCylinder_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_identify", (PyCFunction) _wrap_FXGLCylinder_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_copy", (PyCFunction) _wrap_FXGLCylinder_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_hit", (PyCFunction) _wrap_FXGLCylinder_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_draw", (PyCFunction) _wrap_FXGLCylinder_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCylinder_onDefault", (PyCFunction) _wrap_FXGLCylinder_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLCylinder", (PyCFunction) _wrap_new_FXGLCylinder, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_getHeight", (PyCFunction) _wrap_FX_GLCylinder_getHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_setHeight", (PyCFunction) _wrap_FX_GLCylinder_setHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_getRadius", (PyCFunction) _wrap_FX_GLCylinder_getRadius, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_setRadius", (PyCFunction) _wrap_FX_GLCylinder_setRadius, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLCylinder", (PyCFunction) _wrap_new_FX_GLCylinder, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_radius_get", (PyCFunction) _wrap_FX_GLCylinder_radius_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_radius_set", (PyCFunction) _wrap_FX_GLCylinder_radius_set, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_height_get", (PyCFunction) _wrap_FX_GLCylinder_height_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCylinder_height_set", (PyCFunction) _wrap_FX_GLCylinder_height_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_radius_get", (PyCFunction) _wrap_FX_GLSphere_radius_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_radius_set", (PyCFunction) _wrap_FX_GLSphere_radius_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_drag", (PyCFunction) _wrap_FXGLSphere_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_canDelete", (PyCFunction) _wrap_FXGLSphere_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_canDrag", (PyCFunction) _wrap_FXGLSphere_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_identify", (PyCFunction) _wrap_FXGLSphere_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_copy", (PyCFunction) _wrap_FXGLSphere_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_hit", (PyCFunction) _wrap_FXGLSphere_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_draw", (PyCFunction) _wrap_FXGLSphere_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLSphere_onDefault", (PyCFunction) _wrap_FXGLSphere_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLSphere", (PyCFunction) _wrap_new_FXGLSphere, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_getStacks", (PyCFunction) _wrap_FX_GLSphere_getStacks, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_setStacks", (PyCFunction) _wrap_FX_GLSphere_setStacks, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_getSlices", (PyCFunction) _wrap_FX_GLSphere_getSlices, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_setSlices", (PyCFunction) _wrap_FX_GLSphere_setSlices, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_getRadius", (PyCFunction) _wrap_FX_GLSphere_getRadius, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_setRadius", (PyCFunction) _wrap_FX_GLSphere_setRadius, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLSphere", (PyCFunction) _wrap_new_FX_GLSphere, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_radius_get", (PyCFunction) _wrap_FX_GLSphere_radius_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLSphere_radius_set", (PyCFunction) _wrap_FX_GLSphere_radius_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_depth_get", (PyCFunction) _wrap_FX_GLCube_depth_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_depth_set", (PyCFunction) _wrap_FX_GLCube_depth_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_height_get", (PyCFunction) _wrap_FX_GLCube_height_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_height_set", (PyCFunction) _wrap_FX_GLCube_height_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_width_get", (PyCFunction) _wrap_FX_GLCube_width_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_width_set", (PyCFunction) _wrap_FX_GLCube_width_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_drag", (PyCFunction) _wrap_FXGLCube_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_canDelete", (PyCFunction) _wrap_FXGLCube_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_canDrag", (PyCFunction) _wrap_FXGLCube_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_identify", (PyCFunction) _wrap_FXGLCube_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_copy", (PyCFunction) _wrap_FXGLCube_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_hit", (PyCFunction) _wrap_FXGLCube_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_draw", (PyCFunction) _wrap_FXGLCube_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCube_onDefault", (PyCFunction) _wrap_FXGLCube_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLCube", (PyCFunction) _wrap_new_FXGLCube, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_getDepth", (PyCFunction) _wrap_FX_GLCube_getDepth, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_setDepth", (PyCFunction) _wrap_FX_GLCube_setDepth, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_getHeight", (PyCFunction) _wrap_FX_GLCube_getHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_setHeight", (PyCFunction) _wrap_FX_GLCube_setHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_getWidth", (PyCFunction) _wrap_FX_GLCube_getWidth, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_setWidth", (PyCFunction) _wrap_FX_GLCube_setWidth, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLCube", (PyCFunction) _wrap_new_FX_GLCube, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_depth_get", (PyCFunction) _wrap_FX_GLCube_depth_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_depth_set", (PyCFunction) _wrap_FX_GLCube_depth_set, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_height_get", (PyCFunction) _wrap_FX_GLCube_height_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_height_set", (PyCFunction) _wrap_FX_GLCube_height_set, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_width_get", (PyCFunction) _wrap_FX_GLCube_width_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCube_width_set", (PyCFunction) _wrap_FX_GLCube_width_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_to_get", (PyCFunction) _wrap_FX_GLLine_to_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_to_set", (PyCFunction) _wrap_FX_GLLine_to_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_fm_get", (PyCFunction) _wrap_FX_GLLine_fm_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_fm_set", (PyCFunction) _wrap_FX_GLLine_fm_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_drag", (PyCFunction) _wrap_FXGLLine_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_canDelete", (PyCFunction) _wrap_FXGLLine_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_canDrag", (PyCFunction) _wrap_FXGLLine_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_identify", (PyCFunction) _wrap_FXGLLine_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_copy", (PyCFunction) _wrap_FXGLLine_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_hit", (PyCFunction) _wrap_FXGLLine_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_draw", (PyCFunction) _wrap_FXGLLine_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLLine_onDefault", (PyCFunction) _wrap_FXGLLine_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLLine", (PyCFunction) _wrap_new_FXGLLine, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLLine", (PyCFunction) _wrap_new_FX_GLLine, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLLine_to_get", (PyCFunction) _wrap_FX_GLLine_to_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLLine_to_set", (PyCFunction) _wrap_FX_GLLine_to_set, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLLine_fm_get", (PyCFunction) _wrap_FX_GLLine_fm_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLLine_fm_set", (PyCFunction) _wrap_FX_GLLine_fm_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_pos_get", (PyCFunction) _wrap_FX_GLPoint_pos_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_pos_set", (PyCFunction) _wrap_FX_GLPoint_pos_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_drag", (PyCFunction) _wrap_FXGLPoint_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_canDelete", (PyCFunction) _wrap_FXGLPoint_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_canDrag", (PyCFunction) _wrap_FXGLPoint_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_identify", (PyCFunction) _wrap_FXGLPoint_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_copy", (PyCFunction) _wrap_FXGLPoint_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_hit", (PyCFunction) _wrap_FXGLPoint_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_draw", (PyCFunction) _wrap_FXGLPoint_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLPoint_onDefault", (PyCFunction) _wrap_FXGLPoint_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLPoint", (PyCFunction) _wrap_new_FXGLPoint, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLPoint", (PyCFunction) _wrap_new_FX_GLPoint, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLPoint_pos_get", (PyCFunction) _wrap_FX_GLPoint_pos_get, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLPoint_pos_set", (PyCFunction) _wrap_FX_GLPoint_pos_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_drag", (PyCFunction) _wrap_FXGLShape_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_canDelete", (PyCFunction) _wrap_FXGLShape_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_canDrag", (PyCFunction) _wrap_FXGLShape_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_identify", (PyCFunction) _wrap_FXGLShape_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_copy", (PyCFunction) _wrap_FXGLShape_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_hit", (PyCFunction) _wrap_FXGLShape_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_draw", (PyCFunction) _wrap_FXGLShape_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLShape_onDefault", (PyCFunction) _wrap_FXGLShape_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLShape", (PyCFunction) _wrap_new_FXGLShape, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_getMaterial", (PyCFunction) _wrap_FX_GLShape_getMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_setMaterial", (PyCFunction) _wrap_FX_GLShape_setMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_getTipText", (PyCFunction) _wrap_FX_GLShape_getTipText, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_setTipText", (PyCFunction) _wrap_FX_GLShape_setTipText, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLShape", (PyCFunction) _wrap_new_FX_GLShape, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onUpdDrawingStyle", (PyCFunction) _wrap_FX_GLShape_onUpdDrawingStyle, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onCmdDrawingStyle", (PyCFunction) _wrap_FX_GLShape_onCmdDrawingStyle, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onUpdBackMaterial", (PyCFunction) _wrap_FX_GLShape_onUpdBackMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onCmdBackMaterial", (PyCFunction) _wrap_FX_GLShape_onCmdBackMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onUpdFrontMaterial", (PyCFunction) _wrap_FX_GLShape_onUpdFrontMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onCmdFrontMaterial", (PyCFunction) _wrap_FX_GLShape_onCmdFrontMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onUpdShadeSmooth", (PyCFunction) _wrap_FX_GLShape_onUpdShadeSmooth, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onCmdShadeSmooth", (PyCFunction) _wrap_FX_GLShape_onCmdShadeSmooth, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onUpdShadeOn", (PyCFunction) _wrap_FX_GLShape_onUpdShadeOn, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onCmdShadeOn", (PyCFunction) _wrap_FX_GLShape_onCmdShadeOn, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onUpdShadeOff", (PyCFunction) _wrap_FX_GLShape_onUpdShadeOff, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onCmdShadeOff", (PyCFunction) _wrap_FX_GLShape_onCmdShadeOff, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onQueryTip", (PyCFunction) _wrap_FX_GLShape_onQueryTip, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onDNDMotion", (PyCFunction) _wrap_FX_GLShape_onDNDMotion, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLShape_onDNDDrop", (PyCFunction) _wrap_FX_GLShape_onDNDDrop, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_drag", (PyCFunction) _wrap_FXGLGroup_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_canDelete", (PyCFunction) _wrap_FXGLGroup_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_canDrag", (PyCFunction) _wrap_FXGLGroup_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_identify", (PyCFunction) _wrap_FXGLGroup_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_copy", (PyCFunction) _wrap_FXGLGroup_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_hit", (PyCFunction) _wrap_FXGLGroup_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_draw", (PyCFunction) _wrap_FXGLGroup_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLGroup_onDefault", (PyCFunction) _wrap_FXGLGroup_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLGroup", (PyCFunction) _wrap_new_FXGLGroup, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_clear", (PyCFunction) _wrap_FX_GLGroup_clear, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_removePos", (PyCFunction) _wrap_FX_GLGroup_removePos, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_removeObj", (PyCFunction) _wrap_FX_GLGroup_removeObj, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_replace", (PyCFunction) _wrap_FX_GLGroup_replace, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_append", (PyCFunction) _wrap_FX_GLGroup_append, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_prepend", (PyCFunction) _wrap_FX_GLGroup_prepend, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_insert", (PyCFunction) _wrap_FX_GLGroup_insert, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_child", (PyCFunction) _wrap_FX_GLGroup_child, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_no", (PyCFunction) _wrap_FX_GLGroup_no, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLGroup_getList", (PyCFunction) _wrap_FX_GLGroup_getList, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLGroup", (PyCFunction) _wrap_new_FX_GLGroup, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_drag", (PyCFunction) _wrap_FXGLObject_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_canDelete", (PyCFunction) _wrap_FXGLObject_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_canDrag", (PyCFunction) _wrap_FXGLObject_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_identify", (PyCFunction) _wrap_FXGLObject_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_copy", (PyCFunction) _wrap_FXGLObject_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_hit", (PyCFunction) _wrap_FXGLObject_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_draw", (PyCFunction) _wrap_FXGLObject_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLObject_onDefault", (PyCFunction) _wrap_FXGLObject_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLObject", (PyCFunction) _wrap_new_FXGLObject, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_drag", (PyCFunction) _wrap_FX_GLObject_drag, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_canDelete", (PyCFunction) _wrap_FX_GLObject_canDelete, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_canDrag", (PyCFunction) _wrap_FX_GLObject_canDrag, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_identify", (PyCFunction) _wrap_FX_GLObject_identify, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_copy", (PyCFunction) _wrap_FX_GLObject_copy, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_hit", (PyCFunction) _wrap_FX_GLObject_hit, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_draw", (PyCFunction) _wrap_FX_GLObject_draw, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLObject_bounds", (PyCFunction) _wrap_FX_GLObject_bounds, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLObject", (PyCFunction) _wrap_new_FX_GLObject, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_pick", (PyCFunction) _wrap_FXGLViewer_pick, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_select", (PyCFunction) _wrap_FXGLViewer_select, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_swapBuffers", (PyCFunction) _wrap_FXGLViewer_swapBuffers, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_makeNonCurrent", (PyCFunction) _wrap_FXGLViewer_makeNonCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_makeCurrent", (PyCFunction) _wrap_FXGLViewer_makeCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_isCurrent", (PyCFunction) _wrap_FXGLViewer_isCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_setBackColor", (PyCFunction) _wrap_FXGLViewer_setBackColor, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_reparent", (PyCFunction) _wrap_FXGLViewer_reparent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_doesSaveUnder", (PyCFunction) _wrap_FXGLViewer_doesSaveUnder, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_getHeightForWidth", (PyCFunction) _wrap_FXGLViewer_getHeightForWidth, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_getWidthForHeight", (PyCFunction) _wrap_FXGLViewer_getWidthForHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_contains", (PyCFunction) _wrap_FXGLViewer_contains, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_isComposite", (PyCFunction) _wrap_FXGLViewer_isComposite, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_position", (PyCFunction) _wrap_FXGLViewer_position, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_move", (PyCFunction) _wrap_FXGLViewer_move, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_lower", (PyCFunction) _wrap_FXGLViewer_lower, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_layout", (PyCFunction) _wrap_FXGLViewer_layout, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_recalc", (PyCFunction) _wrap_FXGLViewer_recalc, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_setDefault", (PyCFunction) _wrap_FXGLViewer_setDefault, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_killFocus", (PyCFunction) _wrap_FXGLViewer_killFocus, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_setFocus", (PyCFunction) _wrap_FXGLViewer_setFocus, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_canFocus", (PyCFunction) _wrap_FXGLViewer_canFocus, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_disable", (PyCFunction) _wrap_FXGLViewer_disable, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_enable", (PyCFunction) _wrap_FXGLViewer_enable, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_hide", (PyCFunction) _wrap_FXGLViewer_hide, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_show", (PyCFunction) _wrap_FXGLViewer_show, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_getDefaultHeight", (PyCFunction) _wrap_FXGLViewer_getDefaultHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_getDefaultWidth", (PyCFunction) _wrap_FXGLViewer_getDefaultWidth, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_resize", (PyCFunction) _wrap_FXGLViewer_resize, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_detach", (PyCFunction) _wrap_FXGLViewer_detach, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_destroy", (PyCFunction) _wrap_FXGLViewer_destroy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_create", (PyCFunction) _wrap_FXGLViewer_create, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLViewer_onDefault", (PyCFunction) _wrap_FXGLViewer_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLViewer", (PyCFunction) _wrap_new_FXGLViewer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getOffset", (PyCFunction) _wrap_FX_GLViewer_getOffset, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setOffset", (PyCFunction) _wrap_FX_GLViewer_setOffset, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getLight", (PyCFunction) _wrap_FX_GLViewer_getLight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setLight", (PyCFunction) _wrap_FX_GLViewer_setLight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setTurboMode", (PyCFunction) _wrap_FX_GLViewer_setTurboMode, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getTurboMode", (PyCFunction) _wrap_FX_GLViewer_getTurboMode, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_doesTurbo", (PyCFunction) _wrap_FX_GLViewer_doesTurbo, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getMaxHits", (PyCFunction) _wrap_FX_GLViewer_getMaxHits, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setMaxHits", (PyCFunction) _wrap_FX_GLViewer_setMaxHits, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_readFeedback", (PyCFunction) _wrap_FX_GLViewer_readFeedback, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_readPixels", (PyCFunction) _wrap_FX_GLViewer_readPixels, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getAmbientColor", (PyCFunction) _wrap_FX_GLViewer_getAmbientColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setAmbientColor", (PyCFunction) _wrap_FX_GLViewer_setAmbientColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getBackgroundColor", (PyCFunction) _wrap_FX_GLViewer_getBackgroundColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setBackgroundColor", (PyCFunction) _wrap_FX_GLViewer_setBackgroundColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getViewLock", (PyCFunction) _wrap_FX_GLViewer_getViewLock, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setViewLock", (PyCFunction) _wrap_FX_GLViewer_setViewLock, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getProjection", (PyCFunction) _wrap_FX_GLViewer_getProjection, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setProjection", (PyCFunction) _wrap_FX_GLViewer_setProjection, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getSelection", (PyCFunction) _wrap_FX_GLViewer_getSelection, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setSelection", (PyCFunction) _wrap_FX_GLViewer_setSelection, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getScene", (PyCFunction) _wrap_FX_GLViewer_getScene, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setScene", (PyCFunction) _wrap_FX_GLViewer_setScene, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getInvTransform", (PyCFunction) _wrap_FX_GLViewer_getInvTransform, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getTransform", (PyCFunction) _wrap_FX_GLViewer_getTransform, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getTipText", (PyCFunction) _wrap_FX_GLViewer_getTipText, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setTipText", (PyCFunction) _wrap_FX_GLViewer_setTipText, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getHelpText", (PyCFunction) _wrap_FX_GLViewer_getHelpText, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setHelpText", (PyCFunction) _wrap_FX_GLViewer_setHelpText, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getEyePosition", (PyCFunction) _wrap_FX_GLViewer_getEyePosition, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getEyeVector", (PyCFunction) _wrap_FX_GLViewer_getEyeVector, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getBoreVector", (PyCFunction) _wrap_FX_GLViewer_getBoreVector, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_translate", (PyCFunction) _wrap_FX_GLViewer_translate, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getCenter", (PyCFunction) _wrap_FX_GLViewer_getCenter, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setCenter", (PyCFunction) _wrap_FX_GLViewer_setCenter, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getOrientation", (PyCFunction) _wrap_FX_GLViewer_getOrientation, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setOrientation", (PyCFunction) _wrap_FX_GLViewer_setOrientation, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getDistance", (PyCFunction) _wrap_FX_GLViewer_getDistance, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setDistance", (PyCFunction) _wrap_FX_GLViewer_setDistance, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getZoom", (PyCFunction) _wrap_FX_GLViewer_getZoom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setZoom", (PyCFunction) _wrap_FX_GLViewer_setZoom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getFieldOfView", (PyCFunction) _wrap_FX_GLViewer_getFieldOfView, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setFieldOfView", (PyCFunction) _wrap_FX_GLViewer_setFieldOfView, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getMaterial", (PyCFunction) _wrap_FX_GLViewer_getMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setMaterial", (PyCFunction) _wrap_FX_GLViewer_setMaterial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_worldVector", (PyCFunction) _wrap_FX_GLViewer_worldVector, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_eyeToWorld", (PyCFunction) _wrap_FX_GLViewer_eyeToWorld, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_worldToEyeZ", (PyCFunction) _wrap_FX_GLViewer_worldToEyeZ, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_worldToEye", (PyCFunction) _wrap_FX_GLViewer_worldToEye, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_screenToTarget", (PyCFunction) _wrap_FX_GLViewer_screenToTarget, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_screenToEye", (PyCFunction) _wrap_FX_GLViewer_screenToEye, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_eyeToScreen", (PyCFunction) _wrap_FX_GLViewer_eyeToScreen, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_getViewport", (PyCFunction) _wrap_FX_GLViewer_getViewport, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_fitToBounds", (PyCFunction) _wrap_FX_GLViewer_fitToBounds, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_setBounds", (PyCFunction) _wrap_FX_GLViewer_setBounds, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_pick", (PyCFunction) _wrap_FX_GLViewer_pick, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_select", (PyCFunction) _wrap_FX_GLViewer_select, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_lasso", (PyCFunction) _wrap_FX_GLViewer_lasso, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_modelPix", (PyCFunction) _wrap_FX_GLViewer_modelPix, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_worldPix", (PyCFunction) _wrap_FX_GLViewer_worldPix, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLassoSelect", (PyCFunction) _wrap_FX_GLViewer_onCmdLassoSelect, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLassoZoom", (PyCFunction) _wrap_FX_GLViewer_onCmdLassoZoom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdPrintVector", (PyCFunction) _wrap_FX_GLViewer_onCmdPrintVector, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdPrintImage", (PyCFunction) _wrap_FX_GLViewer_onCmdPrintImage, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdTurbo", (PyCFunction) _wrap_FX_GLViewer_onUpdTurbo, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdTurbo", (PyCFunction) _wrap_FX_GLViewer_onCmdTurbo, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdLightSpecular", (PyCFunction) _wrap_FX_GLViewer_onUpdLightSpecular, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLightSpecular", (PyCFunction) _wrap_FX_GLViewer_onCmdLightSpecular, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdLightDiffuse", (PyCFunction) _wrap_FX_GLViewer_onUpdLightDiffuse, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLightDiffuse", (PyCFunction) _wrap_FX_GLViewer_onCmdLightDiffuse, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdLightAmbient", (PyCFunction) _wrap_FX_GLViewer_onUpdLightAmbient, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLightAmbient", (PyCFunction) _wrap_FX_GLViewer_onCmdLightAmbient, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdZoom", (PyCFunction) _wrap_FX_GLViewer_onUpdZoom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdZoom", (PyCFunction) _wrap_FX_GLViewer_onCmdZoom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdFov", (PyCFunction) _wrap_FX_GLViewer_onUpdFov, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdFov", (PyCFunction) _wrap_FX_GLViewer_onCmdFov, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdDither", (PyCFunction) _wrap_FX_GLViewer_onUpdDither, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdDither", (PyCFunction) _wrap_FX_GLViewer_onCmdDither, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdFog", (PyCFunction) _wrap_FX_GLViewer_onUpdFog, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdFog", (PyCFunction) _wrap_FX_GLViewer_onCmdFog, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdLighting", (PyCFunction) _wrap_FX_GLViewer_onUpdLighting, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLighting", (PyCFunction) _wrap_FX_GLViewer_onCmdLighting, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdLock", (PyCFunction) _wrap_FX_GLViewer_onUpdLock, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLock", (PyCFunction) _wrap_FX_GLViewer_onCmdLock, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdAmbientColor", (PyCFunction) _wrap_FX_GLViewer_onUpdAmbientColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdAmbientColor", (PyCFunction) _wrap_FX_GLViewer_onCmdAmbientColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdBackColor", (PyCFunction) _wrap_FX_GLViewer_onUpdBackColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdBackColor", (PyCFunction) _wrap_FX_GLViewer_onCmdBackColor, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdDeleteSel", (PyCFunction) _wrap_FX_GLViewer_onUpdDeleteSel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdDeleteSel", (PyCFunction) _wrap_FX_GLViewer_onCmdDeleteSel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdPasteSel", (PyCFunction) _wrap_FX_GLViewer_onCmdPasteSel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdCopySel", (PyCFunction) _wrap_FX_GLViewer_onCmdCopySel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdCutSel", (PyCFunction) _wrap_FX_GLViewer_onCmdCutSel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdCurrent", (PyCFunction) _wrap_FX_GLViewer_onUpdCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdXYZScale", (PyCFunction) _wrap_FX_GLViewer_onUpdXYZScale, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdXYZScale", (PyCFunction) _wrap_FX_GLViewer_onCmdXYZScale, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdRollPitchYaw", (PyCFunction) _wrap_FX_GLViewer_onUpdRollPitchYaw, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdRollPitchYaw", (PyCFunction) _wrap_FX_GLViewer_onCmdRollPitchYaw, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdXYZDial", (PyCFunction) _wrap_FX_GLViewer_onUpdXYZDial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdXYZDial", (PyCFunction) _wrap_FX_GLViewer_onCmdXYZDial, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onQueryTip", (PyCFunction) _wrap_FX_GLViewer_onQueryTip, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onQueryHelp", (PyCFunction) _wrap_FX_GLViewer_onQueryHelp, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onTipTimer", (PyCFunction) _wrap_FX_GLViewer_onTipTimer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDNDDrop", (PyCFunction) _wrap_FX_GLViewer_onDNDDrop, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDNDMotion", (PyCFunction) _wrap_FX_GLViewer_onDNDMotion, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDNDLeave", (PyCFunction) _wrap_FX_GLViewer_onDNDLeave, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDNDEnter", (PyCFunction) _wrap_FX_GLViewer_onDNDEnter, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdFitView", (PyCFunction) _wrap_FX_GLViewer_onCmdFitView, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdResetView", (PyCFunction) _wrap_FX_GLViewer_onCmdResetView, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdBottom", (PyCFunction) _wrap_FX_GLViewer_onUpdBottom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdBottom", (PyCFunction) _wrap_FX_GLViewer_onCmdBottom, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdTop", (PyCFunction) _wrap_FX_GLViewer_onUpdTop, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdTop", (PyCFunction) _wrap_FX_GLViewer_onCmdTop, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdRight", (PyCFunction) _wrap_FX_GLViewer_onUpdRight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdRight", (PyCFunction) _wrap_FX_GLViewer_onCmdRight, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdLeft", (PyCFunction) _wrap_FX_GLViewer_onUpdLeft, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdLeft", (PyCFunction) _wrap_FX_GLViewer_onCmdLeft, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdBack", (PyCFunction) _wrap_FX_GLViewer_onUpdBack, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdBack", (PyCFunction) _wrap_FX_GLViewer_onCmdBack, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdFront", (PyCFunction) _wrap_FX_GLViewer_onUpdFront, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdFront", (PyCFunction) _wrap_FX_GLViewer_onCmdFront, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdParallel", (PyCFunction) _wrap_FX_GLViewer_onUpdParallel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdParallel", (PyCFunction) _wrap_FX_GLViewer_onCmdParallel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUpdPerspective", (PyCFunction) _wrap_FX_GLViewer_onUpdPerspective, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onCmdPerspective", (PyCFunction) _wrap_FX_GLViewer_onCmdPerspective, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onClipboardRequest", (PyCFunction) _wrap_FX_GLViewer_onClipboardRequest, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onClipboardGained", (PyCFunction) _wrap_FX_GLViewer_onClipboardGained, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onClipboardLost", (PyCFunction) _wrap_FX_GLViewer_onClipboardLost, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onFocusOut", (PyCFunction) _wrap_FX_GLViewer_onFocusOut, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onFocusIn", (PyCFunction) _wrap_FX_GLViewer_onFocusIn, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onKeyRelease", (PyCFunction) _wrap_FX_GLViewer_onKeyRelease, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onKeyPress", (PyCFunction) _wrap_FX_GLViewer_onKeyPress, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onUngrabbed", (PyCFunction) _wrap_FX_GLViewer_onUngrabbed, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onRightBtnRelease", (PyCFunction) _wrap_FX_GLViewer_onRightBtnRelease, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onRightBtnPress", (PyCFunction) _wrap_FX_GLViewer_onRightBtnPress, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onMiddleBtnRelease", (PyCFunction) _wrap_FX_GLViewer_onMiddleBtnRelease, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onMiddleBtnPress", (PyCFunction) _wrap_FX_GLViewer_onMiddleBtnPress, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onLeftBtnRelease", (PyCFunction) _wrap_FX_GLViewer_onLeftBtnRelease, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onLeftBtnPress", (PyCFunction) _wrap_FX_GLViewer_onLeftBtnPress, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDeleted", (PyCFunction) _wrap_FX_GLViewer_onDeleted, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onInserted", (PyCFunction) _wrap_FX_GLViewer_onInserted, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDeselected", (PyCFunction) _wrap_FX_GLViewer_onDeselected, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onSelected", (PyCFunction) _wrap_FX_GLViewer_onSelected, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onLassoed", (PyCFunction) _wrap_FX_GLViewer_onLassoed, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onTripleClicked", (PyCFunction) _wrap_FX_GLViewer_onTripleClicked, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onDoubleClicked", (PyCFunction) _wrap_FX_GLViewer_onDoubleClicked, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onClicked", (PyCFunction) _wrap_FX_GLViewer_onClicked, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onPick", (PyCFunction) _wrap_FX_GLViewer_onPick, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onChanged", (PyCFunction) _wrap_FX_GLViewer_onChanged, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onMouseWheel", (PyCFunction) _wrap_FX_GLViewer_onMouseWheel, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onMotion", (PyCFunction) _wrap_FX_GLViewer_onMotion, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onLeave", (PyCFunction) _wrap_FX_GLViewer_onLeave, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onEnter", (PyCFunction) _wrap_FX_GLViewer_onEnter, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLViewer_onPaint", (PyCFunction) _wrap_FX_GLViewer_onPaint, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_shininess_get", (PyCFunction) _wrap_FXMaterial_shininess_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_shininess_set", (PyCFunction) _wrap_FXMaterial_shininess_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_emission_get", (PyCFunction) _wrap_FXMaterial_emission_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_emission_set", (PyCFunction) _wrap_FXMaterial_emission_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_specular_get", (PyCFunction) _wrap_FXMaterial_specular_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_specular_set", (PyCFunction) _wrap_FXMaterial_specular_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_diffuse_get", (PyCFunction) _wrap_FXMaterial_diffuse_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_diffuse_set", (PyCFunction) _wrap_FXMaterial_diffuse_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_ambient_get", (PyCFunction) _wrap_FXMaterial_ambient_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXMaterial_ambient_set", (PyCFunction) _wrap_FXMaterial_ambient_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_q_attn_get", (PyCFunction) _wrap_FXLight_q_attn_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_q_attn_set", (PyCFunction) _wrap_FXLight_q_attn_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_l_attn_get", (PyCFunction) _wrap_FXLight_l_attn_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_l_attn_set", (PyCFunction) _wrap_FXLight_l_attn_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_c_attn_get", (PyCFunction) _wrap_FXLight_c_attn_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_c_attn_set", (PyCFunction) _wrap_FXLight_c_attn_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_cutoff_get", (PyCFunction) _wrap_FXLight_cutoff_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_cutoff_set", (PyCFunction) _wrap_FXLight_cutoff_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_exponent_get", (PyCFunction) _wrap_FXLight_exponent_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_exponent_set", (PyCFunction) _wrap_FXLight_exponent_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_direction_get", (PyCFunction) _wrap_FXLight_direction_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_direction_set", (PyCFunction) _wrap_FXLight_direction_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_position_get", (PyCFunction) _wrap_FXLight_position_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_position_set", (PyCFunction) _wrap_FXLight_position_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_specular_get", (PyCFunction) _wrap_FXLight_specular_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_specular_set", (PyCFunction) _wrap_FXLight_specular_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_diffuse_get", (PyCFunction) _wrap_FXLight_diffuse_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_diffuse_set", (PyCFunction) _wrap_FXLight_diffuse_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_ambient_get", (PyCFunction) _wrap_FXLight_ambient_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXLight_ambient_set", (PyCFunction) _wrap_FXLight_ambient_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_yon_get", (PyCFunction) _wrap_FXViewport_yon_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_yon_set", (PyCFunction) _wrap_FXViewport_yon_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_hither_get", (PyCFunction) _wrap_FXViewport_hither_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_hither_set", (PyCFunction) _wrap_FXViewport_hither_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_top_get", (PyCFunction) _wrap_FXViewport_top_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_top_set", (PyCFunction) _wrap_FXViewport_top_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_bottom_get", (PyCFunction) _wrap_FXViewport_bottom_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_bottom_set", (PyCFunction) _wrap_FXViewport_bottom_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_right_get", (PyCFunction) _wrap_FXViewport_right_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_right_set", (PyCFunction) _wrap_FXViewport_right_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_left_get", (PyCFunction) _wrap_FXViewport_left_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_left_set", (PyCFunction) _wrap_FXViewport_left_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_h_get", (PyCFunction) _wrap_FXViewport_h_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_h_set", (PyCFunction) _wrap_FXViewport_h_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_w_get", (PyCFunction) _wrap_FXViewport_w_get, METH_VARARGS | METH_KEYWORDS },
	 { "FXViewport_w_set", (PyCFunction) _wrap_FXViewport_w_set, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_swapBuffers", (PyCFunction) _wrap_FXGLCanvas_swapBuffers, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_makeNonCurrent", (PyCFunction) _wrap_FXGLCanvas_makeNonCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_makeCurrent", (PyCFunction) _wrap_FXGLCanvas_makeCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_isCurrent", (PyCFunction) _wrap_FXGLCanvas_isCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_setBackColor", (PyCFunction) _wrap_FXGLCanvas_setBackColor, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_reparent", (PyCFunction) _wrap_FXGLCanvas_reparent, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_doesSaveUnder", (PyCFunction) _wrap_FXGLCanvas_doesSaveUnder, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_getHeightForWidth", (PyCFunction) _wrap_FXGLCanvas_getHeightForWidth, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_getWidthForHeight", (PyCFunction) _wrap_FXGLCanvas_getWidthForHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_contains", (PyCFunction) _wrap_FXGLCanvas_contains, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_isComposite", (PyCFunction) _wrap_FXGLCanvas_isComposite, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_position", (PyCFunction) _wrap_FXGLCanvas_position, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_move", (PyCFunction) _wrap_FXGLCanvas_move, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_lower", (PyCFunction) _wrap_FXGLCanvas_lower, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_layout", (PyCFunction) _wrap_FXGLCanvas_layout, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_recalc", (PyCFunction) _wrap_FXGLCanvas_recalc, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_setDefault", (PyCFunction) _wrap_FXGLCanvas_setDefault, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_killFocus", (PyCFunction) _wrap_FXGLCanvas_killFocus, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_setFocus", (PyCFunction) _wrap_FXGLCanvas_setFocus, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_canFocus", (PyCFunction) _wrap_FXGLCanvas_canFocus, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_disable", (PyCFunction) _wrap_FXGLCanvas_disable, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_enable", (PyCFunction) _wrap_FXGLCanvas_enable, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_hide", (PyCFunction) _wrap_FXGLCanvas_hide, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_show", (PyCFunction) _wrap_FXGLCanvas_show, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_getDefaultHeight", (PyCFunction) _wrap_FXGLCanvas_getDefaultHeight, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_getDefaultWidth", (PyCFunction) _wrap_FXGLCanvas_getDefaultWidth, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_resize", (PyCFunction) _wrap_FXGLCanvas_resize, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_detach", (PyCFunction) _wrap_FXGLCanvas_detach, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_destroy", (PyCFunction) _wrap_FXGLCanvas_destroy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_create", (PyCFunction) _wrap_FXGLCanvas_create, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLCanvas_onDefault", (PyCFunction) _wrap_FXGLCanvas_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLCanvas", (PyCFunction) _wrap_new_FXGLCanvas, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCanvas_swapBuffers", (PyCFunction) _wrap_FX_GLCanvas_swapBuffers, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCanvas_makeNonCurrent", (PyCFunction) _wrap_FX_GLCanvas_makeNonCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCanvas_getContext", (PyCFunction) _wrap_FX_GLCanvas_getContext, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCanvas_makeCurrent", (PyCFunction) _wrap_FX_GLCanvas_makeCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCanvas_isCurrent", (PyCFunction) _wrap_FX_GLCanvas_isCurrent, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLCanvas_isShared", (PyCFunction) _wrap_FX_GLCanvas_isShared, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLVisual_onDefault", (PyCFunction) _wrap_FXGLVisual_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLVisual", (PyCFunction) _wrap_new_FXGLVisual, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_destroy", (PyCFunction) _wrap_FX_GLVisual_destroy, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_detach", (PyCFunction) _wrap_FX_GLVisual_detach, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_create", (PyCFunction) _wrap_FX_GLVisual_create, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_isAccelerated", (PyCFunction) _wrap_FX_GLVisual_isAccelerated, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_isStereo", (PyCFunction) _wrap_FX_GLVisual_isStereo, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_isDoubleBuffer", (PyCFunction) _wrap_FX_GLVisual_isDoubleBuffer, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualAccumAlphaSize", (PyCFunction) _wrap_FX_GLVisual_getActualAccumAlphaSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualAccumBlueSize", (PyCFunction) _wrap_FX_GLVisual_getActualAccumBlueSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualAccumGreenSize", (PyCFunction) _wrap_FX_GLVisual_getActualAccumGreenSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualAccumRedSize", (PyCFunction) _wrap_FX_GLVisual_getActualAccumRedSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualStencilSize", (PyCFunction) _wrap_FX_GLVisual_getActualStencilSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualDepthSize", (PyCFunction) _wrap_FX_GLVisual_getActualDepthSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualAlphaSize", (PyCFunction) _wrap_FX_GLVisual_getActualAlphaSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualBlueSize", (PyCFunction) _wrap_FX_GLVisual_getActualBlueSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualGreenSize", (PyCFunction) _wrap_FX_GLVisual_getActualGreenSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getActualRedSize", (PyCFunction) _wrap_FX_GLVisual_getActualRedSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setAccumAlphaSize", (PyCFunction) _wrap_FX_GLVisual_setAccumAlphaSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setAccumBlueSize", (PyCFunction) _wrap_FX_GLVisual_setAccumBlueSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setAccumGreenSize", (PyCFunction) _wrap_FX_GLVisual_setAccumGreenSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setAccumRedSize", (PyCFunction) _wrap_FX_GLVisual_setAccumRedSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setStencilSize", (PyCFunction) _wrap_FX_GLVisual_setStencilSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setDepthSize", (PyCFunction) _wrap_FX_GLVisual_setDepthSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setAlphaSize", (PyCFunction) _wrap_FX_GLVisual_setAlphaSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setBlueSize", (PyCFunction) _wrap_FX_GLVisual_setBlueSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setGreenSize", (PyCFunction) _wrap_FX_GLVisual_setGreenSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_setRedSize", (PyCFunction) _wrap_FX_GLVisual_setRedSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getAccumAlphaSize", (PyCFunction) _wrap_FX_GLVisual_getAccumAlphaSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getAccumBlueSize", (PyCFunction) _wrap_FX_GLVisual_getAccumBlueSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getAccumGreenSize", (PyCFunction) _wrap_FX_GLVisual_getAccumGreenSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getAccumRedSize", (PyCFunction) _wrap_FX_GLVisual_getAccumRedSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getStencilSize", (PyCFunction) _wrap_FX_GLVisual_getStencilSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getDepthSize", (PyCFunction) _wrap_FX_GLVisual_getDepthSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getAlphaSize", (PyCFunction) _wrap_FX_GLVisual_getAlphaSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getBlueSize", (PyCFunction) _wrap_FX_GLVisual_getBlueSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getGreenSize", (PyCFunction) _wrap_FX_GLVisual_getGreenSize, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLVisual_getRedSize", (PyCFunction) _wrap_FX_GLVisual_getRedSize, METH_VARARGS | METH_KEYWORDS },
	 { "new_FX_GLVisual", (PyCFunction) _wrap_new_FX_GLVisual, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLContext_detach", (PyCFunction) _wrap_FXGLContext_detach, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLContext_destroy", (PyCFunction) _wrap_FXGLContext_destroy, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLContext_create", (PyCFunction) _wrap_FXGLContext_create, METH_VARARGS | METH_KEYWORDS },
	 { "FXGLContext_onDefault", (PyCFunction) _wrap_FXGLContext_onDefault, METH_VARARGS | METH_KEYWORDS },
	 { "new_FXGLContext", (PyCFunction) _wrap_new_FXGLContext, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_swapSubBuffers", (PyCFunction) _wrap_FX_GLContext_swapSubBuffers, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_swapBuffers", (PyCFunction) _wrap_FX_GLContext_swapBuffers, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_end", (PyCFunction) _wrap_FX_GLContext_end, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_begin", (PyCFunction) _wrap_FX_GLContext_begin, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_destroy", (PyCFunction) _wrap_FX_GLContext_destroy, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_detach", (PyCFunction) _wrap_FX_GLContext_detach, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_create", (PyCFunction) _wrap_FX_GLContext_create, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_getVisual", (PyCFunction) _wrap_FX_GLContext_getVisual, METH_VARARGS | METH_KEYWORDS },
	 { "FX_GLContext_isShared", (PyCFunction) _wrap_FX_GLContext_isShared, METH_VARARGS | METH_KEYWORDS },
	 { "CreateGLViewer2", (PyCFunction) _wrap_CreateGLViewer2, METH_VARARGS | METH_KEYWORDS },
	 { "CreateGLViewer1", (PyCFunction) _wrap_CreateGLViewer1, METH_VARARGS | METH_KEYWORDS },
	 { "CreateGLCanvas2", (PyCFunction) _wrap_CreateGLCanvas2, METH_VARARGS | METH_KEYWORDS },
	 { "CreateGLCanvas1", (PyCFunction) _wrap_CreateGLCanvas1, METH_VARARGS | METH_KEYWORDS },
	 { "CreateGLContext2", (PyCFunction) _wrap_CreateGLContext2, METH_VARARGS | METH_KEYWORDS },
	 { "CreateGLContext1", (PyCFunction) _wrap_CreateGLContext1, METH_VARARGS | METH_KEYWORDS },
	 { NULL, NULL }
};
#ifdef __cplusplus
}
#endif
/*
 * This table is used by the pointer type-checker
 */
static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
    { "_class_FXPyBMPImage","_FXPyBMPImage",0},
    { "_class_FXPyICOImage","_FXPyICOImage",0},
    { "_FXPyDelegator","_class_FXPyDelegator",0},
    { "_FX4Splitter","_class_FX4Splitter",0},
    { "_signed_long","_FXTime",0},
    { "_signed_long","_long",0},
    { "_class_FXPyPCXImage","_FXPyPCXImage",0},
    { "_FXGLVisual","_class_FXPyGLVisual",SwigFXPyGLVisualToFXGLVisual},
    { "_FXGLVisual","_FXPyGLVisual",SwigFXPyGLVisualToFXGLVisual},
    { "_FXGLVisual","_class_FXGLVisual",0},
    { "_class_FXGLGroup","_class_FXPyGLGroup",SwigFXPyGLGroupToFXGLGroup},
    { "_class_FXGLGroup","_FXPyGLGroup",SwigFXPyGLGroupToFXGLGroup},
    { "_class_FXGLGroup","_FXGLGroup",0},
    { "_class_FXTIFIcon","_FXTIFIcon",0},
    { "_FXPyHorizontalFrame","_class_FXPyHorizontalFrame",0},
    { "_FXViewport","_struct_FXViewport",0},
    { "_double","_FXdouble",0},
    { "_FXPyObject","_class_FXPyObject",0},
    { "_FXPyGIFIcon","_class_FXPyGIFIcon",0},
    { "_FXBMPIcon","_class_FXBMPIcon",0},
    { "_FXICOIcon","_class_FXICOIcon",0},
    { "_class_FXSettings","_FXSettings",0},
    { "_class_FXRegistry","_FXRegistry",0},
    { "_class_FXMainWindow","_FXMainWindow",0},
    { "_FXPyGLLine","_class_FXPyGLLine",0},
    { "_FXGLTriangleMesh","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLTriangleMesh},
    { "_FXGLTriangleMesh","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLTriangleMesh},
    { "_FXGLTriangleMesh","_class_FXGLTriangleMesh",0},
    { "_FXTopWindow","_class_FXTopWindow",0},
    { "_FXPySwitcher","_class_FXPySwitcher",0},
    { "_FXGLCanvas","_class_FXPyGLViewer",SwigFXPyGLViewerToFXGLCanvas},
    { "_FXGLCanvas","_FXPyGLViewer",SwigFXPyGLViewerToFXGLCanvas},
    { "_FXGLCanvas","_class_FXGLViewer",SwigFXGLViewerToFXGLCanvas},
    { "_FXGLCanvas","_FXGLViewer",SwigFXGLViewerToFXGLCanvas},
    { "_FXGLCanvas","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXGLCanvas},
    { "_FXGLCanvas","_FXPyGLCanvas",SwigFXPyGLCanvasToFXGLCanvas},
    { "_FXGLCanvas","_class_FXGLCanvas",0},
    { "_FXShutterItem","_class_FXShutterItem",0},
    { "_class_FXVisual","_class_FXPyGLVisual",SwigFXPyGLVisualToFXVisual},
    { "_class_FXVisual","_FXPyGLVisual",SwigFXPyGLVisualToFXVisual},
    { "_class_FXVisual","_class_FXGLVisual",SwigFXGLVisualToFXVisual},
    { "_class_FXVisual","_FXGLVisual",SwigFXGLVisualToFXVisual},
    { "_class_FXVisual","_FXVisual",0},
    { "_FXIcon","_class_FXIcon",0},
    { "_FXPyMatrix","_class_FXPyMatrix",0},
    { "_class_FXDCPrint","_FXDCPrint",0},
    { "_class_FXGroupBox","_FXGroupBox",0},
    { "_class_FXGLObject","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLObject},
    { "_class_FXGLObject","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLObject},
    { "_class_FXGLObject","_class_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLObject},
    { "_class_FXGLObject","_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLCone",SwigFXPyGLConeToFXGLObject},
    { "_class_FXGLObject","_FXPyGLCone",SwigFXPyGLConeToFXGLObject},
    { "_class_FXGLObject","_class_FXGLCone",SwigFXGLConeToFXGLObject},
    { "_class_FXGLObject","_FXGLCone",SwigFXGLConeToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLObject},
    { "_class_FXGLObject","_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLObject},
    { "_class_FXGLObject","_class_FXGLCylinder",SwigFXGLCylinderToFXGLObject},
    { "_class_FXGLObject","_FXGLCylinder",SwigFXGLCylinderToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLSphere",SwigFXPyGLSphereToFXGLObject},
    { "_class_FXGLObject","_FXPyGLSphere",SwigFXPyGLSphereToFXGLObject},
    { "_class_FXGLObject","_class_FXGLSphere",SwigFXGLSphereToFXGLObject},
    { "_class_FXGLObject","_FXGLSphere",SwigFXGLSphereToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLCube",SwigFXPyGLCubeToFXGLObject},
    { "_class_FXGLObject","_FXPyGLCube",SwigFXPyGLCubeToFXGLObject},
    { "_class_FXGLObject","_class_FXGLCube",SwigFXGLCubeToFXGLObject},
    { "_class_FXGLObject","_FXGLCube",SwigFXGLCubeToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLLine",SwigFXPyGLLineToFXGLObject},
    { "_class_FXGLObject","_FXPyGLLine",SwigFXPyGLLineToFXGLObject},
    { "_class_FXGLObject","_class_FXGLLine",SwigFXGLLineToFXGLObject},
    { "_class_FXGLObject","_FXGLLine",SwigFXGLLineToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLPoint",SwigFXPyGLPointToFXGLObject},
    { "_class_FXGLObject","_FXPyGLPoint",SwigFXPyGLPointToFXGLObject},
    { "_class_FXGLObject","_class_FXGLPoint",SwigFXGLPointToFXGLObject},
    { "_class_FXGLObject","_FXGLPoint",SwigFXGLPointToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLShape",SwigFXPyGLShapeToFXGLObject},
    { "_class_FXGLObject","_FXPyGLShape",SwigFXPyGLShapeToFXGLObject},
    { "_class_FXGLObject","_class_FXGLShape",SwigFXGLShapeToFXGLObject},
    { "_class_FXGLObject","_FXGLShape",SwigFXGLShapeToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLGroup",SwigFXPyGLGroupToFXGLObject},
    { "_class_FXGLObject","_FXPyGLGroup",SwigFXPyGLGroupToFXGLObject},
    { "_class_FXGLObject","_class_FXGLGroup",SwigFXGLGroupToFXGLObject},
    { "_class_FXGLObject","_FXGLGroup",SwigFXGLGroupToFXGLObject},
    { "_class_FXGLObject","_class_FXPyGLObject",SwigFXPyGLObjectToFXGLObject},
    { "_class_FXGLObject","_FXPyGLObject",SwigFXPyGLObjectToFXGLObject},
    { "_class_FXGLObject","_FXGLObject",0},
    { "_FXTGAImage","_class_FXTGAImage",0},
    { "_class_FXPyTGAIcon","_FXPyTGAIcon",0},
    { "_FXPyStream","_class_FXPyStream",0},
    { "_class_FXPyDict","_FXPyDict",0},
    { "_class_FXRegion","_FXRegion",0},
    { "_FXShutter","_class_FXShutter",0},
    { "_FXPyPNGImage","_class_FXPyPNGImage",0},
    { "_class_FXAccelTable","_FXAccelTable",0},
    { "_FXPyApp","_class_FXPyApp",0},
    { "_FXDCWindow","_class_FXDCWindow",0},
    { "_FXPyScrollArea","_class_FXPyScrollArea",0},
    { "_class_FXPyId","_FXPyId",0},
    { "_class_FXCanvas","_class_FXPyGLViewer",SwigFXPyGLViewerToFXCanvas},
    { "_class_FXCanvas","_FXPyGLViewer",SwigFXPyGLViewerToFXCanvas},
    { "_class_FXCanvas","_class_FXGLViewer",SwigFXGLViewerToFXCanvas},
    { "_class_FXCanvas","_FXGLViewer",SwigFXGLViewerToFXCanvas},
    { "_class_FXCanvas","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXCanvas},
    { "_class_FXCanvas","_FXPyGLCanvas",SwigFXPyGLCanvasToFXCanvas},
    { "_class_FXCanvas","_class_FXGLCanvas",SwigFXGLCanvasToFXCanvas},
    { "_class_FXCanvas","_FXGLCanvas",SwigFXGLCanvasToFXCanvas},
    { "_class_FXCanvas","_FXCanvas",0},
    { "_FXApp","_class_FXApp",0},
    { "_class_FXPyRecentFiles","_FXPyRecentFiles",0},
    { "_class_FXPyDebugTarget","_FXPyDebugTarget",0},
    { "_class_FXCommand","_FXCommand",0},
    { "_class_FXPyFrame","_FXPyFrame",0},
    { "_struct_FXLight","_FXLight",0},
    { "_FXGLPoint","_class_FXPyGLPoint",SwigFXPyGLPointToFXGLPoint},
    { "_FXGLPoint","_FXPyGLPoint",SwigFXPyGLPointToFXGLPoint},
    { "_FXGLPoint","_class_FXGLPoint",0},
    { "_long","_FXPixel",0},
    { "_long","_FXTime",0},
    { "_long","_unsigned_long",0},
    { "_long","_signed_long",0},
    { "_FXComposite","_class_FXComposite",0},
    { "_struct_FXArc","_FXArc",0},
    { "_FXRGBIcon","_class_FXRGBIcon",0},
    { "_FXScrollArea","_class_FXScrollArea",0},
    { "_FXPrinter","_struct_FXPrinter",0},
    { "_class_FXId","_class_FXPyGLViewer",SwigFXPyGLViewerToFXId},
    { "_class_FXId","_FXPyGLViewer",SwigFXPyGLViewerToFXId},
    { "_class_FXId","_class_FXGLViewer",SwigFXGLViewerToFXId},
    { "_class_FXId","_FXGLViewer",SwigFXGLViewerToFXId},
    { "_class_FXId","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXId},
    { "_class_FXId","_FXPyGLCanvas",SwigFXPyGLCanvasToFXId},
    { "_class_FXId","_class_FXGLCanvas",SwigFXGLCanvasToFXId},
    { "_class_FXId","_FXGLCanvas",SwigFXGLCanvasToFXId},
    { "_class_FXId","_class_FXPyGLVisual",SwigFXPyGLVisualToFXId},
    { "_class_FXId","_FXPyGLVisual",SwigFXPyGLVisualToFXId},
    { "_class_FXId","_class_FXGLVisual",SwigFXGLVisualToFXId},
    { "_class_FXId","_FXGLVisual",SwigFXGLVisualToFXId},
    { "_class_FXId","_FXId",0},
    { "_FXPyHorizontalSeparator","_class_FXPyHorizontalSeparator",0},
    { "_float","_FXfloat",0},
    { "_FXPyDrawable","_class_FXPyDrawable",0},
    { "_class_FXPyXPMIcon","_FXPyXPMIcon",0},
    { "_FXPyScrollWindow","_class_FXPyScrollWindow",0},
    { "_FXshort","_short",0},
    { "_FXshort","_signed_short",0},
    { "_FXshort","_unsigned_short",0},
    { "_FXshort","_FXushort",0},
    { "_FXFontDesc","_struct_FXFontDesc",0},
    { "_FXArc","_struct_FXArc",0},
    { "_FXPyGLCube","_class_FXPyGLCube",0},
    { "_FXSize","_class_FXSize",0},
    { "_class_FXBMPIcon","_FXBMPIcon",0},
    { "_class_FXICOIcon","_FXICOIcon",0},
    { "_FXPyShell","_class_FXPyShell",0},
    { "_class_FXPyGLGroup","_FXPyGLGroup",0},
    { "_class_FXPyTIFIcon","_FXPyTIFIcon",0},
    { "_FXSegment","_struct_FXSegment",0},
    { "_struct_FXViewport","_FXViewport",0},
    { "_FXJPGImage","_class_FXJPGImage",0},
    { "_class_FXPySwitcher","_FXPySwitcher",0},
    { "_class_FXTIFImage","_FXTIFImage",0},
    { "_FXPyPCXIcon","_class_FXPyPCXIcon",0},
    { "_FXDC","_class_FXDC",0},
    { "_class_FXIcon","_FXIcon",0},
    { "_FXPopup","_class_FXPopup",0},
    { "_FXPy4Splitter","_class_FXPy4Splitter",0},
    { "_FXGLContext","_class_FXPyGLContext",SwigFXPyGLContextToFXGLContext},
    { "_FXGLContext","_FXPyGLContext",SwigFXPyGLContextToFXGLContext},
    { "_FXGLContext","_class_FXGLContext",0},
    { "_FXGLShape","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLShape},
    { "_FXGLShape","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLShape},
    { "_FXGLShape","_class_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLShape},
    { "_FXGLShape","_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLShape},
    { "_FXGLShape","_class_FXPyGLCone",SwigFXPyGLConeToFXGLShape},
    { "_FXGLShape","_FXPyGLCone",SwigFXPyGLConeToFXGLShape},
    { "_FXGLShape","_class_FXGLCone",SwigFXGLConeToFXGLShape},
    { "_FXGLShape","_FXGLCone",SwigFXGLConeToFXGLShape},
    { "_FXGLShape","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLShape},
    { "_FXGLShape","_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLShape},
    { "_FXGLShape","_class_FXGLCylinder",SwigFXGLCylinderToFXGLShape},
    { "_FXGLShape","_FXGLCylinder",SwigFXGLCylinderToFXGLShape},
    { "_FXGLShape","_class_FXPyGLSphere",SwigFXPyGLSphereToFXGLShape},
    { "_FXGLShape","_FXPyGLSphere",SwigFXPyGLSphereToFXGLShape},
    { "_FXGLShape","_class_FXGLSphere",SwigFXGLSphereToFXGLShape},
    { "_FXGLShape","_FXGLSphere",SwigFXGLSphereToFXGLShape},
    { "_FXGLShape","_class_FXPyGLCube",SwigFXPyGLCubeToFXGLShape},
    { "_FXGLShape","_FXPyGLCube",SwigFXPyGLCubeToFXGLShape},
    { "_FXGLShape","_class_FXGLCube",SwigFXGLCubeToFXGLShape},
    { "_FXGLShape","_FXGLCube",SwigFXGLCubeToFXGLShape},
    { "_FXGLShape","_class_FXPyGLShape",SwigFXPyGLShapeToFXGLShape},
    { "_FXGLShape","_FXPyGLShape",SwigFXPyGLShapeToFXGLShape},
    { "_FXGLShape","_class_FXGLShape",0},
    { "_FXint","_FXInputHandle",0},
    { "_FXint","_FXDragType",0},
    { "_FXint","_FXHotKey",0},
    { "_FXint","_FXColor",0},
    { "_FXint","_FXID",0},
    { "_FXint","_FXSelector",0},
    { "_FXint","_int",0},
    { "_FXint","_signed_int",0},
    { "_FXint","_unsigned_int",0},
    { "_FXint","_FXuint",0},
    { "_FXPyPNGIcon","_class_FXPyPNGIcon",0},
    { "_class_FXWindow","_class_FXPyGLViewer",SwigFXPyGLViewerToFXWindow},
    { "_class_FXWindow","_FXPyGLViewer",SwigFXPyGLViewerToFXWindow},
    { "_class_FXWindow","_class_FXGLViewer",SwigFXGLViewerToFXWindow},
    { "_class_FXWindow","_FXGLViewer",SwigFXGLViewerToFXWindow},
    { "_class_FXWindow","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXWindow},
    { "_class_FXWindow","_FXPyGLCanvas",SwigFXPyGLCanvasToFXWindow},
    { "_class_FXWindow","_class_FXGLCanvas",SwigFXGLCanvasToFXWindow},
    { "_class_FXWindow","_FXGLCanvas",SwigFXGLCanvasToFXWindow},
    { "_class_FXWindow","_FXWindow",0},
    { "_FXPyRootWindow","_class_FXPyRootWindow",0},
    { "_class_FXShutter","_FXShutter",0},
    { "_FXushort","_FXshort",0},
    { "_FXushort","_unsigned_short",0},
    { "_FXushort","_short",0},
    { "_class_FXPoint","_FXPoint",0},
    { "_class_FXPyPNGImage","_FXPyPNGImage",0},
    { "_class_FXPyDCPrint","_FXPyDCPrint",0},
    { "_FXGLCone","_class_FXPyGLCone",SwigFXPyGLConeToFXGLCone},
    { "_FXGLCone","_FXPyGLCone",SwigFXPyGLConeToFXGLCone},
    { "_FXGLCone","_class_FXGLCone",0},
    { "_FXPyVisual","_class_FXPyVisual",0},
    { "_class_FXGLViewer","_class_FXPyGLViewer",SwigFXPyGLViewerToFXGLViewer},
    { "_class_FXGLViewer","_FXPyGLViewer",SwigFXPyGLViewerToFXGLViewer},
    { "_class_FXGLViewer","_FXGLViewer",0},
    { "_class_FXRectangle","_FXRectangle",0},
    { "_class_FXPyFont","_FXPyFont",0},
    { "_FXPyFileStream","_class_FXPyFileStream",0},
    { "_FXRGBImage","_class_FXRGBImage",0},
    { "_FXRootWindow","_class_FXRootWindow",0},
    { "_class_FXPacker","_FXPacker",0},
    { "_class_FXGLPoint","_class_FXPyGLPoint",SwigFXPyGLPointToFXGLPoint},
    { "_class_FXGLPoint","_FXPyGLPoint",SwigFXPyGLPointToFXGLPoint},
    { "_class_FXGLPoint","_FXGLPoint",0},
    { "_FXPyXPMImage","_class_FXPyXPMImage",0},
    { "_FXPyDataTarget","_class_FXPyDataTarget",0},
    { "_FXPyTopWindow","_class_FXPyTopWindow",0},
    { "_FXGLSphere","_class_FXPyGLSphere",SwigFXPyGLSphereToFXGLSphere},
    { "_FXGLSphere","_FXPyGLSphere",SwigFXPyGLSphereToFXGLSphere},
    { "_FXGLSphere","_class_FXGLSphere",0},
    { "_class_FXPyGLCone","_FXPyGLCone",0},
    { "_FXObject","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXObject},
    { "_FXObject","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXObject},
    { "_FXObject","_class_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXObject},
    { "_FXObject","_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXObject},
    { "_FXObject","_class_FXPyGLCone",SwigFXPyGLConeToFXObject},
    { "_FXObject","_FXPyGLCone",SwigFXPyGLConeToFXObject},
    { "_FXObject","_class_FXGLCone",SwigFXGLConeToFXObject},
    { "_FXObject","_FXGLCone",SwigFXGLConeToFXObject},
    { "_FXObject","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXObject},
    { "_FXObject","_FXPyGLCylinder",SwigFXPyGLCylinderToFXObject},
    { "_FXObject","_class_FXGLCylinder",SwigFXGLCylinderToFXObject},
    { "_FXObject","_FXGLCylinder",SwigFXGLCylinderToFXObject},
    { "_FXObject","_class_FXPyGLSphere",SwigFXPyGLSphereToFXObject},
    { "_FXObject","_FXPyGLSphere",SwigFXPyGLSphereToFXObject},
    { "_FXObject","_class_FXGLSphere",SwigFXGLSphereToFXObject},
    { "_FXObject","_FXGLSphere",SwigFXGLSphereToFXObject},
    { "_FXObject","_class_FXPyGLCube",SwigFXPyGLCubeToFXObject},
    { "_FXObject","_FXPyGLCube",SwigFXPyGLCubeToFXObject},
    { "_FXObject","_class_FXGLCube",SwigFXGLCubeToFXObject},
    { "_FXObject","_FXGLCube",SwigFXGLCubeToFXObject},
    { "_FXObject","_class_FXPyGLLine",SwigFXPyGLLineToFXObject},
    { "_FXObject","_FXPyGLLine",SwigFXPyGLLineToFXObject},
    { "_FXObject","_class_FXGLLine",SwigFXGLLineToFXObject},
    { "_FXObject","_FXGLLine",SwigFXGLLineToFXObject},
    { "_FXObject","_class_FXPyGLPoint",SwigFXPyGLPointToFXObject},
    { "_FXObject","_FXPyGLPoint",SwigFXPyGLPointToFXObject},
    { "_FXObject","_class_FXGLPoint",SwigFXGLPointToFXObject},
    { "_FXObject","_FXGLPoint",SwigFXGLPointToFXObject},
    { "_FXObject","_class_FXPyGLShape",SwigFXPyGLShapeToFXObject},
    { "_FXObject","_FXPyGLShape",SwigFXPyGLShapeToFXObject},
    { "_FXObject","_class_FXGLShape",SwigFXGLShapeToFXObject},
    { "_FXObject","_FXGLShape",SwigFXGLShapeToFXObject},
    { "_FXObject","_class_FXPyGLGroup",SwigFXPyGLGroupToFXObject},
    { "_FXObject","_FXPyGLGroup",SwigFXPyGLGroupToFXObject},
    { "_FXObject","_class_FXGLGroup",SwigFXGLGroupToFXObject},
    { "_FXObject","_FXGLGroup",SwigFXGLGroupToFXObject},
    { "_FXObject","_class_FXPyGLObject",SwigFXPyGLObjectToFXObject},
    { "_FXObject","_FXPyGLObject",SwigFXPyGLObjectToFXObject},
    { "_FXObject","_class_FXGLObject",SwigFXGLObjectToFXObject},
    { "_FXObject","_FXGLObject",SwigFXGLObjectToFXObject},
    { "_FXObject","_class_FXPyGLViewer",SwigFXPyGLViewerToFXObject},
    { "_FXObject","_FXPyGLViewer",SwigFXPyGLViewerToFXObject},
    { "_FXObject","_class_FXGLViewer",SwigFXGLViewerToFXObject},
    { "_FXObject","_FXGLViewer",SwigFXGLViewerToFXObject},
    { "_FXObject","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXObject},
    { "_FXObject","_FXPyGLCanvas",SwigFXPyGLCanvasToFXObject},
    { "_FXObject","_class_FXGLCanvas",SwigFXGLCanvasToFXObject},
    { "_FXObject","_FXGLCanvas",SwigFXGLCanvasToFXObject},
    { "_FXObject","_class_FXPyGLVisual",SwigFXPyGLVisualToFXObject},
    { "_FXObject","_FXPyGLVisual",SwigFXPyGLVisualToFXObject},
    { "_FXObject","_class_FXGLVisual",SwigFXGLVisualToFXObject},
    { "_FXObject","_FXGLVisual",SwigFXGLVisualToFXObject},
    { "_FXObject","_class_FXPyGLContext",SwigFXPyGLContextToFXObject},
    { "_FXObject","_FXPyGLContext",SwigFXPyGLContextToFXObject},
    { "_FXObject","_class_FXGLContext",SwigFXGLContextToFXObject},
    { "_FXObject","_FXGLContext",SwigFXGLContextToFXObject},
    { "_FXObject","_class_FXObject",0},
    { "_FXPyGIFImage","_class_FXPyGIFImage",0},
    { "_FXBMPImage","_class_FXBMPImage",0},
    { "_FXICOImage","_class_FXICOImage",0},
    { "_class_FXRGBIcon","_FXRGBIcon",0},
    { "_FXRecentFiles","_class_FXRecentFiles",0},
    { "_FXDebugTarget","_class_FXDebugTarget",0},
    { "_class_FXPyCommand","_FXPyCommand",0},
    { "_class_FXScrollArea","_FXScrollArea",0},
    { "_FXPySplitter","_class_FXPySplitter",0},
    { "_FXPCXImage","_class_FXPCXImage",0},
    { "_FXFileStream","_class_FXFileStream",0},
    { "_class_FXPyDelegator","_FXPyDelegator",0},
    { "_FXPyCanvas","_class_FXPyCanvas",0},
    { "_FXMaterial","_struct_FXMaterial",0},
    { "_FXGLLine","_class_FXPyGLLine",SwigFXPyGLLineToFXGLLine},
    { "_FXGLLine","_FXPyGLLine",SwigFXPyGLLineToFXGLLine},
    { "_FXGLLine","_class_FXGLLine",0},
    { "_FXPyGLCylinder","_class_FXPyGLCylinder",0},
    { "_class_FXPyDrawable","_FXPyDrawable",0},
    { "_FXPyImage","_class_FXPyImage",0},
    { "_FXGIFIcon","_class_FXGIFIcon",0},
    { "_class_FXGLVisual","_class_FXPyGLVisual",SwigFXPyGLVisualToFXGLVisual},
    { "_class_FXGLVisual","_FXPyGLVisual",SwigFXPyGLVisualToFXGLVisual},
    { "_class_FXGLVisual","_FXGLVisual",0},
    { "_FXColor","_FXInputHandle",0},
    { "_FXColor","_FXDragType",0},
    { "_FXColor","_FXHotKey",0},
    { "_FXColor","_FXuint",0},
    { "_FXColor","_int",0},
    { "_FXColor","_unsigned_int",0},
    { "_FXColor","_FXint",0},
    { "_FXColor","_FXSelector",0},
    { "_FXColor","_FXID",0},
    { "_FXPyJPGIcon","_class_FXPyJPGIcon",0},
    { "_FXDataTarget","_class_FXDataTarget",0},
    { "_class_FXPyHorizontalFrame","_FXPyHorizontalFrame",0},
    { "_FXTime","_FXPixel",0},
    { "_FXTime","_long",0},
    { "_FXTime","_signed_long",0},
    { "_FXTime","_unsigned_long",0},
    { "_FXHotKey","_FXInputHandle",0},
    { "_FXHotKey","_FXDragType",0},
    { "_FXHotKey","_FXuint",0},
    { "_FXHotKey","_int",0},
    { "_FXHotKey","_unsigned_int",0},
    { "_FXHotKey","_FXint",0},
    { "_FXHotKey","_FXSelector",0},
    { "_FXHotKey","_FXID",0},
    { "_FXHotKey","_FXColor",0},
    { "_class_FXSize","_FXSize",0},
    { "_class_FXPyObject","_FXPyObject",0},
    { "_class_FXPyShell","_FXPyShell",0},
    { "_FXPyDC","_class_FXPyDC",0},
    { "_struct_FXFontDesc","_FXFontDesc",0},
    { "_FXMatrix","_class_FXMatrix",0},
    { "_class_FXPyGLLine","_FXPyGLLine",0},
    { "_FXGLCylinder","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLCylinder},
    { "_FXGLCylinder","_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLCylinder},
    { "_FXGLCylinder","_class_FXGLCylinder",0},
    { "_class_FXPyBMPIcon","_FXPyBMPIcon",0},
    { "_class_FXPyICOIcon","_FXPyICOIcon",0},
    { "_class_FXGLTriangleMesh","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLTriangleMesh},
    { "_class_FXGLTriangleMesh","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLTriangleMesh},
    { "_class_FXGLTriangleMesh","_FXGLTriangleMesh",0},
    { "_char","_FXchar",0},
    { "_FXdouble","_double",0},
    { "_FXStream","_class_FXStream",0},
    { "_FXPyStringDict","_class_FXPyStringDict",0},
    { "_FXFrame","_class_FXFrame",0},
    { "_class_FXGLCanvas","_class_FXPyGLViewer",SwigFXPyGLViewerToFXGLCanvas},
    { "_class_FXGLCanvas","_FXPyGLViewer",SwigFXPyGLViewerToFXGLCanvas},
    { "_class_FXGLCanvas","_class_FXGLViewer",SwigFXGLViewerToFXGLCanvas},
    { "_class_FXGLCanvas","_FXGLViewer",SwigFXGLViewerToFXGLCanvas},
    { "_class_FXGLCanvas","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXGLCanvas},
    { "_class_FXGLCanvas","_FXPyGLCanvas",SwigFXPyGLCanvasToFXGLCanvas},
    { "_class_FXGLCanvas","_FXGLCanvas",0},
    { "_FXObjectPtr","_FXObject_p",0},
    { "_FXPyComposite","_class_FXPyComposite",0},
    { "_class_FXShutterItem","_FXShutterItem",0},
    { "_class_FXDelegator","_FXDelegator",0},
    { "_FXVerticalFrame","_class_FXVerticalFrame",0},
    { "_class_FXPyMatrix","_FXPyMatrix",0},
    { "_class_FXGLShape","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLShape},
    { "_class_FXGLShape","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLShape},
    { "_class_FXGLShape","_class_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLShape},
    { "_class_FXGLShape","_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLShape},
    { "_class_FXGLShape","_class_FXPyGLCone",SwigFXPyGLConeToFXGLShape},
    { "_class_FXGLShape","_FXPyGLCone",SwigFXPyGLConeToFXGLShape},
    { "_class_FXGLShape","_class_FXGLCone",SwigFXGLConeToFXGLShape},
    { "_class_FXGLShape","_FXGLCone",SwigFXGLConeToFXGLShape},
    { "_class_FXGLShape","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLShape},
    { "_class_FXGLShape","_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLShape},
    { "_class_FXGLShape","_class_FXGLCylinder",SwigFXGLCylinderToFXGLShape},
    { "_class_FXGLShape","_FXGLCylinder",SwigFXGLCylinderToFXGLShape},
    { "_class_FXGLShape","_class_FXPyGLSphere",SwigFXPyGLSphereToFXGLShape},
    { "_class_FXGLShape","_FXPyGLSphere",SwigFXPyGLSphereToFXGLShape},
    { "_class_FXGLShape","_class_FXGLSphere",SwigFXGLSphereToFXGLShape},
    { "_class_FXGLShape","_FXGLSphere",SwigFXGLSphereToFXGLShape},
    { "_class_FXGLShape","_class_FXPyGLCube",SwigFXPyGLCubeToFXGLShape},
    { "_class_FXGLShape","_FXPyGLCube",SwigFXPyGLCubeToFXGLShape},
    { "_class_FXGLShape","_class_FXGLCube",SwigFXGLCubeToFXGLShape},
    { "_class_FXGLShape","_FXGLCube",SwigFXGLCubeToFXGLShape},
    { "_class_FXGLShape","_class_FXPyGLShape",SwigFXPyGLShapeToFXGLShape},
    { "_class_FXGLShape","_FXPyGLShape",SwigFXPyGLShapeToFXGLShape},
    { "_class_FXGLShape","_FXGLShape",0},
    { "_FXbool","_FXuchar",0},
    { "_FXbool","_unsigned_char",0},
    { "_class_FXTGAImage","_FXTGAImage",0},
    { "_class_FXPyStream","_FXPyStream",0},
    { "_FXStringDict","_class_FXStringDict",0},
    { "_FXPyGroupBox","_class_FXPyGroupBox",0},
    { "_FXPyGLObject","_class_FXPyGLObject",0},
    { "_class_FXPyApp","_FXPyApp",0},
    { "_class_FXDCWindow","_FXDCWindow",0},
    { "_class_FXPyShutter","_FXPyShutter",0},
    { "_FXPyWindow","_class_FXPyWindow",0},
    { "_class_FXRootWindow","_FXRootWindow",0},
    { "_class_FXPyXPMImage","_FXPyXPMImage",0},
    { "_FXGLCube","_class_FXPyGLCube",SwigFXPyGLCubeToFXGLCube},
    { "_FXGLCube","_FXPyGLCube",SwigFXPyGLCubeToFXGLCube},
    { "_FXGLCube","_class_FXGLCube",0},
    { "_class_FXPyGIFImage","_FXPyGIFImage",0},
    { "_class_FXPyVerticalFrame","_FXPyVerticalFrame",0},
    { "_class_FXPySplitter","_FXPySplitter",0},
    { "_class_FXPyGLPoint","_FXPyGLPoint",0},
    { "_class_FXFileStream","_FXFileStream",0},
    { "_class_FXPyMainWindow","_FXPyMainWindow",0},
    { "_class_FXHorizontalFrame","_FXHorizontalFrame",0},
    { "_class_FXPyImage","_FXPyImage",0},
    { "_class_FXGIFIcon","_FXGIFIcon",0},
    { "_class_FXPyRGBIcon","_FXPyRGBIcon",0},
    { "_FXPyPacker","_class_FXPyPacker",0},
    { "_class_FXPyScrollWindow","_FXPyScrollWindow",0},
    { "_FXPyGLContext","_class_FXPyGLContext",0},
    { "_unsigned_long","_FXPixel",0},
    { "_unsigned_long","_FXTime",0},
    { "_unsigned_long","_long",0},
    { "_class_FXDataTarget","_FXDataTarget",0},
    { "_class_FXScrollWindow","_FXScrollWindow",0},
    { "_struct_FXMaterial","_FXMaterial",0},
    { "_class_FXPyGLCube","_FXPyGLCube",0},
    { "_class_FXPyDC","_FXPyDC",0},
    { "_FXPyVerticalSeparator","_class_FXPyVerticalSeparator",0},
    { "_class_FXGLCylinder","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLCylinder},
    { "_class_FXGLCylinder","_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLCylinder},
    { "_class_FXGLCylinder","_FXGLCylinder",0},
    { "_FXPCXIcon","_class_FXPCXIcon",0},
    { "_FXSwitcher","_class_FXSwitcher",0},
    { "_class_FXJPGImage","_FXJPGImage",0},
    { "_class_FXPyIcon","_FXPyIcon",0},
    { "_class_FXPyAccelTable","_FXPyAccelTable",0},
    { "_class_FXDC","_FXDC",0},
    { "_FXVisual","_class_FXPyGLVisual",SwigFXPyGLVisualToFXVisual},
    { "_FXVisual","_FXPyGLVisual",SwigFXPyGLVisualToFXVisual},
    { "_FXVisual","_class_FXGLVisual",SwigFXGLVisualToFXVisual},
    { "_FXVisual","_FXGLVisual",SwigFXGLVisualToFXVisual},
    { "_FXVisual","_class_FXVisual",0},
    { "_FXPyTIFImage","_class_FXPyTIFImage",0},
    { "_FXPNGIcon","_class_FXPNGIcon",0},
    { "_class_FXPopup","_FXPopup",0},
    { "_class_FXVerticalFrame","_FXVerticalFrame",0},
    { "_signed_int","_FXInputHandle",0},
    { "_signed_int","_FXint",0},
    { "_signed_int","_int",0},
    { "_class_FXPy4Splitter","_FXPy4Splitter",0},
    { "_FXPyGLTriangleMesh","_class_FXPyGLTriangleMesh",0},
    { "_FXPNGImage","_class_FXPNGImage",0},
    { "_FXPyTGAIcon","_class_FXPyTGAIcon",0},
    { "_FXPyDict","_class_FXPyDict",0},
    { "_class_FXStringDict","_FXStringDict",0},
    { "_FXRegion","_class_FXRegion",0},
    { "_class_FXPyGroupBox","_FXPyGroupBox",0},
    { "_class_FXPyGLObject","_FXPyGLObject",0},
    { "_FXVerticalSeparator","_class_FXVerticalSeparator",0},
    { "_class_FXPyGLShape","_FXPyGLShape",0},
    { "_FXRawEvent","__XEvent",0},
    { "_class_FXPyVisual","_FXPyVisual",0},
    { "_FXShell","_class_FXShell",0},
    { "_FXCanvas","_class_FXPyGLViewer",SwigFXPyGLViewerToFXCanvas},
    { "_FXCanvas","_FXPyGLViewer",SwigFXPyGLViewerToFXCanvas},
    { "_FXCanvas","_class_FXGLViewer",SwigFXGLViewerToFXCanvas},
    { "_FXCanvas","_FXGLViewer",SwigFXGLViewerToFXCanvas},
    { "_FXCanvas","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXCanvas},
    { "_FXCanvas","_FXPyGLCanvas",SwigFXPyGLCanvasToFXCanvas},
    { "_FXCanvas","_class_FXGLCanvas",SwigFXGLCanvasToFXCanvas},
    { "_FXCanvas","_FXGLCanvas",SwigFXGLCanvasToFXCanvas},
    { "_FXCanvas","_class_FXCanvas",0},
    { "_FXPyGLViewer","_class_FXPyGLViewer",0},
    { "_class_FXRGBImage","_FXRGBImage",0},
    { "_unsigned_short","_FXshort",0},
    { "_unsigned_short","_FXushort",0},
    { "_unsigned_short","_short",0},
    { "_class_FXPyTopWindow","_FXPyTopWindow",0},
    { "_class_FXGLSphere","_class_FXPyGLSphere",SwigFXPyGLSphereToFXGLSphere},
    { "_class_FXGLSphere","_FXPyGLSphere",SwigFXPyGLSphereToFXGLSphere},
    { "_class_FXGLSphere","_FXGLSphere",0},
    { "_class_FXBMPImage","_FXBMPImage",0},
    { "_class_FXICOImage","_FXICOImage",0},
    { "_class_FXRecentFiles","_FXRecentFiles",0},
    { "_class_FXDebugTarget","_FXDebugTarget",0},
    { "_FXDrawable","_class_FXPyGLViewer",SwigFXPyGLViewerToFXDrawable},
    { "_FXDrawable","_FXPyGLViewer",SwigFXPyGLViewerToFXDrawable},
    { "_FXDrawable","_class_FXGLViewer",SwigFXGLViewerToFXDrawable},
    { "_FXDrawable","_FXGLViewer",SwigFXGLViewerToFXDrawable},
    { "_FXDrawable","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXDrawable},
    { "_FXDrawable","_FXPyGLCanvas",SwigFXPyGLCanvasToFXDrawable},
    { "_FXDrawable","_class_FXGLCanvas",SwigFXGLCanvasToFXDrawable},
    { "_FXDrawable","_FXGLCanvas",SwigFXGLCanvasToFXDrawable},
    { "_FXDrawable","_class_FXDrawable",0},
    { "_class_FXPCXImage","_FXPCXImage",0},
    { "_FXJPGIcon","_class_FXJPGIcon",0},
    { "_class_FXPyCanvas","_FXPyCanvas",0},
    { "_class_FX4Splitter","_FX4Splitter",0},
    { "_FXPyXPMIcon","_class_FXPyXPMIcon",0},
    { "_FXObject_p","_FXObjectPtr",0},
    { "_FXID","_FXInputHandle",0},
    { "_FXID","_FXDragType",0},
    { "_FXID","_FXHotKey",0},
    { "_FXID","_FXColor",0},
    { "_FXID","_unsigned_int",0},
    { "_FXID","_int",0},
    { "_FXID","_FXuint",0},
    { "_FXID","_FXint",0},
    { "_FXID","_FXSelector",0},
    { "_FXHorizontalSeparator","_class_FXHorizontalSeparator",0},
    { "_FXPyGLVisual","_class_FXPyGLVisual",0},
    { "_class_FXPyGIFIcon","_FXPyGIFIcon",0},
    { "_class_FXPyVerticalSeparator","_FXPyVerticalSeparator",0},
    { "_FXPyGLGroup","_class_FXPyGLGroup",0},
    { "_struct_FXPrinter","_FXPrinter",0},
    { "_FXPyTIFIcon","_class_FXPyTIFIcon",0},
    { "_class_FXPCXIcon","_FXPCXIcon",0},
    { "_signed_short","_FXshort",0},
    { "_signed_short","_short",0},
    { "_class_FXFrame","_FXFrame",0},
    { "_class_FXTopWindow","_FXTopWindow",0},
    { "_FXfloat","_float",0},
    { "_FXEvent","_struct_FXEvent",0},
    { "_class_FXPyComposite","_FXPyComposite",0},
    { "_FXPyGLCanvas","_class_FXPyGLCanvas",0},
    { "_class_FXPyTIFImage","_FXPyTIFImage",0},
    { "_class_FXPNGIcon","_FXPNGIcon",0},
    { "_struct_FXSegment","_FXSegment",0},
    { "_class_FXPyGLTriangleMesh","_FXPyGLTriangleMesh",0},
    { "_unsigned_char","_FXbool",0},
    { "_unsigned_char","_FXuchar",0},
    { "_FXPixel","_unsigned_long",0},
    { "_FXPixel","_long",0},
    { "_FXPixel","_FXTime",0},
    { "_FXImage","_class_FXImage",0},
    { "_FXWindow","_class_FXPyGLViewer",SwigFXPyGLViewerToFXWindow},
    { "_FXWindow","_FXPyGLViewer",SwigFXPyGLViewerToFXWindow},
    { "_FXWindow","_class_FXGLViewer",SwigFXGLViewerToFXWindow},
    { "_FXWindow","_FXGLViewer",SwigFXGLViewerToFXWindow},
    { "_FXWindow","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXWindow},
    { "_FXWindow","_FXPyGLCanvas",SwigFXPyGLCanvasToFXWindow},
    { "_FXWindow","_class_FXGLCanvas",SwigFXGLCanvasToFXWindow},
    { "_FXWindow","_FXGLCanvas",SwigFXGLCanvasToFXWindow},
    { "_FXWindow","_class_FXWindow",0},
    { "_unsigned_int","_FXInputHandle",0},
    { "_unsigned_int","_FXDragType",0},
    { "_unsigned_int","_FXHotKey",0},
    { "_unsigned_int","_FXColor",0},
    { "_unsigned_int","_FXID",0},
    { "_unsigned_int","_FXSelector",0},
    { "_unsigned_int","_FXint",0},
    { "_unsigned_int","_FXuint",0},
    { "_unsigned_int","_int",0},
    { "_FXPyTGAImage","_class_FXPyTGAImage",0},
    { "_FXDict","_class_FXDict",0},
    { "_FXPyDCPrint","_class_FXPyDCPrint",0},
    { "_FXuint","_FXInputHandle",0},
    { "_FXuint","_FXDragType",0},
    { "_FXuint","_FXHotKey",0},
    { "_FXuint","_FXColor",0},
    { "_FXuint","_FXID",0},
    { "_FXuint","_FXSelector",0},
    { "_FXuint","_FXint",0},
    { "_FXuint","_unsigned_int",0},
    { "_FXuint","_int",0},
    { "_class_FXPyScrollArea","_FXPyScrollArea",0},
    { "_short","_FXshort",0},
    { "_short","_FXushort",0},
    { "_short","_unsigned_short",0},
    { "_short","_signed_short",0},
    { "_FXRectangle","_class_FXRectangle",0},
    { "_FXPyFont","_class_FXPyFont",0},
    { "_FXPyDCWindow","_class_FXPyDCWindow",0},
    { "_class_FXPyGLViewer","_FXPyGLViewer",0},
    { "_class_FXApp","_FXApp",0},
    { "_FXXPMImage","_class_FXXPMImage",0},
    { "_class_FXPyWindow","_FXPyWindow",0},
    { "_FXPacker","_class_FXPacker",0},
    { "_FXGIFImage","_class_FXGIFImage",0},
    { "_class_FXComposite","_FXComposite",0},
    { "_FXSplitter","_class_FXSplitter",0},
    { "_FXPyCommand","_class_FXPyCommand",0},
    { "_class_FXJPGIcon","_FXJPGIcon",0},
    { "_class_FXPyHorizontalSeparator","_FXPyHorizontalSeparator",0},
    { "_FXchar","_char",0},
    { "_class_FXPyPacker","_FXPyPacker",0},
    { "_class_FXPyGLContext","_FXPyGLContext",0},
    { "_FXuchar","_FXbool",0},
    { "_FXuchar","_unsigned_char",0},
    { "_class_FXHorizontalSeparator","_FXHorizontalSeparator",0},
    { "_class_FXPyGLVisual","_FXPyGLVisual",0},
    { "_int","_FXInputHandle",0},
    { "_int","_FXDragType",0},
    { "_int","_FXHotKey",0},
    { "_int","_FXColor",0},
    { "_int","_FXID",0},
    { "_int","_FXSelector",0},
    { "_int","_FXint",0},
    { "_int","_FXuint",0},
    { "_int","_unsigned_int",0},
    { "_int","_signed_int",0},
    { "_FXDragType","_FXInputHandle",0},
    { "_FXDragType","_FXID",0},
    { "_FXDragType","_FXSelector",0},
    { "_FXDragType","_FXint",0},
    { "_FXDragType","_FXuint",0},
    { "_FXDragType","_int",0},
    { "_FXDragType","_unsigned_int",0},
    { "_FXDragType","_FXColor",0},
    { "_FXDragType","_FXHotKey",0},
    { "_FXSettings","_class_FXSettings",0},
    { "_FXRegistry","_class_FXRegistry",0},
    { "_FXPyBMPIcon","_class_FXPyBMPIcon",0},
    { "_FXPyICOIcon","_class_FXPyICOIcon",0},
    { "_class_FXSwitcher","_FXSwitcher",0},
    { "_FXPyShutterItem","_class_FXPyShutterItem",0},
    { "_FXPSBounds","_struct_FXPSBounds",0},
    { "_FXPyJPGImage","_class_FXPyJPGImage",0},
    { "_class_FXPyPCXIcon","_FXPyPCXIcon",0},
    { "_class_FXPyGLCanvas","_FXPyGLCanvas",0},
    { "_FXTGAIcon","_class_FXTGAIcon",0},
    { "_FXDelegator","_class_FXDelegator",0},
    { "_FXGroupBox","_class_FXGroupBox",0},
    { "_class_FXGLContext","_class_FXPyGLContext",SwigFXPyGLContextToFXGLContext},
    { "_class_FXGLContext","_FXPyGLContext",SwigFXPyGLContextToFXGLContext},
    { "_class_FXGLContext","_FXGLContext",0},
    { "_FXGLObject","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLObject},
    { "_FXGLObject","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXGLObject},
    { "_FXGLObject","_class_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLObject},
    { "_FXGLObject","_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXGLObject},
    { "_FXGLObject","_class_FXPyGLCone",SwigFXPyGLConeToFXGLObject},
    { "_FXGLObject","_FXPyGLCone",SwigFXPyGLConeToFXGLObject},
    { "_FXGLObject","_class_FXGLCone",SwigFXGLConeToFXGLObject},
    { "_FXGLObject","_FXGLCone",SwigFXGLConeToFXGLObject},
    { "_FXGLObject","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLObject},
    { "_FXGLObject","_FXPyGLCylinder",SwigFXPyGLCylinderToFXGLObject},
    { "_FXGLObject","_class_FXGLCylinder",SwigFXGLCylinderToFXGLObject},
    { "_FXGLObject","_FXGLCylinder",SwigFXGLCylinderToFXGLObject},
    { "_FXGLObject","_class_FXPyGLSphere",SwigFXPyGLSphereToFXGLObject},
    { "_FXGLObject","_FXPyGLSphere",SwigFXPyGLSphereToFXGLObject},
    { "_FXGLObject","_class_FXGLSphere",SwigFXGLSphereToFXGLObject},
    { "_FXGLObject","_FXGLSphere",SwigFXGLSphereToFXGLObject},
    { "_FXGLObject","_class_FXPyGLCube",SwigFXPyGLCubeToFXGLObject},
    { "_FXGLObject","_FXPyGLCube",SwigFXPyGLCubeToFXGLObject},
    { "_FXGLObject","_class_FXGLCube",SwigFXGLCubeToFXGLObject},
    { "_FXGLObject","_FXGLCube",SwigFXGLCubeToFXGLObject},
    { "_FXGLObject","_class_FXPyGLLine",SwigFXPyGLLineToFXGLObject},
    { "_FXGLObject","_FXPyGLLine",SwigFXPyGLLineToFXGLObject},
    { "_FXGLObject","_class_FXGLLine",SwigFXGLLineToFXGLObject},
    { "_FXGLObject","_FXGLLine",SwigFXGLLineToFXGLObject},
    { "_FXGLObject","_class_FXPyGLPoint",SwigFXPyGLPointToFXGLObject},
    { "_FXGLObject","_FXPyGLPoint",SwigFXPyGLPointToFXGLObject},
    { "_FXGLObject","_class_FXGLPoint",SwigFXGLPointToFXGLObject},
    { "_FXGLObject","_FXGLPoint",SwigFXGLPointToFXGLObject},
    { "_FXGLObject","_class_FXPyGLShape",SwigFXPyGLShapeToFXGLObject},
    { "_FXGLObject","_FXPyGLShape",SwigFXPyGLShapeToFXGLObject},
    { "_FXGLObject","_class_FXGLShape",SwigFXGLShapeToFXGLObject},
    { "_FXGLObject","_FXGLShape",SwigFXGLShapeToFXGLObject},
    { "_FXGLObject","_class_FXPyGLGroup",SwigFXPyGLGroupToFXGLObject},
    { "_FXGLObject","_FXPyGLGroup",SwigFXPyGLGroupToFXGLObject},
    { "_FXGLObject","_class_FXGLGroup",SwigFXGLGroupToFXGLObject},
    { "_FXGLObject","_FXGLGroup",SwigFXGLGroupToFXGLObject},
    { "_FXGLObject","_class_FXPyGLObject",SwigFXPyGLObjectToFXGLObject},
    { "_FXGLObject","_FXPyGLObject",SwigFXPyGLObjectToFXGLObject},
    { "_FXGLObject","_class_FXGLObject",0},
    { "_class_FXPNGImage","_FXPNGImage",0},
    { "_class_FXPyPNGIcon","_FXPyPNGIcon",0},
    { "_class_FXPyRootWindow","_FXPyRootWindow",0},
    { "_class_FXPyTGAImage","_FXPyTGAImage",0},
    { "_class_FXDict","_FXDict",0},
    { "_class_FXVerticalSeparator","_FXVerticalSeparator",0},
    { "_class_FXGLCone","_class_FXPyGLCone",SwigFXPyGLConeToFXGLCone},
    { "_class_FXGLCone","_FXPyGLCone",SwigFXPyGLConeToFXGLCone},
    { "_class_FXGLCone","_FXGLCone",0},
    { "_class_FXShell","_FXShell",0},
    { "_FXPyShutter","_class_FXPyShutter",0},
    { "_FXInputHandle","_FXint",0},
    { "_FXInputHandle","_FXuint",0},
    { "_FXInputHandle","_unsigned_int",0},
    { "_FXInputHandle","_signed_int",0},
    { "_FXInputHandle","_int",0},
    { "_FXInputHandle","_FXSelector",0},
    { "_FXInputHandle","_FXID",0},
    { "_FXInputHandle","_FXColor",0},
    { "_FXInputHandle","_FXHotKey",0},
    { "_FXInputHandle","_FXDragType",0},
    { "_class_FXPyFileStream","_FXPyFileStream",0},
    { "_class_FXPyDCWindow","_FXPyDCWindow",0},
    { "_FXFont","_class_FXFont",0},
    { "_FXPyRGBImage","_class_FXPyRGBImage",0},
    { "_class_FXPyDataTarget","_FXPyDataTarget",0},
    { "_FXLight","_struct_FXLight",0},
    { "_class_FXObject","_class_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXObject},
    { "_class_FXObject","_FXPyGLTriangleMesh",SwigFXPyGLTriangleMeshToFXObject},
    { "_class_FXObject","_class_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXObject},
    { "_class_FXObject","_FXGLTriangleMesh",SwigFXGLTriangleMeshToFXObject},
    { "_class_FXObject","_class_FXPyGLCone",SwigFXPyGLConeToFXObject},
    { "_class_FXObject","_FXPyGLCone",SwigFXPyGLConeToFXObject},
    { "_class_FXObject","_class_FXGLCone",SwigFXGLConeToFXObject},
    { "_class_FXObject","_FXGLCone",SwigFXGLConeToFXObject},
    { "_class_FXObject","_class_FXPyGLCylinder",SwigFXPyGLCylinderToFXObject},
    { "_class_FXObject","_FXPyGLCylinder",SwigFXPyGLCylinderToFXObject},
    { "_class_FXObject","_class_FXGLCylinder",SwigFXGLCylinderToFXObject},
    { "_class_FXObject","_FXGLCylinder",SwigFXGLCylinderToFXObject},
    { "_class_FXObject","_class_FXPyGLSphere",SwigFXPyGLSphereToFXObject},
    { "_class_FXObject","_FXPyGLSphere",SwigFXPyGLSphereToFXObject},
    { "_class_FXObject","_class_FXGLSphere",SwigFXGLSphereToFXObject},
    { "_class_FXObject","_FXGLSphere",SwigFXGLSphereToFXObject},
    { "_class_FXObject","_class_FXPyGLCube",SwigFXPyGLCubeToFXObject},
    { "_class_FXObject","_FXPyGLCube",SwigFXPyGLCubeToFXObject},
    { "_class_FXObject","_class_FXGLCube",SwigFXGLCubeToFXObject},
    { "_class_FXObject","_FXGLCube",SwigFXGLCubeToFXObject},
    { "_class_FXObject","_class_FXPyGLLine",SwigFXPyGLLineToFXObject},
    { "_class_FXObject","_FXPyGLLine",SwigFXPyGLLineToFXObject},
    { "_class_FXObject","_class_FXGLLine",SwigFXGLLineToFXObject},
    { "_class_FXObject","_FXGLLine",SwigFXGLLineToFXObject},
    { "_class_FXObject","_class_FXPyGLPoint",SwigFXPyGLPointToFXObject},
    { "_class_FXObject","_FXPyGLPoint",SwigFXPyGLPointToFXObject},
    { "_class_FXObject","_class_FXGLPoint",SwigFXGLPointToFXObject},
    { "_class_FXObject","_FXGLPoint",SwigFXGLPointToFXObject},
    { "_class_FXObject","_class_FXPyGLShape",SwigFXPyGLShapeToFXObject},
    { "_class_FXObject","_FXPyGLShape",SwigFXPyGLShapeToFXObject},
    { "_class_FXObject","_class_FXGLShape",SwigFXGLShapeToFXObject},
    { "_class_FXObject","_FXGLShape",SwigFXGLShapeToFXObject},
    { "_class_FXObject","_class_FXPyGLGroup",SwigFXPyGLGroupToFXObject},
    { "_class_FXObject","_FXPyGLGroup",SwigFXPyGLGroupToFXObject},
    { "_class_FXObject","_class_FXGLGroup",SwigFXGLGroupToFXObject},
    { "_class_FXObject","_FXGLGroup",SwigFXGLGroupToFXObject},
    { "_class_FXObject","_class_FXPyGLObject",SwigFXPyGLObjectToFXObject},
    { "_class_FXObject","_FXPyGLObject",SwigFXPyGLObjectToFXObject},
    { "_class_FXObject","_class_FXGLObject",SwigFXGLObjectToFXObject},
    { "_class_FXObject","_FXGLObject",SwigFXGLObjectToFXObject},
    { "_class_FXObject","_class_FXPyGLViewer",SwigFXPyGLViewerToFXObject},
    { "_class_FXObject","_FXPyGLViewer",SwigFXPyGLViewerToFXObject},
    { "_class_FXObject","_class_FXGLViewer",SwigFXGLViewerToFXObject},
    { "_class_FXObject","_FXGLViewer",SwigFXGLViewerToFXObject},
    { "_class_FXObject","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXObject},
    { "_class_FXObject","_FXPyGLCanvas",SwigFXPyGLCanvasToFXObject},
    { "_class_FXObject","_class_FXGLCanvas",SwigFXGLCanvasToFXObject},
    { "_class_FXObject","_FXGLCanvas",SwigFXGLCanvasToFXObject},
    { "_class_FXObject","_class_FXPyGLVisual",SwigFXPyGLVisualToFXObject},
    { "_class_FXObject","_FXPyGLVisual",SwigFXPyGLVisualToFXObject},
    { "_class_FXObject","_class_FXGLVisual",SwigFXGLVisualToFXObject},
    { "_class_FXObject","_FXGLVisual",SwigFXGLVisualToFXObject},
    { "_class_FXObject","_class_FXPyGLContext",SwigFXPyGLContextToFXObject},
    { "_class_FXObject","_FXPyGLContext",SwigFXPyGLContextToFXObject},
    { "_class_FXObject","_class_FXGLContext",SwigFXGLContextToFXObject},
    { "_class_FXObject","_FXGLContext",SwigFXGLContextToFXObject},
    { "_class_FXObject","_FXObject",0},
    { "_FXXPMIcon","_class_FXXPMIcon",0},
    { "_FXPyPopup","_class_FXPyPopup",0},
    { "_FXPyVerticalFrame","_class_FXPyVerticalFrame",0},
    { "_FXPyGLPoint","_class_FXPyGLPoint",0},
    { "_FXPyGLSphere","_class_FXPyGLSphere",0},
    { "_FXId","_class_FXPyGLViewer",SwigFXPyGLViewerToFXId},
    { "_FXId","_FXPyGLViewer",SwigFXPyGLViewerToFXId},
    { "_FXId","_class_FXGLViewer",SwigFXGLViewerToFXId},
    { "_FXId","_FXGLViewer",SwigFXGLViewerToFXId},
    { "_FXId","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXId},
    { "_FXId","_FXPyGLCanvas",SwigFXPyGLCanvasToFXId},
    { "_FXId","_class_FXGLCanvas",SwigFXGLCanvasToFXId},
    { "_FXId","_FXGLCanvas",SwigFXGLCanvasToFXId},
    { "_FXId","_class_FXPyGLVisual",SwigFXPyGLVisualToFXId},
    { "_FXId","_FXPyGLVisual",SwigFXPyGLVisualToFXId},
    { "_FXId","_class_FXGLVisual",SwigFXGLVisualToFXId},
    { "_FXId","_FXGLVisual",SwigFXGLVisualToFXId},
    { "_FXId","_class_FXId",0},
    { "_class_FXDrawable","_class_FXPyGLViewer",SwigFXPyGLViewerToFXDrawable},
    { "_class_FXDrawable","_FXPyGLViewer",SwigFXPyGLViewerToFXDrawable},
    { "_class_FXDrawable","_class_FXGLViewer",SwigFXGLViewerToFXDrawable},
    { "_class_FXDrawable","_FXGLViewer",SwigFXGLViewerToFXDrawable},
    { "_class_FXDrawable","_class_FXPyGLCanvas",SwigFXPyGLCanvasToFXDrawable},
    { "_class_FXDrawable","_FXPyGLCanvas",SwigFXPyGLCanvasToFXDrawable},
    { "_class_FXDrawable","_class_FXGLCanvas",SwigFXGLCanvasToFXDrawable},
    { "_class_FXDrawable","_FXGLCanvas",SwigFXGLCanvasToFXDrawable},
    { "_class_FXDrawable","_FXDrawable",0},
    { "_FXPyBMPImage","_class_FXPyBMPImage",0},
    { "_FXPyICOImage","_class_FXPyICOImage",0},
    { "_FXPyMainWindow","_class_FXPyMainWindow",0},
    { "_FXHorizontalFrame","_class_FXHorizontalFrame",0},
    { "_class_FXGLLine","_class_FXPyGLLine",SwigFXPyGLLineToFXGLLine},
    { "_class_FXGLLine","_FXPyGLLine",SwigFXPyGLLineToFXGLLine},
    { "_class_FXGLLine","_FXGLLine",0},
    { "_class_FXPyGLCylinder","_FXPyGLCylinder",0},
    { "_FXPyPCXImage","_class_FXPyPCXImage",0},
    { "_FXPyRGBIcon","_class_FXPyRGBIcon",0},
    { "_FXGLGroup","_class_FXPyGLGroup",SwigFXPyGLGroupToFXGLGroup},
    { "_FXGLGroup","_FXPyGLGroup",SwigFXPyGLGroupToFXGLGroup},
    { "_FXGLGroup","_class_FXGLGroup",0},
    { "_class_FXPyJPGIcon","_FXPyJPGIcon",0},
    { "_FXTIFIcon","_class_FXTIFIcon",0},
    { "_FXScrollWindow","_class_FXScrollWindow",0},
    { "_FXMainWindow","_class_FXMainWindow",0},
    { "_class_FXMatrix","_FXMatrix",0},
    { "__XEvent","_FXRawEvent",0},
    { "_class_FXPyShutterItem","_FXPyShutterItem",0},
    { "_struct_FXEvent","_FXEvent",0},
    { "_class_FXStream","_FXStream",0},
    { "_class_FXPyStringDict","_FXPyStringDict",0},
    { "_class_FXPyJPGImage","_FXPyJPGImage",0},
    { "_FXTIFImage","_class_FXTIFImage",0},
    { "_FXPyIcon","_class_FXPyIcon",0},
    { "_FXPyAccelTable","_class_FXPyAccelTable",0},
    { "_class_FXTGAIcon","_FXTGAIcon",0},
    { "_struct_FXPSBounds","_FXPSBounds",0},
    { "_FXDCPrint","_class_FXDCPrint",0},
    { "_class_FXImage","_FXImage",0},
    { "_FXPoint","_class_FXPoint",0},
    { "_FXAccelTable","_class_FXAccelTable",0},
    { "_FXPyGLShape","_class_FXPyGLShape",0},
    { "_FXGLViewer","_class_FXPyGLViewer",SwigFXPyGLViewerToFXGLViewer},
    { "_FXGLViewer","_FXPyGLViewer",SwigFXPyGLViewerToFXGLViewer},
    { "_FXGLViewer","_class_FXGLViewer",0},
    { "_FXPyId","_class_FXPyId",0},
    { "_FXSelector","_FXInputHandle",0},
    { "_FXSelector","_FXDragType",0},
    { "_FXSelector","_FXHotKey",0},
    { "_FXSelector","_FXColor",0},
    { "_FXSelector","_FXID",0},
    { "_FXSelector","_FXuint",0},
    { "_FXSelector","_int",0},
    { "_FXSelector","_unsigned_int",0},
    { "_FXSelector","_FXint",0},
    { "_class_FXFont","_FXFont",0},
    { "_class_FXXPMImage","_FXXPMImage",0},
    { "_FXPyRecentFiles","_class_FXPyRecentFiles",0},
    { "_FXPyDebugTarget","_class_FXPyDebugTarget",0},
    { "_FXCommand","_class_FXCommand",0},
    { "_FXPyFrame","_class_FXPyFrame",0},
    { "_class_FXGIFImage","_FXGIFImage",0},
    { "_class_FXPyRGBImage","_FXPyRGBImage",0},
    { "_class_FXSplitter","_FXSplitter",0},
    { "_class_FXGLCube","_class_FXPyGLCube",SwigFXPyGLCubeToFXGLCube},
    { "_class_FXGLCube","_FXPyGLCube",SwigFXPyGLCubeToFXGLCube},
    { "_class_FXGLCube","_FXGLCube",0},
    { "_FXPyGLCone","_class_FXPyGLCone",0},
    { "_class_FXXPMIcon","_FXXPMIcon",0},
    { "_class_FXPyPopup","_FXPyPopup",0},
    { "_class_FXPyGLSphere","_FXPyGLSphere",0},
{0,0,0}};

static PyObject *SWIG_globals;
#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT(void) initfox3dc() {
	 PyObject *m, *d;
	 SWIG_globals = SWIG_newvarlink();
	 m = Py_InitModule("fox3dc", fox3dcMethods);
	 d = PyModule_GetDict(m);
	 PyDict_SetItemString(d,"PICK_TOL", PyInt_FromLong((long) 3));
	 PyDict_SetItemString(d,"VIEWER_LOCKED", PyInt_FromLong((long) VIEWER_LOCKED));
	 PyDict_SetItemString(d,"VIEWER_LIGHTING", PyInt_FromLong((long) VIEWER_LIGHTING));
	 PyDict_SetItemString(d,"VIEWER_FOG", PyInt_FromLong((long) VIEWER_FOG));
	 PyDict_SetItemString(d,"VIEWER_DITHER", PyInt_FromLong((long) VIEWER_DITHER));
	 PyDict_SetItemString(d,"SURFACE_SINGLESIDED", PyInt_FromLong((long) SURFACE_SINGLESIDED));
	 PyDict_SetItemString(d,"SURFACE_DUALSIDED", PyInt_FromLong((long) SURFACE_DUALSIDED));
	 PyDict_SetItemString(d,"SHADING_NONE", PyInt_FromLong((long) SHADING_NONE));
	 PyDict_SetItemString(d,"SHADING_SMOOTH", PyInt_FromLong((long) SHADING_SMOOTH));
	 PyDict_SetItemString(d,"SHADING_FLAT", PyInt_FromLong((long) SHADING_FLAT));
	 PyDict_SetItemString(d,"FACECULLING_OFF", PyInt_FromLong((long) FACECULLING_OFF));
	 PyDict_SetItemString(d,"FACECULLING_ON", PyInt_FromLong((long) FACECULLING_ON));
	 PyDict_SetItemString(d,"STYLE_SURFACE", PyInt_FromLong((long) STYLE_SURFACE));
	 PyDict_SetItemString(d,"STYLE_WIREFRAME", PyInt_FromLong((long) STYLE_WIREFRAME));
	 PyDict_SetItemString(d,"STYLE_POINTS", PyInt_FromLong((long) STYLE_POINTS));
	 PyDict_SetItemString(d,"STYLE_BOUNDBOX", PyInt_FromLong((long) STYLE_BOUNDBOX));
	 PyDict_SetItemString(d,"cvar", SWIG_globals);
	 SWIG_addvarlink(SWIG_globals,"FX_GLViewer_objectType",_wrap_FXGLViewer__objectType_get, _wrap_FXGLViewer__objectType_set);
	 PyDict_SetItemString(d,"FX_GLViewer_PARALLEL", PyInt_FromLong((long) FXGLViewer::PARALLEL));
	 PyDict_SetItemString(d,"FX_GLViewer_PERSPECTIVE", PyInt_FromLong((long) FXGLViewer::PERSPECTIVE));
	 PyDict_SetItemString(d,"FX_GLViewer_OFFSETPROJECTION", PyInt_FromLong((long) FXGLViewer::OFFSETPROJECTION));
	 PyDict_SetItemString(d,"FX_GLViewer_SURFACEPROJECTION", PyInt_FromLong((long) FXGLViewer::SURFACEPROJECTION));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_PERSPECTIVE", PyInt_FromLong((long) FXGLViewer::ID_PERSPECTIVE));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_PARALLEL", PyInt_FromLong((long) FXGLViewer::ID_PARALLEL));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_FRONT", PyInt_FromLong((long) FXGLViewer::ID_FRONT));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_BACK", PyInt_FromLong((long) FXGLViewer::ID_BACK));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LEFT", PyInt_FromLong((long) FXGLViewer::ID_LEFT));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_RIGHT", PyInt_FromLong((long) FXGLViewer::ID_RIGHT));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_TOP", PyInt_FromLong((long) FXGLViewer::ID_TOP));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_BOTTOM", PyInt_FromLong((long) FXGLViewer::ID_BOTTOM));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_RESETVIEW", PyInt_FromLong((long) FXGLViewer::ID_RESETVIEW));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_FITVIEW", PyInt_FromLong((long) FXGLViewer::ID_FITVIEW));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_TIPTIMER", PyInt_FromLong((long) FXGLViewer::ID_TIPTIMER));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_BACK_COLOR", PyInt_FromLong((long) FXGLViewer::ID_BACK_COLOR));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_AMBIENT_COLOR", PyInt_FromLong((long) FXGLViewer::ID_AMBIENT_COLOR));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LIGHT_AMBIENT", PyInt_FromLong((long) FXGLViewer::ID_LIGHT_AMBIENT));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LIGHT_DIFFUSE", PyInt_FromLong((long) FXGLViewer::ID_LIGHT_DIFFUSE));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LIGHT_SPECULAR", PyInt_FromLong((long) FXGLViewer::ID_LIGHT_SPECULAR));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LIGHTING", PyInt_FromLong((long) FXGLViewer::ID_LIGHTING));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_TURBO", PyInt_FromLong((long) FXGLViewer::ID_TURBO));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_FOG", PyInt_FromLong((long) FXGLViewer::ID_FOG));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_DITHER", PyInt_FromLong((long) FXGLViewer::ID_DITHER));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_SCALE_X", PyInt_FromLong((long) FXGLViewer::ID_SCALE_X));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_SCALE_Y", PyInt_FromLong((long) FXGLViewer::ID_SCALE_Y));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_SCALE_Z", PyInt_FromLong((long) FXGLViewer::ID_SCALE_Z));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_DIAL_X", PyInt_FromLong((long) FXGLViewer::ID_DIAL_X));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_DIAL_Y", PyInt_FromLong((long) FXGLViewer::ID_DIAL_Y));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_DIAL_Z", PyInt_FromLong((long) FXGLViewer::ID_DIAL_Z));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_ROLL", PyInt_FromLong((long) FXGLViewer::ID_ROLL));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_PITCH", PyInt_FromLong((long) FXGLViewer::ID_PITCH));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_YAW", PyInt_FromLong((long) FXGLViewer::ID_YAW));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_FOV", PyInt_FromLong((long) FXGLViewer::ID_FOV));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_ZOOM", PyInt_FromLong((long) FXGLViewer::ID_ZOOM));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LOCK", PyInt_FromLong((long) FXGLViewer::ID_LOCK));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_CUT_SEL", PyInt_FromLong((long) FXGLViewer::ID_CUT_SEL));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_COPY_SEL", PyInt_FromLong((long) FXGLViewer::ID_COPY_SEL));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_PASTE_SEL", PyInt_FromLong((long) FXGLViewer::ID_PASTE_SEL));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_DELETE_SEL", PyInt_FromLong((long) FXGLViewer::ID_DELETE_SEL));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_PRINT_IMAGE", PyInt_FromLong((long) FXGLViewer::ID_PRINT_IMAGE));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_PRINT_VECTOR", PyInt_FromLong((long) FXGLViewer::ID_PRINT_VECTOR));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LASSO_ZOOM", PyInt_FromLong((long) FXGLViewer::ID_LASSO_ZOOM));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LASSO_SELECT", PyInt_FromLong((long) FXGLViewer::ID_LASSO_SELECT));
	 PyDict_SetItemString(d,"FX_GLViewer_ID_LAST", PyInt_FromLong((long) FXGLViewer::ID_LAST));
	 SWIG_addvarlink(SWIG_globals,"FXGLViewer_objectType",_wrap_FXPyGLViewer__objectType_get, _wrap_FXPyGLViewer__objectType_set);
	 PyDict_SetItemString(d,"FX_GLObject_ID_LAST", PyInt_FromLong((long) FXGLObject::ID_LAST));
	 PyDict_SetItemString(d,"FX_GLShape_ID_SHADEOFF", PyInt_FromLong((long) FXGLShape::ID_SHADEOFF));
	 PyDict_SetItemString(d,"FX_GLShape_ID_SHADEON", PyInt_FromLong((long) FXGLShape::ID_SHADEON));
	 PyDict_SetItemString(d,"FX_GLShape_ID_SHADESMOOTH", PyInt_FromLong((long) FXGLShape::ID_SHADESMOOTH));
	 PyDict_SetItemString(d,"FX_GLShape_ID_TOGGLE_SIDED", PyInt_FromLong((long) FXGLShape::ID_TOGGLE_SIDED));
	 PyDict_SetItemString(d,"FX_GLShape_ID_TOGGLE_CULLING", PyInt_FromLong((long) FXGLShape::ID_TOGGLE_CULLING));
	 PyDict_SetItemString(d,"FX_GLShape_ID_STYLE_POINTS", PyInt_FromLong((long) FXGLShape::ID_STYLE_POINTS));
	 PyDict_SetItemString(d,"FX_GLShape_ID_STYLE_WIREFRAME", PyInt_FromLong((long) FXGLShape::ID_STYLE_WIREFRAME));
	 PyDict_SetItemString(d,"FX_GLShape_ID_STYLE_SURFACE", PyInt_FromLong((long) FXGLShape::ID_STYLE_SURFACE));
	 PyDict_SetItemString(d,"FX_GLShape_ID_STYLE_BOUNDINGBOX", PyInt_FromLong((long) FXGLShape::ID_STYLE_BOUNDINGBOX));
	 PyDict_SetItemString(d,"FX_GLShape_ID_FRONT_MATERIAL", PyInt_FromLong((long) FXGLShape::ID_FRONT_MATERIAL));
	 PyDict_SetItemString(d,"FX_GLShape_ID_BACK_MATERIAL", PyInt_FromLong((long) FXGLShape::ID_BACK_MATERIAL));
	 PyDict_SetItemString(d,"FX_GLShape_ID_LAST", PyInt_FromLong((long) FXGLShape::ID_LAST));
{
   int i;
   for (i = 0; _swig_mapping[i].n1; i++)
        SWIG_RegisterMapping(_swig_mapping[i].n1,_swig_mapping[i].n2,_swig_mapping[i].pcnv);
}
}
