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

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

#include <osg/Drawable>
#include <osg/Geode>
#include <osg/Group>
#include <osg/LOD>
#include <osg/Node>
#include <osg/Switch>
#include <osg/Transform>
#include <osg/Vec2>
#include <osg/Vec3>
#include <osg/Vec4>
#include <osgUtil/Statistics>

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

TYPE_NAME_ALIAS(std::pair< unsigned int COMMA  unsigned int >, osgUtil::Statistics::PrimitivePair);

TYPE_NAME_ALIAS(std::map< GLenum COMMA  osgUtil::Statistics::PrimitivePair >, osgUtil::Statistics::PrimitiveValueMap);

TYPE_NAME_ALIAS(std::map< GLenum COMMA  unsigned int >, osgUtil::Statistics::PrimitiveCountMap);

BEGIN_ENUM_REFLECTOR(osgUtil::Statistics::StatsType)
	I_EnumLabel(osgUtil::Statistics::STAT_NONE);
	I_EnumLabel(osgUtil::Statistics::STAT_FRAMERATE);
	I_EnumLabel(osgUtil::Statistics::STAT_GRAPHS);
	I_EnumLabel(osgUtil::Statistics::STAT_PRIMS);
	I_EnumLabel(osgUtil::Statistics::STAT_PRIMSPERVIEW);
	I_EnumLabel(osgUtil::Statistics::STAT_PRIMSPERBIN);
	I_EnumLabel(osgUtil::Statistics::STAT_DC);
	I_EnumLabel(osgUtil::Statistics::STAT_RESTART);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgUtil::Statistics)
	I_BaseType(osg::PrimitiveFunctor);
	I_Constructor0();
	I_Method0(void, reset);
	I_Method1(void, setType, IN, osgUtil::Statistics::StatsType, t);
	I_Method2(void, setVertexArray, IN, unsigned int, count, IN, const osg::Vec3 *, x);
	I_Method2(void, setVertexArray, IN, unsigned int, count, IN, const osg::Vec2 *, x);
	I_Method2(void, setVertexArray, IN, unsigned int, count, IN, const osg::Vec4 *, x);
	I_Method3(void, drawArrays, IN, GLenum, mode, IN, GLint, x, IN, GLsizei, count);
	I_Method3(void, drawElements, IN, GLenum, mode, IN, GLsizei, count, IN, const GLubyte *, x);
	I_Method3(void, drawElements, IN, GLenum, mode, IN, GLsizei, count, IN, const GLushort *, x);
	I_Method3(void, drawElements, IN, GLenum, mode, IN, GLsizei, count, IN, const GLuint *, x);
	I_Method1(void, begin, IN, GLenum, mode);
	I_Method0(void, vertex);
	I_Method3(void, vertex, IN, float, x, IN, float, x, IN, float, x);
	I_Method1(void, vertex, IN, const osg::Vec3 &, x);
	I_Method1(void, vertex, IN, const osg::Vec2 &, x);
	I_Method1(void, vertex, IN, const osg::Vec4 &, x);
	I_Method2(void, vertex, IN, float, x, IN, float, x);
	I_Method4(void, vertex, IN, float, x, IN, float, x, IN, float, x, IN, float, x);
	I_Method0(void, end);
	I_Method0(void, addDrawable);
	I_Method0(void, addMatrix);
	I_Method1(void, addLight, IN, int, np);
	I_Method1(void, addImpostor, IN, int, np);
	I_Method0(int, getBins);
	I_Method1(void, setDepth, IN, int, d);
	I_Method1(void, addBins, IN, int, np);
	I_Method1(void, setBinNo, IN, int, n);
	I_Method1(void, add, IN, const osgUtil::Statistics &, stats);
	I_Method0(osgUtil::Statistics::PrimitiveCountMap::iterator, GetPrimitivesBegin);
	I_Method0(osgUtil::Statistics::PrimitiveCountMap::iterator, GetPrimitivesEnd);
	I_WriteOnlyProperty(int, BinNo);
	I_ReadOnlyProperty(int, Bins);
	I_WriteOnlyProperty(int, Depth);
	I_WriteOnlyProperty(osgUtil::Statistics::StatsType, Type);
	I_PublicMemberProperty(int, numDrawables);
	I_PublicMemberProperty(int, nummat);
	I_PublicMemberProperty(int, nbins);
	I_PublicMemberProperty(int, nlights);
	I_PublicMemberProperty(int, depth);
	I_PublicMemberProperty(int, _binNo);
	I_PublicMemberProperty(osgUtil::Statistics::StatsType, stattype);
	I_PublicMemberProperty(int, nimpostor);
	I_PublicMemberProperty(unsigned int, _vertexCount);
	I_PublicMemberProperty(osgUtil::Statistics::PrimitiveValueMap, _primitiveCount);
	I_PublicMemberProperty(GLenum, _currentPrimitiveFunctorMode);
END_REFLECTOR

TYPE_NAME_ALIAS(std::set< osg::Node * >, osgUtil::StatsVisitor::NodeSet);

TYPE_NAME_ALIAS(std::set< osg::Drawable * >, osgUtil::StatsVisitor::DrawableSet);

TYPE_NAME_ALIAS(std::set< osg::StateSet * >, osgUtil::StatsVisitor::StateSetSet);

BEGIN_OBJECT_REFLECTOR(osgUtil::StatsVisitor)
	I_BaseType(osg::NodeVisitor);
	I_Constructor0();
	I_Method0(void, reset);
	I_Method1(void, apply, IN, osg::Node &, node);
	I_Method1(void, apply, IN, osg::Group &, node);
	I_Method1(void, apply, IN, osg::Transform &, node);
	I_Method1(void, apply, IN, osg::LOD &, node);
	I_Method1(void, apply, IN, osg::Switch &, node);
	I_Method1(void, apply, IN, osg::Geode &, node);
	I_Method1(void, apply, IN, osg::Drawable &, drawable);
	I_Method0(void, totalUpStats);
	I_Method1(void, print, IN, std::ostream &, out);
	I_PublicMemberProperty(unsigned int, _numInstancedGroup);
	I_PublicMemberProperty(unsigned int, _numInstancedSwitch);
	I_PublicMemberProperty(unsigned int, _numInstancedLOD);
	I_PublicMemberProperty(unsigned int, _numInstancedTransform);
	I_PublicMemberProperty(unsigned int, _numInstancedGeode);
	I_PublicMemberProperty(unsigned int, _numInstancedDrawable);
	I_PublicMemberProperty(unsigned int, _numInstancedGeometry);
	I_PublicMemberProperty(unsigned int, _numInstancedStateSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::NodeSet, _groupSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::NodeSet, _transformSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::NodeSet, _lodSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::NodeSet, _switchSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::NodeSet, _geodeSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::DrawableSet, _drawableSet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::DrawableSet, _geometrySet);
	I_PublicMemberProperty(osgUtil::StatsVisitor::StateSetSet, _statesetSet);
	I_PublicMemberProperty(osgUtil::Statistics, _uniqueStats);
	I_PublicMemberProperty(osgUtil::Statistics, _instancedStats);
END_REFLECTOR

STD_MAP_REFLECTOR(std::map< GLenum COMMA  osgUtil::Statistics::PrimitivePair >);

STD_MAP_REFLECTOR(std::map< GLenum COMMA  unsigned int >);

STD_PAIR_REFLECTOR(std::pair< unsigned int COMMA  unsigned int >);

STD_SET_REFLECTOR(std::set< osg::Drawable * >);

STD_SET_REFLECTOR(std::set< osg::StateSet * >);

