From 27c359a69ac1c9c521f049a8e198809b0951aa2d Mon Sep 17 00:00:00 2001 From: Paul MARTZ Date: Wed, 11 May 2011 01:04:21 +0000 Subject: [PATCH] 2.8 branch: Fix from Ryan Pavlik for wrappers. --- src/osgWrappers/genwrapper.conf | 61 +++- src/osgWrappers/osg/BoundingBox.cpp | 296 ++++++++++++++++++ src/osgWrappers/osg/BoundingSphere.cpp | 162 ++++++++++ .../osgShadow/ConvexPolyhedron.cpp | 6 +- 4 files changed, 516 insertions(+), 9 deletions(-) diff --git a/src/osgWrappers/genwrapper.conf b/src/osgWrappers/genwrapper.conf index 7d8dc1d85..562e06332 100644 --- a/src/osgWrappers/genwrapper.conf +++ b/src/osgWrappers/genwrapper.conf @@ -179,11 +179,11 @@ suppress reflector "osg::MixinVector< GLuint >" suppress reflector "OpenThreads::Atomic" suppress reflector "OpenThreads::AtomicPtr" -suppress reflector "osg::BoundingBoxImpl< osg::Vec3f >" -suppress reflector "osg::BoundingBoxImpl< osg::Vec3d >" +#suppress reflector "osg::BoundingBoxImpl< osg::Vec3f >" +#suppress reflector "osg::BoundingBoxImpl< osg::Vec3d >" -suppress reflector "osg::BoundingSphereImpl< osg::Vec3f >" -suppress reflector "osg::BoundingSphereImpl< osg::Vec3d >" +#suppress reflector "osg::BoundingSphereImpl< osg::Vec3f >" +#suppress reflector "osg::BoundingSphereImpl< osg::Vec3d >" ############################################################################# @@ -435,3 +435,56 @@ configure reflector "osgManipulator::MotionCommand" replace with "" end end +############################################################################# + +# Fix bounding box/sphere - member templates aren't supported +configure reflector "osg::BoundingBoxImpl< osg::Vec3d >" + configure method /.*_BoundingBoxImpl.*_VT_.*/ + replace with "" + end + + configure method /.*_BoundingSphereImpl.*_VT_.*/ + replace with "" + end +end + +configure reflector "osg::BoundingBoxImpl< osg::Vec3f >" + configure method /.*_BoundingBoxImpl.*_VT_.*/ + replace with "" + end + + configure method /.*_BoundingSphereImpl.*_VT_.*/ + replace with "" + end +end + +configure reflector "osg::BoundingSphereImpl< osg::Vec3d >" + configure method /.*_BoundingBoxImpl.*_VT_.*/ + replace with "" + end + + configure method /.*_BoundingSphereImpl.*_VT_.*/ + replace with "" + end +end + +configure reflector "osg::BoundingSphereImpl< osg::Vec3f >" + configure method /.*_BoundingBoxImpl.*_VT_.*/ + replace with "" + end + + configure method /.*_BoundingSphereImpl.*_VT_.*/ + replace with "" + end +end + +############################################################################# + +# Fix osgShadow wrapper crashing on load +# Might not be needed when BoundingSphere/Box is fixed. + +configure reflector "osgShadow::ConvexPolyhedron" + configure method /.*_computeBoundingBox_.*/ + replace with "" + end +end diff --git a/src/osgWrappers/osg/BoundingBox.cpp b/src/osgWrappers/osg/BoundingBox.cpp index 2b9317de4..61138341a 100644 --- a/src/osgWrappers/osg/BoundingBox.cpp +++ b/src/osgWrappers/osg/BoundingBox.cpp @@ -30,3 +30,299 @@ TYPE_NAME_ALIAS(osg::BoundingBoxImpl< osg::Vec3d >, osg::BoundingBoxd) TYPE_NAME_ALIAS(osg::BoundingBoxd, osg::BoundingBox) +BEGIN_VALUE_REFLECTOR(osg::BoundingBoxImpl< osg::Vec3d >) + I_DeclaringFile("osg/BoundingBox"); + I_Constructor0(____BoundingBoxImpl, + "Creates an uninitialized bounding box. ", + ""); + I_Constructor6(IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, xmin, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, ymin, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, zmin, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, xmax, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, ymax, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, zmax, + ____BoundingBoxImpl__value_type__value_type__value_type__value_type__value_type__value_type, + "Creates a bounding box initialized to the given extents. ", + ""); + I_Constructor2(IN, const osg::BoundingBoxImpl< osg::Vec3d >::vec_type &, min, IN, const osg::BoundingBoxImpl< osg::Vec3d >::vec_type &, max, + ____BoundingBoxImpl__C5_vec_type_R1__C5_vec_type_R1, + "Creates a bounding box initialized to the given extents. ", + ""); + I_Method0(void, init, + Properties::NON_VIRTUAL, + __void__init, + "Clear the bounding box. ", + "Erases existing minimum and maximum extents. "); + I_Method0(bool, valid, + Properties::NON_VIRTUAL, + __bool__valid, + "Returns true if the bounding box extents are valid, false otherwise. ", + ""); + I_Method6(void, set, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, xmin, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, ymin, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, zmin, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, xmax, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, ymax, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, zmax, + Properties::NON_VIRTUAL, + __void__set__value_type__value_type__value_type__value_type__value_type__value_type, + "Sets the bounding box extents. ", + ""); + I_Method2(void, set, IN, const osg::BoundingBoxImpl< osg::Vec3d >::vec_type &, min, IN, const osg::BoundingBoxImpl< osg::Vec3d >::vec_type &, max, + Properties::NON_VIRTUAL, + __void__set__C5_vec_type_R1__C5_vec_type_R1, + "Sets the bounding box extents. ", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type &, xMin, + Properties::NON_VIRTUAL, + __value_type_R1__xMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, xMin, + Properties::NON_VIRTUAL, + __value_type__xMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type &, yMin, + Properties::NON_VIRTUAL, + __value_type_R1__yMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, yMin, + Properties::NON_VIRTUAL, + __value_type__yMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type &, zMin, + Properties::NON_VIRTUAL, + __value_type_R1__zMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, zMin, + Properties::NON_VIRTUAL, + __value_type__zMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type &, xMax, + Properties::NON_VIRTUAL, + __value_type_R1__xMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, xMax, + Properties::NON_VIRTUAL, + __value_type__xMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type &, yMax, + Properties::NON_VIRTUAL, + __value_type_R1__yMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, yMax, + Properties::NON_VIRTUAL, + __value_type__yMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type &, zMax, + Properties::NON_VIRTUAL, + __value_type_R1__zMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, zMax, + Properties::NON_VIRTUAL, + __value_type__zMax, + "", + ""); + I_Method0(const osg::BoundingBoxImpl< osg::Vec3d >::vec_type, center, + Properties::NON_VIRTUAL, + __C5_vec_type__center, + "Calculates and returns the bounding box center. ", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, radius, + Properties::NON_VIRTUAL, + __value_type__radius, + "Calculates and returns the bounding box radius. ", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3d >::value_type, radius2, + Properties::NON_VIRTUAL, + __value_type__radius2, + "Calculates and returns the squared length of the bounding box radius. ", + "Note, radius2() is faster to calculate than radius(). "); + I_Method1(const osg::BoundingBoxImpl< osg::Vec3d >::vec_type, corner, IN, unsigned int, pos, + Properties::NON_VIRTUAL, + __C5_vec_type__corner__unsigned_int, + "Returns a specific corner of the bounding box. ", + "pos specifies the corner as a number between 0 and 7. Each bit selects an axis, X, Y, or Z from least- to most-significant. Unset bits select the minimum value for that axis, and set bits select the maximum. "); + I_Method1(void, expandBy, IN, const osg::BoundingBoxImpl< osg::Vec3d >::vec_type &, v, + Properties::NON_VIRTUAL, + __void__expandBy__C5_vec_type_R1, + "Expands the bounding box to include the given coordinate. ", + "If the box is uninitialized, set its min and max extents to v. "); + I_Method3(void, expandBy, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, x, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, y, IN, osg::BoundingBoxImpl< osg::Vec3d >::value_type, z, + Properties::NON_VIRTUAL, + __void__expandBy__value_type__value_type__value_type, + "Expands the bounding box to include the given coordinate. ", + "If the box is uninitialized, set its min and max extents to Vec3(x,y,z). "); + I_Method1(void, expandBy, IN, const osg::BoundingBoxImpl< osg::Vec3d > &, bb, + Properties::NON_VIRTUAL, + __void__expandBy__C5_BoundingBoxImpl_R1, + "Expands this bounding box to include the given bounding box. ", + "If this box is uninitialized, set it equal to bb. "); + + I_Method1(osg::BoundingBoxImpl< osg::Vec3d >, intersect, IN, const osg::BoundingBoxImpl< osg::Vec3d > &, bb, + Properties::NON_VIRTUAL, + __BoundingBoxImpl__intersect__C5_BoundingBoxImpl_R1, + "Returns the intersection of this bounding box and the specified bounding box. ", + ""); + I_Method1(bool, intersects, IN, const osg::BoundingBoxImpl< osg::Vec3d > &, bb, + Properties::NON_VIRTUAL, + __bool__intersects__C5_BoundingBoxImpl_R1, + "Return true if this bounding box intersects the specified bounding box. ", + ""); + I_Method1(bool, contains, IN, const osg::BoundingBoxImpl< osg::Vec3d >::vec_type &, v, + Properties::NON_VIRTUAL, + __bool__contains__C5_vec_type_R1, + "Returns true if this bounding box contains the specified coordinate. ", + ""); + I_PublicMemberProperty(osg::BoundingBoxImpl< osg::Vec3d >::vec_type, _min); + I_PublicMemberProperty(osg::BoundingBoxImpl< osg::Vec3d >::vec_type, _max); +END_REFLECTOR + +BEGIN_VALUE_REFLECTOR(osg::BoundingBoxImpl< osg::Vec3f >) + I_DeclaringFile("osg/BoundingBox"); + I_Constructor0(____BoundingBoxImpl, + "Creates an uninitialized bounding box. ", + ""); + I_Constructor6(IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, xmin, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, ymin, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, zmin, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, xmax, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, ymax, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, zmax, + ____BoundingBoxImpl__value_type__value_type__value_type__value_type__value_type__value_type, + "Creates a bounding box initialized to the given extents. ", + ""); + I_Constructor2(IN, const osg::BoundingBoxImpl< osg::Vec3f >::vec_type &, min, IN, const osg::BoundingBoxImpl< osg::Vec3f >::vec_type &, max, + ____BoundingBoxImpl__C5_vec_type_R1__C5_vec_type_R1, + "Creates a bounding box initialized to the given extents. ", + ""); + I_Method0(void, init, + Properties::NON_VIRTUAL, + __void__init, + "Clear the bounding box. ", + "Erases existing minimum and maximum extents. "); + I_Method0(bool, valid, + Properties::NON_VIRTUAL, + __bool__valid, + "Returns true if the bounding box extents are valid, false otherwise. ", + ""); + I_Method6(void, set, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, xmin, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, ymin, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, zmin, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, xmax, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, ymax, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, zmax, + Properties::NON_VIRTUAL, + __void__set__value_type__value_type__value_type__value_type__value_type__value_type, + "Sets the bounding box extents. ", + ""); + I_Method2(void, set, IN, const osg::BoundingBoxImpl< osg::Vec3f >::vec_type &, min, IN, const osg::BoundingBoxImpl< osg::Vec3f >::vec_type &, max, + Properties::NON_VIRTUAL, + __void__set__C5_vec_type_R1__C5_vec_type_R1, + "Sets the bounding box extents. ", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type &, xMin, + Properties::NON_VIRTUAL, + __value_type_R1__xMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, xMin, + Properties::NON_VIRTUAL, + __value_type__xMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type &, yMin, + Properties::NON_VIRTUAL, + __value_type_R1__yMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, yMin, + Properties::NON_VIRTUAL, + __value_type__yMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type &, zMin, + Properties::NON_VIRTUAL, + __value_type_R1__zMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, zMin, + Properties::NON_VIRTUAL, + __value_type__zMin, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type &, xMax, + Properties::NON_VIRTUAL, + __value_type_R1__xMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, xMax, + Properties::NON_VIRTUAL, + __value_type__xMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type &, yMax, + Properties::NON_VIRTUAL, + __value_type_R1__yMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, yMax, + Properties::NON_VIRTUAL, + __value_type__yMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type &, zMax, + Properties::NON_VIRTUAL, + __value_type_R1__zMax, + "", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, zMax, + Properties::NON_VIRTUAL, + __value_type__zMax, + "", + ""); + I_Method0(const osg::BoundingBoxImpl< osg::Vec3f >::vec_type, center, + Properties::NON_VIRTUAL, + __C5_vec_type__center, + "Calculates and returns the bounding box center. ", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, radius, + Properties::NON_VIRTUAL, + __value_type__radius, + "Calculates and returns the bounding box radius. ", + ""); + I_Method0(osg::BoundingBoxImpl< osg::Vec3f >::value_type, radius2, + Properties::NON_VIRTUAL, + __value_type__radius2, + "Calculates and returns the squared length of the bounding box radius. ", + "Note, radius2() is faster to calculate than radius(). "); + I_Method1(const osg::BoundingBoxImpl< osg::Vec3f >::vec_type, corner, IN, unsigned int, pos, + Properties::NON_VIRTUAL, + __C5_vec_type__corner__unsigned_int, + "Returns a specific corner of the bounding box. ", + "pos specifies the corner as a number between 0 and 7. Each bit selects an axis, X, Y, or Z from least- to most-significant. Unset bits select the minimum value for that axis, and set bits select the maximum. "); + I_Method1(void, expandBy, IN, const osg::BoundingBoxImpl< osg::Vec3f >::vec_type &, v, + Properties::NON_VIRTUAL, + __void__expandBy__C5_vec_type_R1, + "Expands the bounding box to include the given coordinate. ", + "If the box is uninitialized, set its min and max extents to v. "); + I_Method3(void, expandBy, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, x, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, y, IN, osg::BoundingBoxImpl< osg::Vec3f >::value_type, z, + Properties::NON_VIRTUAL, + __void__expandBy__value_type__value_type__value_type, + "Expands the bounding box to include the given coordinate. ", + "If the box is uninitialized, set its min and max extents to Vec3(x,y,z). "); + I_Method1(void, expandBy, IN, const osg::BoundingBoxImpl< osg::Vec3f > &, bb, + Properties::NON_VIRTUAL, + __void__expandBy__C5_BoundingBoxImpl_R1, + "Expands this bounding box to include the given bounding box. ", + "If this box is uninitialized, set it equal to bb. "); + + I_Method1(osg::BoundingBoxImpl< osg::Vec3f >, intersect, IN, const osg::BoundingBoxImpl< osg::Vec3f > &, bb, + Properties::NON_VIRTUAL, + __BoundingBoxImpl__intersect__C5_BoundingBoxImpl_R1, + "Returns the intersection of this bounding box and the specified bounding box. ", + ""); + I_Method1(bool, intersects, IN, const osg::BoundingBoxImpl< osg::Vec3f > &, bb, + Properties::NON_VIRTUAL, + __bool__intersects__C5_BoundingBoxImpl_R1, + "Return true if this bounding box intersects the specified bounding box. ", + ""); + I_Method1(bool, contains, IN, const osg::BoundingBoxImpl< osg::Vec3f >::vec_type &, v, + Properties::NON_VIRTUAL, + __bool__contains__C5_vec_type_R1, + "Returns true if this bounding box contains the specified coordinate. ", + ""); + I_PublicMemberProperty(osg::BoundingBoxImpl< osg::Vec3f >::vec_type, _min); + I_PublicMemberProperty(osg::BoundingBoxImpl< osg::Vec3f >::vec_type, _max); +END_REFLECTOR + diff --git a/src/osgWrappers/osg/BoundingSphere.cpp b/src/osgWrappers/osg/BoundingSphere.cpp index ed22dc9a6..5a2d70ffb 100644 --- a/src/osgWrappers/osg/BoundingSphere.cpp +++ b/src/osgWrappers/osg/BoundingSphere.cpp @@ -30,3 +30,165 @@ TYPE_NAME_ALIAS(osg::BoundingSphereImpl< osg::Vec3d >, osg::BoundingSphered) TYPE_NAME_ALIAS(osg::BoundingSphered, osg::BoundingSphere) +BEGIN_VALUE_REFLECTOR(osg::BoundingSphereImpl< osg::Vec3d >) + I_DeclaringFile("osg/BoundingSphere"); + I_Constructor0(____BoundingSphereImpl, + "Construct a default bounding sphere with radius to -1.0f, representing an invalid/unset bounding sphere. ", + ""); + I_Constructor2(IN, const osg::BoundingSphereImpl< osg::Vec3d >::vec_type &, center, IN, osg::BoundingSphereImpl< osg::Vec3d >::value_type, radius, + ____BoundingSphereImpl__C5_vec_type_R1__value_type, + "Creates a bounding sphere initialized to the given extents. ", + ""); + I_Constructor1(IN, const osg::BoundingSphereImpl< osg::Vec3d > &, bs, + Properties::NON_EXPLICIT, + ____BoundingSphereImpl__C5_BoundingSphereImpl_R1, + "Creates a bounding sphere initialized to the given extents. ", + ""); + + I_Method0(void, init, + Properties::NON_VIRTUAL, + __void__init, + "Clear the bounding sphere. ", + "Reset to default values. "); + I_Method0(bool, valid, + Properties::NON_VIRTUAL, + __bool__valid, + "Returns true of the bounding sphere extents are valid, false otherwise. ", + ""); + I_Method2(void, set, IN, const osg::BoundingSphereImpl< osg::Vec3d >::vec_type &, center, IN, osg::BoundingSphereImpl< osg::Vec3d >::value_type, radius, + Properties::NON_VIRTUAL, + __void__set__C5_vec_type_R1__value_type, + "Set the bounding sphere to the given center/radius using floats. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3d >::vec_type &, center, + Properties::NON_VIRTUAL, + __vec_type_R1__center, + "Returns the center of the bounding sphere. ", + ""); + I_Method0(const osg::BoundingSphereImpl< osg::Vec3d >::vec_type &, center, + Properties::NON_VIRTUAL, + __C5_vec_type_R1__center, + "Returns the const center of the bounding sphere. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3d >::value_type &, radius, + Properties::NON_VIRTUAL, + __value_type_R1__radius, + "Returns the radius of the bounding sphere. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3d >::value_type, radius, + Properties::NON_VIRTUAL, + __value_type__radius, + "Returns the const radius of the bounding sphere. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3d >::value_type, radius2, + Properties::NON_VIRTUAL, + __value_type__radius2, + "Returns the squared length of the radius. ", + "Note, For performance reasons, the calling method is responsible for checking to make sure the sphere is valid. "); + I_Method1(void, expandBy, IN, const osg::BoundingSphereImpl< osg::Vec3d > &, sh, + Properties::NON_VIRTUAL, + __void__expandBy__C5_BoundingSphereImpl_R1, + "Expands the sphere to encompass the given sphere. ", + "Repositions the sphere center to minimize the radius increase. If the sphere is uninitialized, set its center and radius to match sh. "); + I_Method1(void, expandRadiusBy, IN, const osg::BoundingSphereImpl< osg::Vec3d > &, sh, + Properties::NON_VIRTUAL, + __void__expandRadiusBy__C5_BoundingSphereImpl_R1, + "Expands the sphere to encompass the given sphere. ", + "Does not repositions the sphere center. If the sphere is uninitialized, set its center and radius to match sh. "); + + + I_Method1(bool, contains, IN, const osg::BoundingSphereImpl< osg::Vec3d >::vec_type &, v, + Properties::NON_VIRTUAL, + __bool__contains__C5_vec_type_R1, + "Returns true if v is within the sphere. ", + ""); + I_Method1(bool, intersects, IN, const osg::BoundingSphereImpl< osg::Vec3d > &, bs, + Properties::NON_VIRTUAL, + __bool__intersects__C5_BoundingSphereImpl_R1, + "Returns true if there is a non-empty intersection with the given bounding sphere. ", + ""); + I_PublicMemberProperty(osg::BoundingSphereImpl< osg::Vec3d >::vec_type, _center); + I_PublicMemberProperty(osg::BoundingSphereImpl< osg::Vec3d >::value_type, _radius); +END_REFLECTOR + +BEGIN_VALUE_REFLECTOR(osg::BoundingSphereImpl< osg::Vec3f >) + I_DeclaringFile("osg/BoundingSphere"); + I_Constructor0(____BoundingSphereImpl, + "Construct a default bounding sphere with radius to -1.0f, representing an invalid/unset bounding sphere. ", + ""); + I_Constructor2(IN, const osg::BoundingSphereImpl< osg::Vec3f >::vec_type &, center, IN, osg::BoundingSphereImpl< osg::Vec3f >::value_type, radius, + ____BoundingSphereImpl__C5_vec_type_R1__value_type, + "Creates a bounding sphere initialized to the given extents. ", + ""); + I_Constructor1(IN, const osg::BoundingSphereImpl< osg::Vec3f > &, bs, + Properties::NON_EXPLICIT, + ____BoundingSphereImpl__C5_BoundingSphereImpl_R1, + "Creates a bounding sphere initialized to the given extents. ", + ""); + + I_Method0(void, init, + Properties::NON_VIRTUAL, + __void__init, + "Clear the bounding sphere. ", + "Reset to default values. "); + I_Method0(bool, valid, + Properties::NON_VIRTUAL, + __bool__valid, + "Returns true of the bounding sphere extents are valid, false otherwise. ", + ""); + I_Method2(void, set, IN, const osg::BoundingSphereImpl< osg::Vec3f >::vec_type &, center, IN, osg::BoundingSphereImpl< osg::Vec3f >::value_type, radius, + Properties::NON_VIRTUAL, + __void__set__C5_vec_type_R1__value_type, + "Set the bounding sphere to the given center/radius using floats. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3f >::vec_type &, center, + Properties::NON_VIRTUAL, + __vec_type_R1__center, + "Returns the center of the bounding sphere. ", + ""); + I_Method0(const osg::BoundingSphereImpl< osg::Vec3f >::vec_type &, center, + Properties::NON_VIRTUAL, + __C5_vec_type_R1__center, + "Returns the const center of the bounding sphere. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3f >::value_type &, radius, + Properties::NON_VIRTUAL, + __value_type_R1__radius, + "Returns the radius of the bounding sphere. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3f >::value_type, radius, + Properties::NON_VIRTUAL, + __value_type__radius, + "Returns the const radius of the bounding sphere. ", + ""); + I_Method0(osg::BoundingSphereImpl< osg::Vec3f >::value_type, radius2, + Properties::NON_VIRTUAL, + __value_type__radius2, + "Returns the squared length of the radius. ", + "Note, For performance reasons, the calling method is responsible for checking to make sure the sphere is valid. "); + I_Method1(void, expandBy, IN, const osg::BoundingSphereImpl< osg::Vec3f > &, sh, + Properties::NON_VIRTUAL, + __void__expandBy__C5_BoundingSphereImpl_R1, + "Expands the sphere to encompass the given sphere. ", + "Repositions the sphere center to minimize the radius increase. If the sphere is uninitialized, set its center and radius to match sh. "); + I_Method1(void, expandRadiusBy, IN, const osg::BoundingSphereImpl< osg::Vec3f > &, sh, + Properties::NON_VIRTUAL, + __void__expandRadiusBy__C5_BoundingSphereImpl_R1, + "Expands the sphere to encompass the given sphere. ", + "Does not repositions the sphere center. If the sphere is uninitialized, set its center and radius to match sh. "); + + + I_Method1(bool, contains, IN, const osg::BoundingSphereImpl< osg::Vec3f >::vec_type &, v, + Properties::NON_VIRTUAL, + __bool__contains__C5_vec_type_R1, + "Returns true if v is within the sphere. ", + ""); + I_Method1(bool, intersects, IN, const osg::BoundingSphereImpl< osg::Vec3f > &, bs, + Properties::NON_VIRTUAL, + __bool__intersects__C5_BoundingSphereImpl_R1, + "Returns true if there is a non-empty intersection with the given bounding sphere. ", + ""); + I_PublicMemberProperty(osg::BoundingSphereImpl< osg::Vec3f >::vec_type, _center); + I_PublicMemberProperty(osg::BoundingSphereImpl< osg::Vec3f >::value_type, _radius); +END_REFLECTOR + diff --git a/src/osgWrappers/osgShadow/ConvexPolyhedron.cpp b/src/osgWrappers/osgShadow/ConvexPolyhedron.cpp index 4455e3189..6d32ad26e 100644 --- a/src/osgWrappers/osgShadow/ConvexPolyhedron.cpp +++ b/src/osgWrappers/osgShadow/ConvexPolyhedron.cpp @@ -125,11 +125,7 @@ BEGIN_VALUE_REFLECTOR(osgShadow::ConvexPolyhedron) __void__getPoints__Vertices_R1, "", ""); - I_MethodWithDefaults1(osg::BoundingBox, computeBoundingBox, IN, const osg::Matrix &, m, osgShadow::ConvexPolyhedron::defaultMatrix, - Properties::NON_VIRTUAL, - __osg_BoundingBox__computeBoundingBox__C5_osg_Matrix_R1, - "", - ""); + I_MethodWithDefaults3(osg::Geometry *, buildGeometry, IN, const osg::Vec4d &, colorOutline, , IN, const osg::Vec4d &, colorInside, , IN, osg::Geometry *, useGeometry, NULL, Properties::NON_VIRTUAL, __osg_Geometry_P1__buildGeometry__C5_osg_Vec4d_R1__C5_osg_Vec4d_R1__osg_Geometry_P1,