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

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

#include <osg/BoundingSphere>
#include <osg/CopyOp>
#include <osg/NodeVisitor>
#include <osg/Object>
#include <osgVolume/Layer>
#include <osgVolume/Locator>
#include <osgVolume/Volume>
#include <osgVolume/VolumeTechnique>
#include <osgVolume/VolumeTile>

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

#include <osg/observer_ptr>
        
BEGIN_VALUE_REFLECTOR(osgVolume::TileID)
	I_DeclaringFile("osgVolume/VolumeTile");
	I_Constructor0(____TileID,
	               "",
	               "");
	I_Constructor4(IN, int, in_level, IN, int, in_x, IN, int, in_y, IN, int, in_z,
	               ____TileID__int__int__int__int,
	               "",
	               "");
	I_Method0(bool, valid,
	          Properties::NON_VIRTUAL,
	          __bool__valid,
	          "",
	          "");
	I_PublicMemberProperty(int, level);
	I_PublicMemberProperty(int, x);
	I_PublicMemberProperty(int, y);
	I_PublicMemberProperty(int, z);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgVolume::VolumeTile)
	I_DeclaringFile("osgVolume/VolumeTile");
	I_BaseType(osg::Group);
	I_Constructor0(____VolumeTile,
	               "",
	               "");
	I_ConstructorWithDefaults2(IN, const osgVolume::VolumeTile &, x, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
	                           ____VolumeTile__C5_VolumeTile_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 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, traverse, IN, osg::NodeVisitor &, x,
	          Properties::VIRTUAL,
	          __void__traverse__osg_NodeVisitor_R1,
	          "Traverse downwards : calls children's accept method with NodeVisitor. ",
	          "");
	I_Method0(void, init,
	          Properties::NON_VIRTUAL,
	          __void__init,
	          "Call init on any attached TerrainTechnique. ",
	          "");
	I_Method1(void, setVolume, IN, osgVolume::Volume *, ts,
	          Properties::NON_VIRTUAL,
	          __void__setVolume__Volume_P1,
	          "Set the Volume that this Volume tile is a member of. ",
	          "");
	I_Method0(osgVolume::Volume *, getVolume,
	          Properties::NON_VIRTUAL,
	          __Volume_P1__getVolume,
	          "Get the Volume that this Volume tile is a member of. ",
	          "");
	I_Method0(const osgVolume::Volume *, getVolume,
	          Properties::NON_VIRTUAL,
	          __C5_Volume_P1__getVolume,
	          "Get the const Volume that this Volume tile is a member of. ",
	          "");
	I_Method1(void, setTileID, IN, const osgVolume::TileID &, tileID,
	          Properties::NON_VIRTUAL,
	          __void__setTileID__C5_TileID_R1,
	          "Set the TileID (layer, x,y,z) of the VolumeTile. ",
	          "The TileID is used so it can be located by its neighbours via the enclosing Volume node that manages a map of TileID to VolumeTiles. ");
	I_Method0(const osgVolume::TileID &, getTileID,
	          Properties::NON_VIRTUAL,
	          __C5_TileID_R1__getTileID,
	          "Get the TileID (layer, x,y,z) of the VolumeTile. ",
	          "");
	I_Method1(void, setLocator, IN, osgVolume::Locator *, locator,
	          Properties::NON_VIRTUAL,
	          __void__setLocator__Locator_P1,
	          "",
	          "");
	I_Method0(osgVolume::Locator *, getLocator,
	          Properties::NON_VIRTUAL,
	          __Locator_P1__getLocator,
	          "",
	          "");
	I_Method0(const osgVolume::Locator *, getLocator,
	          Properties::NON_VIRTUAL,
	          __C5_Locator_P1__getLocator,
	          "",
	          "");
	I_Method1(void, setLayer, IN, osgVolume::Layer *, layer,
	          Properties::NON_VIRTUAL,
	          __void__setLayer__Layer_P1,
	          "",
	          "");
	I_Method0(osgVolume::Layer *, getLayer,
	          Properties::NON_VIRTUAL,
	          __Layer_P1__getLayer,
	          "",
	          "");
	I_Method0(const osgVolume::Layer *, getLayer,
	          Properties::NON_VIRTUAL,
	          __C5_Layer_P1__getLayer,
	          "",
	          "");
	I_Method1(void, setVolumeTechnique, IN, osgVolume::VolumeTechnique *, VolumeTechnique,
	          Properties::NON_VIRTUAL,
	          __void__setVolumeTechnique__VolumeTechnique_P1,
	          "Set the VolumeTechnique that will be used to render this tile. ",
	          "");
	I_Method0(osgVolume::VolumeTechnique *, getVolumeTechnique,
	          Properties::NON_VIRTUAL,
	          __VolumeTechnique_P1__getVolumeTechnique,
	          "Get the VolumeTechnique that will be used to render this tile. ",
	          "");
	I_Method0(const osgVolume::VolumeTechnique *, getVolumeTechnique,
	          Properties::NON_VIRTUAL,
	          __C5_VolumeTechnique_P1__getVolumeTechnique,
	          "Get the const VolumeTechnique that will be used to render this tile. ",
	          "");
	I_Method1(void, setDirty, IN, bool, dirty,
	          Properties::NON_VIRTUAL,
	          __void__setDirty__bool,
	          "Set the dirty flag on/off. ",
	          "");
	I_Method0(bool, getDirty,
	          Properties::NON_VIRTUAL,
	          __bool__getDirty,
	          "return true if the tile is dirty and needs to be updated, ",
	          "");
	I_Method0(osg::BoundingSphere, computeBound,
	          Properties::VIRTUAL,
	          __osg_BoundingSphere__computeBound,
	          "Compute the bounding sphere around Node's geometry or children. ",
	          "This method is automatically called by getBound() when the bounding sphere has been marked dirty via dirtyBound(). ");
	I_SimpleProperty(bool, Dirty, 
	                 __bool__getDirty, 
	                 __void__setDirty__bool);
	I_SimpleProperty(osgVolume::Layer *, Layer, 
	                 __Layer_P1__getLayer, 
	                 __void__setLayer__Layer_P1);
	I_SimpleProperty(osgVolume::Locator *, Locator, 
	                 __Locator_P1__getLocator, 
	                 __void__setLocator__Locator_P1);
	I_SimpleProperty(const osgVolume::TileID &, TileID, 
	                 __C5_TileID_R1__getTileID, 
	                 __void__setTileID__C5_TileID_R1);
	I_SimpleProperty(osgVolume::Volume *, Volume, 
	                 __Volume_P1__getVolume, 
	                 __void__setVolume__Volume_P1);
	I_SimpleProperty(osgVolume::VolumeTechnique *, VolumeTechnique, 
	                 __VolumeTechnique_P1__getVolumeTechnique, 
	                 __void__setVolumeTechnique__VolumeTechnique_P1);
END_REFLECTOR

