diff --git a/include/osg/ClusterCullingCallback b/include/osg/ClusterCullingCallback index 0a3c96e39..12d822015 100644 --- a/include/osg/ClusterCullingCallback +++ b/include/osg/ClusterCullingCallback @@ -33,6 +33,9 @@ class OSG_EXPORT ClusterCullingCallback : public DrawableCullCallback, public No META_Object(osg,ClusterCullingCallback); + virtual NodeCallback* asNodeCallback() { return osg::NodeCallback::asNodeCallback(); } + virtual const NodeCallback* asNodeCallback() const { return osg::NodeCallback::asNodeCallback(); } + // use the NodeCallbacks implementation of run. virtual bool run(osg::Object* object, osg::Object* data) { return NodeCallback::run(object, data); } diff --git a/include/osgAnimation/AnimationUpdateCallback b/include/osgAnimation/AnimationUpdateCallback index 2db6561b8..336ee4c86 100644 --- a/include/osgAnimation/AnimationUpdateCallback +++ b/include/osgAnimation/AnimationUpdateCallback @@ -41,6 +41,13 @@ namespace osgAnimation META_Object(osgAnimation, AnimationUpdateCallback); + virtual osg::Callback* asCallback() { return T::asCallback(); } + virtual const osg::Callback* asCallback() const { return T::asCallback(); } + + virtual osg::CallbackObject* asCallbackObject() { return T::asCallbackObject(); } + virtual const osg::CallbackObject* asCallbackObject() const { return T::asCallbackObject(); } + + const std::string& getName() const { return T::getName(); } bool link(Channel* /*channel*/) { return 0; } int link(Animation* animation) diff --git a/include/osgGA/EventHandler b/include/osgGA/EventHandler index fcd1776a2..b6445fd6e 100644 --- a/include/osgGA/EventHandler +++ b/include/osgGA/EventHandler @@ -43,6 +43,9 @@ public: META_Object(osgGA, EventHandler); + virtual NodeCallback* asNodeCallback() { return osg::NodeCallback::asNodeCallback(); } + virtual const NodeCallback* asNodeCallback() const { return osg::NodeCallback::asNodeCallback(); } + virtual bool run(osg::Object* object, osg::Object* data) { osg::Node* node = dynamic_cast(object); diff --git a/include/osgViewer/ViewerEventHandlers b/include/osgViewer/ViewerEventHandlers index 1017efc51..113396ffb 100644 --- a/include/osgViewer/ViewerEventHandlers +++ b/include/osgViewer/ViewerEventHandlers @@ -510,6 +510,9 @@ public: META_Object(osgViewer, InteractiveImageHandler); + virtual NodeCallback* asNodeCallback() { return osg::NodeCallback::asNodeCallback(); } + virtual const NodeCallback* asNodeCallback() const { return osg::NodeCallback::asNodeCallback(); } + // use the osgGA::GUIEventHandler implementation of run. virtual bool run(osg::Object* object, osg::Object* data) { return osgGA::GUIEventHandler::run(object, data); } diff --git a/include/osgVolume/Property b/include/osgVolume/Property index 70ad136ce..5fe8973a1 100644 --- a/include/osgVolume/Property +++ b/include/osgVolume/Property @@ -487,6 +487,9 @@ class OSGVOLUME_EXPORT PropertyAdjustmentCallback : public osgGA::GUIEventHandle META_Object(osgVolume, PropertyAdjustmentCallback); + virtual NodeCallback* asNodeCallback() { return osg::NodeCallback::asNodeCallback(); } + virtual const NodeCallback* asNodeCallback() const { return osg::NodeCallback::asNodeCallback(); } + virtual bool run(osg::Object* object, osg::Object* data) { return osgGA::GUIEventHandler::run(object, data); } void setKeyEventCycleForward(int key) { _cyleForwardKey = key; }