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

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

#include <osgCal/CoreModel>
#include <osgCal/IOUtils>
#include <osgCal/Model>

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

BEGIN_OBJECT_REFLECTOR(osgCal::AllMeshes)
	I_BaseType(osgCal::MeshFilter);
	I_Constructor0();
	I_Method1(bool, filter, IN, const osgCal::CoreModel::Mesh &, mesh);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgCal::AllMeshesHardware)
	I_BaseType(osgCal::MeshTyper);
	I_Constructor0();
	I_Method1(osgCal::MeshType, type, IN, const osgCal::CoreModel::Mesh &, mesh);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgCal::AllMeshesSoftware)
	I_BaseType(osgCal::MeshTyper);
	I_Constructor0();
	I_Method1(osgCal::MeshType, type, IN, const osgCal::CoreModel::Mesh &, mesh);
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgCal::MeshFilter)
	I_Constructor0();
	I_Method1(bool, filter, IN, const osgCal::CoreModel::Mesh &, mesh);
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgCal::MeshTyper)
	I_Constructor0();
	I_Method1(osgCal::MeshType, type, IN, const osgCal::CoreModel::Mesh &, mesh);
END_REFLECTOR

TYPE_NAME_ALIAS(osg::ByteArray, osgCal::Model::UpdateFlagBuffer);

BEGIN_OBJECT_REFLECTOR(osgCal::Model)
	I_Constructor0();
	I_MethodWithDefaults3(void, load, IN, osgCal::CoreModel *, coreModel, , IN, osgCal::MeshTyper *, meshTyper, 0, IN, osgCal::MeshFilter *, meshFilter, 0);
	I_Method0(void, update);
	I_Method0(CalModel *, getCalModel);
	I_Method0(osgCal::CoreModel *, getCoreModel);
	I_Method0(osgCal::VertexBuffer *, getVertexBuffer);
	I_Method0(osgCal::NormalBuffer *, getNormalBuffer);
	I_Method0(osgCal::Model::UpdateFlagBuffer *, getUpdateFlagBuffer);
	I_Method3(void, blendCycle, IN, int, id, IN, float, weight, IN, float, delay);
	I_Method2(void, clearCycle, IN, int, id, IN, float, delay);
	I_Method1(osg::Geometry *, getMesh, IN, const std::string &, name);
	I_ReadOnlyProperty(CalModel *, CalModel);
	I_ReadOnlyProperty(osgCal::CoreModel *, CoreModel);
	I_ReadOnlyProperty(osgCal::NormalBuffer *, NormalBuffer);
	I_ReadOnlyProperty(osgCal::Model::UpdateFlagBuffer *, UpdateFlagBuffer);
	I_ReadOnlyProperty(osgCal::VertexBuffer *, VertexBuffer);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgCal::OneMesh)
	I_BaseType(osgCal::MeshFilter);
	I_Constructor1(IN, const std::string &, mn);
	I_Method1(bool, filter, IN, const osgCal::CoreModel::Mesh &, mesh);
	I_PublicMemberProperty(std::string, meshName);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osgCal::MeshType)
	I_EnumLabel(osgCal::MT_HARDWARE);
	I_EnumLabel(osgCal::MT_SOFTWARE);
END_REFLECTOR

