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

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

#include <osg/Node>
#include <osg/Vec3d>
#include <osgSim/ElevationSlice>
#include <osgSim/LineOfSight>

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

#include <osg/observer_ptr>
        
TYPE_NAME_ALIAS(std::vector< osg::Vec3d >, osgSim::ElevationSlice::Vec3dList)

TYPE_NAME_ALIAS(std::pair< double COMMA  double >, osgSim::ElevationSlice::DistanceHeight)

TYPE_NAME_ALIAS(std::vector< osgSim::ElevationSlice::DistanceHeight >, osgSim::ElevationSlice::DistanceHeightList)

BEGIN_VALUE_REFLECTOR(osgSim::ElevationSlice)
	I_DeclaringFile("osgSim/ElevationSlice");
	I_Constructor0(____ElevationSlice,
	               "",
	               "");
	I_Method1(void, setStartPoint, IN, const osg::Vec3d &, startPoint,
	          Properties::NON_VIRTUAL,
	          __void__setStartPoint__C5_osg_Vec3d_R1,
	          "Set the start point of the slice. ",
	          "");
	I_Method0(const osg::Vec3d &, getStartPoint,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3d_R1__getStartPoint,
	          "Get the start point of the slice. ",
	          "");
	I_Method1(void, setEndPoint, IN, const osg::Vec3d &, endPoint,
	          Properties::NON_VIRTUAL,
	          __void__setEndPoint__C5_osg_Vec3d_R1,
	          "Set the end point of the slice. ",
	          "");
	I_Method0(const osg::Vec3d &, getEndPoint,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Vec3d_R1__getEndPoint,
	          "Get the end point of the slice. ",
	          "");
	I_Method0(const osgSim::ElevationSlice::Vec3dList &, getIntersections,
	          Properties::NON_VIRTUAL,
	          __C5_Vec3dList_R1__getIntersections,
	          "Get the intersections in the form of a vector of Vec3d. ",
	          "");
	I_Method0(const osgSim::ElevationSlice::DistanceHeightList &, getDistanceHeightIntersections,
	          Properties::NON_VIRTUAL,
	          __C5_DistanceHeightList_R1__getDistanceHeightIntersections,
	          "Get the intersections in the form a vector of pair<double,double> representing distance along the slice and height. ",
	          "");
	I_MethodWithDefaults2(void, computeIntersections, IN, osg::Node *, scene, , IN, osg::Node::NodeMask, traversalMask, 0xffffffff,
	                      Properties::NON_VIRTUAL,
	                      __void__computeIntersections__osg_Node_P1__osg_Node_NodeMask,
	                      "Compute the intersections with the specified scene graph, the results are stored in vectors of Vec3d. ",
	                      "Note, if the topmost node is a CoordinateSystemNode then the input points are assumed to be geocentric, with the up vector defined by the EllipsoidModel attached to the CoordinateSystemNode. If the topmost node is not a CoordinateSystemNode then a local coordinates frame is assumed, with a local up vector. ");
	I_Method0(void, clearDatabaseCache,
	          Properties::NON_VIRTUAL,
	          __void__clearDatabaseCache,
	          "Clear the database cache. ",
	          "");
	I_Method1(void, setDatabaseCacheReadCallback, IN, osgSim::DatabaseCacheReadCallback *, dcrc,
	          Properties::NON_VIRTUAL,
	          __void__setDatabaseCacheReadCallback__DatabaseCacheReadCallback_P1,
	          "Set the ReadCallback that does the reading of external PagedLOD models, and caching of loaded subgraphs. ",
	          "Note, if you have multiple LineOfSight or ElevationSlice objects in use at one time then you should share a single DatabaseCacheReadCallback between all of them. ");
	I_Method0(osgSim::DatabaseCacheReadCallback *, getDatabaseCacheReadCallback,
	          Properties::NON_VIRTUAL,
	          __DatabaseCacheReadCallback_P1__getDatabaseCacheReadCallback,
	          "Get the ReadCallback that does the reading of external PagedLOD models, and caching of loaded subgraphs. ",
	          "");
	I_StaticMethodWithDefaults4(osgSim::ElevationSlice::Vec3dList, computeElevationSlice, IN, osg::Node *, scene, , IN, const osg::Vec3d &, startPoint, , IN, const osg::Vec3d &, endPoint, , IN, osg::Node::NodeMask, traversalMask, 0xffffffff,
	                            __Vec3dList__computeElevationSlice__osg_Node_P1__C5_osg_Vec3d_R1__C5_osg_Vec3d_R1__osg_Node_NodeMask_S,
	                            "Compute the vertical distance between the specified scene graph and a single HAT point. ",
	                            "");
	I_SimpleProperty(osgSim::DatabaseCacheReadCallback *, DatabaseCacheReadCallback, 
	                 __DatabaseCacheReadCallback_P1__getDatabaseCacheReadCallback, 
	                 __void__setDatabaseCacheReadCallback__DatabaseCacheReadCallback_P1);
	I_SimpleProperty(const osgSim::ElevationSlice::DistanceHeightList &, DistanceHeightIntersections, 
	                 __C5_DistanceHeightList_R1__getDistanceHeightIntersections, 
	                 0);
	I_SimpleProperty(const osg::Vec3d &, EndPoint, 
	                 __C5_osg_Vec3d_R1__getEndPoint, 
	                 __void__setEndPoint__C5_osg_Vec3d_R1);
	I_SimpleProperty(const osgSim::ElevationSlice::Vec3dList &, Intersections, 
	                 __C5_Vec3dList_R1__getIntersections, 
	                 0);
	I_SimpleProperty(const osg::Vec3d &, StartPoint, 
	                 __C5_osg_Vec3d_R1__getStartPoint, 
	                 __void__setStartPoint__C5_osg_Vec3d_R1);
END_REFLECTOR

STD_PAIR_REFLECTOR(std::pair< double COMMA  double >)

STD_VECTOR_REFLECTOR(std::vector< osgSim::ElevationSlice::DistanceHeight >)

