diff --git a/src/osgWrappers/introspection/osg/NodeTrackerCallback.cpp b/src/osgWrappers/introspection/osg/NodeTrackerCallback.cpp index 4c8412942..ddb872453 100644 --- a/src/osgWrappers/introspection/osg/NodeTrackerCallback.cpp +++ b/src/osgWrappers/introspection/osg/NodeTrackerCallback.cpp @@ -13,6 +13,7 @@ #include #include #include +#include // Must undefine IN and OUT macros defined in Windows headers #ifdef IN @@ -22,8 +23,6 @@ #undef OUT #endif -TYPE_NAME_ALIAS(std::vector< osg::observer_ptr< osg::Node > >, osg::NodeTrackerCallback::ObserverNodePath) - BEGIN_OBJECT_REFLECTOR(osg::NodeTrackerCallback) I_DeclaringFile("osg/NodeTrackerCallback"); I_BaseType(osg::NodeCallback); @@ -35,12 +34,12 @@ BEGIN_OBJECT_REFLECTOR(osg::NodeTrackerCallback) __void__setTrackNodePath__C5_osg_NodePath_R1, "", ""); - I_Method1(void, setTrackNodePath, IN, const osg::NodeTrackerCallback::ObserverNodePath &, nodePath, + I_Method1(void, setTrackNodePath, IN, const osg::ObserverNodePath &, nodePath, Properties::NON_VIRTUAL, __void__setTrackNodePath__C5_ObserverNodePath_R1, "", ""); - I_Method0(osg::NodeTrackerCallback::ObserverNodePath &, getTrackNodePath, + I_Method0(osg::ObserverNodePath &, getTrackNodePath, Properties::NON_VIRTUAL, __ObserverNodePath_R1__getTrackNodePath, "", @@ -65,54 +64,11 @@ BEGIN_OBJECT_REFLECTOR(osg::NodeTrackerCallback) __void__update__osg_Node_R1, "Update the node to track the nodepath. ", ""); - I_Method0(bool, validateNodePath, - Properties::NON_VIRTUAL, - __bool__validateNodePath, - "", - ""); I_SimpleProperty(osg::Node *, TrackNode, __osg_Node_P1__getTrackNode, __void__setTrackNode__osg_Node_P1); - I_SimpleProperty(osg::NodeTrackerCallback::ObserverNodePath &, TrackNodePath, + I_SimpleProperty(osg::ObserverNodePath &, TrackNodePath, __ObserverNodePath_R1__getTrackNodePath, 0); END_REFLECTOR -BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osg::Node >) - I_DeclaringFile("osg/observer_ptr"); - I_BaseType(osg::Observer); - I_Constructor0(____observer_ptr, - "", - ""); - I_Constructor1(IN, osg::Node *, t, - Properties::NON_EXPLICIT, - ____observer_ptr__T_P1, - "", - ""); - I_Constructor1(IN, const osg::observer_ptr< osg::Node > &, rp, - Properties::NON_EXPLICIT, - ____observer_ptr__C5_observer_ptr_R1, - "", - ""); - I_Method1(void, objectDeleted, IN, void *, x, - Properties::VIRTUAL, - __void__objectDeleted__void_P1, - "", - ""); - I_Method0(osg::Node *, get, - Properties::NON_VIRTUAL, - __T_P1__get, - "", - ""); - I_Method0(bool, valid, - Properties::NON_VIRTUAL, - __bool__valid, - "", - ""); - I_SimpleProperty(osg::Node *, , - __T_P1__get, - 0); -END_REFLECTOR - -STD_VECTOR_REFLECTOR(std::vector< osg::observer_ptr< osg::Node > >) - diff --git a/src/osgWrappers/introspection/osg/Observer.cpp b/src/osgWrappers/introspection/osg/Observer.cpp new file mode 100644 index 000000000..39a82631d --- /dev/null +++ b/src/osgWrappers/introspection/osg/Observer.cpp @@ -0,0 +1,39 @@ +// *************************************************************************** +// +// Generated automatically by genwrapper. +// Please DO NOT EDIT this file! +// +// *************************************************************************** + +#include +#include +#include +#include + +#include + +// Must undefine IN and OUT macros defined in Windows headers +#ifdef IN +#undef IN +#endif +#ifdef OUT +#undef OUT +#endif + +BEGIN_VALUE_REFLECTOR(osg::Observer) + I_DeclaringFile("osg/Observer"); + I_Constructor0(____Observer, + "", + ""); + I_Method1(bool, objectUnreferenced, IN, void *, x, + Properties::VIRTUAL, + __bool__objectUnreferenced__void_P1, + "objectUnreferenced(void*) is called when the observed object's referenced count goes to zero, indicating that the object will be deleted unless a new reference is made to it. ", + "If you wish to prevent deletion of the object then it's reference count should be incremented such as via taking a ref_ptr<> to it, if no refernce is taken by any of the observers of the object then the object will be deleted, and objectDeleted will in turn be called. return true if the Observer wishes to removed from the oberseved objects observer set. "); + I_Method1(void, objectDeleted, IN, void *, x, + Properties::VIRTUAL, + __void__objectDeleted__void_P1, + "objectDeleted is called when the observed object is about to be deleted. ", + "The observer will be automatically removed from the observerd objects observer set so there is no need for the objectDeleted implementation to call removeObserver() on the observed object. "); +END_REFLECTOR + diff --git a/src/osgWrappers/introspection/osg/ObserverNodePath.cpp b/src/osgWrappers/introspection/osg/ObserverNodePath.cpp new file mode 100644 index 000000000..0f8e9b732 --- /dev/null +++ b/src/osgWrappers/introspection/osg/ObserverNodePath.cpp @@ -0,0 +1,96 @@ +// *************************************************************************** +// +// Generated automatically by genwrapper. +// Please DO NOT EDIT this file! +// +// *************************************************************************** + +#include +#include +#include +#include + +#include +#include + +// Must undefine IN and OUT macros defined in Windows headers +#ifdef IN +#undef IN +#endif +#ifdef OUT +#undef OUT +#endif + +BEGIN_OBJECT_REFLECTOR(osg::ObserverNodePath) + I_DeclaringFile("osg/ObserverNodePath"); + I_BaseType(osg::Observer); + I_Constructor0(____ObserverNodePath, + "", + ""); + I_Constructor1(IN, const osg::ObserverNodePath &, rhs, + Properties::NON_EXPLICIT, + ____ObserverNodePath__C5_ObserverNodePath_R1, + "", + ""); + I_Constructor1(IN, const osg::NodePath &, nodePath, + Properties::NON_EXPLICIT, + ____ObserverNodePath__C5_osg_NodePath_R1, + "", + ""); + I_Method0(bool, valid, + Properties::NON_VIRTUAL, + __bool__valid, + "", + ""); + I_Method1(void, setNodePath, IN, const osg::RefNodePath &, nodePath, + Properties::NON_VIRTUAL, + __void__setNodePath__C5_osg_RefNodePath_R1, + "", + ""); + I_Method1(void, setNodePath, IN, const osg::NodePath &, nodePath, + Properties::NON_VIRTUAL, + __void__setNodePath__C5_osg_NodePath_R1, + "", + ""); + I_Method0(void, clearNodePath, + Properties::NON_VIRTUAL, + __void__clearNodePath, + "", + ""); + I_Method1(bool, getRefNodePath, IN, osg::RefNodePath &, refNodePath, + Properties::NON_VIRTUAL, + __bool__getRefNodePath__RefNodePath_R1, + "Get a thread safe RefNodePath. ", + ""); + I_Method1(bool, getNodePath, IN, osg::NodePath &, nodePath, + Properties::NON_VIRTUAL, + __bool__getNodePath__NodePath_R1, + "Get a lightweight NodePath that isn't thread safe but may be safely used in single threaded applications, or when its known that the NodePath won't be invalidated during usage of the NodePath. ", + ""); + I_ProtectedMethod1(void, _setNodePath, IN, const osg::NodePath &, nodePath, + Properties::NON_VIRTUAL, + Properties::NON_CONST, + __void___setNodePath__C5_osg_NodePath_R1, + "", + ""); + I_ProtectedMethod0(void, _clearNodePath, + Properties::NON_VIRTUAL, + Properties::NON_CONST, + __void___clearNodePath, + "", + ""); + I_ProtectedMethod1(bool, objectUnreferenced, IN, void *, x, + Properties::VIRTUAL, + Properties::NON_CONST, + __bool__objectUnreferenced__void_P1, + "objectUnreferenced(void*) is called when the observed object's referenced count goes to zero, indicating that the object will be deleted unless a new reference is made to it. ", + "If you wish to prevent deletion of the object then it's reference count should be incremented such as via taking a ref_ptr<> to it, if no refernce is taken by any of the observers of the object then the object will be deleted, and objectDeleted will in turn be called. return true if the Observer wishes to removed from the oberseved objects observer set. "); + I_SimpleProperty(const osg::RefNodePath &, NodePath, + 0, + __void__setNodePath__C5_osg_RefNodePath_R1); +END_REFLECTOR + +TYPE_NAME_ALIAS(std::list< osg::ref_ptr< osg::Node > >, osg::RefNodePath) + +STD_LIST_REFLECTOR(std::list< osg::ref_ptr< osg::Node > >) + diff --git a/src/osgWrappers/introspection/osg/Referenced.cpp b/src/osgWrappers/introspection/osg/Referenced.cpp index 395d4c809..52084102f 100644 --- a/src/osgWrappers/introspection/osg/Referenced.cpp +++ b/src/osgWrappers/introspection/osg/Referenced.cpp @@ -12,8 +12,8 @@ #include #include +#include #include -#include // Must undefine IN and OUT macros defined in Windows headers #ifdef IN @@ -103,6 +103,12 @@ BEGIN_OBJECT_REFLECTOR(osg::Referenced) __DeleteHandler_P1__getDeleteHandler_S, "Get a DeleteHandler. ", ""); + I_ProtectedMethod3(void, signalObserversAndDelete, IN, bool, signalUnreferened, IN, bool, signalDelete, IN, bool, doDelete, + Properties::NON_VIRTUAL, + Properties::CONST, + __void__signalObserversAndDelete__bool__bool__bool, + "", + ""); I_ProtectedMethod0(void, deleteUsingDeleteHandler, Properties::NON_VIRTUAL, Properties::CONST, diff --git a/src/osgWrappers/introspection/osg/State.cpp b/src/osgWrappers/introspection/osg/State.cpp index cbb98aa9b..cb7387e08 100644 --- a/src/osgWrappers/introspection/osg/State.cpp +++ b/src/osgWrappers/introspection/osg/State.cpp @@ -878,11 +878,11 @@ BEGIN_OBJECT_REFLECTOR(osg::State) __void__initializeExtensionProcs, "Initialize extension used by osg:State. ", ""); - I_Method1(void, objectDeleted, IN, void *, object, + I_Method1(void, objectDeleted, IN, void *, x, Properties::VIRTUAL, __void__objectDeleted__void_P1, - "", - ""); + "objectDeleted is called when the observed object is about to be deleted. ", + "The observer will be automatically removed from the observerd objects observer set so there is no need for the objectDeleted implementation to call removeObserver() on the observed object. "); I_Method0(osg::GLBeginEndAdapter &, getGLBeginEndAdapter, Properties::NON_VIRTUAL, __GLBeginEndAdapter_R1__getGLBeginEndAdapter, diff --git a/src/osgWrappers/introspection/osg/Timer.cpp b/src/osgWrappers/introspection/osg/Timer.cpp index 9d7b53d1c..80cb53f7b 100644 --- a/src/osgWrappers/introspection/osg/Timer.cpp +++ b/src/osgWrappers/introspection/osg/Timer.cpp @@ -39,7 +39,22 @@ BEGIN_VALUE_REFLECTOR(osg::ElapsedTime) I_Method0(double, elapsedTime, Properties::NON_VIRTUAL, __double__elapsedTime, - "", + "elapsed time in seconds. ", + ""); + I_Method0(double, elapsedTime_m, + Properties::NON_VIRTUAL, + __double__elapsedTime_m, + "elapsed time in milliseconds. ", + ""); + I_Method0(double, elapsedTime_u, + Properties::NON_VIRTUAL, + __double__elapsedTime_u, + "elapsed time in microseconds. ", + ""); + I_Method0(double, elapsedTime_n, + Properties::NON_VIRTUAL, + __double__elapsedTime_n, + "elapsed time in nanoseconds. ", ""); I_Method0(void, finish, Properties::NON_VIRTUAL, diff --git a/src/osgWrappers/introspection/osg/observer_ptr.cpp b/src/osgWrappers/introspection/osg/observer_ptr.cpp index 544dfe7d4..47c2e4cab 100644 --- a/src/osgWrappers/introspection/osg/observer_ptr.cpp +++ b/src/osgWrappers/introspection/osg/observer_ptr.cpp @@ -25,10 +25,15 @@ BEGIN_VALUE_REFLECTOR(osg::Observer) I_Constructor0(____Observer, "", ""); + I_Method1(bool, objectUnreferenced, IN, void *, x, + Properties::VIRTUAL, + __bool__objectUnreferenced__void_P1, + "objectUnreferenced(void*) is called when the observed object's referenced count goes to zero, indicating that the object will be deleted unless a new reference is made to it. ", + "If you wish to prevent deletion of the object then it's reference count should be incremented such as via taking a ref_ptr<> to it, if no refernce is taken by any of the observers of the object then the object will be deleted, and objectDeleted will in turn be called. return true if the Observer wishes to removed from the oberseved objects observer set. "); I_Method1(void, objectDeleted, IN, void *, x, Properties::VIRTUAL, __void__objectDeleted__void_P1, - "", - ""); + "objectDeleted is called when the observed object is about to be deleted. ", + "The observer will be automatically removed from the observerd objects observer set so there is no need for the objectDeleted implementation to call removeObserver() on the observed object. "); END_REFLECTOR diff --git a/src/osgWrappers/introspection/osgDB/DatabasePager.cpp b/src/osgWrappers/introspection/osgDB/DatabasePager.cpp index ef07ebd13..25f47987c 100644 --- a/src/osgWrappers/introspection/osgDB/DatabasePager.cpp +++ b/src/osgWrappers/introspection/osgDB/DatabasePager.cpp @@ -567,9 +567,9 @@ BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osg::GraphicsContext >) ____observer_ptr__C5_observer_ptr_R1, "", ""); - I_Method1(void, objectDeleted, IN, void *, x, - Properties::VIRTUAL, - __void__objectDeleted__void_P1, + I_Method0(osg::ref_ptr< osg::GraphicsContext >, lock, + Properties::NON_VIRTUAL, + __ref_ptrT1_T___lock, "", ""); I_Method0(osg::GraphicsContext *, get, @@ -582,6 +582,12 @@ BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osg::GraphicsContext >) __bool__valid, "", ""); + I_ProtectedMethod1(void, objectDeleted, IN, void *, x, + Properties::VIRTUAL, + Properties::NON_CONST, + __void__objectDeleted__void_P1, + "objectDeleted is called when the observed object is about to be deleted. ", + "The observer will be automatically removed from the observerd objects observer set so there is no need for the objectDeleted implementation to call removeObserver() on the observed object. "); I_SimpleProperty(osg::GraphicsContext *, , __T_P1__get, 0); diff --git a/src/osgWrappers/introspection/osgDB/DotOsgWrapper.cpp b/src/osgWrappers/introspection/osgDB/DotOsgWrapper.cpp index fea2db58b..f038cb3f0 100644 --- a/src/osgWrappers/introspection/osgDB/DotOsgWrapper.cpp +++ b/src/osgWrappers/introspection/osgDB/DotOsgWrapper.cpp @@ -30,6 +30,8 @@ #undef OUT #endif +TYPE_NAME_ALIAS(std::list< std::string >, osgDB::DeprecatedDotOsgWrapperManager::FileNames) + BEGIN_OBJECT_REFLECTOR(osgDB::DeprecatedDotOsgWrapperManager) I_DeclaringFile("osgDB/DotOsgWrapper"); I_BaseType(osg::Referenced); @@ -96,6 +98,11 @@ BEGIN_OBJECT_REFLECTOR(osgDB::DeprecatedDotOsgWrapperManager) __bool__writeObject__C5_osg_Object_R1__Output_R1, "", ""); + I_Method2(bool, getLibraryFileNamesToTry, IN, const std::string &, name, IN, osgDB::DeprecatedDotOsgWrapperManager::FileNames &, fileNames, + Properties::NON_VIRTUAL, + __bool__getLibraryFileNamesToTry__C5_std_string_R1__FileNames_R1, + "", + ""); END_REFLECTOR BEGIN_ENUM_REFLECTOR(osgDB::DotOsgWrapper::ReadWriteMode) @@ -183,3 +190,5 @@ BEGIN_VALUE_REFLECTOR(osgDB::RegisterDotOsgWrapperProxy) ""); END_REFLECTOR +STD_LIST_REFLECTOR(std::list< std::string >) + diff --git a/src/osgWrappers/introspection/osgDB/PluginQuery.cpp b/src/osgWrappers/introspection/osgDB/PluginQuery.cpp index c10db0976..5b18d083c 100644 --- a/src/osgWrappers/introspection/osgDB/PluginQuery.cpp +++ b/src/osgWrappers/introspection/osgDB/PluginQuery.cpp @@ -80,5 +80,3 @@ END_REFLECTOR STD_LIST_REFLECTOR(std::list< osg::ref_ptr< osgDB::ReaderWriterInfo > >) -STD_LIST_REFLECTOR(std::list< std::string >) - diff --git a/src/osgWrappers/introspection/osgGA/NodeTrackerManipulator.cpp b/src/osgWrappers/introspection/osgGA/NodeTrackerManipulator.cpp index ccb338089..8535fb3da 100644 --- a/src/osgWrappers/introspection/osgGA/NodeTrackerManipulator.cpp +++ b/src/osgWrappers/introspection/osgGA/NodeTrackerManipulator.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -39,8 +40,6 @@ BEGIN_ENUM_REFLECTOR(osgGA::NodeTrackerManipulator::RotationMode) I_EnumLabel(osgGA::NodeTrackerManipulator::ELEVATION_AZIM); END_REFLECTOR -TYPE_NAME_ALIAS(std::vector< osg::observer_ptr< osg::Node > >, osgGA::NodeTrackerManipulator::ObserverNodePath) - BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) I_DeclaringFile("osgGA/NodeTrackerManipulator"); I_BaseType(osgGA::MatrixManipulator); @@ -57,14 +56,14 @@ BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) __void__setTrackNodePath__C5_osg_NodePath_R1, "", ""); - I_Method1(void, setTrackNodePath, IN, const osgGA::NodeTrackerManipulator::ObserverNodePath &, nodePath, + I_Method1(void, setTrackNodePath, IN, const osg::ObserverNodePath &, nodePath, Properties::NON_VIRTUAL, - __void__setTrackNodePath__C5_ObserverNodePath_R1, + __void__setTrackNodePath__C5_osg_ObserverNodePath_R1, "", ""); - I_Method0(osgGA::NodeTrackerManipulator::ObserverNodePath &, getTrackNodePath, + I_Method0(osg::ObserverNodePath &, getTrackNodePath, Properties::NON_VIRTUAL, - __ObserverNodePath_R1__getTrackNodePath, + __osg_ObserverNodePath_R1__getTrackNodePath, "", ""); I_Method1(void, setTrackNode, IN, osg::Node *, node, @@ -172,18 +171,6 @@ BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) __void__getUsage__osg_ApplicationUsage_R1, "Get the keyboard and mouse usage of this manipulator. ", ""); - I_ProtectedMethod0(osg::NodePath, getNodePath, - Properties::NON_VIRTUAL, - Properties::CONST, - __osg_NodePath__getNodePath, - "", - ""); - I_ProtectedMethod0(bool, validateNodePath, - Properties::NON_VIRTUAL, - Properties::CONST, - __bool__validateNodePath, - "", - ""); I_ProtectedMethod0(void, flushMouseEventStack, Properties::NON_VIRTUAL, Properties::NON_CONST, @@ -196,18 +183,6 @@ BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) __void__addMouseEvent__C5_GUIEventAdapter_R1, "Add the current mouse GUIEvent to internal stack. ", ""); - I_ProtectedMethod1(void, computeNodeWorldToLocal, IN, osg::Matrixd &, worldToLocal, - Properties::NON_VIRTUAL, - Properties::CONST, - __void__computeNodeWorldToLocal__osg_Matrixd_R1, - "", - ""); - I_ProtectedMethod1(void, computeNodeLocalToWorld, IN, osg::Matrixd &, localToWorld, - Properties::NON_VIRTUAL, - Properties::CONST, - __void__computeNodeLocalToWorld__osg_Matrixd_R1, - "", - ""); I_ProtectedMethod2(void, computeNodeCenterAndRotation, IN, osg::Vec3d &, center, IN, osg::Quat &, rotation, Properties::NON_VIRTUAL, Properties::CONST, @@ -277,8 +252,8 @@ BEGIN_OBJECT_REFLECTOR(osgGA::NodeTrackerManipulator) I_SimpleProperty(osg::Node *, TrackNode, __osg_Node_P1__getTrackNode, __void__setTrackNode__osg_Node_P1); - I_SimpleProperty(osgGA::NodeTrackerManipulator::ObserverNodePath &, TrackNodePath, - __ObserverNodePath_R1__getTrackNodePath, + I_SimpleProperty(osg::ObserverNodePath &, TrackNodePath, + __osg_ObserverNodePath_R1__getTrackNodePath, 0); I_SimpleProperty(osgGA::NodeTrackerManipulator::TrackerMode, TrackerMode, __TrackerMode__getTrackerMode, diff --git a/src/osgWrappers/introspection/osgWidget/Widget.cpp b/src/osgWrappers/introspection/osgWidget/Widget.cpp index 13d866080..6722cca21 100644 --- a/src/osgWrappers/introspection/osgWidget/Widget.cpp +++ b/src/osgWrappers/introspection/osgWidget/Widget.cpp @@ -965,9 +965,9 @@ BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osgWidget::Widget >) ____observer_ptr__C5_observer_ptr_R1, "", ""); - I_Method1(void, objectDeleted, IN, void *, x, - Properties::VIRTUAL, - __void__objectDeleted__void_P1, + I_Method0(osg::ref_ptr< osgWidget::Widget >, lock, + Properties::NON_VIRTUAL, + __ref_ptrT1_T___lock, "", ""); I_Method0(osgWidget::Widget *, get, @@ -980,6 +980,12 @@ BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osgWidget::Widget >) __bool__valid, "", ""); + I_ProtectedMethod1(void, objectDeleted, IN, void *, x, + Properties::VIRTUAL, + Properties::NON_CONST, + __void__objectDeleted__void_P1, + "objectDeleted is called when the observed object is about to be deleted. ", + "The observer will be automatically removed from the observerd objects observer set so there is no need for the objectDeleted implementation to call removeObserver() on the observed object. "); I_SimpleProperty(osgWidget::Widget *, , __T_P1__get, 0); diff --git a/src/osgWrappers/introspection/osgWidget/Window.cpp b/src/osgWrappers/introspection/osgWidget/Window.cpp index 3fc8206fb..9bc476b47 100644 --- a/src/osgWrappers/introspection/osgWidget/Window.cpp +++ b/src/osgWrappers/introspection/osgWidget/Window.cpp @@ -967,9 +967,9 @@ BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osgWidget::Window >) ____observer_ptr__C5_observer_ptr_R1, "", ""); - I_Method1(void, objectDeleted, IN, void *, x, - Properties::VIRTUAL, - __void__objectDeleted__void_P1, + I_Method0(osg::ref_ptr< osgWidget::Window >, lock, + Properties::NON_VIRTUAL, + __ref_ptrT1_T___lock, "", ""); I_Method0(osgWidget::Window *, get, @@ -982,6 +982,12 @@ BEGIN_OBJECT_REFLECTOR(osg::observer_ptr< osgWidget::Window >) __bool__valid, "", ""); + I_ProtectedMethod1(void, objectDeleted, IN, void *, x, + Properties::VIRTUAL, + Properties::NON_CONST, + __void__objectDeleted__void_P1, + "objectDeleted is called when the observed object is about to be deleted. ", + "The observer will be automatically removed from the observerd objects observer set so there is no need for the objectDeleted implementation to call removeObserver() on the observed object. "); I_SimpleProperty(osgWidget::Window *, , __T_P1__get, 0);