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


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

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC)
#   if (__SUNPRO_CC <= 0x560)
#     define SWIGTEMPLATEDISAMBIGUATOR template
#   else
#     define SWIGTEMPLATEDISAMBIGUATOR 
#   endif
# else
#   define SWIGTEMPLATEDISAMBIGUATOR 
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__)) 
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__)) 
# else
#   define SWIGUNUSED 
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#  ifndef GCC_HASCLASSVISIBILITY
#    define GCC_HASCLASSVISIBILITY
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif 
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif


/* Fix for jlong on some versions of gcc on Windows */
#if defined(__GNUC__) && !defined(__INTELC__)
  typedef long long __int64;
#endif

/* Fix for jlong on 64-bit x86 Solaris */
#if defined(__x86_64)
# ifdef _LP64
#   undef _LP64
# endif
#endif

#include <jni.h>
#include <stdlib.h>
#include <string.h>


/* Support for throwing Java exceptions */
typedef enum {
  SWIG_JavaOutOfMemoryError = 1, 
  SWIG_JavaIOException, 
  SWIG_JavaRuntimeException, 
  SWIG_JavaIndexOutOfBoundsException,
  SWIG_JavaArithmeticException,
  SWIG_JavaIllegalArgumentException,
  SWIG_JavaNullPointerException,
  SWIG_JavaDirectorPureVirtual,
  SWIG_JavaUnknownError
} SWIG_JavaExceptionCodes;

typedef struct {
  SWIG_JavaExceptionCodes code;
  const char *java_exception;
} SWIG_JavaExceptions_t;


static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
  jclass excep;
  static const SWIG_JavaExceptions_t java_exceptions[] = {
    { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
    { SWIG_JavaIOException, "java/io/IOException" },
    { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
    { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
    { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
    { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
    { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
    { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
    { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
    { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" } };
  const SWIG_JavaExceptions_t *except_ptr = java_exceptions;

  while (except_ptr->code != code && except_ptr->code)
    except_ptr++;

  jenv->ExceptionClear();
  excep = jenv->FindClass(except_ptr->java_exception);
  if (excep)
    jenv->ThrowNew(excep, msg);
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else


#include "crystalspace.h"



  // This pointer wrapper can be used to prevent code-bloat by macros
  // acting as template functions.  Examples are SCF_QUERY_INTERFACE()
  // and CS_QUERY_REGISTRY().  Also note that CS should never need to
  // use virtual inheritance as long as it has SCF.
  //
  // Ref - A managed reference to the iBase pointer of the wrapped
  //    interface.
  // Type
  //    The SCF interface name which this pointer represents (for
  //    instance, "iEngine").
  // Version - The version of the interface this pointer represents.

  struct csWrapPtr
  {
    csRef<iBase> Ref;
    const char *Type;
    scfInterfaceVersion Version;
    csWrapPtr (const char *t, scfInterfaceVersion v, csPtr<iBase> r)
    : Ref (r), Type (t), Version(v) {}
    csWrapPtr (const char *t, scfInterfaceVersion v, csRef<iBase> r)
    : Ref (r), Type (t), Version(v) {}
    csWrapPtr (const csWrapPtr &p)
    : Ref (p.Ref), Type (p.Type), Version(p.Version) {}
  };



    // Workaround for bug in SWIG 1.3.19: reversed accessor functions!
    #define iEvent_get_Key iEvent_Key_get
    #define iEvent_get_Mouse iEvent_Mouse_get
    #define iEvent_get_Joystick iEvent_Joystick_get
    #define iEvent_get_Command iEvent_Command_get


jobject _csRef_to_Java(const csRef<iBase>& ref, void* ptr, const char* name,
    const char* clazz, JNIEnv* jenv)
{
  if (!ref.IsValid())
    return 0;
  ref->IncRef();
  jlong cptr = 0;
  *(void **)&cptr = ptr; 
  jclass cls = jenv->FindClass(clazz);
  jmethodID mid = jenv->GetMethodID(cls, "<init>", "(JZ)V");
  return jenv->NewObject(cls, mid, cptr, false);
}


#if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS)


int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input);
void SWIG_JavaArrayArgoutBool (JNIEnv *jenv, jboolean *jarr, bool *carr, jbooleanArray input);
jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz);


int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input);
void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input);
jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz);


int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input);
void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input);
jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz);


int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input);
void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input);
jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz);


int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input);
void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input);
jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz);


int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input);
void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input);
jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz);


int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input);
void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input);
jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz);


int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input);
void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input);
jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz);


int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input);
void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input);
jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz);


int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input);
void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input);
jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz);


int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input);
void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input);
jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz);


int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input);
void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input);
jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz);


#else


/* bool[] support */
int SWIG_JavaArrayInBool (JNIEnv *jenv, jboolean **jarr, bool **carr, jbooleanArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetBooleanArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new bool[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = ((*jarr)[i] != 0);
  return 1;
}

void SWIG_JavaArrayArgoutBool (JNIEnv *jenv, jboolean *jarr, bool *carr, jbooleanArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jboolean)carr[i];
  jenv->ReleaseBooleanArrayElements(input, jarr, 0);
}

jbooleanArray SWIG_JavaArrayOutBool (JNIEnv *jenv, bool *result, jsize sz) {
  jboolean *arr;
  int i;
  jbooleanArray jresult = jenv->NewBooleanArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetBooleanArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jboolean)result[i];
  jenv->ReleaseBooleanArrayElements(jresult, arr, 0);
  return jresult;
}


/* signed char[] support */
int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetByteArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new signed char[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (signed char)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jbyte)carr[i];
  jenv->ReleaseByteArrayElements(input, jarr, 0);
}

jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) {
  jbyte *arr;
  int i;
  jbyteArray jresult = jenv->NewByteArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetByteArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jbyte)result[i];
  jenv->ReleaseByteArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned char[] support */
int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetShortArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned char[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned char)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jshort)carr[i];
  jenv->ReleaseShortArrayElements(input, jarr, 0);
}

jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) {
  jshort *arr;
  int i;
  jshortArray jresult = jenv->NewShortArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetShortArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jshort)result[i];
  jenv->ReleaseShortArrayElements(jresult, arr, 0);
  return jresult;
}


/* short[] support */
int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetShortArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new short[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (short)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jshort)carr[i];
  jenv->ReleaseShortArrayElements(input, jarr, 0);
}

jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) {
  jshort *arr;
  int i;
  jshortArray jresult = jenv->NewShortArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetShortArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jshort)result[i];
  jenv->ReleaseShortArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned short[] support */
int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetIntArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned short[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned short)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jint)carr[i];
  jenv->ReleaseIntArrayElements(input, jarr, 0);
}

jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) {
  jint *arr;
  int i;
  jintArray jresult = jenv->NewIntArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetIntArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jint)result[i];
  jenv->ReleaseIntArrayElements(jresult, arr, 0);
  return jresult;
}


/* int[] support */
int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetIntArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new int[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (int)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jint)carr[i];
  jenv->ReleaseIntArrayElements(input, jarr, 0);
}

jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) {
  jint *arr;
  int i;
  jintArray jresult = jenv->NewIntArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetIntArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jint)result[i];
  jenv->ReleaseIntArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned int[] support */
int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetLongArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned int[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned int)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jlong)carr[i];
  jenv->ReleaseLongArrayElements(input, jarr, 0);
}

jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) {
  jlong *arr;
  int i;
  jlongArray jresult = jenv->NewLongArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetLongArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jlong)result[i];
  jenv->ReleaseLongArrayElements(jresult, arr, 0);
  return jresult;
}


/* long[] support */
int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetIntArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new long[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (long)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jint)carr[i];
  jenv->ReleaseIntArrayElements(input, jarr, 0);
}

jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) {
  jint *arr;
  int i;
  jintArray jresult = jenv->NewIntArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetIntArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jint)result[i];
  jenv->ReleaseIntArrayElements(jresult, arr, 0);
  return jresult;
}


/* unsigned long[] support */
int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetLongArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new unsigned long[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (unsigned long)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jlong)carr[i];
  jenv->ReleaseLongArrayElements(input, jarr, 0);
}

jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) {
  jlong *arr;
  int i;
  jlongArray jresult = jenv->NewLongArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetLongArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jlong)result[i];
  jenv->ReleaseLongArrayElements(jresult, arr, 0);
  return jresult;
}


/* jlong[] support */
int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetLongArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new jlong[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (jlong)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jlong)carr[i];
  jenv->ReleaseLongArrayElements(input, jarr, 0);
}

jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) {
  jlong *arr;
  int i;
  jlongArray jresult = jenv->NewLongArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetLongArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jlong)result[i];
  jenv->ReleaseLongArrayElements(jresult, arr, 0);
  return jresult;
}


/* float[] support */
int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetFloatArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new float[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (float)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jfloat)carr[i];
  jenv->ReleaseFloatArrayElements(input, jarr, 0);
}

jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) {
  jfloat *arr;
  int i;
  jfloatArray jresult = jenv->NewFloatArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetFloatArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jfloat)result[i];
  jenv->ReleaseFloatArrayElements(jresult, arr, 0);
  return jresult;
}


/* double[] support */
int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) {
  int i;
  jsize sz;
  if (!input) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
    return 0;
  }
  sz = jenv->GetArrayLength(input);
  *jarr = jenv->GetDoubleArrayElements(input, 0);
  if (!*jarr)
    return 0; 
  *carr = new double[sz]; 
  if (!*carr) {
    SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
    return 0;
  }
  for (i=0; i<sz; i++)
    (*carr)[i] = (double)(*jarr)[i];
  return 1;
}

void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input) {
  int i;
  jsize sz = jenv->GetArrayLength(input);
  for (i=0; i<sz; i++)
    jarr[i] = (jdouble)carr[i];
  jenv->ReleaseDoubleArrayElements(input, jarr, 0);
}

jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) {
  jdouble *arr;
  int i;
  jdoubleArray jresult = jenv->NewDoubleArray(sz);
  if (!jresult)
    return NULL;
  arr = jenv->GetDoubleArrayElements(jresult, 0);
  if (!arr)
    return NULL;
  for (i=0; i<sz; i++)
    arr[i] = (jdouble)result[i];
  jenv->ReleaseDoubleArrayElements(jresult, arr, 0);
  return jresult;
}


#endif

SWIGINTERN int iBase_scfGetVersion(){ return scfInterfaceTraits<iBase>::GetVersion(); }
SWIGINTERN int iSCF_scfGetVersion(){ return scfInterfaceTraits<iSCF>::GetVersion(); }
SWIGINTERN void delete_iSCF(iSCF *self){ if (self) self->DecRef (); }
SWIGINTERN int iFactory_scfGetVersion(){ return scfInterfaceTraits<iFactory>::GetVersion(); }
SWIGINTERN void delete_iFactory(iFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iDebugHelper_scfGetVersion(){ return scfInterfaceTraits<iDebugHelper>::GetVersion(); }
SWIGINTERN void delete_iDebugHelper(iDebugHelper *self){ if (self) self->DecRef (); }
SWIGINTERN int iCommandLineParser_scfGetVersion(){ return scfInterfaceTraits<iCommandLineParser>::GetVersion(); }
SWIGINTERN void delete_iCommandLineParser(iCommandLineParser *self){ if (self) self->DecRef (); }
SWIGINTERN csColor csColor_operator_Sa_(csColor const *self,csColor const &c){ return *self + c; }
SWIGINTERN csColor csColor_operator_Ss_(csColor const *self,csColor const &c){ return *self - c; }
SWIGINTERN int iString_scfGetVersion(){ return scfInterfaceTraits<iString>::GetVersion(); }
SWIGINTERN void delete_iString(iString *self){ if (self) self->DecRef (); }
SWIGINTERN csPluginRequest *new_csPluginRequest__SWIG_2(char const *cls,char const *intf){
    return new csPluginRequest(cls, intf, iSCF::SCF->GetInterfaceID(intf), 0);
  }
SWIGINTERN int iPath_scfGetVersion(){ return scfInterfaceTraits<iPath>::GetVersion(); }
SWIGINTERN void delete_iPath(iPath *self){ if (self) self->DecRef (); }
SWIGINTERN csVector3 *iTriangleMesh_GetVertexByIndex(iTriangleMesh *self,int index){ return &(self->GetVertices()[index]); }
SWIGINTERN csTriangle *iTriangleMesh_GetTriangleByIndex(iTriangleMesh *self,int index){ return &(self->GetTriangles()[index]); }
SWIGINTERN int iTriangleMesh_scfGetVersion(){ return scfInterfaceTraits<iTriangleMesh>::GetVersion(); }
SWIGINTERN void delete_iTriangleMesh(iTriangleMesh *self){ if (self) self->DecRef (); }
SWIGINTERN int iReporterListener_scfGetVersion(){ return scfInterfaceTraits<iReporterListener>::GetVersion(); }
SWIGINTERN void delete_iReporterListener(iReporterListener *self){ if (self) self->DecRef (); }
SWIGINTERN int iReporterIterator_scfGetVersion(){ return scfInterfaceTraits<iReporterIterator>::GetVersion(); }
SWIGINTERN void delete_iReporterIterator(iReporterIterator *self){ if (self) self->DecRef (); }
SWIGINTERN int iReporter_scfGetVersion(){ return scfInterfaceTraits<iReporter>::GetVersion(); }
SWIGINTERN void delete_iReporter(iReporter *self){ if (self) self->DecRef (); }
SWIGINTERN int iComponent_scfGetVersion(){ return scfInterfaceTraits<iComponent>::GetVersion(); }
SWIGINTERN void delete_iComponent(iComponent *self){ if (self) self->DecRef (); }
SWIGINTERN int iCacheManager_scfGetVersion(){ return scfInterfaceTraits<iCacheManager>::GetVersion(); }
SWIGINTERN void delete_iCacheManager(iCacheManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iFile_scfGetVersion(){ return scfInterfaceTraits<iFile>::GetVersion(); }
SWIGINTERN void delete_iFile(iFile *self){ if (self) self->DecRef (); }
SWIGINTERN int iVFS_scfGetVersion(){ return scfInterfaceTraits<iVFS>::GetVersion(); }
SWIGINTERN void delete_iVFS(iVFS *self){ if (self) self->DecRef (); }
SWIGINTERN int iObject_scfGetVersion(){ return scfInterfaceTraits<iObject>::GetVersion(); }
SWIGINTERN void delete_iObject(iObject *self){ if (self) self->DecRef (); }
SWIGINTERN int iStringSet_scfGetVersion(){ return scfInterfaceTraits<iStringSet>::GetVersion(); }
SWIGINTERN void delete_iStringSet(iStringSet *self){ if (self) self->DecRef (); }
SWIGINTERN int iObjectRegistry_scfGetVersion(){ return scfInterfaceTraits<iObjectRegistry>::GetVersion(); }
SWIGINTERN void delete_iObjectRegistry(iObjectRegistry *self){ if (self) self->DecRef (); }
SWIGINTERN int iVirtualClock_scfGetVersion(){ return scfInterfaceTraits<iVirtualClock>::GetVersion(); }
SWIGINTERN void delete_iVirtualClock(iVirtualClock *self){ if (self) self->DecRef (); }
SWIGINTERN csEventError iEvent_RetrieveString(iEvent *self,char const *name,char *&v){
		return self->Retrieve(name,(const char *&)v);
	}
SWIGINTERN int iEvent_scfGetVersion(){ return scfInterfaceTraits<iEvent>::GetVersion(); }
SWIGINTERN void delete_iEvent(iEvent *self){ if (self) self->DecRef (); }
SWIGINTERN int iEventQueue_scfGetVersion(){ return scfInterfaceTraits<iEventQueue>::GetVersion(); }
SWIGINTERN void delete_iEventQueue(iEventQueue *self){ if (self) self->DecRef (); }
SWIGINTERN int iEventNameRegistry_scfGetVersion(){ return scfInterfaceTraits<iEventNameRegistry>::GetVersion(); }
SWIGINTERN void delete_iEventNameRegistry(iEventNameRegistry *self){ if (self) self->DecRef (); }
SWIGINTERN int iEventHandler_scfGetVersion(){ return scfInterfaceTraits<iEventHandler>::GetVersion(); }
SWIGINTERN void delete_iEventHandler(iEventHandler *self){ if (self) self->DecRef (); }
SWIGINTERN int iPluginManager_scfGetVersion(){ return scfInterfaceTraits<iPluginManager>::GetVersion(); }
SWIGINTERN void delete_iPluginManager(iPluginManager *self){ if (self) self->DecRef (); }
SWIGINTERN bool iKeyboardDriver_GetKeyState__SWIG_1(iKeyboardDriver *self,char const *key){ return self->GetKeyState ((int) key[0]); }
SWIGINTERN int iKeyboardDriver_scfGetVersion(){ return scfInterfaceTraits<iKeyboardDriver>::GetVersion(); }
SWIGINTERN void delete_iKeyboardDriver(iKeyboardDriver *self){ if (self) self->DecRef (); }
SWIGINTERN int iMouseDriver_scfGetVersion(){ return scfInterfaceTraits<iMouseDriver>::GetVersion(); }
SWIGINTERN void delete_iMouseDriver(iMouseDriver *self){ if (self) self->DecRef (); }
SWIGINTERN int iJoystickDriver_scfGetVersion(){ return scfInterfaceTraits<iJoystickDriver>::GetVersion(); }
SWIGINTERN void delete_iJoystickDriver(iJoystickDriver *self){ if (self) self->DecRef (); }
SWIGINTERN int iConfigFile_scfGetVersion(){ return scfInterfaceTraits<iConfigFile>::GetVersion(); }
SWIGINTERN void delete_iConfigFile(iConfigFile *self){ if (self) self->DecRef (); }
SWIGINTERN int iConfigIterator_scfGetVersion(){ return scfInterfaceTraits<iConfigIterator>::GetVersion(); }
SWIGINTERN void delete_iConfigIterator(iConfigIterator *self){ if (self) self->DecRef (); }
SWIGINTERN int iConfigManager_scfGetVersion(){ return scfInterfaceTraits<iConfigManager>::GetVersion(); }
SWIGINTERN void delete_iConfigManager(iConfigManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iStringArray_scfGetVersion(){ return scfInterfaceTraits<iStringArray>::GetVersion(); }
SWIGINTERN void delete_iStringArray(iStringArray *self){ if (self) self->DecRef (); }
SWIGINTERN int iDocumentAttributeIterator_scfGetVersion(){ return scfInterfaceTraits<iDocumentAttributeIterator>::GetVersion(); }
SWIGINTERN void delete_iDocumentAttributeIterator(iDocumentAttributeIterator *self){ if (self) self->DecRef (); }
SWIGINTERN int iDocumentAttribute_scfGetVersion(){ return scfInterfaceTraits<iDocumentAttribute>::GetVersion(); }
SWIGINTERN void delete_iDocumentAttribute(iDocumentAttribute *self){ if (self) self->DecRef (); }
SWIGINTERN int iDocumentNodeIterator_scfGetVersion(){ return scfInterfaceTraits<iDocumentNodeIterator>::GetVersion(); }
SWIGINTERN void delete_iDocumentNodeIterator(iDocumentNodeIterator *self){ if (self) self->DecRef (); }
SWIGINTERN int iDocumentNode_scfGetVersion(){ return scfInterfaceTraits<iDocumentNode>::GetVersion(); }
SWIGINTERN void delete_iDocumentNode(iDocumentNode *self){ if (self) self->DecRef (); }
SWIGINTERN int iDocument_scfGetVersion(){ return scfInterfaceTraits<iDocument>::GetVersion(); }
SWIGINTERN void delete_iDocument(iDocument *self){ if (self) self->DecRef (); }
SWIGINTERN int iDocumentSystem_scfGetVersion(){ return scfInterfaceTraits<iDocumentSystem>::GetVersion(); }
SWIGINTERN void delete_iDocumentSystem(iDocumentSystem *self){ if (self) self->DecRef (); }
SWIGINTERN int iDataBuffer_scfGetVersion(){ return scfInterfaceTraits<iDataBuffer>::GetVersion(); }
SWIGINTERN void delete_iDataBuffer(iDataBuffer *self){ if (self) self->DecRef (); }
SWIGINTERN int iImage_scfGetVersion(){ return scfInterfaceTraits<iImage>::GetVersion(); }
SWIGINTERN void delete_iImage(iImage *self){ if (self) self->DecRef (); }
SWIGINTERN int iImageIO_scfGetVersion(){ return scfInterfaceTraits<iImageIO>::GetVersion(); }
SWIGINTERN void delete_iImageIO(iImageIO *self){ if (self) self->DecRef (); }

  /// note that these values are only valid until the next call.
  csMouseEventData * iEvent_Mouse_get (iEvent * event)
  { 
    static csMouseEventData p; 
    if(!csMouseEventHelper::GetEventData(event, p)) return 0;
    return &p; 
  }
  csJoystickEventData * iEvent_Joystick_get (iEvent * event)
  { 
    static csJoystickEventData p; 
    if(!csJoystickEventHelper::GetEventData(event, p)) return 0;
    return &p; 
  }
  csCommandEventData * iEvent_Command_get (iEvent * event)
  { 
    static csCommandEventData p; 
    if(!csCommandEventHelper::GetEventData(event, p)) return 0;
    return &p; 
  }


  csPtr<iBase> CS_LOAD_PLUGIN_ALWAYS (iPluginManager *p, const char *i)
  {
    printf("CS_LOAD_PLUGIN_ALWAYS is deprecated, use \
                csLoadPluginAlways instead\n");
    return csLoadPluginAlways(p,i);
  }


#undef SCF_QUERY_INTERFACE
#undef SCF_QUERY_INTERFACE_SAFE
#undef CS_QUERY_REGISTRY
#undef CS_QUERY_REGISTRY_TAG_INTERFACE
#undef CS_QUERY_PLUGIN_CLASS
#undef CS_LOAD_PLUGIN
#undef CS_GET_CHILD_OBJECT
#undef CS_GET_NAMED_CHILD_OBJECT
#undef CS_GET_FIRST_NAMED_CHILD_OBJECT

csWrapPtr CS_QUERY_REGISTRY (iObjectRegistry *reg, const char *iface,
  int iface_ver)
{
  csPtr<iBase> b (reg->Get(iface, iSCF::SCF->GetInterfaceID(iface), iface_ver));
  return csWrapPtr (iface, iface_ver, b);
}

csWrapPtr CS_QUERY_REGISTRY_TAG_INTERFACE (iObjectRegistry *reg,
  const char *tag, const char *iface, int iface_ver)
{
  csPtr<iBase> b (reg->Get(tag, iSCF::SCF->GetInterfaceID(iface), iface_ver));
  return csWrapPtr (iface, iface_ver, b);
}

csWrapPtr SCF_QUERY_INTERFACE (iBase *obj, const char *iface, int iface_ver)
{
  // This call to QueryInterface ensures that IncRef is called and that
  // the object supports the interface.  However, for type safety and
  // object layout reasons the void pointer returned by QueryInterface
  // can't be wrapped inside the csWrapPtr so obj must be wrapped.
  if (obj->QueryInterface(iSCF::SCF->GetInterfaceID(iface), iface_ver))
    return csWrapPtr (iface, iface_ver, csPtr<iBase> (obj));
  else
    return csWrapPtr (iface, iface_ver, csPtr<iBase> (0));
}

csWrapPtr SCF_QUERY_INTERFACE_SAFE (iBase *obj, const char *iface,
  int iface_ver)
{
  if (!obj)
    return csWrapPtr (iface, iface_ver, csPtr<iBase> (0));

  // This call to QueryInterface ensures that IncRef is called and that
  // the object supports the interface.  However, for type safety and
  // object layout reasons the void pointer returned by QueryInterface
  // can't be wrapped inside the csWrapPtr so obj must be wrapped.
  if (obj->QueryInterface(iSCF::SCF->GetInterfaceID(iface), iface_ver))
    return csWrapPtr (iface, iface_ver, csPtr<iBase> (obj));
  else
    return csWrapPtr (iface, iface_ver, csPtr<iBase> (0));
}

csWrapPtr CS_QUERY_PLUGIN_CLASS (iPluginManager *obj, const char *id,
  const char *iface, int iface_ver)
{
  return csWrapPtr (iface, iface_ver,
    csPtr<iBase> (obj->QueryPlugin (id, iface, iface_ver)));
}

csWrapPtr CS_LOAD_PLUGIN (iPluginManager *obj, const char *id,
  const char *iface, int iface_ver)
{
  return csWrapPtr (iface, iface_ver, csPtr<iBase> (obj->LoadPlugin (id)));
}

csWrapPtr CS_GET_CHILD_OBJECT (iObject *obj, const char *iface, int iface_ver)
{
  return csWrapPtr (iface, iface_ver, csRef<iBase> (
    obj->GetChild(iSCF::SCF->GetInterfaceID (iface), iface_ver)));
}

csWrapPtr CS_GET_NAMED_CHILD_OBJECT (iObject *obj, const char *iface,
  int iface_ver, const char *name)
{
  return csWrapPtr (iface, iface_ver, csRef<iBase> (
    obj->GetChild(iSCF::SCF->GetInterfaceID (iface), iface_ver, name)));
}

csWrapPtr CS_GET_FIRST_NAMED_CHILD_OBJECT (iObject *obj, const char *iface,
  int iface_ver, const char *name)
{
  return csWrapPtr (iface, iface_ver, csRef<iBase> (
    obj->GetChild(iSCF::SCF->GetInterfaceID (iface), iface_ver, name, true)));
}


    static JavaVM * _the_jvm = 0;



	struct _csJEventHandler : public scfImplementation1<_csJEventHandler, 
							    iEventHandler>
	{
		_csJEventHandler () : scfImplementationType (this), my_jobject(0)
		{
		}
		virtual ~_csJEventHandler ()
        	{
            		JNIEnv * env = 0;
            		_the_jvm->AttachCurrentThread((void **)&env, NULL);
            		env->DeleteGlobalRef(my_jobject);
		}
        	static jobject _csJEventHandler_jobject;
        	void _importJEventHandler ()
        	{
            		my_jobject = _csJEventHandler_jobject;
        	}
		virtual bool HandleEvent (iEvent & event)
		{
            		try
            		{
                		return _HandleEvent(event);
            		}
            		catch (...)
            		{
                		JNIEnv * env = 0;
                		_the_jvm->AttachCurrentThread((void **)&env, NULL);
                		env->ExceptionClear();
            		}
            		return false;
        	}
        	bool _HandleEvent (iEvent & event)
        	{
            		JNIEnv * env = 0;
            		_the_jvm->AttachCurrentThread((void **)&env, NULL);
            		jclass event_class = env->FindClass("org/crystalspace3d/iEvent");
            		jclass handler_class = env->FindClass("org/crystalspace3d/csJEventHandler");
            		jmethodID event_ctr_mid = env->GetMethodID(event_class, "<init>", "(JZ)V");
            		jmethodID handle_event_mid = env->GetMethodID(handler_class, "HandleEvent", "(Lorg/crystalspace3d/iEvent;)Z");
            		jlong cptr = 0;
            		*(iEvent **)&cptr = &event; 
            		jobject event_object = env->NewObject(event_class, event_ctr_mid, cptr, false);
            		if (!event_object)
                		return false;
            		jboolean result = env->CallBooleanMethod(my_jobject, handle_event_mid, event_object);
            		return result;
		}
    		CS_EVENTHANDLER_NAMES("crystalspace.java")
    		CS_EVENTHANDLER_NIL_CONSTRAINTS
	private:
		jobject my_jobject;
	};


    iObjectRegistry * theObjectRegistry;




    jobject _csJEventHandler::_csJEventHandler_jobject;

    extern "C" {
        JNIEXPORT void JNICALL Java_org_crystalspace3d_csJEventHandler__1exportJEventHandler
            (JNIEnv *, jclass, jobject);
    }
                                                                                                              
    JNIEXPORT void JNICALL Java_org_crystalspace3d_csJEventHandler__1exportJEventHandler
        (JNIEnv * env, jclass, jobject obj)
    {
        if (!_the_jvm)
            env->GetJavaVM(&_the_jvm);
        _csJEventHandler::_csJEventHandler_jobject = env->NewGlobalRef(obj);
    }


SWIGINTERN int iFrustumViewUserdata_scfGetVersion(){ return scfInterfaceTraits<iFrustumViewUserdata>::GetVersion(); }
SWIGINTERN void delete_iFrustumViewUserdata(iFrustumViewUserdata *self){ if (self) self->DecRef (); }
SWIGINTERN int iFrustumView_scfGetVersion(){ return scfInterfaceTraits<iFrustumView>::GetVersion(); }
SWIGINTERN void delete_iFrustumView(iFrustumView *self){ if (self) self->DecRef (); }
SWIGINTERN int iLight_scfGetVersion(){ return scfInterfaceTraits<iLight>::GetVersion(); }
SWIGINTERN void delete_iLight(iLight *self){ if (self) self->DecRef (); }
SWIGINTERN int iLightList_scfGetVersion(){ return scfInterfaceTraits<iLightList>::GetVersion(); }
SWIGINTERN void delete_iLightList(iLightList *self){ if (self) self->DecRef (); }
SWIGINTERN int iSector_scfGetVersion(){ return scfInterfaceTraits<iSector>::GetVersion(); }
SWIGINTERN void delete_iSector(iSector *self){ if (self) self->DecRef (); }
SWIGINTERN int iSectorList_scfGetVersion(){ return scfInterfaceTraits<iSectorList>::GetVersion(); }
SWIGINTERN void delete_iSectorList(iSectorList *self){ if (self) self->DecRef (); }
SWIGINTERN int iEngine_scfGetVersion(){ return scfInterfaceTraits<iEngine>::GetVersion(); }
SWIGINTERN void delete_iEngine(iEngine *self){ if (self) self->DecRef (); }
SWIGINTERN int iCamera_scfGetVersion(){ return scfInterfaceTraits<iCamera>::GetVersion(); }
SWIGINTERN void delete_iCamera(iCamera *self){ if (self) self->DecRef (); }
SWIGINTERN int iCameraPosition_scfGetVersion(){ return scfInterfaceTraits<iCameraPosition>::GetVersion(); }
SWIGINTERN void delete_iCameraPosition(iCameraPosition *self){ if (self) self->DecRef (); }
SWIGINTERN int iTextureWrapper_scfGetVersion(){ return scfInterfaceTraits<iTextureWrapper>::GetVersion(); }
SWIGINTERN void delete_iTextureWrapper(iTextureWrapper *self){ if (self) self->DecRef (); }
SWIGINTERN int iTextureList_scfGetVersion(){ return scfInterfaceTraits<iTextureList>::GetVersion(); }
SWIGINTERN void delete_iTextureList(iTextureList *self){ if (self) self->DecRef (); }
SWIGINTERN int iMaterialWrapper_scfGetVersion(){ return scfInterfaceTraits<iMaterialWrapper>::GetVersion(); }
SWIGINTERN void delete_iMaterialWrapper(iMaterialWrapper *self){ if (self) self->DecRef (); }
SWIGINTERN int iSceneNodeArray_scfGetVersion(){ return scfInterfaceTraits<iSceneNodeArray>::GetVersion(); }
SWIGINTERN void delete_iSceneNodeArray(iSceneNodeArray *self){ if (self) self->DecRef (); }
SWIGINTERN int iSceneNode_scfGetVersion(){ return scfInterfaceTraits<iSceneNode>::GetVersion(); }
SWIGINTERN void delete_iSceneNode(iSceneNode *self){ if (self) self->DecRef (); }
SWIGINTERN int iMeshWrapper_scfGetVersion(){ return scfInterfaceTraits<iMeshWrapper>::GetVersion(); }
SWIGINTERN void delete_iMeshWrapper(iMeshWrapper *self){ if (self) self->DecRef (); }
SWIGINTERN int iMeshFactoryWrapper_scfGetVersion(){ return scfInterfaceTraits<iMeshFactoryWrapper>::GetVersion(); }
SWIGINTERN void delete_iMeshFactoryWrapper(iMeshFactoryWrapper *self){ if (self) self->DecRef (); }
SWIGINTERN int iMeshWrapperIterator_scfGetVersion(){ return scfInterfaceTraits<iMeshWrapperIterator>::GetVersion(); }
SWIGINTERN void delete_iMeshWrapperIterator(iMeshWrapperIterator *self){ if (self) self->DecRef (); }
SWIGINTERN int iMovableListener_scfGetVersion(){ return scfInterfaceTraits<iMovableListener>::GetVersion(); }
SWIGINTERN void delete_iMovableListener(iMovableListener *self){ if (self) self->DecRef (); }
SWIGINTERN int iMovable_scfGetVersion(){ return scfInterfaceTraits<iMovable>::GetVersion(); }
SWIGINTERN void delete_iMovable(iMovable *self){ if (self) self->DecRef (); }
SWIGINTERN int iVisibilityCuller_scfGetVersion(){ return scfInterfaceTraits<iVisibilityCuller>::GetVersion(); }
SWIGINTERN void delete_iVisibilityCuller(iVisibilityCuller *self){ if (self) self->DecRef (); }
SWIGINTERN int iPortal_scfGetVersion(){ return scfInterfaceTraits<iPortal>::GetVersion(); }
SWIGINTERN void delete_iPortal(iPortal *self){ if (self) self->DecRef (); }
SWIGINTERN int iPortalContainer_scfGetVersion(){ return scfInterfaceTraits<iPortalContainer>::GetVersion(); }
SWIGINTERN void delete_iPortalContainer(iPortalContainer *self){ if (self) self->DecRef (); }
SWIGINTERN int iLoader_scfGetVersion(){ return scfInterfaceTraits<iLoader>::GetVersion(); }
SWIGINTERN void delete_iLoader(iLoader *self){ if (self) self->DecRef (); }
SWIGINTERN int iLoaderPlugin_scfGetVersion(){ return scfInterfaceTraits<iLoaderPlugin>::GetVersion(); }
SWIGINTERN void delete_iLoaderPlugin(iLoaderPlugin *self){ if (self) self->DecRef (); }
SWIGINTERN int iBinaryLoaderPlugin_scfGetVersion(){ return scfInterfaceTraits<iBinaryLoaderPlugin>::GetVersion(); }
SWIGINTERN void delete_iBinaryLoaderPlugin(iBinaryLoaderPlugin *self){ if (self) self->DecRef (); }
SWIGINTERN int iObjectModelListener_scfGetVersion(){ return scfInterfaceTraits<iObjectModelListener>::GetVersion(); }
SWIGINTERN void delete_iObjectModelListener(iObjectModelListener *self){ if (self) self->DecRef (); }
SWIGINTERN int iTriangleMeshIterator_scfGetVersion(){ return scfInterfaceTraits<iTriangleMeshIterator>::GetVersion(); }
SWIGINTERN void delete_iTriangleMeshIterator(iTriangleMeshIterator *self){ if (self) self->DecRef (); }
SWIGINTERN int iObjectModel_scfGetVersion(){ return scfInterfaceTraits<iObjectModel>::GetVersion(); }
SWIGINTERN void delete_iObjectModel(iObjectModel *self){ if (self) self->DecRef (); }
SWIGINTERN int iGeneralMeshState_scfGetVersion(){ return scfInterfaceTraits<iGeneralMeshState>::GetVersion(); }
SWIGINTERN void delete_iGeneralMeshState(iGeneralMeshState *self){ if (self) self->DecRef (); }
SWIGINTERN csVector3 *iGeneralFactoryState_GetVertexByIndex(iGeneralFactoryState *self,int index){ return &(self->GetVertices()[index]); }
SWIGINTERN csVector2 *iGeneralFactoryState_GetTexelByIndex(iGeneralFactoryState *self,int index){ return &(self->GetTexels()[index]); }
SWIGINTERN csVector3 *iGeneralFactoryState_GetNormalByIndex(iGeneralFactoryState *self,int index){ return &(self->GetNormals()[index]); }
SWIGINTERN csTriangle *iGeneralFactoryState_GetTriangleByIndex(iGeneralFactoryState *self,int index){ return &(self->GetTriangles()[index]); }
SWIGINTERN csColor *iGeneralFactoryState_GetColorByIndex(iGeneralFactoryState *self,int index){ return &(self->GetColors()[index]); }
SWIGINTERN int iGeneralFactoryState_scfGetVersion(){ return scfInterfaceTraits<iGeneralFactoryState>::GetVersion(); }
SWIGINTERN void delete_iGeneralFactoryState(iGeneralFactoryState *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonBone_scfGetVersion(){ return scfInterfaceTraits<iSkeletonBone>::GetVersion(); }
SWIGINTERN void delete_iSkeletonBone(iSkeletonBone *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeleton_scfGetVersion(){ return scfInterfaceTraits<iSkeleton>::GetVersion(); }
SWIGINTERN void delete_iSkeleton(iSkeleton *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonSocket_scfGetVersion(){ return scfInterfaceTraits<iSkeletonSocket>::GetVersion(); }
SWIGINTERN void delete_iSkeletonSocket(iSkeletonSocket *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonBoneRagdollInfo_scfGetVersion(){ return scfInterfaceTraits<iSkeletonBoneRagdollInfo>::GetVersion(); }
SWIGINTERN void delete_iSkeletonBoneRagdollInfo(iSkeletonBoneRagdollInfo *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonBoneFactory_scfGetVersion(){ return scfInterfaceTraits<iSkeletonBoneFactory>::GetVersion(); }
SWIGINTERN void delete_iSkeletonBoneFactory(iSkeletonBoneFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonSocketFactory_scfGetVersion(){ return scfInterfaceTraits<iSkeletonSocketFactory>::GetVersion(); }
SWIGINTERN void delete_iSkeletonSocketFactory(iSkeletonSocketFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonFactory_scfGetVersion(){ return scfInterfaceTraits<iSkeletonFactory>::GetVersion(); }
SWIGINTERN void delete_iSkeletonFactory(iSkeletonFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iSkeletonGraveyard_scfGetVersion(){ return scfInterfaceTraits<iSkeletonGraveyard>::GetVersion(); }
SWIGINTERN void delete_iSkeletonGraveyard(iSkeletonGraveyard *self){ if (self) self->DecRef (); }
SWIGINTERN int iGenMeshSkeletonControlState_scfGetVersion(){ return scfInterfaceTraits<iGenMeshSkeletonControlState>::GetVersion(); }
SWIGINTERN void delete_iGenMeshSkeletonControlState(iGenMeshSkeletonControlState *self){ if (self) self->DecRef (); }
SWIGINTERN csSprite2DVertex *iSprite2DState_GetVertexByIndex(iSprite2DState *self,int index){ return &self->GetVertices()->Get(index); }
SWIGINTERN int iSprite2DState_GetVertexCount(iSprite2DState *self){ return self->GetVertices()->GetSize(); }
SWIGINTERN int iSprite2DState_scfGetVersion(){ return scfInterfaceTraits<iSprite2DState>::GetVersion(); }
SWIGINTERN void delete_iSprite2DState(iSprite2DState *self){ if (self) self->DecRef (); }
SWIGINTERN int iSprite3DState_scfGetVersion(){ return scfInterfaceTraits<iSprite3DState>::GetVersion(); }
SWIGINTERN void delete_iSprite3DState(iSprite3DState *self){ if (self) self->DecRef (); }
SWIGINTERN int iSpriteCal3DState_scfGetVersion(){ return scfInterfaceTraits<iSpriteCal3DState>::GetVersion(); }
SWIGINTERN void delete_iSpriteCal3DState(iSpriteCal3DState *self){ if (self) self->DecRef (); }
SWIGINTERN int iMeshObject_scfGetVersion(){ return scfInterfaceTraits<iMeshObject>::GetVersion(); }
SWIGINTERN void delete_iMeshObject(iMeshObject *self){ if (self) self->DecRef (); }
SWIGINTERN int iMeshObjectFactory_scfGetVersion(){ return scfInterfaceTraits<iMeshObjectFactory>::GetVersion(); }
SWIGINTERN void delete_iMeshObjectFactory(iMeshObjectFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iMeshObjectType_scfGetVersion(){ return scfInterfaceTraits<iMeshObjectType>::GetVersion(); }
SWIGINTERN void delete_iMeshObjectType(iMeshObjectType *self){ if (self) self->DecRef (); }
SWIGINTERN int iThingFactoryState_scfGetVersion(){ return scfInterfaceTraits<iThingFactoryState>::GetVersion(); }
SWIGINTERN void delete_iThingFactoryState(iThingFactoryState *self){ if (self) self->DecRef (); }
SWIGINTERN int iThingState_scfGetVersion(){ return scfInterfaceTraits<iThingState>::GetVersion(); }
SWIGINTERN void delete_iThingState(iThingState *self){ if (self) self->DecRef (); }
SWIGINTERN int iTerrainObjectState_scfGetVersion(){ return scfInterfaceTraits<iTerrainObjectState>::GetVersion(); }
SWIGINTERN void delete_iTerrainObjectState(iTerrainObjectState *self){ if (self) self->DecRef (); }
SWIGINTERN int iTerrainFactoryState_scfGetVersion(){ return scfInterfaceTraits<iTerrainFactoryState>::GetVersion(); }
SWIGINTERN void delete_iTerrainFactoryState(iTerrainFactoryState *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleEmitter_scfGetVersion(){ return scfInterfaceTraits<iParticleEmitter>::GetVersion(); }
SWIGINTERN void delete_iParticleEmitter(iParticleEmitter *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleEffector_scfGetVersion(){ return scfInterfaceTraits<iParticleEffector>::GetVersion(); }
SWIGINTERN void delete_iParticleEffector(iParticleEffector *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleSystemBase_scfGetVersion(){ return scfInterfaceTraits<iParticleSystemBase>::GetVersion(); }
SWIGINTERN void delete_iParticleSystemBase(iParticleSystemBase *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleSystemFactory_scfGetVersion(){ return scfInterfaceTraits<iParticleSystemFactory>::GetVersion(); }
SWIGINTERN void delete_iParticleSystemFactory(iParticleSystemFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleSystem_scfGetVersion(){ return scfInterfaceTraits<iParticleSystem>::GetVersion(); }
SWIGINTERN void delete_iParticleSystem(iParticleSystem *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEmitterBase_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEmitterBase>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEmitterBase(iParticleBuiltinEmitterBase *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEmitterSphere_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEmitterSphere>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEmitterSphere(iParticleBuiltinEmitterSphere *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEmitterCone_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEmitterCone>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEmitterCone(iParticleBuiltinEmitterCone *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEmitterBox_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEmitterBox>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEmitterBox(iParticleBuiltinEmitterBox *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEmitterCylinder_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEmitterCylinder>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEmitterCylinder(iParticleBuiltinEmitterCylinder *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEmitterFactory_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEmitterFactory>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEmitterFactory(iParticleBuiltinEmitterFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEffectorForce_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEffectorForce>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEffectorForce(iParticleBuiltinEffectorForce *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEffectorLinColor_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEffectorLinColor>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEffectorLinColor(iParticleBuiltinEffectorLinColor *self){ if (self) self->DecRef (); }
SWIGINTERN int iParticleBuiltinEffectorFactory_scfGetVersion(){ return scfInterfaceTraits<iParticleBuiltinEffectorFactory>::GetVersion(); }
SWIGINTERN void delete_iParticleBuiltinEffectorFactory(iParticleBuiltinEffectorFactory *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysData_scfGetVersion(){ return scfInterfaceTraits<iSndSysData>::GetVersion(); }
SWIGINTERN void delete_iSndSysData(iSndSysData *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysSoftwareFilter3D_scfGetVersion(){ return scfInterfaceTraits<iSndSysSoftwareFilter3D>::GetVersion(); }
SWIGINTERN void delete_iSndSysSoftwareFilter3D(iSndSysSoftwareFilter3D *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysListener_scfGetVersion(){ return scfInterfaceTraits<iSndSysListener>::GetVersion(); }
SWIGINTERN void delete_iSndSysListener(iSndSysListener *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysLoader_scfGetVersion(){ return scfInterfaceTraits<iSndSysLoader>::GetVersion(); }
SWIGINTERN void delete_iSndSysLoader(iSndSysLoader *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysWrapper_scfGetVersion(){ return scfInterfaceTraits<iSndSysWrapper>::GetVersion(); }
SWIGINTERN void delete_iSndSysWrapper(iSndSysWrapper *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysManager_scfGetVersion(){ return scfInterfaceTraits<iSndSysManager>::GetVersion(); }
SWIGINTERN void delete_iSndSysManager(iSndSysManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysSource_scfGetVersion(){ return scfInterfaceTraits<iSndSysSource>::GetVersion(); }
SWIGINTERN void delete_iSndSysSource(iSndSysSource *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysStream_scfGetVersion(){ return scfInterfaceTraits<iSndSysStream>::GetVersion(); }
SWIGINTERN void delete_iSndSysStream(iSndSysStream *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysRenderer_scfGetVersion(){ return scfInterfaceTraits<iSndSysRenderer>::GetVersion(); }
SWIGINTERN void delete_iSndSysRenderer(iSndSysRenderer *self){ if (self) self->DecRef (); }
SWIGINTERN int iSndSysSoftwareDriver_scfGetVersion(){ return scfInterfaceTraits<iSndSysSoftwareDriver>::GetVersion(); }
SWIGINTERN void delete_iSndSysSoftwareDriver(iSndSysSoftwareDriver *self){ if (self) self->DecRef (); }
SWIGINTERN int iDecalTemplate_scfGetVersion(){ return scfInterfaceTraits<iDecalTemplate>::GetVersion(); }
SWIGINTERN void delete_iDecalTemplate(iDecalTemplate *self){ if (self) self->DecRef (); }
SWIGINTERN int iDecalManager_scfGetVersion(){ return scfInterfaceTraits<iDecalManager>::GetVersion(); }
SWIGINTERN void delete_iDecalManager(iDecalManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iStandardReporterListener_scfGetVersion(){ return scfInterfaceTraits<iStandardReporterListener>::GetVersion(); }
SWIGINTERN void delete_iStandardReporterListener(iStandardReporterListener *self){ if (self) self->DecRef (); }
SWIGINTERN int iView_scfGetVersion(){ return scfInterfaceTraits<iView>::GetVersion(); }
SWIGINTERN void delete_iView(iView *self){ if (self) self->DecRef (); }
SWIGINTERN int iCollider_scfGetVersion(){ return scfInterfaceTraits<iCollider>::GetVersion(); }
SWIGINTERN void delete_iCollider(iCollider *self){ if (self) self->DecRef (); }
SWIGINTERN csCollisionPair *iCollideSystem_GetCollisionPairByIndex(iCollideSystem *self,int index){ return self->GetCollisionPairs() + index; }
SWIGINTERN int iCollideSystem_scfGetVersion(){ return scfInterfaceTraits<iCollideSystem>::GetVersion(); }
SWIGINTERN void delete_iCollideSystem(iCollideSystem *self){ if (self) self->DecRef (); }
SWIGINTERN int iDynamics_scfGetVersion(){ return scfInterfaceTraits<iDynamics>::GetVersion(); }
SWIGINTERN void delete_iDynamics(iDynamics *self){ if (self) self->DecRef (); }
SWIGINTERN int iDynamicSystem_scfGetVersion(){ return scfInterfaceTraits<iDynamicSystem>::GetVersion(); }
SWIGINTERN void delete_iDynamicSystem(iDynamicSystem *self){ if (self) self->DecRef (); }
SWIGINTERN int iBodyGroup_scfGetVersion(){ return scfInterfaceTraits<iBodyGroup>::GetVersion(); }
SWIGINTERN void delete_iBodyGroup(iBodyGroup *self){ if (self) self->DecRef (); }
SWIGINTERN int iJoint_scfGetVersion(){ return scfInterfaceTraits<iJoint>::GetVersion(); }
SWIGINTERN void delete_iJoint(iJoint *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEDynamicState_scfGetVersion(){ return scfInterfaceTraits<iODEDynamicState>::GetVersion(); }
SWIGINTERN void delete_iODEDynamicState(iODEDynamicState *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEDynamicSystemState_scfGetVersion(){ return scfInterfaceTraits<iODEDynamicSystemState>::GetVersion(); }
SWIGINTERN void delete_iODEDynamicSystemState(iODEDynamicSystemState *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEJointState_scfGetVersion(){ return scfInterfaceTraits<iODEJointState>::GetVersion(); }
SWIGINTERN void delete_iODEJointState(iODEJointState *self){ if (self) self->DecRef (); }
SWIGINTERN int iODESliderJoint_scfGetVersion(){ return scfInterfaceTraits<iODESliderJoint>::GetVersion(); }
SWIGINTERN void delete_iODESliderJoint(iODESliderJoint *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEUniversalJoint_scfGetVersion(){ return scfInterfaceTraits<iODEUniversalJoint>::GetVersion(); }
SWIGINTERN void delete_iODEUniversalJoint(iODEUniversalJoint *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEAMotorJoint_scfGetVersion(){ return scfInterfaceTraits<iODEAMotorJoint>::GetVersion(); }
SWIGINTERN void delete_iODEAMotorJoint(iODEAMotorJoint *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEHinge2Joint_scfGetVersion(){ return scfInterfaceTraits<iODEHinge2Joint>::GetVersion(); }
SWIGINTERN void delete_iODEHinge2Joint(iODEHinge2Joint *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEHingeJoint_scfGetVersion(){ return scfInterfaceTraits<iODEHingeJoint>::GetVersion(); }
SWIGINTERN void delete_iODEHingeJoint(iODEHingeJoint *self){ if (self) self->DecRef (); }
SWIGINTERN int iODEBallJoint_scfGetVersion(){ return scfInterfaceTraits<iODEBallJoint>::GetVersion(); }
SWIGINTERN void delete_iODEBallJoint(iODEBallJoint *self){ if (self) self->DecRef (); }
SWIGINTERN int iEngineSequenceManager_scfGetVersion(){ return scfInterfaceTraits<iEngineSequenceManager>::GetVersion(); }
SWIGINTERN void delete_iEngineSequenceManager(iEngineSequenceManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iMovieRecorder_scfGetVersion(){ return scfInterfaceTraits<iMovieRecorder>::GetVersion(); }
SWIGINTERN void delete_iMovieRecorder(iMovieRecorder *self){ if (self) self->DecRef (); }
SWIGINTERN int iMapNode_scfGetVersion(){ return scfInterfaceTraits<iMapNode>::GetVersion(); }
SWIGINTERN void delete_iMapNode(iMapNode *self){ if (self) self->DecRef (); }
SWIGINTERN int iScriptObject_scfGetVersion(){ return scfInterfaceTraits<iScriptObject>::GetVersion(); }
SWIGINTERN void delete_iScriptObject(iScriptObject *self){ if (self) self->DecRef (); }
SWIGINTERN int iScript_scfGetVersion(){ return scfInterfaceTraits<iScript>::GetVersion(); }
SWIGINTERN void delete_iScript(iScript *self){ if (self) self->DecRef (); }
SWIGINTERN int iSimpleFormerState_scfGetVersion(){ return scfInterfaceTraits<iSimpleFormerState>::GetVersion(); }
SWIGINTERN void delete_iSimpleFormerState(iSimpleFormerState *self){ if (self) self->DecRef (); }
SWIGINTERN int iTerraFormer_scfGetVersion(){ return scfInterfaceTraits<iTerraFormer>::GetVersion(); }
SWIGINTERN void delete_iTerraFormer(iTerraFormer *self){ if (self) self->DecRef (); }
SWIGINTERN int iTerraSampler_scfGetVersion(){ return scfInterfaceTraits<iTerraSampler>::GetVersion(); }
SWIGINTERN void delete_iTerraSampler(iTerraSampler *self){ if (self) self->DecRef (); }
SWIGINTERN int iGraphics2D_scfGetVersion(){ return scfInterfaceTraits<iGraphics2D>::GetVersion(); }
SWIGINTERN void delete_iGraphics2D(iGraphics2D *self){ if (self) self->DecRef (); }
SWIGINTERN int iGraphics3D_scfGetVersion(){ return scfInterfaceTraits<iGraphics3D>::GetVersion(); }
SWIGINTERN void delete_iGraphics3D(iGraphics3D *self){ if (self) self->DecRef (); }
SWIGINTERN int iFont_scfGetVersion(){ return scfInterfaceTraits<iFont>::GetVersion(); }
SWIGINTERN void delete_iFont(iFont *self){ if (self) self->DecRef (); }
SWIGINTERN int iFontServer_scfGetVersion(){ return scfInterfaceTraits<iFontServer>::GetVersion(); }
SWIGINTERN void delete_iFontServer(iFontServer *self){ if (self) self->DecRef (); }
SWIGINTERN int iHalo_scfGetVersion(){ return scfInterfaceTraits<iHalo>::GetVersion(); }
SWIGINTERN void delete_iHalo(iHalo *self){ if (self) self->DecRef (); }
SWIGINTERN int iShaderVariableContext_scfGetVersion(){ return scfInterfaceTraits<iShaderVariableContext>::GetVersion(); }
SWIGINTERN void delete_iShaderVariableContext(iShaderVariableContext *self){ if (self) self->DecRef (); }
SWIGINTERN int iShaderManager_scfGetVersion(){ return scfInterfaceTraits<iShaderManager>::GetVersion(); }
SWIGINTERN void delete_iShaderManager(iShaderManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iShader_scfGetVersion(){ return scfInterfaceTraits<iShader>::GetVersion(); }
SWIGINTERN void delete_iShader(iShader *self){ if (self) self->DecRef (); }
SWIGINTERN int iTextureHandle_scfGetVersion(){ return scfInterfaceTraits<iTextureHandle>::GetVersion(); }
SWIGINTERN void delete_iTextureHandle(iTextureHandle *self){ if (self) self->DecRef (); }
SWIGINTERN int iTextureManager_scfGetVersion(){ return scfInterfaceTraits<iTextureManager>::GetVersion(); }
SWIGINTERN void delete_iTextureManager(iTextureManager *self){ if (self) self->DecRef (); }
SWIGINTERN int iMaterial_scfGetVersion(){ return scfInterfaceTraits<iMaterial>::GetVersion(); }
SWIGINTERN void delete_iMaterial(iMaterial *self){ if (self) self->DecRef (); }
SWIGINTERN csVector2 csVector2_operator_Sa___SWIG_1(csVector2 const *self,csVector2 const &v){ return *self + v; }
SWIGINTERN csVector2 csVector2_operator_Ss___SWIG_1(csVector2 const *self,csVector2 const &v){ return *self - v; }
SWIGINTERN float csVector2_operator_Sm___SWIG_0(csVector2 const *self,csVector2 const &v){ return *self * v; }
SWIGINTERN csVector2 csVector2_operator_Sm___SWIG_1(csVector2 const *self,float f){ return *self * f; }
SWIGINTERN csVector2 csVector2_operator_Sd_(csVector2 const *self,float f){ return *self / f; }
SWIGINTERN bool csVector2_operator_Se__Se_(csVector2 const *self,csVector2 const &v){ return *self == v; }
SWIGINTERN bool csVector2_operator_SN__Se_(csVector2 const *self,csVector2 const &v){ return *self != v; }
SWIGINTERN bool csVector2_operator_Sl_(csVector2 const *self,float f){ return *self < f; }
SWIGINTERN bool csVector2_operator_Sg_(csVector2 const *self,float f){ return f > *self; }
SWIGINTERN csVector3 csVector3_operator_Sa___SWIG_1(csVector3 const *self,csVector3 const &v){ return *self + v; }
SWIGINTERN csVector3 csVector3_operator_Ss___SWIG_1(csVector3 const *self,csVector3 const &v){ return *self - v; }
SWIGINTERN float csVector3_operator_Sm___SWIG_0(csVector3 const *self,csVector3 const &v){ return *self * v; }
SWIGINTERN csVector3 csVector3_operator_Sm___SWIG_1(csVector3 const *self,float f){ return *self * f; }
SWIGINTERN csVector3 csVector3_operator_Sd___SWIG_0(csVector3 const *self,float f){ return *self / f; }
SWIGINTERN bool csVector3_operator_Se__Se_(csVector3 const *self,csVector3 const &v){ return *self == v; }
SWIGINTERN bool csVector3_operator_SN__Se_(csVector3 const *self,csVector3 const &v){ return *self != v; }
SWIGINTERN bool csVector3_operator_Sl_(csVector3 const *self,float f){ return *self < f; }
SWIGINTERN bool csVector3_operator_Sg_(csVector3 const *self,float f){ return f > *self; }
SWIGINTERN csVector3 &csVector3_operator_Sm__Se___SWIG_1(csVector3 *self,csTransform const &t){ return *self *= t; }
SWIGINTERN csVector3 &csVector3_operator_Sd__Se___SWIG_1(csVector3 *self,csReversibleTransform const &t){ return *self /= t; }
SWIGINTERN csVector3 csVector3_operator_Sd___SWIG_1(csVector3 *self,csReversibleTransform const &t){ return *self / t; }
SWIGINTERN csVector3 csVector3_project(csVector3 const *self,csVector3 const &what){ return what << *self; }
SWIGINTERN csVector4 csVector4_operator_Sa_(csVector4 const *self,csVector4 const &v){ return *self + v; }
SWIGINTERN csVector4 csVector4_operator_Ss_(csVector4 const *self,csVector4 const &v){ return *self - v; }
SWIGINTERN float csVector4_operator_Sm___SWIG_0(csVector4 const *self,csVector4 const &v){ return *self * v; }
SWIGINTERN csVector4 csVector4_operator_Sm___SWIG_1(csVector4 const *self,float f){ return *self * f; }
SWIGINTERN csVector4 csVector4_operator_Sd_(csVector4 const *self,float f){ return *self / f; }
SWIGINTERN bool csVector4_operator_Se__Se_(csVector4 const *self,csVector4 const &v){ return *self == v; }
SWIGINTERN bool csVector4_operator_SN__Se_(csVector4 const *self,csVector4 const &v){ return *self != v; }
SWIGINTERN bool csVector4_operator_Sl_(csVector4 const *self,float f){ return *self < f; }
SWIGINTERN bool csVector4_operator_Sg_(csVector4 const *self,float f){ return f > *self; }
SWIGINTERN csMatrix3 csMatrix3_operator_Sa___SWIG_1(csMatrix3 *self,csMatrix3 const &m){ return *self + m; }
SWIGINTERN csMatrix3 csMatrix3_operator_Ss___SWIG_1(csMatrix3 *self,csMatrix3 const &m){ return *self - m; }
SWIGINTERN csMatrix3 csMatrix3_operator_Sm___SWIG_0(csMatrix3 *self,csMatrix3 const &m){ return *self * m; }
SWIGINTERN csVector3 csMatrix3_operator_Sm___SWIG_1(csMatrix3 *self,csVector3 const &v){ return *self * v; }
SWIGINTERN csMatrix3 csMatrix3_operator_Sm___SWIG_2(csMatrix3 *self,float f){ return *self * f; }
SWIGINTERN csMatrix3 csMatrix3_operator_Sd_(csMatrix3 *self,float f){ return *self / f; }
SWIGINTERN bool csMatrix3_operator_Se__Se_(csMatrix3 const *self,csMatrix3 const &m){ return *self == m; }
SWIGINTERN bool csMatrix3_operator_SN__Se_(csMatrix3 const *self,csMatrix3 const &m){ return *self != m; }
SWIGINTERN bool csMatrix3_operator_Sl_(csMatrix3 const *self,float f){ return *self < f; }
SWIGINTERN csMatrix3 csMatrix3_operator_Sm___SWIG_3(csMatrix3 const *self,csTransform const &t){ return *self * t; }
SWIGINTERN csMatrix3 &csMatrix3_operator_Sm__Se___SWIG_2(csMatrix3 *self,csTransform const &t){ return *self *= t; }
SWIGINTERN csMatrix3 csTransform_mulmat1(csMatrix3 const &m,csTransform const &t){ return m * t; }
SWIGINTERN csMatrix3 csTransform_mulmat2(csTransform const &t,csMatrix3 const &m){ return t * m; }
SWIGINTERN csTransform csReversibleTransform_mulrev(csTransform const &t1,csReversibleTransform const &t2){ return t1 * t2; }
SWIGINTERN csReversibleTransform &csReversibleTransform_operator_Sm__Se_(csReversibleTransform *self,csReversibleTransform const &t){ return *self *= t; }
SWIGINTERN csReversibleTransform &csReversibleTransform_operator_Sd__Se_(csReversibleTransform *self,csReversibleTransform const &t){ return *self /= t; }
SWIGINTERN csReversibleTransform csReversibleTransform_operator_Sd_(csReversibleTransform *self,csReversibleTransform const &t){ return *self / t; }
SWIGINTERN csSphere &csSphere_operator_Sm__Se_(csSphere *self,csTransform const &t){ return *self *= t; }
SWIGINTERN csSphere csSphere_operator_Sd_(csSphere *self,csReversibleTransform const &t){ return *self / t; }
SWIGINTERN csPlane3 &csPlane3_operator_Sm__Se_(csPlane3 *self,csTransform const &t){ return *self *= t; }
SWIGINTERN csPlane3 &csPlane3_operator_Sd__Se_(csPlane3 *self,csReversibleTransform const &t){ return *self /= t; }
SWIGINTERN csPlane3 csPlane3_operator_Sd_(csPlane3 *self,csReversibleTransform const &t){ return *self / t; }
SWIGINTERN csQuaternion csQuaternion_operator_Sa_(csQuaternion *self,csQuaternion const &q){ return *self + q; }
SWIGINTERN csQuaternion csQuaternion_operator_Ss_(csQuaternion *self,csQuaternion const &q){ return *self - q; }
SWIGINTERN csQuaternion csQuaternion_operator_Sm_(csQuaternion *self,csQuaternion const &q){ return *self * q; }
SWIGINTERN csBox2 csBox2_operator_Sa___SWIG_0(csBox2 const *self,csBox2 const &b){ return *self + b; }
SWIGINTERN csBox2 csBox2_operator_Sm_(csBox2 const *self,csBox2 const &b){ return *self * b; }
SWIGINTERN bool csBox2_operator_SN__Se_(csBox2 const *self,csBox2 const &b){ return *self != b; }
SWIGINTERN bool csBox2_operator_Sl___SWIG_0(csBox2 const *self,csBox2 const &b){ return *self < b; }
SWIGINTERN bool csBox2_operator_Sg_(csBox2 const *self,csBox2 const &b){ return b > *self; }
SWIGINTERN csBox2 csBox2_operator_Sa___SWIG_1(csBox2 const *self,csVector2 const &point){ return *self + point; }
SWIGINTERN bool csBox2_operator_Sl___SWIG_1(csBox2 const *self,csVector2 const &point){ return point < *self; }
SWIGINTERN csBox3 csBox3_operator_Sa___SWIG_0(csBox3 const *self,csBox3 const &b){ return *self + b; }
SWIGINTERN csBox3 csBox3_operator_Sm_(csBox3 const *self,csBox3 const &b){ return *self * b; }
SWIGINTERN bool csBox3_operator_SN__Se_(csBox3 const *self,csBox3 const &b){ return *self != b; }
SWIGINTERN bool csBox3_operator_Sl___SWIG_0(csBox3 const *self,csBox3 const &b){ return *self < b; }
SWIGINTERN bool csBox3_operator_Sg_(csBox3 const *self,csBox3 const &b){ return b > *self; }
SWIGINTERN csBox3 csBox3_operator_Sa___SWIG_1(csBox3 const *self,csVector3 const &point){ return *self + point; }
SWIGINTERN bool csBox3_operator_Sl___SWIG_1(csBox3 const *self,csVector3 const &point){ return point < *self; }

#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1COMPILER_1NAME_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *) "GCC";
  
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1PLATFORM_1NAME_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *) "Unix";
  
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1PROCESSOR_1SIZE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int) 32;
  
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1LONG_1SIZE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int) 4;
  
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1PROCESSOR_1NAME_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *) "x86";
  
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1WCHAR_1T_1SIZE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int) 4;
  
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1PACKAGE_1NAME_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *) "crystalspace";
  
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_CS_1PACKAGE_1VERSION_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *) "1.3";
  
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_csWrapPtr_1Ref_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  csWrapPtr *arg1 = (csWrapPtr *) 0 ;
  csRef<iBase > *arg2 = (csRef<iBase > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csWrapPtr **)&jarg1; 
  arg2 = *(csRef<iBase > **)&jarg2; 
  if (arg1) (arg1)->Ref = *arg2;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_csWrapPtr_1Ref_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  csWrapPtr *arg1 = (csWrapPtr *) 0 ;
  csRef<iBase > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csWrapPtr **)&jarg1; 
  result = (csRef<iBase > *)& ((arg1)->Ref);
  *(csRef<iBase > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_csWrapPtr_1Type_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  csWrapPtr *arg1 = (csWrapPtr *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csWrapPtr **)&jarg1; 
  result = (char *) ((arg1)->Type);
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_csWrapPtr_1Version_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  csWrapPtr *arg1 = (csWrapPtr *) 0 ;
  scfInterfaceVersion arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csWrapPtr **)&jarg1; 
  arg2 = (scfInterfaceVersion)jarg2; 
  if (arg1) (arg1)->Version = arg2;
  
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_csWrapPtr_1Version_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  csWrapPtr *arg1 = (csWrapPtr *) 0 ;
  scfInterfaceVersion result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csWrapPtr **)&jarg1; 
  result = (scfInterfaceVersion) ((arg1)->Version);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csWrapPtr_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  scfInterfaceVersion arg2 ;
  SwigValueWrapper<csPtr<iBase > > arg3 ;
  csWrapPtr *result = 0 ;
  csPtr<iBase > *argp3 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (scfInterfaceVersion)jarg2; 
  argp3 = *(csPtr<iBase > **)&jarg3; 
  if (!argp3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null csPtr<iBase >");
    return 0;
  }
  arg3 = *argp3; 
  result = (csWrapPtr *)new csWrapPtr((char const *)arg1,arg2,arg3);
  *(csWrapPtr **)&jresult = result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csWrapPtr_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  scfInterfaceVersion arg2 ;
  SwigValueWrapper<csRef<iBase > > arg3 ;
  csWrapPtr *result = 0 ;
  csRef<iBase > *argp3 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (scfInterfaceVersion)jarg2; 
  argp3 = *(csRef<iBase > **)&jarg3; 
  if (!argp3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null csRef<iBase >");
    return 0;
  }
  arg3 = *argp3; 
  result = (csWrapPtr *)new csWrapPtr((char const *)arg1,arg2,arg3);
  *(csWrapPtr **)&jresult = result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csWrapPtr_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  csWrapPtr *arg1 = 0 ;
  csWrapPtr *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csWrapPtr **)&jarg1;
  if(!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "csWrapPtr const & reference is null");
    return 0;
  } 
  result = (csWrapPtr *)new csWrapPtr((csWrapPtr const &)*arg1);
  *(csWrapPtr **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1csWrapPtr(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  csWrapPtr *arg1 = (csWrapPtr *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(csWrapPtr **)&jarg1; 
  delete arg1;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayThresholdVariable_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  size_t arg1 ;
  csArrayThresholdVariable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (size_t)jarg1; 
  result = (csArrayThresholdVariable *)new csArrayThresholdVariable(arg1);
  *(csArrayThresholdVariable **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayThresholdVariable_1_1SWIG_11(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  csArrayThresholdVariable *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (csArrayThresholdVariable *)new csArrayThresholdVariable();
  *(csArrayThresholdVariable **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_csArrayThresholdVariable_1GetThreshold(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  csArrayThresholdVariable *arg1 = (csArrayThresholdVariable *) 0 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csArrayThresholdVariable **)&jarg1; 
  result = ((csArrayThresholdVariable const *)arg1)->GetThreshold();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1csArrayThresholdVariable(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  csArrayThresholdVariable *arg1 = (csArrayThresholdVariable *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(csArrayThresholdVariable **)&jarg1; 
  delete arg1;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayThresholdVariableCapacityLinear_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  csArrayCapacityLinear<csArrayThresholdVariable > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (csArrayCapacityLinear<csArrayThresholdVariable > *)new csArrayCapacityLinear<csArrayThresholdVariable >();
  *(csArrayCapacityLinear<csArrayThresholdVariable > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayThresholdVariableCapacityLinear_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  csArrayThresholdVariable *arg1 = 0 ;
  csArrayCapacityLinear<csArrayThresholdVariable > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csArrayThresholdVariable **)&jarg1;
  if(!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "csArrayThresholdVariable const & reference is null");
    return 0;
  } 
  result = (csArrayCapacityLinear<csArrayThresholdVariable > *)new csArrayCapacityLinear<csArrayThresholdVariable >((csArrayThresholdVariable const &)*arg1);
  *(csArrayCapacityLinear<csArrayThresholdVariable > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayThresholdVariableCapacityLinear_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  size_t arg1 ;
  csArrayCapacityLinear<csArrayThresholdVariable > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (size_t)jarg1; 
  result = (csArrayCapacityLinear<csArrayThresholdVariable > *)new csArrayCapacityLinear<csArrayThresholdVariable >(arg1);
  *(csArrayCapacityLinear<csArrayThresholdVariable > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_csArrayThresholdVariableCapacityLinear_1IsCapacityExcessive(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jlong jarg3) {
  jboolean jresult = 0 ;
  csArrayCapacityLinear<csArrayThresholdVariable > *arg1 = (csArrayCapacityLinear<csArrayThresholdVariable > *) 0 ;
  size_t arg2 ;
  size_t arg3 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csArrayCapacityLinear<csArrayThresholdVariable > **)&jarg1; 
  arg2 = (size_t)jarg2; 
  arg3 = (size_t)jarg3; 
  result = (bool)((csArrayCapacityLinear<csArrayThresholdVariable > const *)arg1)->IsCapacityExcessive(arg2,arg3);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_csArrayThresholdVariableCapacityLinear_1GetCapacity(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  jlong jresult = 0 ;
  csArrayCapacityLinear<csArrayThresholdVariable > *arg1 = (csArrayCapacityLinear<csArrayThresholdVariable > *) 0 ;
  size_t arg2 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csArrayCapacityLinear<csArrayThresholdVariable > **)&jarg1; 
  arg2 = (size_t)jarg2; 
  result = ((csArrayCapacityLinear<csArrayThresholdVariable > const *)arg1)->GetCapacity(arg2);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1csArrayThresholdVariableCapacityLinear(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  csArrayCapacityLinear<csArrayThresholdVariable > *arg1 = (csArrayCapacityLinear<csArrayThresholdVariable > *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(csArrayCapacityLinear<csArrayThresholdVariable > **)&jarg1; 
  delete arg1;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayCapacityDefault_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  csArrayCapacityDefault *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (csArrayCapacityDefault *)new csArrayCapacityDefault();
  *(csArrayCapacityDefault **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayCapacityDefault_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  csArrayThresholdVariable *arg1 = 0 ;
  csArrayCapacityDefault *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(csArrayThresholdVariable **)&jarg1;
  if(!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "csArrayThresholdVariable const & reference is null");
    return 0;
  } 
  result = (csArrayCapacityDefault *)new csArrayCapacityDefault((csArrayThresholdVariable const &)*arg1);
  *(csArrayCapacityDefault **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1csArrayCapacityDefault_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  size_t arg1 ;
  csArrayCapacityDefault *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (size_t)jarg1; 
  result = (csArrayCapacityDefault *)new csArrayCapacityDefault(arg1);
  *(csArrayCapacityDefault **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1csArrayCapacityDefault(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  csArrayCapacityDefault *arg1 = (csArrayCapacityDefault *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(csArrayCapacityDefault **)&jarg1; 
  delete arg1;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_csArrayItemNotFound_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  result = (size_t)csArrayItemNotFound;
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_scfCompatibleVersion(JNIEnv *jenv, jclass jcls, jint jarg1, jint jarg2) {
  jboolean jresult = 0 ;
  scfInterfaceVersion arg1 ;
  scfInterfaceVersion arg2 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (scfInterfaceVersion)jarg1; 
  arg2 = (scfInterfaceVersion)jarg2; 
  result = (bool)scfCompatibleVersion(arg1,arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadata_1interfaceName_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  {
    if (arg2) {
      arg1->interfaceName = (char const *) (new char[strlen((const char *)arg2)+1]);
      strcpy((char *)arg1->interfaceName, (const char *)arg2);
    } else {
      arg1->interfaceName = 0;
    }
  }
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadata_1interfaceName_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  result = (char *) ((arg1)->interfaceName);
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadata_1interfaceID_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  scfInterfaceID arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  arg2 = (scfInterfaceID)jarg2; 
  if (arg1) (arg1)->interfaceID = arg2;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadata_1interfaceID_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  scfInterfaceID result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  result = (scfInterfaceID) ((arg1)->interfaceID);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadata_1interfaceVersion_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  scfInterfaceVersion arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  arg2 = (scfInterfaceVersion)jarg2; 
  if (arg1) (arg1)->interfaceVersion = arg2;
  
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadata_1interfaceVersion_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  scfInterfaceVersion result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  result = (scfInterfaceVersion) ((arg1)->interfaceVersion);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1scfInterfaceMetadata(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  scfInterfaceMetadata *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (scfInterfaceMetadata *)new scfInterfaceMetadata();
  *(scfInterfaceMetadata **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1scfInterfaceMetadata(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  scfInterfaceMetadata *arg1 = (scfInterfaceMetadata *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(scfInterfaceMetadata **)&jarg1; 
  delete arg1;
  
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadataList_1metadata_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  scfInterfaceMetadataList *arg1 = (scfInterfaceMetadataList *) 0 ;
  scfInterfaceMetadata *arg2 = (scfInterfaceMetadata *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(scfInterfaceMetadataList **)&jarg1; 
  arg2 = *(scfInterfaceMetadata **)&jarg2; 
  if (arg1) (arg1)->metadata = arg2;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadataList_1metadata_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  scfInterfaceMetadataList *arg1 = (scfInterfaceMetadataList *) 0 ;
  scfInterfaceMetadata *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadataList **)&jarg1; 
  result = (scfInterfaceMetadata *) ((arg1)->metadata);
  *(scfInterfaceMetadata **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadataList_1metadataCount_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  scfInterfaceMetadataList *arg1 = (scfInterfaceMetadataList *) 0 ;
  size_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadataList **)&jarg1; 
  arg2 = (size_t)jarg2; 
  if (arg1) (arg1)->metadataCount = arg2;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_scfInterfaceMetadataList_1metadataCount_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  scfInterfaceMetadataList *arg1 = (scfInterfaceMetadataList *) 0 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(scfInterfaceMetadataList **)&jarg1; 
  result =  ((arg1)->metadataCount);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_new_1scfInterfaceMetadataList(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  scfInterfaceMetadataList *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (scfInterfaceMetadataList *)new scfInterfaceMetadataList();
  *(scfInterfaceMetadataList **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1scfInterfaceMetadataList(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  scfInterfaceMetadataList *arg1 = (scfInterfaceMetadataList *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(scfInterfaceMetadataList **)&jarg1; 
  delete arg1;
  
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1IncRef(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iBase *arg1 = (iBase *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  (arg1)->IncRef();
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1DecRef(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iBase *arg1 = (iBase *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  (arg1)->DecRef();
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1GetRefCount(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  iBase *arg1 = (iBase *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  result = (int)(arg1)->GetRefCount();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1QueryInterface(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jint jarg3) {
  jlong jresult = 0 ;
  iBase *arg1 = (iBase *) 0 ;
  scfInterfaceID arg2 ;
  int arg3 ;
  void *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  arg2 = (scfInterfaceID)jarg2; 
  arg3 = (int)jarg3; 
  result = (void *)(arg1)->QueryInterface(arg2,arg3);
  *(void **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1AddRefOwner(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  iBase *arg1 = (iBase *) 0 ;
  void **arg2 = (void **) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  arg2 = *(void ***)&jarg2; 
  (arg1)->AddRefOwner(arg2);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1RemoveRefOwner(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  iBase *arg1 = (iBase *) 0 ;
  void **arg2 = (void **) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  arg2 = *(void ***)&jarg2; 
  (arg1)->RemoveRefOwner(arg2);
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1GetInterfaceMetadata(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  iBase *arg1 = (iBase *) 0 ;
  scfInterfaceMetadataList *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iBase **)&jarg1; 
  result = (scfInterfaceMetadataList *)(arg1)->GetInterfaceMetadata();
  *(scfInterfaceMetadataList **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_iBase_1scfGetVersion(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)iBase_scfGetVersion();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1SCF_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iSCF *arg1 = (iSCF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  iSCF::SCF = arg1;
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1SCF_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  iSCF *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (iSCF *)iSCF::SCF;
  *(iSCF **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClasses_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) {
  iSCF *arg1 = (iSCF *) 0 ;
  iDocument *arg2 = (iDocument *) 0 ;
  char *arg3 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = *(iDocument **)&jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return ;
  }
  (arg1)->RegisterClasses(arg2,(char const *)arg3);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClasses_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  iSCF *arg1 = (iSCF *) 0 ;
  iDocument *arg2 = (iDocument *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = *(iDocument **)&jarg2; 
  (arg1)->RegisterClasses(arg2);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClasses_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return ;
  }
  (arg1)->RegisterClasses((char const *)arg2,(char const *)arg3);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClasses_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  (arg1)->RegisterClasses((char const *)arg2);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClasses_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_, jstring jarg4) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  iDocument *arg3 = (iDocument *) 0 ;
  char *arg4 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg3_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = *(iDocument **)&jarg3; 
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return ;
  }
  (arg1)->RegisterClasses((char const *)arg2,arg3,(char const *)arg4);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClasses_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3, jobject jarg3_) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  iDocument *arg3 = (iDocument *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg3_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = *(iDocument **)&jarg3; 
  (arg1)->RegisterClasses((char const *)arg2,arg3);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1ClassRegistered(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (bool)(arg1)->ClassRegistered((char const *)arg2);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1CreateInstance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jlong jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  iBase *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (iBase *)(arg1)->CreateInstance((char const *)arg2);
  *(iBase **)&jresult = result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1GetClassDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jstring jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (char *)(arg1)->GetClassDescription((char const *)arg2);
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1GetClassDependencies(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jstring jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (char *)(arg1)->GetClassDependencies((char const *)arg2);
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jobject JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1GetPluginMetadata(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jobject jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  SwigValueWrapper<csRef<iDocument > > result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (arg1)->GetPluginMetadata((char const *)arg2);
  {
    /*@SWIG:TYPEMAP_OUT_csRef_BODY@*/
    csRef<iDocument> ref((csRef<iDocument>&)result); /* explicit cast */
    jresult = _csRef_to_Java(csRef<iBase>(
        (iDocument*)ref), (void*)(iDocument*)ref, "iDocument" " *", "org/crystalspace3d/""iDocument", jenv);
    /*@SWIG@*/
  }
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1UnloadUnusedModules(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iSCF *arg1 = (iSCF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  (arg1)->UnloadUnusedModules();
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClass_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5, jstring jarg6, jstring jarg7) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  char *arg5 = (char *) 0 ;
  char *arg6 = (char *) 0 ;
  char *arg7 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = 0;
  if (jarg6) {
    arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0);
    if (!arg6) return 0;
  }
  arg7 = 0;
  if (jarg7) {
    arg7 = (char *)jenv->GetStringUTFChars(jarg7, 0);
    if (!arg7) return 0;
  }
  result = (bool)(arg1)->RegisterClass((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,(char const *)arg7);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6);
  if (arg7) jenv->ReleaseStringUTFChars(jarg7, (const char *)arg7);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClass_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5, jstring jarg6) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  char *arg5 = (char *) 0 ;
  char *arg6 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = 0;
  if (jarg6) {
    arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0);
    if (!arg6) return 0;
  }
  result = (bool)(arg1)->RegisterClass((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClass_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  char *arg5 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  result = (bool)(arg1)->RegisterClass((char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClass_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jstring jarg3, jstring jarg4, jstring jarg5, jstring jarg6) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  scfFactoryFunc arg2 = (scfFactoryFunc) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  char *arg5 = (char *) 0 ;
  char *arg6 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = *(scfFactoryFunc *)&jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  arg6 = 0;
  if (jarg6) {
    arg6 = (char *)jenv->GetStringUTFChars(jarg6, 0);
    if (!arg6) return 0;
  }
  result = (bool)(arg1)->RegisterClass(arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6);
  jresult = (jboolean)result; 
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  if (arg6) jenv->ReleaseStringUTFChars(jarg6, (const char *)arg6);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClass_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jstring jarg3, jstring jarg4, jstring jarg5) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  scfFactoryFunc arg2 = (scfFactoryFunc) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  char *arg5 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = *(scfFactoryFunc *)&jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  arg5 = 0;
  if (jarg5) {
    arg5 = (char *)jenv->GetStringUTFChars(jarg5, 0);
    if (!arg5) return 0;
  }
  result = (bool)(arg1)->RegisterClass(arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5);
  jresult = (jboolean)result; 
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  if (arg5) jenv->ReleaseStringUTFChars(jarg5, (const char *)arg5);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterClass_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jstring jarg3, jstring jarg4) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  scfFactoryFunc arg2 = (scfFactoryFunc) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = *(scfFactoryFunc *)&jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  result = (bool)(arg1)->RegisterClass(arg2,(char const *)arg3,(char const *)arg4);
  jresult = (jboolean)result; 
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterFactoryFunc(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jstring jarg3) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  scfFactoryFunc arg2 = (scfFactoryFunc) 0 ;
  char *arg3 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = *(scfFactoryFunc *)&jarg2; 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  result = (bool)(arg1)->RegisterFactoryFunc(arg2,(char const *)arg3);
  jresult = (jboolean)result; 
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1UnregisterClass(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (bool)(arg1)->UnregisterClass((char const *)arg2);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1GetInterfaceName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  jstring jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  scfInterfaceID arg2 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = (scfInterfaceID)jarg2; 
  result = (char *)((iSCF const *)arg1)->GetInterfaceName(arg2);
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1GetInterfaceID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jlong jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  scfInterfaceID result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (scfInterfaceID)(arg1)->GetInterfaceID((char const *)arg2);
  jresult = (jlong)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1Finish(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iSCF *arg1 = (iSCF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  (arg1)->Finish();
}


SWIGEXPORT jobject JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1QueryClassList(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jobject jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  SwigValueWrapper<csRef<iStringArray > > result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (arg1)->QueryClassList((char const *)arg2);
  {
    /*@SWIG:TYPEMAP_OUT_csRef_BODY@*/
    csRef<iStringArray> ref((csRef<iStringArray>&)result); /* explicit cast */
    jresult = _csRef_to_Java(csRef<iBase>(
        (iStringArray*)ref), (void*)(iStringArray*)ref, "iStringArray" " *", "org/crystalspace3d/""iStringArray", jenv);
    /*@SWIG@*/
  }
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1ScanPluginsPath_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3, jstring jarg4) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  bool arg3 ;
  char *arg4 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = jarg3 ? true : false; 
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return ;
  }
  (arg1)->ScanPluginsPath((char const *)arg2,arg3,(char const *)arg4);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1ScanPluginsPath_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jboolean jarg3) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  bool arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = jarg3 ? true : false; 
  (arg1)->ScanPluginsPath((char const *)arg2,arg3);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1ScanPluginsPath_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  (arg1)->ScanPluginsPath((char const *)arg2);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1RegisterPlugin(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jboolean jresult = 0 ;
  iSCF *arg1 = (iSCF *) 0 ;
  char *arg2 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iSCF **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (bool)(arg1)->RegisterPlugin((char const *)arg2);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_iSCF_1scfGetVersion(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)iSCF_scfGetVersion();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1iSCF(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  iSCF *arg1 = (iSCF *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(iSCF **)&jarg1; 
  delete_iSCF(arg1);
  
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1CreateInstance(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  iFactory *arg1 = (iFactory *) 0 ;
  iBase *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iFactory **)&jarg1; 
  result = (iBase *)(arg1)->CreateInstance();
  *(iBase **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1TryUnload(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iFactory *arg1 = (iFactory *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iFactory **)&jarg1; 
  (arg1)->TryUnload();
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1QueryDescription(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  iFactory *arg1 = (iFactory *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iFactory **)&jarg1; 
  result = (char *)(arg1)->QueryDescription();
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1QueryDependencies(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  iFactory *arg1 = (iFactory *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iFactory **)&jarg1; 
  result = (char *)(arg1)->QueryDependencies();
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1QueryClassID(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  iFactory *arg1 = (iFactory *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iFactory **)&jarg1; 
  result = (char *)(arg1)->QueryClassID();
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1QueryModuleName(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  iFactory *arg1 = (iFactory *) 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iFactory **)&jarg1; 
  result = (char *)(arg1)->QueryModuleName();
  if(result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_iFactory_1scfGetVersion(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)iFactory_scfGetVersion();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1iFactory(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  iFactory *arg1 = (iFactory *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(iFactory **)&jarg1; 
  delete_iFactory(arg1);
  
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfRegisterStaticClass_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3, jstring jarg4) {
  scfFactoryFunc arg1 = (scfFactoryFunc) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(scfFactoryFunc *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return ;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return ;
  }
  scfRegisterStaticClass(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfRegisterStaticClass_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2, jstring jarg3) {
  scfFactoryFunc arg1 = (scfFactoryFunc) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(scfFactoryFunc *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return ;
  }
  scfRegisterStaticClass(arg1,(char const *)arg2,(char const *)arg3);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfRegisterStaticClasses(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  char *arg1 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  scfRegisterStaticClasses((char const *)arg1);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_scfRegisterStaticFactoryFunc(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  scfFactoryFunc arg1 = (scfFactoryFunc) 0 ;
  char *arg2 = (char *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(scfFactoryFunc *)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  scfRegisterStaticFactoryFunc(arg1,(char const *)arg2);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1GetSupportedTests(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iDebugHelper **)&jarg1; 
  result = (int)((iDebugHelper const *)arg1)->GetSupportedTests();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jobject JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1UnitTest(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jobject jresult = 0 ;
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  SwigValueWrapper<csPtr<iString > > result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iDebugHelper **)&jarg1; 
  result = (arg1)->UnitTest();
  {
    /*@SWIG:TYPEMAP_OUT_csRef_BODY@*/
    csRef<iString> ref((csPtr<iString>&)result); /* explicit cast */
    jresult = _csRef_to_Java(csRef<iBase>(
        (iString*)ref), (void*)(iString*)ref, "iString" " *", "org/crystalspace3d/""iString", jenv);
    /*@SWIG@*/
  }
  return jresult;
}


SWIGEXPORT jobject JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1StateTest(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jobject jresult = 0 ;
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  SwigValueWrapper<csPtr<iString > > result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iDebugHelper **)&jarg1; 
  result = (arg1)->StateTest();
  {
    /*@SWIG:TYPEMAP_OUT_csRef_BODY@*/
    csRef<iString> ref((csPtr<iString>&)result); /* explicit cast */
    jresult = _csRef_to_Java(csRef<iBase>(
        (iString*)ref), (void*)(iString*)ref, "iString" " *", "org/crystalspace3d/""iString", jenv);
    /*@SWIG@*/
  }
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1Benchmark(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  jlong jresult = 0 ;
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  int arg2 ;
  csTicks result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iDebugHelper **)&jarg1; 
  arg2 = (int)jarg2; 
  result = (csTicks)(arg1)->Benchmark(arg2);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jobject JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1Dump_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jobject jresult = 0 ;
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  SwigValueWrapper<csPtr<iString > > result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iDebugHelper **)&jarg1; 
  result = (arg1)->Dump();
  {
    /*@SWIG:TYPEMAP_OUT_csRef_BODY@*/
    csRef<iString> ref((csPtr<iString>&)result); /* explicit cast */
    jresult = _csRef_to_Java(csRef<iBase>(
        (iString*)ref), (void*)(iString*)ref, "iString" " *", "org/crystalspace3d/""iString", jenv);
    /*@SWIG@*/
  }
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1Dump_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  iGraphics3D *arg2 = (iGraphics3D *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  (void)jarg2_;
  arg1 = *(iDebugHelper **)&jarg1; 
  arg2 = *(iGraphics3D **)&jarg2; 
  (arg1)->Dump(arg2);
}


SWIGEXPORT jboolean JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1DebugCommand(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jboolean jresult = 0 ;
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  char *arg2 = (char *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iDebugHelper **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  result = (bool)(arg1)->DebugCommand((char const *)arg2);
  jresult = (jboolean)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT jint JNICALL Java_org_crystalspace3d_cspaceJNI_iDebugHelper_1scfGetVersion(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)iDebugHelper_scfGetVersion();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_delete_1iDebugHelper(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  iDebugHelper *arg1 = (iDebugHelper *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(iDebugHelper **)&jarg1; 
  delete_iDebugHelper(arg1);
  
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iCommandLineParser_1Initialize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jobjectArray jarg2) {
  iCommandLineParser *arg1 = (iCommandLineParser *) 0 ;
  int arg2 ;
  char **arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iCommandLineParser **)&jarg1; 
  {
    arg2 = jenv->GetArrayLength(jarg2) + 1; // +1 for synthesized argv[0].
    arg3 = (char **) malloc((arg2 + 1) * sizeof(char *));
    /* C/C++ functions accepting argc/argv[] expect argv[0] to be the program
         or script name, but Java's `main(String[] args)' array contains only
         program arguments. We must, therefore, prepend our own argv[0] to the
         incoming array. Unfortunately, there does not seem to be any way of
         determining the location of the .class file in which main() was invoked,
         so we instead just use "./csjava" as argv[0]. We purposely use the "./"
         notation so that functions, such as csGetAppPath(), which interpret
         argv[0] will consider the "current working directory" as the location of
         the program. (This may not be the best solution for synthesizing
         argv[0], but it is better than sending a bogus argv[] array to the C/C++
         function.)
      */
    arg3[0] = strdup("./csjava");
    /* make a copy of each string */
    int i;
    for (i = 1; i < arg2; ++i) {
      jstring j_string = (jstring)jenv->GetObjectArrayElement(jarg2, i - 1);
      const char * c_string = jenv->GetStringUTFChars(j_string, 0);
      arg3[i] = strdup(c_string);
      jenv->ReleaseStringUTFChars(j_string, c_string);
      jenv->DeleteLocalRef(j_string);
    }
    arg3[i] = 0;
  }
  (arg1)->Initialize(arg2,(char const *const (*))arg3);
  {
    for (int i = 0; i < arg2 - 1; ++i)
    free(arg3[i]);
    free(arg3);
  }
}


SWIGEXPORT void JNICALL Java_org_crystalspace3d_cspaceJNI_iCommandLineParser_1Reset(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  iCommandLineParser *arg1 = (iCommandLineParser *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(iCommandLineParser **)&jarg1; 
  (arg1)->Reset();
}


SWIGEXPORT jstring JNICALL Java_org_crystalspace3d_cspaceJNI_iCommandLineParser_1GetOption_1_