// ***************************************************************************
//
//   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/Group>
#include <osg/Node>
#include <osgSim/OpenFlightOptimizer>

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

BEGIN_ENUM_REFLECTOR(osgFlightUtil::Optimizer::OptimizationOptions)
	I_DeclaringFile("osgSim/OpenFlightOptimizer");
	I_EnumLabel(osgFlightUtil::Optimizer::TESSELLATE_POLYGON);
	I_EnumLabel(osgFlightUtil::Optimizer::MERGE_GEODES);
	I_EnumLabel(osgFlightUtil::Optimizer::MAKE_LIT);
	I_EnumLabel(osgFlightUtil::Optimizer::DEFAULT_OPTIMIZATIONS);
	I_EnumLabel(osgFlightUtil::Optimizer::ALL_OPTIMIZATIONS);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osgFlightUtil::Optimizer)
	I_DeclaringFile("osgSim/OpenFlightOptimizer");
	I_Constructor0(____Optimizer,
	               "",
	               "");
	I_Method1(void, optimize, IN, osg::Node *, node,
	          Properties::NON_VIRTUAL,
	          __void__optimize__osg_Node_P1,
	          "Traverse the node and its subgraph with a series of optimization visitors, specified by the OptimizationOptions. ",
	          "");
	I_Method2(void, optimize, IN, osg::Node *, node, IN, unsigned int, options,
	          Properties::VIRTUAL,
	          __void__optimize__osg_Node_P1__unsigned_int,
	          "Traverse the node and its subgraph with a series of optimization visitors, specified by the OptimizationOptions. ",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgFlightUtil::Optimizer::MakeLitVisitor)
	I_DeclaringFile("osgSim/OpenFlightOptimizer");
	I_BaseType(osg::NodeVisitor);
	I_Constructor0(____MakeLitVisitor,
	               "default to traversing all children. ",
	               "");
	I_Method1(void, apply, IN, osg::Geode &, geode,
	          Properties::VIRTUAL,
	          __void__apply__osg_Geode_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgFlightUtil::Optimizer::MergeGeodesVisitor)
	I_DeclaringFile("osgSim/OpenFlightOptimizer");
	I_BaseType(osg::NodeVisitor);
	I_Constructor0(____MergeGeodesVisitor,
	               "default to traversing all children. ",
	               "");
	I_Method1(void, apply, IN, osg::Group &, group,
	          Properties::VIRTUAL,
	          __void__apply__osg_Group_R1,
	          "",
	          "");
	I_Method1(void, mergeGeodes, IN, osg::Group &, group,
	          Properties::NON_VIRTUAL,
	          __void__mergeGeodes__osg_Group_R1,
	          "",
	          "");
	I_ProtectedMethod2(bool, mergeGeode, IN, osg::Geode &, lhs, IN, osg::Geode &, rhs,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __bool__mergeGeode__osg_Geode_R1__osg_Geode_R1,
	                   "",
	                   "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgFlightUtil::Optimizer::TessellateVisitor)
	I_DeclaringFile("osgSim/OpenFlightOptimizer");
	I_BaseType(osg::NodeVisitor);
	I_Constructor0(____TessellateVisitor,
	               "default to traversing all children. ",
	               "");
	I_Method1(void, apply, IN, osg::Geode &, geode,
	          Properties::VIRTUAL,
	          __void__apply__osg_Geode_R1,
	          "",
	          "");
	I_ProtectedMethod1(bool, hasPolygons, IN, osg::Geometry &, geometry,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __bool__hasPolygons__osg_Geometry_R1,
	                   "",
	                   "");
END_REFLECTOR

