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

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

#include <osg/LineSegment>
#include <osg/Matrix>
#include <osg/Plane>
#include <osg/Quat>
#include <osg/Shape>
#include <osg/Vec3d>
#include <osgManipulator/Dragger>
#include <osgManipulator/Projector>

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

BEGIN_OBJECT_REFLECTOR(osgManipulator::CylinderPlaneProjector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osgManipulator::CylinderProjector);
	I_Constructor0(____CylinderPlaneProjector,
	               "",
	               "");
	I_Constructor1(IN, osg::Cylinder *, cylinder,
	               Properties::NON_EXPLICIT,
	               ____CylinderPlaneProjector__osg_Cylinder_P1,
	               "",
	               "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto the given plane. ",
	          "Returns true on successful projection. ");
	I_Method0(bool, isProjectionOnCylinder,
	          Properties::NON_VIRTUAL,
	          __bool__isProjectionOnCylinder,
	          "Returns true if the previous projection was on the cylinder and false if the projection was on the plane. ",
	          "");
	I_Method4(osg::Quat, getRotation, IN, const osg::Vec3d &, p1, IN, bool, p1OnCyl, IN, const osg::Vec3d &, p2, IN, bool, p2OnCyl,
	          Properties::NON_VIRTUAL,
	          __osg_Quat__getRotation__C5_osg_Vec3d_R1__bool__C5_osg_Vec3d_R1__bool,
	          "",
	          "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgManipulator::CylinderProjector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osgManipulator::Projector);
	I_Constructor0(____CylinderProjector,
	               "",
	               "");
	I_Constructor1(IN, osg::Cylinder *, cylinder,
	               Properties::NON_EXPLICIT,
	               ____CylinderProjector__osg_Cylinder_P1,
	               "",
	               "");
	I_Method1(void, setCylinder, IN, osg::Cylinder *, cylinder,
	          Properties::NON_VIRTUAL,
	          __void__setCylinder__osg_Cylinder_P1,
	          "",
	          "");
	I_Method0(const osg::Cylinder *, getCylinder,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Cylinder_P1__getCylinder,
	          "",
	          "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto the given plane. ",
	          "Returns true on successful projection. ");
	I_Method2(bool, isPointInFront, IN, const osgManipulator::PointerInfo &, pi, IN, const osg::Matrix &, localToWorld,
	          Properties::NON_VIRTUAL,
	          __bool__isPointInFront__C5_PointerInfo_R1__C5_osg_Matrix_R1,
	          "Returns true is the point is in front of the cylinder given the eye direction. ",
	          "");
	I_Method1(void, setFront, IN, bool, front,
	          Properties::NON_VIRTUAL,
	          __void__setFront__bool,
	          "",
	          "");
	I_SimpleProperty(osg::Cylinder *, Cylinder, 
	                 0, 
	                 __void__setCylinder__osg_Cylinder_P1);
	I_SimpleProperty(bool, Front, 
	                 0, 
	                 __void__setFront__bool);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgManipulator::LineProjector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osgManipulator::Projector);
	I_Constructor0(____LineProjector,
	               "",
	               "");
	I_Constructor2(IN, const osg::LineSegment::vec_type &, s, IN, const osg::LineSegment::vec_type &, e,
	               ____LineProjector__C5_osg_LineSegment_vec_type_R1__C5_osg_LineSegment_vec_type_R1,
	               "",
	               "");
	I_Method2(void, setLine, IN, const osg::LineSegment::vec_type &, s, IN, const osg::LineSegment::vec_type &, e,
	          Properties::NON_VIRTUAL,
	          __void__setLine__C5_osg_LineSegment_vec_type_R1__C5_osg_LineSegment_vec_type_R1,
	          "",
	          "");
	I_Method0(const osg::LineSegment::vec_type &, getLineStart,
	          Properties::NON_VIRTUAL,
	          __C5_osg_LineSegment_vec_type_R1__getLineStart,
	          "",
	          "");
	I_Method0(osg::LineSegment::vec_type &, getLineStart,
	          Properties::NON_VIRTUAL,
	          __osg_LineSegment_vec_type_R1__getLineStart,
	          "",
	          "");
	I_Method0(const osg::LineSegment::vec_type &, getLineEnd,
	          Properties::NON_VIRTUAL,
	          __C5_osg_LineSegment_vec_type_R1__getLineEnd,
	          "",
	          "");
	I_Method0(osg::LineSegment::vec_type &, getLineEnd,
	          Properties::NON_VIRTUAL,
	          __osg_LineSegment_vec_type_R1__getLineEnd,
	          "",
	          "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto the given line. ",
	          "Returns true on successful projection. ");
	I_SimpleProperty(osg::LineSegment::vec_type &, LineEnd, 
	                 __osg_LineSegment_vec_type_R1__getLineEnd, 
	                 0);
	I_SimpleProperty(osg::LineSegment::vec_type &, LineStart, 
	                 __osg_LineSegment_vec_type_R1__getLineStart, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgManipulator::PlaneProjector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osgManipulator::Projector);
	I_Constructor0(____PlaneProjector,
	               "",
	               "");
	I_Constructor1(IN, const osg::Plane &, plane,
	               Properties::NON_EXPLICIT,
	               ____PlaneProjector__C5_osg_Plane_R1,
	               "",
	               "");
	I_Method1(void, setPlane, IN, const osg::Plane &, plane,
	          Properties::NON_VIRTUAL,
	          __void__setPlane__C5_osg_Plane_R1,
	          "",
	          "");
	I_Method0(const osg::Plane &, getPlane,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Plane_R1__getPlane,
	          "",
	          "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto the given plane. ",
	          "Returns true on successful projection. ");
	I_SimpleProperty(const osg::Plane &, Plane, 
	                 __C5_osg_Plane_R1__getPlane, 
	                 __void__setPlane__C5_osg_Plane_R1);
END_REFLECTOR

BEGIN_ABSTRACT_OBJECT_REFLECTOR(osgManipulator::Projector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osg::Referenced);
	I_Constructor0(____Projector,
	               "",
	               "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::PURE_VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object/world coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto some shape or geometry (implemented in derived classes). ",
	          "SceneView in used for i projecting window coordinates into object coordinates and vice versa. Returns true on successful projection. ");
	I_Method1(void, setLocalToWorld, IN, const osg::Matrix &, localToWorld,
	          Properties::NON_VIRTUAL,
	          __void__setLocalToWorld__C5_osg_Matrix_R1,
	          "Sets the matrix for transforming the projector's local coordinate system to the world/object coordinate system. ",
	          "");
	I_Method0(const osg::Matrix &, getLocalToWorld,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Matrix_R1__getLocalToWorld,
	          "Gets the matrix for transforming the projector's local coordinate system to the world/object coordinate system. ",
	          "");
	I_Method0(const osg::Matrix &, getWorldToLocal,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Matrix_R1__getWorldToLocal,
	          "Gets the matrix for transforming the world/object coordinate system to the command's local coordinate system. ",
	          "");
	I_SimpleProperty(const osg::Matrix &, LocalToWorld, 
	                 __C5_osg_Matrix_R1__getLocalToWorld, 
	                 __void__setLocalToWorld__C5_osg_Matrix_R1);
	I_SimpleProperty(const osg::Matrix &, WorldToLocal, 
	                 __C5_osg_Matrix_R1__getWorldToLocal, 
	                 0);
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgManipulator::SpherePlaneProjector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osgManipulator::SphereProjector);
	I_Constructor0(____SpherePlaneProjector,
	               "",
	               "");
	I_Constructor1(IN, osg::Sphere *, sphere,
	               Properties::NON_EXPLICIT,
	               ____SpherePlaneProjector__osg_Sphere_P1,
	               "",
	               "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto the given sphere. ",
	          "Returns true on successful projection. ");
	I_Method0(bool, isProjectionOnSphere,
	          Properties::NON_VIRTUAL,
	          __bool__isProjectionOnSphere,
	          "Returns true if the previous projection was on the sphere and false if the projection was on the plane. ",
	          "");
	I_MethodWithDefaults5(osg::Quat, getRotation, IN, const osg::Vec3d &, p1, , IN, bool, p1OnSphere, , IN, const osg::Vec3d &, p2, , IN, bool, p2OnSphere, , IN, float, radialFactor, 0.0f,
	                      Properties::NON_VIRTUAL,
	                      __osg_Quat__getRotation__C5_osg_Vec3d_R1__bool__C5_osg_Vec3d_R1__bool__float,
	                      "",
	                      "");
END_REFLECTOR

BEGIN_OBJECT_REFLECTOR(osgManipulator::SphereProjector)
	I_DeclaringFile("osgManipulator/Projector");
	I_BaseType(osgManipulator::Projector);
	I_Constructor0(____SphereProjector,
	               "",
	               "");
	I_Constructor1(IN, osg::Sphere *, sphere,
	               Properties::NON_EXPLICIT,
	               ____SphereProjector__osg_Sphere_P1,
	               "",
	               "");
	I_Method1(void, setSphere, IN, osg::Sphere *, sphere,
	          Properties::NON_VIRTUAL,
	          __void__setSphere__osg_Sphere_P1,
	          "",
	          "");
	I_Method0(const osg::Sphere *, getSphere,
	          Properties::NON_VIRTUAL,
	          __C5_osg_Sphere_P1__getSphere,
	          "",
	          "");
	I_Method2(bool, project, IN, const osgManipulator::PointerInfo &, pi, IN, osg::Vec3d &, projectedPoint,
	          Properties::VIRTUAL,
	          __bool__project__C5_PointerInfo_R1__osg_Vec3d_R1,
	          "Calculates the object coordinates (projectedPoint) of a window coordinate (pointToProject) when projected onto the given sphere. ",
	          "Returns true on successful projection. ");
	I_Method2(bool, isPointInFront, IN, const osgManipulator::PointerInfo &, pi, IN, const osg::Matrix &, localToWorld,
	          Properties::NON_VIRTUAL,
	          __bool__isPointInFront__C5_PointerInfo_R1__C5_osg_Matrix_R1,
	          "Returns true is the point is in front of the cylinder given the eye direction. ",
	          "");
	I_Method1(void, setFront, IN, bool, front,
	          Properties::NON_VIRTUAL,
	          __void__setFront__bool,
	          "",
	          "");
	I_SimpleProperty(bool, Front, 
	                 0, 
	                 __void__setFront__bool);
	I_SimpleProperty(osg::Sphere *, Sphere, 
	                 0, 
	                 __void__setSphere__osg_Sphere_P1);
END_REFLECTOR

