// ***************************************************************************
//
//   Generated automatically by genwrapper.
//   Please DO NOT EDIT this file!
//
// ***************************************************************************

#include <osgIntrospection/ReflectionMacros>
#include <osgIntrospection/TypedMethodInfo>
#include <osgIntrospection/StaticMethodInfo>
#include <osgIntrospection/Attributes>

#include <osg/Array>
#include <osg/BufferObject>
#include <osg/CopyOp>
#include <osg/Object>
#include <osg/Vec2>
#include <osg/Vec2b>
#include <osg/Vec2s>
#include <osg/Vec3>
#include <osg/Vec3b>
#include <osg/Vec3s>
#include <osg/Vec4>
#include <osg/Vec4b>
#include <osg/Vec4s>
#include <osg/Vec4ub>

// Must undefine IN and OUT macros defined in Windows headers
#ifdef IN
#undef IN
#endif
#ifdef OUT
#undef OUT
#endif

BEGIN_ENUM_REFLECTOR(osg::Array::Type)
	I_DeclaringFile("osg/Array");
	I_EnumLabel(osg::Array::ArrayType);
	I_EnumLabel(osg::Array::ByteArrayType);
	I_EnumLabel(osg::Array::ShortArrayType);
	I_EnumLabel(osg::Array::IntArrayType);
	I_EnumLabel(osg::Array::UByteArrayType);
	I_EnumLabel(osg::Array::UShortArrayType);
	I_EnumLabel(osg::Array::UIntArrayType);
	I_EnumLabel(osg::Array::Vec4ubArrayType);
	I_EnumLabel(osg::Array::FloatArrayType);
	I_EnumLabel(osg::Array::Vec2ArrayType);
	I_EnumLabel(osg::Array::Vec3ArrayType);
	I_EnumLabel(osg::Array::Vec4ArrayType);
	I_EnumLabel(osg::Array::Vec2sArrayType);
	I_EnumLabel(osg::Array::Vec3sArrayType);
	I_EnumLabel(osg::Array::Vec4sArrayType);
	I_EnumLabel(osg::Array::Vec2bArrayType);
	I_EnumLabel(osg::Array::Vec3bArrayType);
	I_EnumLabel(osg::Array::Vec4bArrayType);
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Array)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Object);
	I_ConstructorWithDefaults3(IN, osg::Array::Type, arrayType, osg::Array::ArrayType, IN, GLint, dataSize, 0, IN, GLenum, dataType, 0,
	                           ____Array__Type__GLint__GLenum,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osg::Array &, array, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____Array__C5_Array_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
	          Properties::VIRTUAL,
	          __bool__isSameKindAs__C5_Object_P1,
	          "",
	          "");
	I_Method0(const char *, libraryName,
	          Properties::VIRTUAL,
	          __C5_char_P1__libraryName,
	          "return the name of the object's library. ",
	          "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. ");
	I_Method0(const char *, className,
	          Properties::VIRTUAL,
	          __C5_char_P1__className,
	          "return the name of the object's class type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, x,
	          Properties::PURE_VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, x,
	          Properties::PURE_VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, x,
	          Properties::PURE_VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, x,
	          Properties::PURE_VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::PURE_VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(osg::Array::Type, getType,
	          Properties::NON_VIRTUAL,
	          __Type__getType,
	          "",
	          "");
	I_Method0(GLint, getDataSize,
	          Properties::NON_VIRTUAL,
	          __GLint__getDataSize,
	          "",
	          "");
	I_Method0(GLenum, getDataType,
	          Properties::NON_VIRTUAL,
	          __GLenum__getDataType,
	          "",
	          "");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::PURE_VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::PURE_VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::PURE_VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(void, dirty,
	          Properties::NON_VIRTUAL,
	          __void__dirty,
	          "Dirty the primitive, which increments the modified count, to force buffer objects to update. ",
	          "");
	I_Method1(void, setModifiedCount, IN, unsigned int, value,
	          Properties::NON_VIRTUAL,
	          __void__setModifiedCount__unsigned_int,
	          "Set the modified count value. ",
	          "");
	I_Method0(unsigned int, getModifiedCount,
	          Properties::NON_VIRTUAL,
	          __unsigned_int__getModifiedCount,
	          "Get modified count value. ",
	          "");
	I_Method1(void, setVertexBufferObject, IN, osg::VertexBufferObject *, vbo,
	          Properties::NON_VIRTUAL,
	          __void__setVertexBufferObject__osg_VertexBufferObject_P1,
	          "Set the VertexBufferObject. ",
	          "");
	I_Method0(osg::VertexBufferObject *, getVertexBufferObject,
	          Properties::NON_VIRTUAL,
	          __osg_VertexBufferObject_P1__getVertexBufferObject,
	          "Get the VertexBufferObject. ",
	          "If no VBO is assigned returns NULL ");
	I_Method0(const osg::VertexBufferObject *, getVertexBufferObject,
	          Properties::NON_VIRTUAL,
	          __C5_osg_VertexBufferObject_P1__getVertexBufferObject,
	          "Get the const VertexBufferObject. ",
	          "If no VBO is assigned returns NULL ");
	I_Method1(void, setVertexBufferObjectOffset, IN, const GLvoid *, offset,
	          Properties::NON_VIRTUAL,
	          __void__setVertexBufferObjectOffset__C5_GLvoid_P1,
	          "Set the offset into the VertexBufferObject, if used. ",
	          "");
	I_Method0(const GLvoid *, getVertexBufferObjectOffset,
	          Properties::NON_VIRTUAL,
	          __C5_GLvoid_P1__getVertexBufferObjectOffset,
	          "Get the offset into the VertexBufferObject, if used. ",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(GLint, DataSize, 
	                 __GLint__getDataSize, 
	                 0);
	I_SimpleProperty(GLenum, DataType, 
	                 __GLenum__getDataType, 
	                 0);
	I_SimpleProperty(unsigned int, ModifiedCount, 
	                 __unsigned_int__getModifiedCount, 
	                 __void__setModifiedCount__unsigned_int);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
	I_SimpleProperty(osg::Array::Type, Type, 
	                 __Type__getType, 
	                 0);
	I_SimpleProperty(osg::VertexBufferObject *, VertexBufferObject, 
	                 __osg_VertexBufferObject_P1__getVertexBufferObject, 
	                 __void__setVertexBufferObject__osg_VertexBufferObject_P1);
	I_SimpleProperty(const GLvoid *, VertexBufferObjectOffset, 
	                 __C5_GLvoid_P1__getVertexBufferObjectOffset, 
	                 __void__setVertexBufferObjectOffset__C5_GLvoid_P1);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ArrayVisitor)
	I_DeclaringFile("osg/Array");
	I_Constructor0(____ArrayVisitor,
	               "",
	               "");
	I_Method1(void, apply, IN, osg::Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::ByteArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__ByteArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::ShortArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__ShortArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::IntArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__IntArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::UByteArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__UByteArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::UShortArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__UShortArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::UIntArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__UIntArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::FloatArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__FloatArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec2Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec2Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec3Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec3Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4ubArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4ubArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec2bArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec2bArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec3bArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec3bArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4bArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4bArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec2sArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec2sArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec3sArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec3sArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4sArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4sArray_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ConstArrayVisitor)
	I_DeclaringFile("osg/Array");
	I_Constructor0(____ConstArrayVisitor,
	               "",
	               "");
	I_Method1(void, apply, IN, const osg::Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::ByteArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_ByteArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::ShortArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_ShortArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::IntArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_IntArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::UByteArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_UByteArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::UShortArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_UShortArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::UIntArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_UIntArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::FloatArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_FloatArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec2Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec2Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec3Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec3Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4Array &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4Array_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4ubArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4ubArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec2bArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec2bArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec3bArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec3bArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4bArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4bArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec2sArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec2sArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec3sArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec3sArray_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4sArray &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4sArray_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ConstValueVisitor)
	I_DeclaringFile("osg/Array");
	I_Constructor0(____ConstValueVisitor,
	               "",
	               "");
	I_Method1(void, apply, IN, const GLbyte &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLbyte_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const GLshort &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLshort_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const GLint &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLint_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const GLushort &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLushort_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const GLubyte &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLubyte_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const GLuint &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLuint_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const GLfloat &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_GLfloat_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4ub &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4ub_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec2 &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec2_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec3 &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec3_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4 &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec2b &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec2b_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec3b &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec3b_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4b &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4b_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec2s &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec2s_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec3s &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec3s_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, const osg::Vec4s &, x,
	          Properties::VIRTUAL,
	          __void__apply__C5_Vec4s_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::IndexArray)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_ConstructorWithDefaults3(IN, osg::Array::Type, arrayType, osg::Array::ArrayType, IN, GLint, dataSize, 0, IN, GLenum, dataType, 0,
	                           ____IndexArray__Type__GLint__GLenum,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osg::Array &, array, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____IndexArray__C5_Array_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
	          Properties::VIRTUAL,
	          __bool__isSameKindAs__C5_Object_P1,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::PURE_VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ValueVisitor)
	I_DeclaringFile("osg/Array");
	I_Constructor0(____ValueVisitor,
	               "",
	               "");
	I_Method1(void, apply, IN, GLbyte &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLbyte_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, GLshort &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLshort_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, GLint &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLint_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, GLushort &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLushort_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, GLubyte &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLubyte_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, GLuint &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLuint_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, GLfloat &, x,
	          Properties::VIRTUAL,
	          __void__apply__GLfloat_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec2 &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec2_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec3 &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec3_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4 &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4ub &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4ub_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec2b &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec2b_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec3b &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec3b_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4b &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4b_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec2s &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec2s_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec3s &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec3s_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Vec4s &, x,
	          Properties::VIRTUAL,
	          __void__apply__Vec4s_R1,
	          "",
	          "");
END_REFLECTOR

TYPE_NAME_ALIAS(osg::TemplateIndexArray< GLbyte COMMA  osg::Array::ByteArrayType COMMA  1 COMMA  GL_BYTE >, osg::ByteArray)

TYPE_NAME_ALIAS(osg::TemplateIndexArray< GLshort COMMA  osg::Array::ShortArrayType COMMA  1 COMMA  GL_SHORT >, osg::ShortArray)

TYPE_NAME_ALIAS(osg::TemplateIndexArray< GLint COMMA  osg::Array::IntArrayType COMMA  1 COMMA  GL_INT >, osg::IntArray)

TYPE_NAME_ALIAS(osg::TemplateIndexArray< GLubyte COMMA  osg::Array::UByteArrayType COMMA  1 COMMA  GL_UNSIGNED_BYTE >, osg::UByteArray)

TYPE_NAME_ALIAS(osg::TemplateIndexArray< GLushort COMMA  osg::Array::UShortArrayType COMMA  1 COMMA  GL_UNSIGNED_SHORT >, osg::UShortArray)

TYPE_NAME_ALIAS(osg::TemplateIndexArray< GLuint COMMA  osg::Array::UIntArrayType COMMA  1 COMMA  GL_UNSIGNED_INT >, osg::UIntArray)

TYPE_NAME_ALIAS(osg::TemplateArray< GLfloat COMMA  osg::Array::FloatArrayType COMMA  1 COMMA  GL_FLOAT >, osg::FloatArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec2 COMMA  osg::Array::Vec2ArrayType COMMA  2 COMMA  GL_FLOAT >, osg::Vec2Array)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec3 COMMA  osg::Array::Vec3ArrayType COMMA  3 COMMA  GL_FLOAT >, osg::Vec3Array)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec4 COMMA  osg::Array::Vec4ArrayType COMMA  4 COMMA  GL_FLOAT >, osg::Vec4Array)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec4ub COMMA  osg::Array::Vec4ubArrayType COMMA  4 COMMA  GL_UNSIGNED_BYTE >, osg::Vec4ubArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec2s COMMA  osg::Array::Vec2sArrayType COMMA  2 COMMA  GL_SHORT >, osg::Vec2sArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec3s COMMA  osg::Array::Vec3sArrayType COMMA  3 COMMA  GL_SHORT >, osg::Vec3sArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec4s COMMA  osg::Array::Vec4sArrayType COMMA  4 COMMA  GL_SHORT >, osg::Vec4sArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec2b COMMA  osg::Array::Vec2bArrayType COMMA  2 COMMA  GL_BYTE >, osg::Vec2bArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec3b COMMA  osg::Array::Vec3bArrayType COMMA  3 COMMA  GL_BYTE >, osg::Vec3bArray)

TYPE_NAME_ALIAS(osg::TemplateArray< osg::Vec4b COMMA  osg::Array::Vec4bArrayType COMMA  4 COMMA  GL_BYTE >, osg::Vec4bArray)

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< GLfloat COMMA  osg::Array::FloatArrayType COMMA  1 COMMA  GL_FLOAT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<GLfloat>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< GLfloat COMMA  osg::Array::FloatArrayType COMMA  1 COMMA  GL_FLOAT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLfloat *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec2 COMMA  osg::Array::Vec2ArrayType COMMA  2 COMMA  GL_FLOAT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec2>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec2 COMMA  osg::Array::Vec2ArrayType COMMA  2 COMMA  GL_FLOAT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec2 *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec2b COMMA  osg::Array::Vec2bArrayType COMMA  2 COMMA  GL_BYTE >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec2b>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec2b COMMA  osg::Array::Vec2bArrayType COMMA  2 COMMA  GL_BYTE > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec2b *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec2s COMMA  osg::Array::Vec2sArrayType COMMA  2 COMMA  GL_SHORT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec2s>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec2s COMMA  osg::Array::Vec2sArrayType COMMA  2 COMMA  GL_SHORT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec2s *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec3 COMMA  osg::Array::Vec3ArrayType COMMA  3 COMMA  GL_FLOAT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec3>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec3 COMMA  osg::Array::Vec3ArrayType COMMA  3 COMMA  GL_FLOAT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec3 *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec3b COMMA  osg::Array::Vec3bArrayType COMMA  3 COMMA  GL_BYTE >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec3b>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec3b COMMA  osg::Array::Vec3bArrayType COMMA  3 COMMA  GL_BYTE > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec3b *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec3s COMMA  osg::Array::Vec3sArrayType COMMA  3 COMMA  GL_SHORT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec3s>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec3s COMMA  osg::Array::Vec3sArrayType COMMA  3 COMMA  GL_SHORT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec3s *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec4 COMMA  osg::Array::Vec4ArrayType COMMA  4 COMMA  GL_FLOAT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec4>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec4 COMMA  osg::Array::Vec4ArrayType COMMA  4 COMMA  GL_FLOAT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec4 *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec4b COMMA  osg::Array::Vec4bArrayType COMMA  4 COMMA  GL_BYTE >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec4b>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec4b COMMA  osg::Array::Vec4bArrayType COMMA  4 COMMA  GL_BYTE > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec4b *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec4s COMMA  osg::Array::Vec4sArrayType COMMA  4 COMMA  GL_SHORT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec4s>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec4s COMMA  osg::Array::Vec4sArrayType COMMA  4 COMMA  GL_SHORT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec4s *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateArray< osg::Vec4ub COMMA  osg::Array::Vec4ubArrayType COMMA  4 COMMA  GL_UNSIGNED_BYTE >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::Array);
	I_BaseType(std::vector<osg::Vec4ub>);
	I_Constructor0(____TemplateArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateArray< osg::Vec4ub COMMA  osg::Array::Vec4ubArrayType COMMA  4 COMMA  GL_UNSIGNED_BYTE > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateArray__C5_TemplateArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, osg::Vec4ub *, ptr,
	               ____TemplateArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateIndexArray< GLbyte COMMA  osg::Array::ByteArrayType COMMA  1 COMMA  GL_BYTE >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::IndexArray);
	I_BaseType(std::vector<GLbyte>);
	I_Constructor0(____TemplateIndexArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateIndexArray< GLbyte COMMA  osg::Array::ByteArrayType COMMA  1 COMMA  GL_BYTE > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateIndexArray__C5_TemplateIndexArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateIndexArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLbyte *, ptr,
	               ____TemplateIndexArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateIndexArray< GLint COMMA  osg::Array::IntArrayType COMMA  1 COMMA  GL_INT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::IndexArray);
	I_BaseType(std::vector<GLint>);
	I_Constructor0(____TemplateIndexArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateIndexArray< GLint COMMA  osg::Array::IntArrayType COMMA  1 COMMA  GL_INT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateIndexArray__C5_TemplateIndexArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateIndexArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLint *, ptr,
	               ____TemplateIndexArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateIndexArray< GLshort COMMA  osg::Array::ShortArrayType COMMA  1 COMMA  GL_SHORT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::IndexArray);
	I_BaseType(std::vector<GLshort>);
	I_Constructor0(____TemplateIndexArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateIndexArray< GLshort COMMA  osg::Array::ShortArrayType COMMA  1 COMMA  GL_SHORT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateIndexArray__C5_TemplateIndexArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateIndexArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLshort *, ptr,
	               ____TemplateIndexArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateIndexArray< GLubyte COMMA  osg::Array::UByteArrayType COMMA  1 COMMA  GL_UNSIGNED_BYTE >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::IndexArray);
	I_BaseType(std::vector<GLubyte>);
	I_Constructor0(____TemplateIndexArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateIndexArray< GLubyte COMMA  osg::Array::UByteArrayType COMMA  1 COMMA  GL_UNSIGNED_BYTE > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateIndexArray__C5_TemplateIndexArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateIndexArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLubyte *, ptr,
	               ____TemplateIndexArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateIndexArray< GLuint COMMA  osg::Array::UIntArrayType COMMA  1 COMMA  GL_UNSIGNED_INT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::IndexArray);
	I_BaseType(std::vector<GLuint>);
	I_Constructor0(____TemplateIndexArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateIndexArray< GLuint COMMA  osg::Array::UIntArrayType COMMA  1 COMMA  GL_UNSIGNED_INT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateIndexArray__C5_TemplateIndexArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateIndexArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLuint *, ptr,
	               ____TemplateIndexArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::TemplateIndexArray< GLushort COMMA  osg::Array::UShortArrayType COMMA  1 COMMA  GL_UNSIGNED_SHORT >)
	I_DeclaringFile("osg/Array");
	I_BaseType(osg::IndexArray);
	I_BaseType(std::vector<GLushort>);
	I_Constructor0(____TemplateIndexArray,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::TemplateIndexArray< GLushort COMMA  osg::Array::UShortArrayType COMMA  1 COMMA  GL_UNSIGNED_SHORT > &, ta, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TemplateIndexArray__C5_TemplateIndexArray_R1__C5_CopyOp_R1,
	                           "",
	                           "");
	I_Constructor1(IN, unsigned int, no,
	               Properties::NON_EXPLICIT,
	               ____TemplateIndexArray__unsigned_int,
	               "",
	               "");
	I_Constructor2(IN, unsigned int, no, IN, GLushort *, ptr,
	               ____TemplateIndexArray__unsigned_int__T_P1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __Object_P1__clone__C5_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(void, accept, IN, osg::ArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ArrayVisitor_R1,
	          "",
	          "");
	I_Method1(void, accept, IN, osg::ConstArrayVisitor &, av,
	          Properties::VIRTUAL,
	          __void__accept__ConstArrayVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ValueVisitor_R1,
	          "",
	          "");
	I_Method2(void, accept, IN, unsigned int, index, IN, osg::ConstValueVisitor &, vv,
	          Properties::VIRTUAL,
	          __void__accept__unsigned_int__ConstValueVisitor_R1,
	          "",
	          "");
	I_Method2(int, compare, IN, unsigned int, lhs, IN, unsigned int, rhs,
	          Properties::VIRTUAL,
	          __int__compare__unsigned_int__unsigned_int,
	          "Return -1 if lhs element is less than rhs element, 0 if equal, 1 if lhs element is greater than rhs element. ",
	          "");
	I_Method0(void, trim,
	          Properties::VIRTUAL,
	          __void__trim,
	          "Frees unused space on this vector - i.e. ",
	          "the difference between size() and max_size() of the underlying vector. ");
	I_Method0(const GLvoid *, getDataPointer,
	          Properties::VIRTUAL,
	          __C5_GLvoid_P1__getDataPointer,
	          "",
	          "");
	I_Method0(unsigned int, getTotalDataSize,
	          Properties::VIRTUAL,
	          __unsigned_int__getTotalDataSize,
	          "",
	          "");
	I_Method0(unsigned int, getNumElements,
	          Properties::VIRTUAL,
	          __unsigned_int__getNumElements,
	          "",
	          "");
	I_Method1(unsigned int, index, IN, unsigned int, pos,
	          Properties::VIRTUAL,
	          __unsigned_int__index__unsigned_int,
	          "",
	          "");
	I_SimpleProperty(const GLvoid *, DataPointer, 
	                 __C5_GLvoid_P1__getDataPointer, 
	                 0);
	I_SimpleProperty(unsigned int, TotalDataSize, 
	                 __unsigned_int__getTotalDataSize, 
	                 0);
END_REFLECTOR


	STD_VECTOR_REFLECTOR(std::vector<osg::Vec2>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec3>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec4>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec2b>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec3b>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec4b>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec2s>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec3s>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec4s>);
	STD_VECTOR_REFLECTOR(std::vector<osg::Vec4ub>);
	STD_VECTOR_REFLECTOR(std::vector<GLubyte>);
	STD_VECTOR_REFLECTOR(std::vector<GLbyte>);
	STD_VECTOR_REFLECTOR(std::vector<GLushort>);
	STD_VECTOR_REFLECTOR(std::vector<GLshort>);
	STD_VECTOR_REFLECTOR(std::vector<GLuint>);
	STD_VECTOR_REFLECTOR(std::vector<GLint>);
	
