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

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

#include <osg/Geode>
#include <osg/Node>
#include <osg/StateSet>
#include <osgUtil/ShaderGen>

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

BEGIN_ENUM_REFLECTOR(osgUtil::ShaderGenCache::StateMask)
	I_DeclaringFile("osgUtil/ShaderGen");
	I_EnumLabel(osgUtil::ShaderGenCache::BLEND);
	I_EnumLabel(osgUtil::ShaderGenCache::LIGHTING);
	I_EnumLabel(osgUtil::ShaderGenCache::FOG);
	I_EnumLabel(osgUtil::ShaderGenCache::DIFFUSE_MAP);
	I_EnumLabel(osgUtil::ShaderGenCache::NORMAL_MAP);
END_REFLECTOR

TYPE_NAME_ALIAS(std::map< unsigned int COMMA  osg::ref_ptr< osg::StateSet > >, osgUtil::ShaderGenCache::StateSetMap)

BEGIN_OBJECT_REFLECTOR(osgUtil::ShaderGenCache)
	I_DeclaringFile("osgUtil/ShaderGen");
	I_BaseType(osg::Referenced);
	I_Constructor0(____ShaderGenCache,
	               "",
	               "");
	I_Method2(void, setStateSet, IN, unsigned int, stateMask, IN, osg::StateSet *, program,
	          Properties::NON_VIRTUAL,
	          __void__setStateSet__unsigned_int__osg_StateSet_P1,
	          "",
	          "");
	I_Method1(osg::StateSet *, getStateSet, IN, unsigned int, stateMask,
	          Properties::NON_VIRTUAL,
	          __osg_StateSet_P1__getStateSet__unsigned_int,
	          "",
	          "");
	I_Method1(osg::StateSet *, getOrCreateStateSet, IN, unsigned int, stateMask,
	          Properties::NON_VIRTUAL,
	          __osg_StateSet_P1__getOrCreateStateSet__unsigned_int,
	          "",
	          "");
	I_ProtectedMethod1(osg::StateSet *, createStateSet, IN, unsigned int, stateMask,
	                   Properties::NON_VIRTUAL,
	                   Properties::CONST,
	                   __osg_StateSet_P1__createStateSet__unsigned_int,
	                   "",
	                   "");
	I_IndexedProperty(osg::StateSet *, StateSet, 
	                  __osg_StateSet_P1__getStateSet__unsigned_int, 
	                  __void__setStateSet__unsigned_int__osg_StateSet_P1, 
	                  0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgUtil::ShaderGenVisitor)
	I_DeclaringFile("osgUtil/ShaderGen");
	I_BaseType(osg::NodeVisitor);
	I_Constructor0(____ShaderGenVisitor,
	               "",
	               "");
	I_Constructor1(IN, osgUtil::ShaderGenCache *, stateCache,
	               Properties::NON_EXPLICIT,
	               ____ShaderGenVisitor__ShaderGenCache_P1,
	               "",
	               "");
	I_Method1(void, setStateCache, IN, osgUtil::ShaderGenCache *, stateCache,
	          Properties::NON_VIRTUAL,
	          __void__setStateCache__ShaderGenCache_P1,
	          "",
	          "");
	I_Method0(osgUtil::ShaderGenCache *, getStateCache,
	          Properties::NON_VIRTUAL,
	          __ShaderGenCache_P1__getStateCache,
	          "",
	          "");
	I_Method1(void, setRootStateSet, IN, osg::StateSet *, stateSet,
	          Properties::NON_VIRTUAL,
	          __void__setRootStateSet__osg_StateSet_P1,
	          "Top level state set applied as the first one. ",
	          "");
	I_Method0(osg::StateSet *, getRootStateSet,
	          Properties::NON_VIRTUAL,
	          __osg_StateSet_P1__getRootStateSet,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Node &, node,
	          Properties::VIRTUAL,
	          __void__apply__osg_Node_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osg::Geode &, geode,
	          Properties::VIRTUAL,
	          __void__apply__osg_Geode_R1,
	          "",
	          "");
	I_Method0(void, reset,
	          Properties::VIRTUAL,
	          __void__reset,
	          "Method to call to reset visitor. ",
	          "Useful if your visitor accumulates state during a traversal, and you plan to reuse the visitor. To flush that state for the next traversal: call reset() prior to each traversal. ");
	I_ProtectedMethod1(void, update, IN, osg::Drawable *, drawable,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__update__osg_Drawable_P1,
	                   "",
	                   "");
	I_SimpleProperty(osg::StateSet *, RootStateSet, 
	                 __osg_StateSet_P1__getRootStateSet, 
	                 __void__setRootStateSet__osg_StateSet_P1);
	I_SimpleProperty(osgUtil::ShaderGenCache *, StateCache, 
	                 __ShaderGenCache_P1__getStateCache, 
	                 __void__setStateCache__ShaderGenCache_P1);
END_REFLECTOR

STD_MAP_REFLECTOR(std::map< unsigned int COMMA  osg::ref_ptr< osg::StateSet > >)

