// ***************************************************************************
//
//   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/Matrix>
#include <osg/Plane>
#include <osg/Polytope>
#include <osg/Vec3>

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

TYPE_NAME_ALIAS(unsigned int, osg::Polytope::ClippingMask)

TYPE_NAME_ALIAS(std::vector< osg::Plane >, osg::Polytope::PlaneList)

TYPE_NAME_ALIAS(std::vector< osg::Vec3 >, osg::Polytope::VertexList)

TYPE_NAME_ALIAS(osg::fast_back_stack< osg::Polytope::ClippingMask >, osg::Polytope::MaskStack)

BEGIN_VALUE_REFLECTOR(osg::Polytope)
	I_DeclaringFile("osg/Polytope");
	I_Constructor0(____Polytope,
	               "",
	               "");
	I_Constructor1(IN, const osg::Polytope &, cv,
	               Properties::NON_EXPLICIT,
	               ____Polytope__C5_Polytope_R1,
	               "",
	               "");
	I_Constructor1(IN, const osg::Polytope::PlaneList &, pl,
	               Properties::NON_EXPLICIT,
	               ____Polytope__C5_PlaneList_R1,
	               "",
	               "");
	I_Method0(void, clear,
	          Properties::NON_VIRTUAL,
	          __void__clear,
	          "",
	          "");
	I_MethodWithDefaults2(void, setToUnitFrustum, IN, bool, withNear, true, IN, bool, withFar, true,
	                      Properties::NON_VIRTUAL,
	                      __void__setToUnitFrustum__bool__bool,
	                      "Create a Polytope which is a cube, centered at 0,0,0, with sides of 2 units. ",
	                      "");
	I_Method1(void, setToBoundingBox, IN, const osg::BoundingBox &, bb,
	          Properties::NON_VIRTUAL,
	          __void__setToBoundingBox__C5_BoundingBox_R1,
	          "Create a Polytope which is a equivilant to BoundingBox. ",
	          "");
	I_Method2(void, setAndTransformProvidingInverse, IN, const osg::Polytope &, pt, IN, const osg::Matrix &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__setAndTransformProvidingInverse__C5_Polytope_R1__C5_osg_Matrix_R1,
	          "",
	          "");
	I_Method1(void, set, IN, const osg::Polytope::PlaneList &, pl,
	          Properties::NON_VIRTUAL,
	          __void__set__C5_PlaneList_R1,
	          "",
	          "");
	I_Method1(void, add, IN, const osg::Plane &, pl,
	          Properties::NON_VIRTUAL,
	          __void__add__C5_osg_Plane_R1,
	          "",
	          "");
	I_Method0(void, flip,
	          Properties::NON_VIRTUAL,
	          __void__flip,
	          "flip/reverse the orientation of all the planes. ",
	          "");
	I_Method0(osg::Polytope::PlaneList &, getPlaneList,
	          Properties::NON_VIRTUAL,
	          __PlaneList_R1__getPlaneList,
	          "",
	          "");
	I_Method0(const osg::Polytope::PlaneList &, getPlaneList,
	          Properties::NON_VIRTUAL,
	          __C5_PlaneList_R1__getPlaneList,
	          "",
	          "");
	I_Method1(void, setReferenceVertexList, IN, osg::Polytope::VertexList &, vertices,
	          Properties::NON_VIRTUAL,
	          __void__setReferenceVertexList__VertexList_R1,
	          "",
	          "");
	I_Method0(osg::Polytope::VertexList &, getReferenceVertexList,
	          Properties::NON_VIRTUAL,
	          __VertexList_R1__getReferenceVertexList,
	          "",
	          "");
	I_Method0(const osg::Polytope::VertexList &, getReferenceVertexList,
	          Properties::NON_VIRTUAL,
	          __C5_VertexList_R1__getReferenceVertexList,
	          "",
	          "");
	I_Method0(void, setupMask,
	          Properties::NON_VIRTUAL,
	          __void__setupMask,
	          "",
	          "");
	I_Method0(osg::Polytope::ClippingMask &, getCurrentMask,
	          Properties::NON_VIRTUAL,
	          __ClippingMask_R1__getCurrentMask,
	          "",
	          "");
	I_Method0(osg::Polytope::ClippingMask, getCurrentMask,
	          Properties::NON_VIRTUAL,
	          __ClippingMask__getCurrentMask,
	          "",
	          "");
	I_Method1(void, setResultMask, IN, osg::Polytope::ClippingMask, mask,
	          Properties::NON_VIRTUAL,
	          __void__setResultMask__ClippingMask,
	          "",
	          "");
	I_Method0(osg::Polytope::ClippingMask, getResultMask,
	          Properties::NON_VIRTUAL,
	          __ClippingMask__getResultMask,
	          "",
	          "");
	I_Method0(osg::Polytope::MaskStack &, getMaskStack,
	          Properties::NON_VIRTUAL,
	          __MaskStack_R1__getMaskStack,
	          "",
	          "");
	I_Method0(const osg::Polytope::MaskStack &, getMaskStack,
	          Properties::NON_VIRTUAL,
	          __C5_MaskStack_R1__getMaskStack,
	          "",
	          "");
	I_Method0(void, pushCurrentMask,
	          Properties::NON_VIRTUAL,
	          __void__pushCurrentMask,
	          "",
	          "");
	I_Method0(void, popCurrentMask,
	          Properties::NON_VIRTUAL,
	          __void__popCurrentMask,
	          "",
	          "");
	I_Method1(bool, contains, IN, const osg::Vec3 &, v,
	          Properties::NON_VIRTUAL,
	          __bool__contains__C5_osg_Vec3_R1,
	          "Check whether a vertex is contained within clipping set. ",
	          "");
	I_Method1(bool, contains, IN, const std::vector< osg::Vec3 > &, vertices,
	          Properties::NON_VIRTUAL,
	          __bool__contains__C5_std_vectorT1_Vec3__R1,
	          "Check whether any part of vertex list is contained within clipping set. ",
	          "");
	I_Method1(bool, contains, IN, const osg::BoundingSphere &, bs,
	          Properties::NON_VIRTUAL,
	          __bool__contains__C5_osg_BoundingSphere_R1,
	          "Check whether any part of a bounding sphere is contained within clipping set. ",
	          "Using a mask to determine which planes should be used for the check, and modifying the mask to turn off planes which wouldn't contribute to clipping of any internal objects. This feature is used in osgUtil::CullVisitor to prevent redundant plane checking. ");
	I_Method1(bool, contains, IN, const osg::BoundingBox &, bb,
	          Properties::NON_VIRTUAL,
	          __bool__contains__C5_osg_BoundingBox_R1,
	          "Check whether any part of a bounding box is contained within clipping set. ",
	          "Using a mask to determine which planes should be used for the check, and modifying the mask to turn off planes which wouldn't contribute to clipping of any internal objects. This feature is used in osgUtil::CullVisitor to prevent redundant plane checking. ");
	I_Method1(bool, containsAllOf, IN, const std::vector< osg::Vec3 > &, vertices,
	          Properties::NON_VIRTUAL,
	          __bool__containsAllOf__C5_std_vectorT1_Vec3__R1,
	          "Check whether all of vertex list is contained with clipping set. ",
	          "");
	I_Method1(bool, containsAllOf, IN, const osg::BoundingSphere &, bs,
	          Properties::NON_VIRTUAL,
	          __bool__containsAllOf__C5_osg_BoundingSphere_R1,
	          "Check whether the entire bounding sphere is contained within clipping set. ",
	          "");
	I_Method1(bool, containsAllOf, IN, const osg::BoundingBox &, bb,
	          Properties::NON_VIRTUAL,
	          __bool__containsAllOf__C5_osg_BoundingBox_R1,
	          "Check whether the entire bounding box is contained within clipping set. ",
	          "");
	I_Method1(void, transform, IN, const osg::Matrix &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__transform__C5_osg_Matrix_R1,
	          "Transform the clipping set by matrix. ",
	          "Note, this operations carries out the calculation of the inverse of the matrix since a plane must be multiplied by the inverse transposed to transform it. This makes this operation expensive. If the inverse has been already calculated elsewhere then use transformProvidingInverse() instead. See http://www.worldserver.com/turk/computergraphics/NormalTransformations.pdf ");
	I_Method1(void, transformProvidingInverse, IN, const osg::Matrix &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__transformProvidingInverse__C5_osg_Matrix_R1,
	          "Transform the clipping set by provide a pre inverted matrix. ",
	          "see transform for details. ");
	I_SimpleProperty(osg::Polytope::ClippingMask, CurrentMask, 
	                 __ClippingMask__getCurrentMask, 
	                 0);
	I_SimpleProperty(osg::Polytope::MaskStack &, MaskStack, 
	                 __MaskStack_R1__getMaskStack, 
	                 0);
	I_SimpleProperty(osg::Polytope::PlaneList &, PlaneList, 
	                 __PlaneList_R1__getPlaneList, 
	                 0);
	I_SimpleProperty(osg::Polytope::VertexList &, ReferenceVertexList, 
	                 __VertexList_R1__getReferenceVertexList, 
	                 __void__setReferenceVertexList__VertexList_R1);
	I_SimpleProperty(osg::Polytope::ClippingMask, ResultMask, 
	                 __ClippingMask__getResultMask, 
	                 __void__setResultMask__ClippingMask);
	I_SimpleProperty(const osg::BoundingBox &, ToBoundingBox, 
	                 0, 
	                 __void__setToBoundingBox__C5_BoundingBox_R1);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::fast_back_stack< osg::Polytope::ClippingMask >)
	I_DeclaringFile("osg/fast_back_stack");
	I_Constructor0(____fast_back_stack,
	               "",
	               "");
	I_Constructor1(IN, const osg::fast_back_stack< osg::Polytope::ClippingMask > &, fbs,
	               Properties::NON_EXPLICIT,
	               ____fast_back_stack__C5_fast_back_stack_R1,
	               "",
	               "");
	I_Constructor1(IN, const osg::Polytope::ClippingMask &, value,
	               Properties::NON_EXPLICIT,
	               ____fast_back_stack__C5_T_R1,
	               "",
	               "");
	I_Method0(void, clear,
	          Properties::NON_VIRTUAL,
	          __void__clear,
	          "",
	          "");
	I_Method0(bool, empty,
	          Properties::NON_VIRTUAL,
	          __bool__empty,
	          "",
	          "");
	I_Method0(unsigned int, size,
	          Properties::NON_VIRTUAL,
	          __unsigned_int__size,
	          "",
	          "");
	I_Method0(osg::Polytope::ClippingMask &, back,
	          Properties::NON_VIRTUAL,
	          __T_R1__back,
	          "",
	          "");
	I_Method0(const osg::Polytope::ClippingMask &, back,
	          Properties::NON_VIRTUAL,
	          __C5_T_R1__back,
	          "",
	          "");
	I_Method0(void, push_back,
	          Properties::NON_VIRTUAL,
	          __void__push_back,
	          "",
	          "");
	I_Method1(void, push_back, IN, const osg::Polytope::ClippingMask &, value,
	          Properties::NON_VIRTUAL,
	          __void__push_back__C5_T_R1,
	          "",
	          "");
	I_Method0(void, pop_back,
	          Properties::NON_VIRTUAL,
	          __void__pop_back,
	          "",
	          "");
	I_PublicMemberProperty(osg::Polytope::ClippingMask, _value);
	I_PublicMemberProperty(std::vector< osg::Polytope::ClippingMask >, _stack);
	I_PublicMemberProperty(unsigned int, _size);
END_REFLECTOR

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

