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

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

#include <OpenThreads/Mutex>
#include <osg/Camera>
#include <osg/ColorMask>
#include <osg/CopyOp>
#include <osg/CullSettings>
#include <osg/DisplaySettings>
#include <osg/GraphicsContext>
#include <osg/GraphicsThread>
#include <osg/Image>
#include <osg/Matrix>
#include <osg/Matrixd>
#include <osg/Matrixf>
#include <osg/NodeVisitor>
#include <osg/Object>
#include <osg/OperationThread>
#include <osg/RenderInfo>
#include <osg/State>
#include <osg/Stats>
#include <osg/Texture>
#include <osg/Vec3d>
#include <osg/Vec3f>
#include <osg/Vec4>
#include <osg/View>
#include <osg/Viewport>

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

BEGIN_ENUM_REFLECTOR(osg::Camera::TransformOrder)
	I_DeclaringFile("osg/Camera");
	I_EnumLabel(osg::Camera::PRE_MULTIPLY);
	I_EnumLabel(osg::Camera::POST_MULTIPLY);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osg::Camera::ProjectionResizePolicy)
	I_DeclaringFile("osg/Camera");
	I_EnumLabel(osg::Camera::FIXED);
	I_EnumLabel(osg::Camera::HORIZONTAL);
	I_EnumLabel(osg::Camera::VERTICAL);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osg::Camera::RenderOrder)
	I_DeclaringFile("osg/Camera");
	I_EnumLabel(osg::Camera::PRE_RENDER);
	I_EnumLabel(osg::Camera::NESTED_RENDER);
	I_EnumLabel(osg::Camera::POST_RENDER);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osg::Camera::RenderTargetImplementation)
	I_DeclaringFile("osg/Camera");
	I_EnumLabel(osg::Camera::FRAME_BUFFER_OBJECT);
	I_EnumLabel(osg::Camera::PIXEL_BUFFER_RTT);
	I_EnumLabel(osg::Camera::PIXEL_BUFFER);
	I_EnumLabel(osg::Camera::FRAME_BUFFER);
	I_EnumLabel(osg::Camera::SEPERATE_WINDOW);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osg::Camera::BufferComponent)
	I_DeclaringFile("osg/Camera");
	I_EnumLabel(osg::Camera::DEPTH_BUFFER);
	I_EnumLabel(osg::Camera::STENCIL_BUFFER);
	I_EnumLabel(osg::Camera::PACKED_DEPTH_STENCIL_BUFFER);
	I_EnumLabel(osg::Camera::COLOR_BUFFER);
	I_EnumLabel(osg::Camera::COLOR_BUFFER0);
	I_EnumLabel(osg::Camera::COLOR_BUFFER1);
	I_EnumLabel(osg::Camera::COLOR_BUFFER2);
	I_EnumLabel(osg::Camera::COLOR_BUFFER3);
	I_EnumLabel(osg::Camera::COLOR_BUFFER4);
	I_EnumLabel(osg::Camera::COLOR_BUFFER5);
	I_EnumLabel(osg::Camera::COLOR_BUFFER6);
	I_EnumLabel(osg::Camera::COLOR_BUFFER7);
	I_EnumLabel(osg::Camera::COLOR_BUFFER8);
	I_EnumLabel(osg::Camera::COLOR_BUFFER9);
	I_EnumLabel(osg::Camera::COLOR_BUFFER10);
	I_EnumLabel(osg::Camera::COLOR_BUFFER11);
	I_EnumLabel(osg::Camera::COLOR_BUFFER12);
	I_EnumLabel(osg::Camera::COLOR_BUFFER13);
	I_EnumLabel(osg::Camera::COLOR_BUFFER14);
	I_EnumLabel(osg::Camera::COLOR_BUFFER15);
END_REFLECTOR

BEGIN_ENUM_REFLECTOR(osg::Camera::ImplicitBufferAttachment)
	I_DeclaringFile("osg/Camera");
	I_EnumLabel(osg::Camera::IMPLICIT_DEPTH_BUFFER_ATTACHMENT);
	I_EnumLabel(osg::Camera::IMPLICIT_STENCIL_BUFFER_ATTACHMENT);
	I_EnumLabel(osg::Camera::IMPLICIT_COLOR_BUFFER_ATTACHMENT);
	I_EnumLabel(osg::Camera::USE_DISPLAY_SETTINGS_MASK);
END_REFLECTOR

TYPE_NAME_ALIAS(std::map< osg::Camera::BufferComponent COMMA  osg::Camera::Attachment >, osg::Camera::BufferAttachmentMap)

TYPE_NAME_ALIAS(int, osg::Camera::ImplicitBufferAttachmentMask)

BEGIN_OBJECT_REFLECTOR(osg::Camera)
	I_DeclaringFile("osg/Camera");
	I_BaseType(osg::Transform);
	I_BaseType(osg::CullSettings);
	I_Constructor0(____Camera,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osg::Camera &, x, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____Camera__C5_Camera_R1__C5_CopyOp_R1,
	                           "Copy constructor using CopyOp to manage deep vs shallow copy. ",
	                           "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __osg_Object_P1__cloneType,
	          "clone an object of the same type as the node. ",
	          "");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop,
	          Properties::VIRTUAL,
	          __osg_Object_P1__clone__C5_osg_CopyOp_R1,
	          "return a clone of a node, with Object* return type. ",
	          "");
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
	          Properties::VIRTUAL,
	          __bool__isSameKindAs__C5_osg_Object_P1,
	          "return true if this and obj are of the same kind of object. ",
	          "");
	I_Method0(const char *, className,
	          Properties::VIRTUAL,
	          __C5_char_P1__className,
	          "return the name of the node's class type. ",
	          "");
	I_Method0(const char *, libraryName,
	          Properties::VIRTUAL,
	          __C5_char_P1__libraryName,
	          "return the name of the node's library. ",
	          "");
	I_Method1(void, accept, IN, osg::NodeVisitor &, nv,
	          Properties::VIRTUAL,
	          __void__accept__osg_NodeVisitor_R1,
	          "Visitor Pattern : calls the apply method of a NodeVisitor with this node's type. ",
	          "");
	I_Method1(void, setView, IN, osg::View *, view,
	          Properties::NON_VIRTUAL,
	          __void__setView__View_P1,
	          "Set the View that this Camera is part of. ",
	          "");
	I_Method0(osg::View *, getView,
	          Properties::NON_VIRTUAL,
	          __View_P1__getView,
	          "Get the View that this Camera is part of. ",
	          "");
	I_Method0(const osg::View *, getView,
	          Properties::NON_VIRTUAL,
	          __C5_View_P1__getView,
	          "Get the const View that this Camera is part of. ",
	          "");
	I_Method1(void, setStats, IN, osg::Stats *, stats,
	          Properties::NON_VIRTUAL,
	          __void__setStats__osg_Stats_P1,
	          "Set the Stats object used for collect various frame related timing and scene graph stats. ",
	          "");
	I_Method0(osg::Stats *, getStats,
	          Properties::NON_VIRTUAL,
	          __osg_Stats_P1__getStats,
	          "Get the Stats object. ",
	          "");
	I_Method0(const osg::Stats *, getStats,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Stats_P1__getStats,
	          "Get the const Stats object. ",
	          "");
	I_Method1(void, setAllowEventFocus, IN, bool, focus,
	          Properties::NON_VIRTUAL,
	          __void__setAllowEventFocus__bool,
	          "Set whether this camera allows events to be generated by the associated graphics window to be associated with this camera. ",
	          "");
	I_Method0(bool, getAllowEventFocus,
	          Properties::NON_VIRTUAL,
	          __bool__getAllowEventFocus,
	          "Get whether this camera allows events to be generated by the associated graphics window to be associated with this camera. ",
	          "");
	I_Method1(void, setDisplaySettings, IN, osg::DisplaySettings *, ds,
	          Properties::NON_VIRTUAL,
	          __void__setDisplaySettings__osg_DisplaySettings_P1,
	          "Set the DisplaySettings object associated with this view. ",
	          "");
	I_Method0(osg::DisplaySettings *, getDisplaySettings,
	          Properties::NON_VIRTUAL,
	          __osg_DisplaySettings_P1__getDisplaySettings,
	          "Get the DisplaySettings object associated with this view. ",
	          "");
	I_Method0(const osg::DisplaySettings *, getDisplaySettings,
	          Properties::NON_VIRTUAL,
	          __C5_osg_DisplaySettings_P1__getDisplaySettings,
	          "Get the const DisplaySettings object associated with this view. ",
	          "");
	I_Method1(void, setClearMask, IN, GLbitfield, mask,
	          Properties::NON_VIRTUAL,
	          __void__setClearMask__GLbitfield,
	          "Set the clear mask used in glClear(. ",
	          ".). Defaults to GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT. ");
	I_Method0(GLbitfield, getClearMask,
	          Properties::NON_VIRTUAL,
	          __GLbitfield__getClearMask,
	          "Get the clear mask. ",
	          "");
	I_Method1(void, setClearColor, IN, const osg::Vec4 &, color,
	          Properties::NON_VIRTUAL,
	          __void__setClearColor__C5_osg_Vec4_R1,
	          "Set the clear color used in glClearColor(. ",
	          ".). glClearColor is only called if mask & GL_COLOR_BUFFER_BIT is true ");
	I_Method0(const osg::Vec4 &, getClearColor,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec4_R1__getClearColor,
	          "Get the clear color. ",
	          "");
	I_Method1(void, setClearAccum, IN, const osg::Vec4 &, color,
	          Properties::NON_VIRTUAL,
	          __void__setClearAccum__C5_osg_Vec4_R1,
	          "Set the clear accum used in glClearAccum(. ",
	          ".). glClearAcumm is only called if mask & GL_ACCUM_BUFFER_BIT is true. ");
	I_Method0(const osg::Vec4 &, getClearAccum,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec4_R1__getClearAccum,
	          "Get the clear accum value. ",
	          "");
	I_Method1(void, setClearDepth, IN, double, depth,
	          Properties::NON_VIRTUAL,
	          __void__setClearDepth__double,
	          "Set the clear depth used in glClearDepth(. ",
	          ".). Defaults to 1.0 glClearDepth is only called if mask & GL_DEPTH_BUFFER_BIT is true. ");
	I_Method0(double, getClearDepth,
	          Properties::NON_VIRTUAL,
	          __double__getClearDepth,
	          "Get the clear depth value. ",
	          "");
	I_Method1(void, setClearStencil, IN, int, stencil,
	          Properties::NON_VIRTUAL,
	          __void__setClearStencil__int,
	          "Set the clear stencil value used in glClearStencil(). ",
	          "Defaults to 0; glClearStencil is only called if mask & GL_STENCIL_BUFFER_BIT is true ");
	I_Method0(int, getClearStencil,
	          Properties::NON_VIRTUAL,
	          __int__getClearStencil,
	          "Get the clear stencil value. ",
	          "");
	I_Method1(void, setColorMask, IN, osg::ColorMask *, colorMask,
	          Properties::NON_VIRTUAL,
	          __void__setColorMask__osg_ColorMask_P1,
	          "Set the color mask of the camera to use specified osg::ColorMask. ",
	          "");
	I_Method4(void, setColorMask, IN, bool, red, IN, bool, green, IN, bool, blue, IN, bool, alpha,
	          Properties::NON_VIRTUAL,
	          __void__setColorMask__bool__bool__bool__bool,
	          "Set the color mask of the camera to specified values. ",
	          "");
	I_Method0(const osg::ColorMask *, getColorMask,
	          Properties::NON_VIRTUAL,
	          __C5_ColorMask_P1__getColorMask,
	          "Get the const ColorMask. ",
	          "");
	I_Method0(osg::ColorMask *, getColorMask,
	          Properties::NON_VIRTUAL,
	          __ColorMask_P1__getColorMask,
	          "Get the ColorMask. ",
	          "");
	I_Method1(void, setViewport, IN, osg::Viewport *, viewport,
	          Properties::NON_VIRTUAL,
	          __void__setViewport__osg_Viewport_P1,
	          "Set the viewport of the camera to use specified osg::Viewport. ",
	          "");
	I_Method4(void, setViewport, IN, int, x, IN, int, y, IN, int, width, IN, int, height,
	          Properties::NON_VIRTUAL,
	          __void__setViewport__int__int__int__int,
	          "Set the viewport of the camera to specified dimensions. ",
	          "");
	I_Method0(const osg::Viewport *, getViewport,
	          Properties::NON_VIRTUAL,
	          __C5_Viewport_P1__getViewport,
	          "Get the const viewport. ",
	          "");
	I_Method0(osg::Viewport *, getViewport,
	          Properties::NON_VIRTUAL,
	          __Viewport_P1__getViewport,
	          "Get the viewport. ",
	          "");
	I_Method1(void, setTransformOrder, IN, osg::Camera::TransformOrder, order,
	          Properties::NON_VIRTUAL,
	          __void__setTransformOrder__TransformOrder,
	          "Set the transformation order for world-to-local and local-to-world transformation. ",
	          "");
	I_Method0(osg::Camera::TransformOrder, getTransformOrder,
	          Properties::NON_VIRTUAL,
	          __TransformOrder__getTransformOrder,
	          "Get the transformation order. ",
	          "");
	I_Method1(void, setProjectionResizePolicy, IN, osg::Camera::ProjectionResizePolicy, policy,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionResizePolicy__ProjectionResizePolicy,
	          "Set the policy used to determine if and how the projection matrix should be adjusted on window resizes. ",
	          "");
	I_Method0(osg::Camera::ProjectionResizePolicy, getProjectionResizePolicy,
	          Properties::NON_VIRTUAL,
	          __ProjectionResizePolicy__getProjectionResizePolicy,
	          "Get the policy used to determine if and how the projection matrix should be adjusted on window resizes. ",
	          "");
	I_Method1(void, setProjectionMatrix, IN, const osg::Matrixf &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionMatrix__C5_osg_Matrixf_R1,
	          "Set the projection matrix. ",
	          "Can be thought of as setting the lens of a camera. ");
	I_Method1(void, setProjectionMatrix, IN, const osg::Matrixd &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionMatrix__C5_osg_Matrixd_R1,
	          "Set the projection matrix. ",
	          "Can be thought of as setting the lens of a camera. ");
	I_Method6(void, setProjectionMatrixAsOrtho, IN, double, left, IN, double, right, IN, double, bottom, IN, double, top, IN, double, zNear, IN, double, zFar,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionMatrixAsOrtho__double__double__double__double__double__double,
	          "Set to an orthographic projection. ",
	          "See OpenGL glOrtho for documentation further details. ");
	I_Method4(void, setProjectionMatrixAsOrtho2D, IN, double, left, IN, double, right, IN, double, bottom, IN, double, top,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionMatrixAsOrtho2D__double__double__double__double,
	          "Set to a 2D orthographic projection. ",
	          "See OpenGL glOrtho2D documentation for further details. ");
	I_Method6(void, setProjectionMatrixAsFrustum, IN, double, left, IN, double, right, IN, double, bottom, IN, double, top, IN, double, zNear, IN, double, zFar,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionMatrixAsFrustum__double__double__double__double__double__double,
	          "Set to a perspective projection. ",
	          "See OpenGL glFrustum documentation for further details. ");
	I_Method4(void, setProjectionMatrixAsPerspective, IN, double, fovy, IN, double, aspectRatio, IN, double, zNear, IN, double, zFar,
	          Properties::NON_VIRTUAL,
	          __void__setProjectionMatrixAsPerspective__double__double__double__double,
	          "Create a symmetrical perspective projection, See OpenGL gluPerspective documentation for further details. ",
	          "Aspect ratio is defined as width/height. ");
	I_Method0(osg::Matrixd &, getProjectionMatrix,
	          Properties::NON_VIRTUAL,
	          __osg_Matrixd_R1__getProjectionMatrix,
	          "Get the projection matrix. ",
	          "");
	I_Method0(const osg::Matrixd &, getProjectionMatrix,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Matrixd_R1__getProjectionMatrix,
	          "Get the const projection matrix. ",
	          "");
	I_Method6(bool, getProjectionMatrixAsOrtho, IN, double &, left, IN, double &, right, IN, double &, bottom, IN, double &, top, IN, double &, zNear, IN, double &, zFar,
	          Properties::NON_VIRTUAL,
	          __bool__getProjectionMatrixAsOrtho__double_R1__double_R1__double_R1__double_R1__double_R1__double_R1,
	          "Get the orthographic settings of the orthographic projection matrix. ",
	          "Returns false if matrix is not an orthographic matrix, where parameter values are undefined. ");
	I_Method6(bool, getProjectionMatrixAsFrustum, IN, double &, left, IN, double &, right, IN, double &, bottom, IN, double &, top, IN, double &, zNear, IN, double &, zFar,
	          Properties::NON_VIRTUAL,
	          __bool__getProjectionMatrixAsFrustum__double_R1__double_R1__double_R1__double_R1__double_R1__double_R1,
	          "Get the frustum setting of a perspective projection matrix. ",
	          "Returns false if matrix is not a perspective matrix, where parameter values are undefined. ");
	I_Method4(bool, getProjectionMatrixAsPerspective, IN, double &, fovy, IN, double &, aspectRatio, IN, double &, zNear, IN, double &, zFar,
	          Properties::NON_VIRTUAL,
	          __bool__getProjectionMatrixAsPerspective__double_R1__double_R1__double_R1__double_R1,
	          "Get the frustum setting of a symmetric perspective projection matrix. ",
	          "Returns false if matrix is not a perspective matrix, where parameter values are undefined. Note, if matrix is not a symmetric perspective matrix then the shear will be lost. Asymmetric matrices occur when stereo, power walls, caves and reality center display are used. In these configurations one should use the 'getProjectionMatrixAsFrustum' method instead. ");
	I_Method1(void, setViewMatrix, IN, const osg::Matrixf &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__setViewMatrix__C5_osg_Matrixf_R1,
	          "Set the view matrix. ",
	          "Can be thought of as setting the position of the world relative to the camera in camera coordinates. ");
	I_Method1(void, setViewMatrix, IN, const osg::Matrixd &, matrix,
	          Properties::NON_VIRTUAL,
	          __void__setViewMatrix__C5_osg_Matrixd_R1,
	          "Set the view matrix. ",
	          "Can be thought of as setting the position of the world relative to the camera in camera coordinates. ");
	I_Method0(osg::Matrixd &, getViewMatrix,
	          Properties::NON_VIRTUAL,
	          __osg_Matrixd_R1__getViewMatrix,
	          "Get the view matrix. ",
	          "");
	I_Method0(const osg::Matrixd &, getViewMatrix,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Matrixd_R1__getViewMatrix,
	          "Get the const view matrix. ",
	          "");
	I_Method3(void, setViewMatrixAsLookAt, IN, const osg::Vec3d &, eye, IN, const osg::Vec3d &, center, IN, const osg::Vec3d &, up,
	          Properties::NON_VIRTUAL,
	          __void__setViewMatrixAsLookAt__C5_osg_Vec3d_R1__C5_osg_Vec3d_R1__C5_osg_Vec3d_R1,
	          "Set to the position and orientation of view matrix, using the same convention as gluLookAt. ",
	          "");
	I_MethodWithDefaults4(void, getViewMatrixAsLookAt, IN, osg::Vec3d &, eye, , IN, osg::Vec3d &, center, , IN, osg::Vec3d &, up, , IN, double, lookDistance, 1.0,
	                      Properties::NON_VIRTUAL,
	                      __void__getViewMatrixAsLookAt__osg_Vec3d_R1__osg_Vec3d_R1__osg_Vec3d_R1__double,
	                      "Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt. ",
	                      "");
	I_MethodWithDefaults4(void, getViewMatrixAsLookAt, IN, osg::Vec3f &, eye, , IN, osg::Vec3f &, center, , IN, osg::Vec3f &, up, , IN, float, lookDistance, 1.0f,
	                      Properties::NON_VIRTUAL,
	                      __void__getViewMatrixAsLookAt__osg_Vec3f_R1__osg_Vec3f_R1__osg_Vec3f_R1__float,
	                      "Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt. ",
	                      "");
	I_Method0(osg::Matrixd, getInverseViewMatrix,
	          Properties::NON_VIRTUAL,
	          __Matrixd__getInverseViewMatrix,
	          "Get the inverse view matrix. ",
	          "");
	I_MethodWithDefaults2(void, setRenderOrder, IN, osg::Camera::RenderOrder, order, , IN, int, orderNum, 0,
	                      Properties::NON_VIRTUAL,
	                      __void__setRenderOrder__RenderOrder__int,
	                      "Set the rendering order of this camera's subgraph relative to any camera that this subgraph is nested within. ",
	                      "For rendering to a texture, one typically uses PRE_RENDER. For Head Up Displays, one would typically use POST_RENDER. ");
	I_Method0(osg::Camera::RenderOrder, getRenderOrder,
	          Properties::NON_VIRTUAL,
	          __RenderOrder__getRenderOrder,
	          "Get the rendering order of this camera's subgraph relative to any camera that this subgraph is nested within. ",
	          "");
	I_Method0(int, getRenderOrderNum,
	          Properties::NON_VIRTUAL,
	          __int__getRenderOrderNum,
	          "Get the rendering order number of this camera relative to any sibling cameras in this subgraph. ",
	          "");
	I_Method0(bool, isRenderToTextureCamera,
	          Properties::NON_VIRTUAL,
	          __bool__isRenderToTextureCamera,
	          "Return true if this Camera is set up as a render to texture camera, i.e. ",
	          "it has textures assigned to it. ");
	I_Method1(void, setRenderTargetImplementation, IN, osg::Camera::RenderTargetImplementation, impl,
	          Properties::NON_VIRTUAL,
	          __void__setRenderTargetImplementation__RenderTargetImplementation,
	          "Set the render target. ",
	          "");
	I_Method2(void, setRenderTargetImplementation, IN, osg::Camera::RenderTargetImplementation, impl, IN, osg::Camera::RenderTargetImplementation, fallback,
	          Properties::NON_VIRTUAL,
	          __void__setRenderTargetImplementation__RenderTargetImplementation__RenderTargetImplementation,
	          "Set the render target and fall-back that's used if the former isn't available. ",
	          "");
	I_Method0(osg::Camera::RenderTargetImplementation, getRenderTargetImplementation,
	          Properties::NON_VIRTUAL,
	          __RenderTargetImplementation__getRenderTargetImplementation,
	          "Get the render target. ",
	          "");
	I_Method0(osg::Camera::RenderTargetImplementation, getRenderTargetFallback,
	          Properties::NON_VIRTUAL,
	          __RenderTargetImplementation__getRenderTargetFallback,
	          "Get the render target fallback. ",
	          "");
	I_Method1(void, setDrawBuffer, IN, GLenum, buffer,
	          Properties::NON_VIRTUAL,
	          __void__setDrawBuffer__GLenum,
	          "Set the draw buffer used at the start of each frame draw. ",
	          "Note, a buffer value of GL_NONE is used to sepecify that the rendering back-end should choose the most appropriate buffer. ");
	I_Method0(GLenum, getDrawBuffer,
	          Properties::NON_VIRTUAL,
	          __GLenum__getDrawBuffer,
	          "Get the draw buffer used at the start of each frame draw. ",
	          "");
	I_Method1(void, setReadBuffer, IN, GLenum, buffer,
	          Properties::NON_VIRTUAL,
	          __void__setReadBuffer__GLenum,
	          "Set the read buffer for any required copy operations to use. ",
	          "Note, a buffer value of GL_NONE is used to sepecify that the rendering back-end should choose the most appropriate buffer. ");
	I_Method0(GLenum, getReadBuffer,
	          Properties::NON_VIRTUAL,
	          __GLenum__getReadBuffer,
	          "Get the read buffer for any required copy operations to use. ",
	          "");
	I_Method2(void, attach, IN, osg::Camera::BufferComponent, buffer, IN, GLenum, internalFormat,
	          Properties::NON_VIRTUAL,
	          __void__attach__BufferComponent__GLenum,
	          "Attach a buffer with specified OpenGL internal format. ",
	          "");
	I_MethodWithDefaults7(void, attach, IN, osg::Camera::BufferComponent, buffer, , IN, osg::Texture *, texture, , IN, unsigned int, level, 0, IN, unsigned int, face, 0, IN, bool, mipMapGeneration, false, IN, unsigned int, multisampleSamples, 0, IN, unsigned int, multisampleColorSamples, 0,
	                      Properties::NON_VIRTUAL,
	                      __void__attach__BufferComponent__osg_Texture_P1__unsigned_int__unsigned_int__bool__unsigned_int__unsigned_int,
	                      "Attach a Texture to specified buffer component. ",
	                      "The level parameter controls the mip map level of the texture that is attached. The face parameter controls the face of texture cube map or z level of 3d texture. The mipMapGeneration flag controls whether mipmap generation should be done for texture. ");
	I_MethodWithDefaults4(void, attach, IN, osg::Camera::BufferComponent, buffer, , IN, osg::Image *, image, , IN, unsigned int, multisampleSamples, 0, IN, unsigned int, multisampleColorSamples, 0,
	                      Properties::NON_VIRTUAL,
	                      __void__attach__BufferComponent__osg_Image_P1__unsigned_int__unsigned_int,
	                      "Attach a Image to specified buffer component. ",
	                      "");
	I_Method1(void, detach, IN, osg::Camera::BufferComponent, buffer,
	          Properties::NON_VIRTUAL,
	          __void__detach__BufferComponent,
	          "Detach specified buffer component. ",
	          "");
	I_Method0(osg::Camera::BufferAttachmentMap &, getBufferAttachmentMap,
	          Properties::NON_VIRTUAL,
	          __BufferAttachmentMap_R1__getBufferAttachmentMap,
	          "Get the BufferAttachmentMap, used to configure frame buffer objects, pbuffers and texture reads. ",
	          "");
	I_Method0(const osg::Camera::BufferAttachmentMap &, getBufferAttachmentMap,
	          Properties::NON_VIRTUAL,
	          __C5_BufferAttachmentMap_R1__getBufferAttachmentMap,
	          "Get the const BufferAttachmentMap, used to configure frame buffer objects, pbuffers and texture reads. ",
	          "");
	I_MethodWithDefaults2(void, setImplicitBufferAttachmentMask, IN, osg::Camera::ImplicitBufferAttachmentMask, renderMask, osg::DisplaySettings::DEFAULT_IMPLICIT_BUFFER_ATTACHMENT, IN, osg::Camera::ImplicitBufferAttachmentMask, resolveMask, osg::DisplaySettings::DEFAULT_IMPLICIT_BUFFER_ATTACHMENT,
	                      Properties::NON_VIRTUAL,
	                      __void__setImplicitBufferAttachmentMask__ImplicitBufferAttachmentMask__ImplicitBufferAttachmentMask,
	                      "",
	                      "");
	I_Method1(void, setImplicitBufferAttachmentRenderMask, IN, osg::Camera::ImplicitBufferAttachmentMask, implicitBufferAttachmentRenderMask,
	          Properties::NON_VIRTUAL,
	          __void__setImplicitBufferAttachmentRenderMask__ImplicitBufferAttachmentMask,
	          "",
	          "");
	I_Method1(void, setImplicitBufferAttachmentResolveMask, IN, osg::Camera::ImplicitBufferAttachmentMask, implicitBufferAttachmentResolveMask,
	          Properties::NON_VIRTUAL,
	          __void__setImplicitBufferAttachmentResolveMask__ImplicitBufferAttachmentMask,
	          "",
	          "");
	I_MethodWithDefaults1(osg::Camera::ImplicitBufferAttachmentMask, getImplicitBufferAttachmentRenderMask, IN, bool, effectiveMask, false,
	                      Properties::NON_VIRTUAL,
	                      __ImplicitBufferAttachmentMask__getImplicitBufferAttachmentRenderMask__bool,
	                      "Get mask selecting implict buffer attachments for Camera primary FBO if effectiveMask parameter is set, method follows USE_DISPLAY_SETTINGS_MASK dependence and returns effective mask if effectiveMask parameter is reset, method returns nominal mask set by the Camera. ",
	                      "");
	I_MethodWithDefaults1(osg::Camera::ImplicitBufferAttachmentMask, getImplicitBufferAttachmentResolveMask, IN, bool, effectiveMask, false,
	                      Properties::NON_VIRTUAL,
	                      __ImplicitBufferAttachmentMask__getImplicitBufferAttachmentResolveMask__bool,
	                      "Get mask selecting implict buffer attachments for Camera secondary MULTISAMPLE FBO if effectiveMask parameter is set, method follows USE_DISPLAY_SETTINGS_MASK dependence and returns effective mask if effectiveMask parameter is reset, method returns nominal mask set by the Camera. ",
	                      "");
	I_Method0(void, createCameraThread,
	          Properties::NON_VIRTUAL,
	          __void__createCameraThread,
	          "Create a operation thread for this camera. ",
	          "");
	I_Method1(void, setCameraThread, IN, osg::OperationThread *, gt,
	          Properties::NON_VIRTUAL,
	          __void__setCameraThread__OperationThread_P1,
	          "Assign a operation thread to the camera. ",
	          "");
	I_Method0(osg::OperationThread *, getCameraThread,
	          Properties::NON_VIRTUAL,
	          __OperationThread_P1__getCameraThread,
	          "Get the operation thread assigned to this camera. ",
	          "");
	I_Method0(const osg::OperationThread *, getCameraThread,
	          Properties::NON_VIRTUAL,
	          __C5_OperationThread_P1__getCameraThread,
	          "Get the const operation thread assigned to this camera. ",
	          "");
	I_Method1(void, setGraphicsContext, IN, osg::GraphicsContext *, context,
	          Properties::NON_VIRTUAL,
	          __void__setGraphicsContext__GraphicsContext_P1,
	          "Set the GraphicsContext that provides the mechansim for managing the OpenGL graphics context associated with this camera. ",
	          "");
	I_Method0(osg::GraphicsContext *, getGraphicsContext,
	          Properties::NON_VIRTUAL,
	          __GraphicsContext_P1__getGraphicsContext,
	          "Get the GraphicsContext. ",
	          "");
	I_Method0(const osg::GraphicsContext *, getGraphicsContext,
	          Properties::NON_VIRTUAL,
	          __C5_GraphicsContext_P1__getGraphicsContext,
	          "Get the const GraphicsContext. ",
	          "");
	I_Method1(void, setRenderer, IN, osg::GraphicsOperation *, rc,
	          Properties::NON_VIRTUAL,
	          __void__setRenderer__osg_GraphicsOperation_P1,
	          "Set the Rendering object that is used to implement rendering of the subgraph. ",
	          "");
	I_Method0(osg::GraphicsOperation *, getRenderer,
	          Properties::NON_VIRTUAL,
	          __osg_GraphicsOperation_P1__getRenderer,
	          "Get the Rendering object that is used to implement rendering of the subgraph. ",
	          "");
	I_Method0(const osg::GraphicsOperation *, getRenderer,
	          Properties::NON_VIRTUAL,
	          __C5_osg_GraphicsOperation_P1__getRenderer,
	          "Get the const Rendering object that is used to implement rendering of the subgraph. ",
	          "");
	I_Method1(void, setRenderingCache, IN, osg::Object *, rc,
	          Properties::NON_VIRTUAL,
	          __void__setRenderingCache__osg_Object_P1,
	          "Set the Rendering cache that is used for cached objects associated with rendering of subgraphs. ",
	          "");
	I_Method0(osg::Object *, getRenderingCache,
	          Properties::NON_VIRTUAL,
	          __osg_Object_P1__getRenderingCache,
	          "Get the Rendering cache that is used for cached objects associated with rendering of subgraphs. ",
	          "");
	I_Method0(const osg::Object *, getRenderingCache,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Object_P1__getRenderingCache,
	          "Get the const Rendering cache that is used for cached objects associated with rendering of subgraphs. ",
	          "");
	I_Method1(void, setInitialDrawCallback, IN, osg::Camera::DrawCallback *, cb,
	          Properties::NON_VIRTUAL,
	          __void__setInitialDrawCallback__DrawCallback_P1,
	          "Set the initial draw callback for custom operations to be done before the drawing of the camera's subgraph and pre render stages. ",
	          "");
	I_Method0(osg::Camera::DrawCallback *, getInitialDrawCallback,
	          Properties::NON_VIRTUAL,
	          __DrawCallback_P1__getInitialDrawCallback,
	          "Get the initial draw callback. ",
	          "");
	I_Method0(const osg::Camera::DrawCallback *, getInitialDrawCallback,
	          Properties::NON_VIRTUAL,
	          __C5_DrawCallback_P1__getInitialDrawCallback,
	          "Get the const initial draw callback. ",
	          "");
	I_Method1(void, setPreDrawCallback, IN, osg::Camera::DrawCallback *, cb,
	          Properties::NON_VIRTUAL,
	          __void__setPreDrawCallback__DrawCallback_P1,
	          "Set the pre draw callback for custom operations to be done before the drawing of the camera's subgraph but after any pre render stages have been completed. ",
	          "");
	I_Method0(osg::Camera::DrawCallback *, getPreDrawCallback,
	          Properties::NON_VIRTUAL,
	          __DrawCallback_P1__getPreDrawCallback,
	          "Get the pre draw callback. ",
	          "");
	I_Method0(const osg::Camera::DrawCallback *, getPreDrawCallback,
	          Properties::NON_VIRTUAL,
	          __C5_DrawCallback_P1__getPreDrawCallback,
	          "Get the const pre draw callback. ",
	          "");
	I_Method1(void, setPostDrawCallback, IN, osg::Camera::DrawCallback *, cb,
	          Properties::NON_VIRTUAL,
	          __void__setPostDrawCallback__DrawCallback_P1,
	          "Set the post draw callback for custom operations to be done after the drawing of the camera's subgraph but before the any post render stages have been completed. ",
	          "");
	I_Method0(osg::Camera::DrawCallback *, getPostDrawCallback,
	          Properties::NON_VIRTUAL,
	          __DrawCallback_P1__getPostDrawCallback,
	          "Get the post draw callback. ",
	          "");
	I_Method0(const osg::Camera::DrawCallback *, getPostDrawCallback,
	          Properties::NON_VIRTUAL,
	          __C5_DrawCallback_P1__getPostDrawCallback,
	          "Get the const post draw callback. ",
	          "");
	I_Method1(void, setFinalDrawCallback, IN, osg::Camera::DrawCallback *, cb,
	          Properties::NON_VIRTUAL,
	          __void__setFinalDrawCallback__DrawCallback_P1,
	          "Set the final draw callback for custom operations to be done after the drawing of the camera's subgraph and all of the post render stages has been completed. ",
	          "");
	I_Method0(osg::Camera::DrawCallback *, getFinalDrawCallback,
	          Properties::NON_VIRTUAL,
	          __DrawCallback_P1__getFinalDrawCallback,
	          "Get the final draw callback. ",
	          "");
	I_Method0(const osg::Camera::DrawCallback *, getFinalDrawCallback,
	          Properties::NON_VIRTUAL,
	          __C5_DrawCallback_P1__getFinalDrawCallback,
	          "Get the const final draw callback. ",
	          "");
	I_Method0(OpenThreads::Mutex *, getDataChangeMutex,
	          Properties::NON_VIRTUAL,
	          __OpenThreads_Mutex_P1__getDataChangeMutex,
	          "",
	          "");
	I_Method1(void, resizeGLObjectBuffers, IN, unsigned int, maxSize,
	          Properties::VIRTUAL,
	          __void__resizeGLObjectBuffers__unsigned_int,
	          "Resize any per context GLObject buffers to specified size. ",
	          "");
	I_MethodWithDefaults1(void, releaseGLObjects, IN, osg::State *, x, 0,
	                      Properties::VIRTUAL,
	                      __void__releaseGLObjects__osg_State_P1,
	                      "If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. ",
	                      "Otherwise, releases OpenGL objexts for all graphics contexts. ");
	I_Method2(bool, computeLocalToWorldMatrix, IN, osg::Matrix &, matrix, IN, osg::NodeVisitor *, x,
	          Properties::VIRTUAL,
	          __bool__computeLocalToWorldMatrix__Matrix_R1__NodeVisitor_P1,
	          "Transform method that must be defined to provide generic interface for scene graph traversals. ",
	          "");
	I_Method2(bool, computeWorldToLocalMatrix, IN, osg::Matrix &, matrix, IN, osg::NodeVisitor *, x,
	          Properties::VIRTUAL,
	          __bool__computeWorldToLocalMatrix__Matrix_R1__NodeVisitor_P1,
	          "Transform method that must be defined to provide generic interface for scene graph traversals. ",
	          "");
	I_Method2(void, inheritCullSettings, IN, const osg::CullSettings &, settings, IN, unsigned int, inheritanceMask,
	          Properties::VIRTUAL,
	          __void__inheritCullSettings__C5_CullSettings_R1__unsigned_int,
	          "Inherit the local cull settings variable from specified CullSettings object, according to the inheritance mask. ",
	          "");
	I_SimpleProperty(bool, AllowEventFocus, 
	                 __bool__getAllowEventFocus, 
	                 __void__setAllowEventFocus__bool);
	I_SimpleProperty(osg::Camera::BufferAttachmentMap &, BufferAttachmentMap, 
	                 __BufferAttachmentMap_R1__getBufferAttachmentMap, 
	                 0);
	I_SimpleProperty(osg::OperationThread *, CameraThread, 
	                 __OperationThread_P1__getCameraThread, 
	                 __void__setCameraThread__OperationThread_P1);
	I_SimpleProperty(const osg::Vec4 &, ClearAccum, 
	                 __C5_osg_Vec4_R1__getClearAccum, 
	                 __void__setClearAccum__C5_osg_Vec4_R1);
	I_SimpleProperty(const osg::Vec4 &, ClearColor, 
	                 __C5_osg_Vec4_R1__getClearColor, 
	                 __void__setClearColor__C5_osg_Vec4_R1);
	I_SimpleProperty(double, ClearDepth, 
	                 __double__getClearDepth, 
	                 __void__setClearDepth__double);
	I_SimpleProperty(GLbitfield, ClearMask, 
	                 __GLbitfield__getClearMask, 
	                 __void__setClearMask__GLbitfield);
	I_SimpleProperty(int, ClearStencil, 
	                 __int__getClearStencil, 
	                 __void__setClearStencil__int);
	I_SimpleProperty(osg::ColorMask *, ColorMask, 
	                 __ColorMask_P1__getColorMask, 
	                 __void__setColorMask__osg_ColorMask_P1);
	I_SimpleProperty(OpenThreads::Mutex *, DataChangeMutex, 
	                 __OpenThreads_Mutex_P1__getDataChangeMutex, 
	                 0);
	I_SimpleProperty(osg::DisplaySettings *, DisplaySettings, 
	                 __osg_DisplaySettings_P1__getDisplaySettings, 
	                 __void__setDisplaySettings__osg_DisplaySettings_P1);
	I_SimpleProperty(GLenum, DrawBuffer, 
	                 __GLenum__getDrawBuffer, 
	                 __void__setDrawBuffer__GLenum);
	I_SimpleProperty(osg::Camera::DrawCallback *, FinalDrawCallback, 
	                 __DrawCallback_P1__getFinalDrawCallback, 
	                 __void__setFinalDrawCallback__DrawCallback_P1);
	I_SimpleProperty(osg::GraphicsContext *, GraphicsContext, 
	                 __GraphicsContext_P1__getGraphicsContext, 
	                 __void__setGraphicsContext__GraphicsContext_P1);
	I_SimpleProperty(osg::Camera::ImplicitBufferAttachmentMask, ImplicitBufferAttachmentRenderMask, 
	                 0, 
	                 __void__setImplicitBufferAttachmentRenderMask__ImplicitBufferAttachmentMask);
	I_SimpleProperty(osg::Camera::ImplicitBufferAttachmentMask, ImplicitBufferAttachmentResolveMask, 
	                 0, 
	                 __void__setImplicitBufferAttachmentResolveMask__ImplicitBufferAttachmentMask);
	I_SimpleProperty(osg::Camera::DrawCallback *, InitialDrawCallback, 
	                 __DrawCallback_P1__getInitialDrawCallback, 
	                 __void__setInitialDrawCallback__DrawCallback_P1);
	I_SimpleProperty(osg::Matrixd, InverseViewMatrix, 
	                 __Matrixd__getInverseViewMatrix, 
	                 0);
	I_SimpleProperty(osg::Camera::DrawCallback *, PostDrawCallback, 
	                 __DrawCallback_P1__getPostDrawCallback, 
	                 __void__setPostDrawCallback__DrawCallback_P1);
	I_SimpleProperty(osg::Camera::DrawCallback *, PreDrawCallback, 
	                 __DrawCallback_P1__getPreDrawCallback, 
	                 __void__setPreDrawCallback__DrawCallback_P1);
	I_SimpleProperty(const osg::Matrixd &, ProjectionMatrix, 
	                 __C5_osg_Matrixd_R1__getProjectionMatrix, 
	                 __void__setProjectionMatrix__C5_osg_Matrixd_R1);
	I_SimpleProperty(osg::Camera::ProjectionResizePolicy, ProjectionResizePolicy, 
	                 __ProjectionResizePolicy__getProjectionResizePolicy, 
	                 __void__setProjectionResizePolicy__ProjectionResizePolicy);
	I_SimpleProperty(GLenum, ReadBuffer, 
	                 __GLenum__getReadBuffer, 
	                 __void__setReadBuffer__GLenum);
	I_SimpleProperty(osg::Camera::RenderOrder, RenderOrder, 
	                 __RenderOrder__getRenderOrder, 
	                 0);
	I_SimpleProperty(int, RenderOrderNum, 
	                 __int__getRenderOrderNum, 
	                 0);
	I_SimpleProperty(osg::Camera::RenderTargetImplementation, RenderTargetFallback, 
	                 __RenderTargetImplementation__getRenderTargetFallback, 
	                 0);
	I_SimpleProperty(osg::Camera::RenderTargetImplementation, RenderTargetImplementation, 
	                 __RenderTargetImplementation__getRenderTargetImplementation, 
	                 __void__setRenderTargetImplementation__RenderTargetImplementation);
	I_SimpleProperty(osg::GraphicsOperation *, Renderer, 
	                 __osg_GraphicsOperation_P1__getRenderer, 
	                 __void__setRenderer__osg_GraphicsOperation_P1);
	I_SimpleProperty(osg::Object *, RenderingCache, 
	                 __osg_Object_P1__getRenderingCache, 
	                 __void__setRenderingCache__osg_Object_P1);
	I_SimpleProperty(osg::Stats *, Stats, 
	                 __osg_Stats_P1__getStats, 
	                 __void__setStats__osg_Stats_P1);
	I_SimpleProperty(osg::Camera::TransformOrder, TransformOrder, 
	                 __TransformOrder__getTransformOrder, 
	                 __void__setTransformOrder__TransformOrder);
	I_SimpleProperty(osg::View *, View, 
	                 __View_P1__getView, 
	                 __void__setView__View_P1);
	I_SimpleProperty(const osg::Matrixd &, ViewMatrix, 
	                 __C5_osg_Matrixd_R1__getViewMatrix, 
	                 __void__setViewMatrix__C5_osg_Matrixd_R1);
	I_SimpleProperty(osg::Viewport *, Viewport, 
	                 __Viewport_P1__getViewport, 
	                 __void__setViewport__osg_Viewport_P1);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::Camera::Attachment)
	I_DeclaringFile("osg/Camera");
	I_Constructor0(____Attachment,
	               "",
	               "");
	I_Method0(int, width,
	          Properties::NON_VIRTUAL,
	          __int__width,
	          "",
	          "");
	I_Method0(int, height,
	          Properties::NON_VIRTUAL,
	          __int__height,
	          "",
	          "");
	I_Method0(int, depth,
	          Properties::NON_VIRTUAL,
	          __int__depth,
	          "",
	          "");
	I_PublicMemberProperty(GLenum, _internalFormat);
	I_PublicMemberProperty(osg::ref_ptr< osg::Image >, _image);
	I_PublicMemberProperty(osg::ref_ptr< osg::Texture >, _texture);
	I_PublicMemberProperty(unsigned int, _level);
	I_PublicMemberProperty(unsigned int, _face);
	I_PublicMemberProperty(bool, _mipMapGeneration);
	I_PublicMemberProperty(unsigned int, _multisampleSamples);
	I_PublicMemberProperty(unsigned int, _multisampleColorSamples);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osg::Camera::DrawCallback)
	I_DeclaringFile("osg/Camera");
	I_VirtualBaseType(osg::Object);
	I_Constructor0(____DrawCallback,
	               "",
	               "");
	I_Constructor2(IN, const osg::Camera::DrawCallback &, x, IN, const osg::CopyOp &, x,
	               ____DrawCallback__C5_DrawCallback_R1__C5_CopyOp_R1,
	               "",
	               "");
	I_Method0(osg::Object *, cloneType,
	          Properties::VIRTUAL,
	          __osg_Object_P1__cloneType,
	          "Clone the type of an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, x,
	          Properties::VIRTUAL,
	          __osg_Object_P1__clone__C5_osg_CopyOp_R1,
	          "Clone an object, with Object* return type. ",
	          "Must be defined by derived classes. ");
	I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
	          Properties::VIRTUAL,
	          __bool__isSameKindAs__C5_osg_Object_P1,
	          "",
	          "");
	I_Method0(const char *, libraryName,
	          Properties::VIRTUAL,
	          __C5_char_P1__libraryName,
	          "return the name of the object's library. ",
	          "Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. ");
	I_Method0(const char *, className,
	          Properties::VIRTUAL,
	          __C5_char_P1__className,
	          "return the name of the object's class type. ",
	          "Must be defined by derived classes. ");
END_REFLECTOR

STD_MAP_REFLECTOR(std::map< osg::Camera::BufferComponent COMMA  osg::Camera::Attachment >)

