From a8255f6932acea590ef14c7bb929cf05e48d4227 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 27 Feb 2006 19:51:32 +0000 Subject: [PATCH] Updated wrappers. --- VisualStudio/osg/osg.dsp | 4 ++++ VisualStudio/osgWrappers/osg/wrapper_osg.dsp | 8 +++---- src/osgWrappers/osg/GNUmakefile | 2 +- src/osgWrappers/osg/Node.cpp | 5 ++++ src/osgWrappers/osg/NodeTrackerCallback.cpp | 24 +++++++++++++++---- src/osgWrappers/osg/Referenced.cpp | 3 +++ .../osg/{RefNodePath.cpp => observer_ptr.cpp} | 9 +++---- .../osgGA/NodeTrackerManipulator.cpp | 10 ++++---- src/osgWrappers/osgProducer/Viewer.cpp | 1 - 9 files changed, 44 insertions(+), 22 deletions(-) rename src/osgWrappers/osg/{RefNodePath.cpp => observer_ptr.cpp} (69%) diff --git a/VisualStudio/osg/osg.dsp b/VisualStudio/osg/osg.dsp index 95c186f3a..4a55d1f72 100755 --- a/VisualStudio/osg/osg.dsp +++ b/VisualStudio/osg/osg.dsp @@ -912,6 +912,10 @@ SOURCE=..\..\Include\Osg\Quat # End Source File # Begin Source File +SOURCE=..\..\include\osg\observer_ptr +# End Source File +# Begin Source File + SOURCE=..\..\include\osg\ref_ptr # End Source File # Begin Source File diff --git a/VisualStudio/osgWrappers/osg/wrapper_osg.dsp b/VisualStudio/osgWrappers/osg/wrapper_osg.dsp index da6e74289..1b5b1d78d 100644 --- a/VisualStudio/osgWrappers/osg/wrapper_osg.dsp +++ b/VisualStudio/osgWrappers/osg/wrapper_osg.dsp @@ -427,10 +427,6 @@ SOURCE=..\..\..\src\osgWrappers\osg\ProxyNode.cpp SOURCE=..\..\..\src\osgWrappers\osg\Quat.cpp # End Source File -# Begin Source File -SOURCE=..\..\..\src\osgWrappers\osg\RefNodePath.cpp -# End Source File - # Begin Source File SOURCE=..\..\..\src\osgWrappers\osg\Referenced.cpp # End Source File @@ -615,6 +611,10 @@ SOURCE=..\..\..\src\osgWrappers\osg\VertexProgram.cpp SOURCE=..\..\..\src\osgWrappers\osg\Viewport.cpp # End Source File +# Begin Source File +SOURCE=..\..\..\src\osgWrappers\osg\observer_ptr.cpp +# End Source File + # End Group # Begin Group "Header Files" diff --git a/src/osgWrappers/osg/GNUmakefile b/src/osgWrappers/osg/GNUmakefile index c74dacfb7..5997aa464 100644 --- a/src/osgWrappers/osg/GNUmakefile +++ b/src/osgWrappers/osg/GNUmakefile @@ -85,7 +85,6 @@ CXXFILES =\ Projection.cpp\ ProxyNode.cpp\ Quat.cpp\ - RefNodePath.cpp\ Referenced.cpp\ Scissor.cpp\ Sequence.cpp\ @@ -132,6 +131,7 @@ CXXFILES =\ Vec4ub.cpp\ VertexProgram.cpp\ Viewport.cpp\ + observer_ptr.cpp\ LIBS += -losg -losg -losgIntrospection $(GL_LIBS) $(OTHER_LIBS) diff --git a/src/osgWrappers/osg/Node.cpp b/src/osgWrappers/osg/Node.cpp index 3603278cd..6f857026e 100644 --- a/src/osgWrappers/osg/Node.cpp +++ b/src/osgWrappers/osg/Node.cpp @@ -56,6 +56,7 @@ BEGIN_OBJECT_REFLECTOR(osg::Node) I_Method1(const osg::Group *, getParent, IN, unsigned int, i); I_Method0(unsigned int, getNumParents); I_MethodWithDefaults1(osg::NodePathList, getParentalNodePaths, IN, osg::Node *, haltTraversalAtNode, 0); + I_MethodWithDefaults1(osg::MatrixList, getWorldMatrices, IN, osg::Node *, haltTraversalAtNode, 0); I_Method1(void, setUpdateCallback, IN, osg::NodeCallback *, nc); I_Method0(osg::NodeCallback *, getUpdateCallback); I_Method0(const osg::NodeCallback *, getUpdateCallback); @@ -126,8 +127,12 @@ TYPE_NAME_ALIAS(std::vector< osg::Node * >, osg::NodePath); TYPE_NAME_ALIAS(std::vector< osg::NodePath >, osg::NodePathList); +TYPE_NAME_ALIAS(std::vector< osg::Matrix >, osg::MatrixList); + STD_VECTOR_REFLECTOR(std::vector< osg::Group * >); +STD_VECTOR_REFLECTOR(std::vector< osg::Matrix >); + STD_VECTOR_REFLECTOR(std::vector< osg::NodePath >); STD_VECTOR_REFLECTOR(std::vector< std::string >); diff --git a/src/osgWrappers/osg/NodeTrackerCallback.cpp b/src/osgWrappers/osg/NodeTrackerCallback.cpp index f80a746f2..8eb40a892 100644 --- a/src/osgWrappers/osg/NodeTrackerCallback.cpp +++ b/src/osgWrappers/osg/NodeTrackerCallback.cpp @@ -12,7 +12,6 @@ #include #include #include -#include // Must undefine IN and OUT macros defined in Windows headers #ifdef IN @@ -22,19 +21,34 @@ #undef OUT #endif +TYPE_NAME_ALIAS(std::vector< osg::observer_ptr< osg::Node > >, osg::NodeTrackerCallback::ObserveredNodePath); + BEGIN_OBJECT_REFLECTOR(osg::NodeTrackerCallback) I_BaseType(osg::NodeCallback); I_Constructor0(); - I_Method1(void, setTrackNodePath, IN, const osg::RefNodePath &, nodePath); I_Method1(void, setTrackNodePath, IN, const osg::NodePath &, nodePath); - I_Method0(osg::RefNodePath &, getTrackNodePath); - I_Method0(const osg::RefNodePath &, getTrackNodePath); + I_Method1(void, setTrackNodePath, IN, const osg::NodeTrackerCallback::ObserveredNodePath &, nodePath); + I_Method0(osg::NodeTrackerCallback::ObserveredNodePath &, getTrackNodePath); I_Method1(void, setTrackNode, IN, osg::Node *, node); I_Method0(osg::Node *, getTrackNode); I_Method0(const osg::Node *, getTrackNode); I_Method1(void, update, IN, osg::Node &, node); I_Method0(bool, validateNodePath); I_Property(osg::Node *, TrackNode); - I_Property(const osg::RefNodePath &, TrackNodePath); + I_ReadOnlyProperty(osg::NodeTrackerCallback::ObserveredNodePath &, TrackNodePath); END_REFLECTOR +BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osg::Node >) + I_BaseType(osg::Observer); + I_Constructor0(); + I_Constructor1(IN, osg::Node *, t); + I_Constructor1(IN, const osg::observer_ptr< osg::Node > &, rp); + I_Method1(void, objectDeleted, IN, void *, ptr); + I_Method0(bool, valid); + I_Method0(osg::Node *, get); + I_Method0(const osg::Node *, get); + I_ReadOnlyProperty(osg::Node *, ); +END_REFLECTOR + +STD_VECTOR_REFLECTOR(std::vector< osg::observer_ptr< osg::Node > >); + diff --git a/src/osgWrappers/osg/Referenced.cpp b/src/osgWrappers/osg/Referenced.cpp index 78b3042f7..0f2d40090 100644 --- a/src/osgWrappers/osg/Referenced.cpp +++ b/src/osgWrappers/osg/Referenced.cpp @@ -10,6 +10,7 @@ #include #include +#include // Must undefine IN and OUT macros defined in Windows headers #ifdef IN @@ -35,6 +36,8 @@ BEGIN_OBJECT_REFLECTOR(osg::Referenced) I_Method0(void, unref); I_Method0(void, unref_nodelete); I_Method0(int, referenceCount); + I_Method1(void, addObserver, IN, osg::Observer *, observer_ptr); + I_Method1(void, removeObserver, IN, osg::Observer *, observer_ptr); I_Property(bool, ThreadSafeRefUnref); END_REFLECTOR diff --git a/src/osgWrappers/osg/RefNodePath.cpp b/src/osgWrappers/osg/observer_ptr.cpp similarity index 69% rename from src/osgWrappers/osg/RefNodePath.cpp rename to src/osgWrappers/osg/observer_ptr.cpp index 49b7e11ec..62d1080b9 100644 --- a/src/osgWrappers/osg/RefNodePath.cpp +++ b/src/osgWrappers/osg/observer_ptr.cpp @@ -9,8 +9,7 @@ #include #include -#include -#include +#include // Must undefine IN and OUT macros defined in Windows headers #ifdef IN @@ -20,10 +19,8 @@ #undef OUT #endif -BEGIN_VALUE_REFLECTOR(osg::RefNodePath) +BEGIN_VALUE_REFLECTOR(osg::Observer) I_Constructor0(); - I_Constructor1(IN, const osg::RefNodePath &, refNodePath); - I_Constructor1(IN, const osg::NodePath &, nodePath); - I_Method0(bool, valid); + I_Method1(void, objectDeleted, IN, void *, x); END_REFLECTOR diff --git a/src/osgWrappers/osgGA/NodeTrackerManipulator.cpp b/src/osgWrappers/osgGA/NodeTrackerManipulator.cpp index 939cc3a5d..655761b45 100644 --- a/src/osgWrappers/osgGA/NodeTrackerManipulator.cpp +++ b/src/osgWrappers/osgGA/NodeTrackerManipulator.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -26,6 +25,8 @@ #undef OUT #endif +TYPE_NAME_ALIAS(std::vector< osg::observer_ptr< osg::Node > >, osgGA::NodeTrackerManipulator::ObserveredNodePath); + BEGIN_ENUM_REFLECTOR(osgGA::NodeTrackerManipulator::TrackerMode) I_EnumLabel(osgGA::NodeTrackerManipulator::NODE_CENTER); I_EnumLabel(osgGA::NodeTrackerManipulator::NODE_CENTER_AND_AZIM); @@ -41,10 +42,9 @@ BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) I_BaseType(osgGA::MatrixManipulator); I_Constructor0(); I_Method0(const char *, className); - I_Method1(void, setTrackNodePath, IN, const osg::RefNodePath &, nodePath); I_Method1(void, setTrackNodePath, IN, const osg::NodePath &, nodePath); - I_Method0(osg::RefNodePath &, getTrackNodePath); - I_Method0(const osg::RefNodePath &, getTrackNodePath); + I_Method1(void, setTrackNodePath, IN, const osgGA::NodeTrackerManipulator::ObserveredNodePath &, nodePath); + I_Method0(osgGA::NodeTrackerManipulator::ObserveredNodePath &, getTrackNodePath); I_Method1(void, setTrackNode, IN, osg::Node *, node); I_Method0(osg::Node *, getTrackNode); I_Method0(const osg::Node *, getTrackNode); @@ -75,7 +75,7 @@ BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) I_Property(osg::Node *, Node); I_Property(osgGA::NodeTrackerManipulator::RotationMode, RotationMode); I_Property(osg::Node *, TrackNode); - I_Property(const osg::RefNodePath &, TrackNodePath); + I_ReadOnlyProperty(osgGA::NodeTrackerManipulator::ObserveredNodePath &, TrackNodePath); I_Property(osgGA::NodeTrackerManipulator::TrackerMode, TrackerMode); END_REFLECTOR diff --git a/src/osgWrappers/osgProducer/Viewer.cpp b/src/osgWrappers/osgProducer/Viewer.cpp index 82aa63d5e..4257e5490 100644 --- a/src/osgWrappers/osgProducer/Viewer.cpp +++ b/src/osgWrappers/osgProducer/Viewer.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include