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

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

#include <osg/BoundingBox>
#include <osg/BoundingSphere>
#include <osg/CullStack>
#include <osg/CullingSet>
#include <osg/Matrix>
#include <osg/Node>
#include <osg/ShadowVolumeOccluder>
#include <osg/Transform>
#include <osg/Vec3>
#include <osg/Viewport>

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

TYPE_NAME_ALIAS(std::vector< osg::ShadowVolumeOccluder >, osg::CullStack::OccluderList)

TYPE_NAME_ALIAS(std::vector< osg::CullingSet >, osg::CullStack::CullingStack)

BEGIN_OBJECT_REFLECTOR(osg::CullStack)
	I_DeclaringFile("osg/CullStack");
	I_BaseType(osg::CullSettings);
	I_Constructor0(____CullStack,
	               "",
	               "");
	I_Constructor1(IN, const osg::CullStack &, cs,
	               Properties::NON_EXPLICIT,
	               ____CullStack__C5_CullStack_R1,
	               "",
	               "");
	I_Method0(void, reset,
	          Properties::NON_VIRTUAL,
	          __void__reset,
	          "",
	          "");
	I_Method1(void, setOccluderList, IN, const osg::ShadowVolumeOccluderList &, svol,
	          Properties::NON_VIRTUAL,
	          __void__setOccluderList__C5_ShadowVolumeOccluderList_R1,
	          "",
	          "");
	I_Method0(osg::ShadowVolumeOccluderList &, getOccluderList,
	          Properties::NON_VIRTUAL,
	          __ShadowVolumeOccluderList_R1__getOccluderList,
	          "",
	          "");
	I_Method0(const osg::ShadowVolumeOccluderList &, getOccluderList,
	          Properties::NON_VIRTUAL,
	          __C5_ShadowVolumeOccluderList_R1__getOccluderList,
	          "",
	          "");
	I_Method1(void, pushViewport, IN, osg::Viewport *, viewport,
	          Properties::NON_VIRTUAL,
	          __void__pushViewport__osg_Viewport_P1,
	          "",
	          "");
	I_Method0(void, popViewport,
	          Properties::NON_VIRTUAL,
	          __void__popViewport,
	          "",
	          "");
	I_Method1(void, pushProjectionMatrix, IN, osg::RefMatrix *, matrix,
	          Properties::NON_VIRTUAL,
	          __void__pushProjectionMatrix__osg_RefMatrix_P1,
	          "",
	          "");
	I_Method0(void, popProjectionMatrix,
	          Properties::NON_VIRTUAL,
	          __void__popProjectionMatrix,
	          "",
	          "");
	I_Method2(void, pushModelViewMatrix, IN, osg::RefMatrix *, matrix, IN, osg::Transform::ReferenceFrame, referenceFrame,
	          Properties::NON_VIRTUAL,
	          __void__pushModelViewMatrix__osg_RefMatrix_P1__Transform_ReferenceFrame,
	          "",
	          "");
	I_Method0(void, popModelViewMatrix,
	          Properties::NON_VIRTUAL,
	          __void__popModelViewMatrix,
	          "",
	          "");
	I_Method0(float, getFrustumVolume,
	          Properties::NON_VIRTUAL,
	          __float__getFrustumVolume,
	          "",
	          "");
	I_Method2(float, pixelSize, IN, const osg::Vec3 &, v, IN, float, radius,
	          Properties::NON_VIRTUAL,
	          __float__pixelSize__C5_Vec3_R1__float,
	          "Compute the pixel size of an object at position v, with specified radius. ",
	          "");
	I_Method1(float, pixelSize, IN, const osg::BoundingSphere &, bs,
	          Properties::NON_VIRTUAL,
	          __float__pixelSize__C5_BoundingSphere_R1,
	          "Compute the pixel size of the bounding sphere. ",
	          "");
	I_Method2(float, clampedPixelSize, IN, const osg::Vec3 &, v, IN, float, radius,
	          Properties::NON_VIRTUAL,
	          __float__clampedPixelSize__C5_Vec3_R1__float,
	          "Compute the pixel size of an object at position v, with specified radius. ",
	          "fabs()ed to always be positive. ");
	I_Method1(float, clampedPixelSize, IN, const osg::BoundingSphere &, bs,
	          Properties::NON_VIRTUAL,
	          __float__clampedPixelSize__C5_BoundingSphere_R1,
	          "Compute the pixel size of the bounding sphere. ",
	          "fabs()ed to always be positive. ");
	I_Method1(void, disableAndPushOccludersCurrentMask, IN, osg::NodePath &, nodePath,
	          Properties::NON_VIRTUAL,
	          __void__disableAndPushOccludersCurrentMask__NodePath_R1,
	          "",
	          "");
	I_Method1(void, popOccludersCurrentMask, IN, osg::NodePath &, nodePath,
	          Properties::NON_VIRTUAL,
	          __void__popOccludersCurrentMask__NodePath_R1,
	          "",
	          "");
	I_Method1(bool, isCulled, IN, const std::vector< osg::Vec3 > &, vertices,
	          Properties::NON_VIRTUAL,
	          __bool__isCulled__C5_std_vectorT1_Vec3__R1,
	          "",
	          "");
	I_Method1(bool, isCulled, IN, const osg::BoundingBox &, bb,
	          Properties::NON_VIRTUAL,
	          __bool__isCulled__C5_BoundingBox_R1,
	          "",
	          "");
	I_Method1(bool, isCulled, IN, const osg::BoundingSphere &, bs,
	          Properties::NON_VIRTUAL,
	          __bool__isCulled__C5_BoundingSphere_R1,
	          "",
	          "");
	I_Method1(bool, isCulled, IN, const osg::Node &, node,
	          Properties::NON_VIRTUAL,
	          __bool__isCulled__C5_osg_Node_R1,
	          "",
	          "");
	I_Method0(void, pushCurrentMask,
	          Properties::NON_VIRTUAL,
	          __void__pushCurrentMask,
	          "",
	          "");
	I_Method0(void, popCurrentMask,
	          Properties::NON_VIRTUAL,
	          __void__popCurrentMask,
	          "",
	          "");
	I_Method0(osg::CullStack::CullingStack &, getClipSpaceCullingStack,
	          Properties::NON_VIRTUAL,
	          __CullingStack_R1__getClipSpaceCullingStack,
	          "",
	          "");
	I_Method0(osg::CullStack::CullingStack &, getProjectionCullingStack,
	          Properties::NON_VIRTUAL,
	          __CullingStack_R1__getProjectionCullingStack,
	          "",
	          "");
	I_Method0(osg::CullStack::CullingStack &, getModelViewCullingStack,
	          Properties::NON_VIRTUAL,
	          __CullingStack_R1__getModelViewCullingStack,
	          "",
	          "");
	I_Method0(osg::CullingSet &, getCurrentCullingSet,
	          Properties::NON_VIRTUAL,
	          __CullingSet_R1__getCurrentCullingSet,
	          "",
	          "");
	I_Method0(const osg::CullingSet &, getCurrentCullingSet,
	          Properties::NON_VIRTUAL,
	          __C5_CullingSet_R1__getCurrentCullingSet,
	          "",
	          "");
	I_Method0(osg::Viewport *, getViewport,
	          Properties::NON_VIRTUAL,
	          __osg_Viewport_P1__getViewport,
	          "",
	          "");
	I_Method0(osg::RefMatrix *, getModelViewMatrix,
	          Properties::NON_VIRTUAL,
	          __osg_RefMatrix_P1__getModelViewMatrix,
	          "",
	          "");
	I_Method0(osg::RefMatrix *, getProjectionMatrix,
	          Properties::NON_VIRTUAL,
	          __osg_RefMatrix_P1__getProjectionMatrix,
	          "",
	          "");
	I_Method0(osg::Matrix, getWindowMatrix,
	          Properties::NON_VIRTUAL,
	          __osg_Matrix__getWindowMatrix,
	          "",
	          "");
	I_Method0(const osg::RefMatrix *, getMVPW,
	          Properties::NON_VIRTUAL,
	          __C5_osg_RefMatrix_P1__getMVPW,
	          "",
	          "");
	I_Method0(const osg::Vec3 &, getReferenceViewPoint,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3_R1__getReferenceViewPoint,
	          "",
	          "");
	I_Method1(void, pushReferenceViewPoint, IN, const osg::Vec3 &, viewPoint,
	          Properties::NON_VIRTUAL,
	          __void__pushReferenceViewPoint__C5_osg_Vec3_R1,
	          "",
	          "");
	I_Method0(void, popReferenceViewPoint,
	          Properties::NON_VIRTUAL,
	          __void__popReferenceViewPoint,
	          "",
	          "");
	I_Method0(const osg::Vec3 &, getEyeLocal,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3_R1__getEyeLocal,
	          "",
	          "");
	I_Method0(const osg::Vec3 &, getViewPointLocal,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3_R1__getViewPointLocal,
	          "",
	          "");
	I_Method0(const osg::Vec3, getUpLocal,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3__getUpLocal,
	          "",
	          "");
	I_Method0(const osg::Vec3, getLookVectorLocal,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3__getLookVectorLocal,
	          "",
	          "");
	I_ProtectedMethod0(void, pushCullingSet,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__pushCullingSet,
	                   "",
	                   "");
	I_ProtectedMethod0(void, popCullingSet,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__popCullingSet,
	                   "",
	                   "");
	I_ProtectedMethod0(void, computeFrustumVolume,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __void__computeFrustumVolume,
	                   "",
	                   "");
	I_ProtectedMethod1(osg::RefMatrix *, createOrReuseMatrix, IN, const osg::Matrix &, value,
	                   Properties::NON_VIRTUAL,
	                   Properties::NON_CONST,
	                   __osg_RefMatrix_P1__createOrReuseMatrix__C5_osg_Matrix_R1,
	                   "",
	                   "");
	I_SimpleProperty(osg::CullStack::CullingStack &, ClipSpaceCullingStack, 
	                 __CullingStack_R1__getClipSpaceCullingStack, 
	                 0);
	I_SimpleProperty(osg::CullingSet &, CurrentCullingSet, 
	                 __CullingSet_R1__getCurrentCullingSet, 
	                 0);
	I_SimpleProperty(const osg::Vec3 &, EyeLocal, 
	                 __C5_osg_Vec3_R1__getEyeLocal, 
	                 0);
	I_SimpleProperty(float, FrustumVolume, 
	                 __float__getFrustumVolume, 
	                 0);
	I_SimpleProperty(const osg::Vec3, LookVectorLocal, 
	                 __C5_osg_Vec3__getLookVectorLocal, 
	                 0);
	I_SimpleProperty(const osg::RefMatrix *, MVPW, 
	                 __C5_osg_RefMatrix_P1__getMVPW, 
	                 0);
	I_SimpleProperty(osg::CullStack::CullingStack &, ModelViewCullingStack, 
	                 __CullingStack_R1__getModelViewCullingStack, 
	                 0);
	I_SimpleProperty(osg::RefMatrix *, ModelViewMatrix, 
	                 __osg_RefMatrix_P1__getModelViewMatrix, 
	                 0);
	I_SimpleProperty(const osg::ShadowVolumeOccluderList &, OccluderList, 
	                 __C5_ShadowVolumeOccluderList_R1__getOccluderList, 
	                 __void__setOccluderList__C5_ShadowVolumeOccluderList_R1);
	I_SimpleProperty(osg::CullStack::CullingStack &, ProjectionCullingStack, 
	                 __CullingStack_R1__getProjectionCullingStack, 
	                 0);
	I_SimpleProperty(osg::RefMatrix *, ProjectionMatrix, 
	                 __osg_RefMatrix_P1__getProjectionMatrix, 
	                 0);
	I_SimpleProperty(const osg::Vec3 &, ReferenceViewPoint, 
	                 __C5_osg_Vec3_R1__getReferenceViewPoint, 
	                 0);
	I_SimpleProperty(const osg::Vec3, UpLocal, 
	                 __C5_osg_Vec3__getUpLocal, 
	                 0);
	I_SimpleProperty(const osg::Vec3 &, ViewPointLocal, 
	                 __C5_osg_Vec3_R1__getViewPointLocal, 
	                 0);
	I_SimpleProperty(osg::Viewport *, Viewport, 
	                 __osg_Viewport_P1__getViewport, 
	                 0);
	I_SimpleProperty(osg::Matrix, WindowMatrix, 
	                 __osg_Matrix__getWindowMatrix, 
	                 0);
END_REFLECTOR

STD_VECTOR_REFLECTOR(std::vector< osg::CullingSet >)

STD_VECTOR_REFLECTOR(std::vector< osg::ShadowVolumeOccluder >)

