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

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

#include <osg/AlphaFunc>
#include <osg/CopyOp>
#include <osg/NodeVisitor>
#include <osg/Object>
#include <osg/TransferFunction>
#include <osg/Uniform>
#include <osgGA/GUIActionAdapter>
#include <osgGA/GUIEventAdapter>
#include <osgVolume/Property>

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

BEGIN_OBJECT_REFLECTOR(osgVolume::AlphaFuncProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::ScalarProperty);
	I_ConstructorWithDefaults1(IN, float, value, 1.0,
	                           Properties::NON_EXPLICIT,
	                           ____AlphaFuncProperty__float,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osgVolume::AlphaFuncProperty &, isp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____AlphaFuncProperty__C5_AlphaFuncProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
	I_Method1(void, setValue, IN, float, v,
	          Properties::VIRTUAL,
	          __void__setValue__float,
	          "Set the value. ",
	          "");
	I_Method0(osg::AlphaFunc *, getAlphaFunc,
	          Properties::NON_VIRTUAL,
	          __osg_AlphaFunc_P1__getAlphaFunc,
	          "",
	          "");
	I_Method0(const osg::AlphaFunc *, getAlphaFunc,
	          Properties::NON_VIRTUAL,
	          __C5_osg_AlphaFunc_P1__getAlphaFunc,
	          "",
	          "");
	I_SimpleProperty(osg::AlphaFunc *, AlphaFunc, 
	                 __osg_AlphaFunc_P1__getAlphaFunc, 
	                 0);
	I_SimpleProperty(float, Value, 
	                 0, 
	                 __void__setValue__float);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::CollectPropertiesVisitor)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::PropertyVisitor);
	I_ConstructorWithDefaults1(IN, bool, traverseOnlyActiveChildren, true,
	                           Properties::NON_EXPLICIT,
	                           ____CollectPropertiesVisitor__bool,
	                           "",
	                           "");
	I_Method1(void, apply, IN, osgVolume::Property &, x,
	          Properties::VIRTUAL,
	          __void__apply__Property_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::TransferFunctionProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__TransferFunctionProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::ScalarProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__ScalarProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::IsoSurfaceProperty &, iso,
	          Properties::VIRTUAL,
	          __void__apply__IsoSurfaceProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::AlphaFuncProperty &, af,
	          Properties::VIRTUAL,
	          __void__apply__AlphaFuncProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::MaximumIntensityProjectionProperty &, mip,
	          Properties::VIRTUAL,
	          __void__apply__MaximumIntensityProjectionProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::LightingProperty &, lp,
	          Properties::VIRTUAL,
	          __void__apply__LightingProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::SampleDensityProperty &, sdp,
	          Properties::VIRTUAL,
	          __void__apply__SampleDensityProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::TransparencyProperty &, tp,
	          Properties::VIRTUAL,
	          __void__apply__TransparencyProperty_R1,
	          "",
	          "");
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::TransferFunctionProperty >, _tfProperty);
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::IsoSurfaceProperty >, _isoProperty);
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::AlphaFuncProperty >, _afProperty);
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::MaximumIntensityProjectionProperty >, _mipProperty);
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::LightingProperty >, _lightingProperty);
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::SampleDensityProperty >, _sampleDensityProperty);
	I_PublicMemberProperty(osg::ref_ptr< osgVolume::TransparencyProperty >, _transparencyProperty);
END_REFLECTOR

TYPE_NAME_ALIAS(std::vector< osg::ref_ptr< osgVolume::Property > >, osgVolume::CompositeProperty::Properties)

BEGIN_OBJECT_REFLECTOR(osgVolume::CompositeProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::Property);
	I_Constructor0(____CompositeProperty,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::CompositeProperty &, compositeProperty, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____CompositeProperty__C5_CompositeProperty_R1__C5_osg_CopyOp_R1,
	                           "Copy constructor using CopyOp to manage deep vs shallow copy. ",
	                           "");
	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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
	I_Method0(void, clear,
	          Properties::NON_VIRTUAL,
	          __void__clear,
	          "",
	          "");
	I_Method2(void, setProperty, IN, unsigned int, i, IN, osgVolume::Property *, property,
	          Properties::NON_VIRTUAL,
	          __void__setProperty__unsigned_int__Property_P1,
	          "",
	          "");
	I_Method1(osgVolume::Property *, getProperty, IN, unsigned int, i,
	          Properties::NON_VIRTUAL,
	          __Property_P1__getProperty__unsigned_int,
	          "",
	          "");
	I_Method1(const osgVolume::Property *, getProperty, IN, unsigned int, i,
	          Properties::NON_VIRTUAL,
	          __C5_Property_P1__getProperty__unsigned_int,
	          "",
	          "");
	I_Method1(void, addProperty, IN, osgVolume::Property *, property,
	          Properties::NON_VIRTUAL,
	          __void__addProperty__Property_P1,
	          "",
	          "");
	I_Method1(void, removeProperty, IN, unsigned int, i,
	          Properties::NON_VIRTUAL,
	          __void__removeProperty__unsigned_int,
	          "",
	          "");
	I_Method0(unsigned int, getNumProperties,
	          Properties::NON_VIRTUAL,
	          __unsigned_int__getNumProperties,
	          "",
	          "");
	I_IndexedProperty(osgVolume::Property *, Property, 
	                  __Property_P1__getProperty__unsigned_int, 
	                  __void__setProperty__unsigned_int__Property_P1, 
	                  0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::IsoSurfaceProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::ScalarProperty);
	I_ConstructorWithDefaults1(IN, float, value, 1.0,
	                           Properties::NON_EXPLICIT,
	                           ____IsoSurfaceProperty__float,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osgVolume::IsoSurfaceProperty &, isp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____IsoSurfaceProperty__C5_IsoSurfaceProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::LightingProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::Property);
	I_Constructor0(____LightingProperty,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::LightingProperty &, mipp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____LightingProperty__C5_LightingProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::MaximumIntensityProjectionProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::Property);
	I_Constructor0(____MaximumIntensityProjectionProperty,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::MaximumIntensityProjectionProperty &, mipp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____MaximumIntensityProjectionProperty__C5_MaximumIntensityProjectionProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::Property)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osg::Object);
	I_Constructor0(____Property,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::Property &, x, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____Property__C5_Property_R1__C5_osg_CopyOp_R1,
	                           "Copy constructor using CopyOp to manage deep vs shallow copy. ",
	                           "");
	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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::PropertyAdjustmentCallback)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgGA::GUIEventHandler);
	I_BaseType(osg::StateSet::Callback);
	I_Constructor0(____PropertyAdjustmentCallback,
	               "",
	               "");
	I_Constructor2(IN, const osgVolume::PropertyAdjustmentCallback &, x, IN, const osg::CopyOp &, x,
	               ____PropertyAdjustmentCallback__C5_PropertyAdjustmentCallback_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, setKeyEventCycleForward, IN, int, key,
	          Properties::NON_VIRTUAL,
	          __void__setKeyEventCycleForward__int,
	          "",
	          "");
	I_Method0(int, getKeyEventCyclesForward,
	          Properties::NON_VIRTUAL,
	          __int__getKeyEventCyclesForward,
	          "",
	          "");
	I_Method1(void, setKeyEventCycleBackward, IN, int, key,
	          Properties::NON_VIRTUAL,
	          __void__setKeyEventCycleBackward__int,
	          "",
	          "");
	I_Method0(int, getKeyEventCyclesBackward,
	          Properties::NON_VIRTUAL,
	          __int__getKeyEventCyclesBackward,
	          "",
	          "");
	I_Method1(void, setKeyEventActivatesTransparencyAdjustment, IN, int, key,
	          Properties::NON_VIRTUAL,
	          __void__setKeyEventActivatesTransparencyAdjustment__int,
	          "",
	          "");
	I_Method0(int, getKeyEventActivatesTransparencyAdjustment,
	          Properties::NON_VIRTUAL,
	          __int__getKeyEventActivatesTransparencyAdjustment,
	          "",
	          "");
	I_Method1(void, setKeyEventActivatesSampleDensityAdjustment, IN, int, key,
	          Properties::NON_VIRTUAL,
	          __void__setKeyEventActivatesSampleDensityAdjustment__int,
	          "",
	          "");
	I_Method0(int, getKeyEventActivatesSampleAdjustment,
	          Properties::NON_VIRTUAL,
	          __int__getKeyEventActivatesSampleAdjustment,
	          "",
	          "");
	I_Method1(void, setKeyEventActivatesAlphaFuncAdjustment, IN, int, key,
	          Properties::NON_VIRTUAL,
	          __void__setKeyEventActivatesAlphaFuncAdjustment__int,
	          "",
	          "");
	I_Method0(int, getKeyEventActivatesAlphaFuncAdjustment,
	          Properties::NON_VIRTUAL,
	          __int__getKeyEventActivatesAlphaFuncAdjustment,
	          "",
	          "");
	I_Method4(bool, handle, IN, const osgGA::GUIEventAdapter &, ea, IN, osgGA::GUIActionAdapter &, x, IN, osg::Object *, object, IN, osg::NodeVisitor *, x,
	          Properties::VIRTUAL,
	          __bool__handle__C5_osgGA_GUIEventAdapter_R1__osgGA_GUIActionAdapter_R1__osg_Object_P1__osg_NodeVisitor_P1,
	          "Handle events, return true if handled, false otherwise. ",
	          "");
	I_SimpleProperty(int, KeyEventActivatesAlphaFuncAdjustment, 
	                 __int__getKeyEventActivatesAlphaFuncAdjustment, 
	                 __void__setKeyEventActivatesAlphaFuncAdjustment__int);
	I_SimpleProperty(int, KeyEventActivatesSampleAdjustment, 
	                 __int__getKeyEventActivatesSampleAdjustment, 
	                 0);
	I_SimpleProperty(int, KeyEventActivatesSampleDensityAdjustment, 
	                 0, 
	                 __void__setKeyEventActivatesSampleDensityAdjustment__int);
	I_SimpleProperty(int, KeyEventActivatesTransparencyAdjustment, 
	                 __int__getKeyEventActivatesTransparencyAdjustment, 
	                 __void__setKeyEventActivatesTransparencyAdjustment__int);
	I_SimpleProperty(int, KeyEventCycleBackward, 
	                 0, 
	                 __void__setKeyEventCycleBackward__int);
	I_SimpleProperty(int, KeyEventCycleForward, 
	                 0, 
	                 __void__setKeyEventCycleForward__int);
	I_SimpleProperty(int, KeyEventCyclesBackward, 
	                 __int__getKeyEventCyclesBackward, 
	                 0);
	I_SimpleProperty(int, KeyEventCyclesForward, 
	                 __int__getKeyEventCyclesForward, 
	                 0);
	I_PublicMemberProperty(int, _cyleForwardKey);
	I_PublicMemberProperty(int, _cyleBackwardKey);
	I_PublicMemberProperty(int, _transparencyKey);
	I_PublicMemberProperty(int, _alphaFuncKey);
	I_PublicMemberProperty(int, _sampleDensityKey);
	I_PublicMemberProperty(bool, _updateTransparency);
	I_PublicMemberProperty(bool, _updateAlphaCutOff);
	I_PublicMemberProperty(bool, _updateSampleDensity);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osgVolume::PropertyVisitor)
	I_DeclaringFile("osgVolume/Property");
	I_ConstructorWithDefaults1(IN, bool, traverseOnlyActiveChildren, true,
	                           Properties::NON_EXPLICIT,
	                           ____PropertyVisitor__bool,
	                           "",
	                           "");
	I_Method1(void, apply, IN, osgVolume::Property &, x,
	          Properties::VIRTUAL,
	          __void__apply__Property_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::CompositeProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__CompositeProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::SwitchProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__SwitchProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::TransferFunctionProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__TransferFunctionProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::ScalarProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__ScalarProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::IsoSurfaceProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__IsoSurfaceProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::AlphaFuncProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__AlphaFuncProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::MaximumIntensityProjectionProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__MaximumIntensityProjectionProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::LightingProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__LightingProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::SampleDensityProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__SampleDensityProperty_R1,
	          "",
	          "");
	I_Method1(void, apply, IN, osgVolume::TransparencyProperty &, x,
	          Properties::VIRTUAL,
	          __void__apply__TransparencyProperty_R1,
	          "",
	          "");
	I_PublicMemberProperty(bool, _traverseOnlyActiveChildren);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::SampleDensityProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::ScalarProperty);
	I_ConstructorWithDefaults1(IN, float, value, 1.0,
	                           Properties::NON_EXPLICIT,
	                           ____SampleDensityProperty__float,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osgVolume::SampleDensityProperty &, isp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____SampleDensityProperty__C5_SampleDensityProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::ScalarProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::Property);
	I_Constructor2(IN, const std::string &, scaleName, IN, float, value,
	               ____ScalarProperty__C5_std_string_R1__float,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::ScalarProperty &, scalarProperty, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____ScalarProperty__C5_ScalarProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
	I_Method1(void, setValue, IN, float, v,
	          Properties::VIRTUAL,
	          __void__setValue__float,
	          "Set the value. ",
	          "");
	I_Method0(float, getValue,
	          Properties::NON_VIRTUAL,
	          __float__getValue,
	          "Get the value. ",
	          "");
	I_Method0(osg::Uniform *, getUniform,
	          Properties::NON_VIRTUAL,
	          __osg_Uniform_P1__getUniform,
	          "Get the underlying uniform. ",
	          "");
	I_Method0(const osg::Uniform *, getUniform,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Uniform_P1__getUniform,
	          "Get the underlying uniform. ",
	          "");
	I_ProtectedConstructor0(____ScalarProperty,
	                        "",
	                        "");
	I_SimpleProperty(osg::Uniform *, Uniform, 
	                 __osg_Uniform_P1__getUniform, 
	                 0);
	I_SimpleProperty(float, Value, 
	                 __float__getValue, 
	                 __void__setValue__float);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::SwitchProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::CompositeProperty);
	I_Constructor0(____SwitchProperty,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::SwitchProperty &, switchProperty, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____SwitchProperty__C5_SwitchProperty_R1__C5_osg_CopyOp_R1,
	                           "Copy constructor using CopyOp to manage deep vs shallow copy. ",
	                           "");
	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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
	I_Method1(void, setActiveProperty, IN, int, i,
	          Properties::NON_VIRTUAL,
	          __void__setActiveProperty__int,
	          "Set which child property is active. ",
	          "-1 disables all children. ");
	I_Method0(int, getActiveProperty,
	          Properties::NON_VIRTUAL,
	          __int__getActiveProperty,
	          "Get the active property. ",
	          "");
	I_SimpleProperty(int, ActiveProperty, 
	                 __int__getActiveProperty, 
	                 __void__setActiveProperty__int);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::TransferFunctionProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::Property);
	I_ConstructorWithDefaults1(IN, osg::TransferFunction *, tf, 0,
	                           Properties::NON_EXPLICIT,
	                           ____TransferFunctionProperty__osg_TransferFunction_P1,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osgVolume::TransferFunctionProperty &, tfp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TransferFunctionProperty__C5_TransferFunctionProperty_R1__C5_osg_CopyOp_R1,
	                           "Copy constructor using CopyOp to manage deep vs shallow copy. ",
	                           "");
	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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
	I_Method1(void, setTransferFunction, IN, osg::TransferFunction *, tf,
	          Properties::NON_VIRTUAL,
	          __void__setTransferFunction__osg_TransferFunction_P1,
	          "Set the transfer function. ",
	          "");
	I_Method0(osg::TransferFunction *, getTransferFunction,
	          Properties::NON_VIRTUAL,
	          __osg_TransferFunction_P1__getTransferFunction,
	          "Get the transfer function. ",
	          "");
	I_Method0(const osg::TransferFunction *, getTransferFunction,
	          Properties::NON_VIRTUAL,
	          __C5_osg_TransferFunction_P1__getTransferFunction,
	          "Get the const transfer function. ",
	          "");
	I_SimpleProperty(osg::TransferFunction *, TransferFunction, 
	                 __osg_TransferFunction_P1__getTransferFunction, 
	                 __void__setTransferFunction__osg_TransferFunction_P1);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::TransparencyProperty)
	I_DeclaringFile("osgVolume/Property");
	I_BaseType(osgVolume::ScalarProperty);
	I_ConstructorWithDefaults1(IN, float, value, 1.0,
	                           Properties::NON_EXPLICIT,
	                           ____TransparencyProperty__float,
	                           "",
	                           "");
	I_ConstructorWithDefaults2(IN, const osgVolume::TransparencyProperty &, isp, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____TransparencyProperty__C5_TransparencyProperty_R1__C5_osg_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 &, copyop,
	          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. ");
	I_Method1(void, accept, IN, osgVolume::PropertyVisitor &, pv,
	          Properties::VIRTUAL,
	          __void__accept__PropertyVisitor_R1,
	          "",
	          "");
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ref_ptr< osgVolume::Property >)
	I_DeclaringFile("osg/ref_ptr");
	I_Constructor0(____ref_ptr,
	               "",
	               "");
	I_Constructor1(IN, osgVolume::Property *, ptr,
	               Properties::NON_EXPLICIT,
	               ____ref_ptr__T_P1,
	               "",
	               "");
	I_Constructor1(IN, const osg::ref_ptr< osgVolume::Property > &, rp,
	               Properties::NON_EXPLICIT,
	               ____ref_ptr__C5_ref_ptr_R1,
	               "",
	               "");
	I_Method0(osgVolume::Property *, get,
	          Properties::NON_VIRTUAL,
	          __T_P1__get,
	          "",
	          "");
	I_Method0(bool, valid,
	          Properties::NON_VIRTUAL,
	          __bool__valid,
	          "",
	          "");
	I_Method0(osgVolume::Property *, release,
	          Properties::NON_VIRTUAL,
	          __T_P1__release,
	          "",
	          "");
	I_Method1(void, swap, IN, osg::ref_ptr< osgVolume::Property > &, rp,
	          Properties::NON_VIRTUAL,
	          __void__swap__ref_ptr_R1,
	          "",
	          "");
	I_SimpleProperty(osgVolume::Property *, , 
	                 __T_P1__get, 
	                 0);
END_REFLECTOR

STD_VECTOR_REFLECTOR(std::vector< osg::ref_ptr< osgVolume::Property > >)

