From 9d490bbf1c56274cba41a818658901f0618b778c Mon Sep 17 00:00:00 2001 From: mp3butcher Date: Tue, 28 Mar 2017 22:37:34 +0200 Subject: [PATCH] add ScriptNodeCallback serializer --- include/osg/ScriptEngine | 8 ++++++- src/osgWrappers/serializers/osg/Script.cpp | 20 ++++++++++++++++ .../serializers/osg/ScriptNodeCallback.cpp | 23 +++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/osgWrappers/serializers/osg/Script.cpp create mode 100644 src/osgWrappers/serializers/osg/ScriptNodeCallback.cpp diff --git a/include/osg/ScriptEngine b/include/osg/ScriptEngine index ce08ef623..7ef68aeb0 100644 --- a/include/osg/ScriptEngine +++ b/include/osg/ScriptEngine @@ -36,7 +36,7 @@ class Script : public osg::Object META_Object(osg, Script) void setLanguage(const std::string& language) { _language = language; dirty(); } - const std::string& getLanguage() { return _language; } + const std::string& getLanguage() const{ return _language; } void setScript(const std::string& str) { _script = str; dirty(); } const std::string& getScript() const { return _script; } @@ -75,6 +75,12 @@ class OSG_EXPORT ScriptNodeCallback : public osg::NodeCallback /** Get the script to call.*/ const osg::Script* getScript() const { return _script.get(); } + /** Set the entry point to call.*/ + void setEntryPoint(const std::string& script) { _entryPoint = script; } + + /** Get the script to call.*/ + const std::string& getEntryPoint() const { return _entryPoint; } + /** find the ScriptEngine from looking at the UserDataContainers of nodes in scene graph above the ScriptCallback.*/ osg::ScriptEngine* getScriptEngine(osg::NodePath& nodePath); diff --git a/src/osgWrappers/serializers/osg/Script.cpp b/src/osgWrappers/serializers/osg/Script.cpp new file mode 100644 index 000000000..978115185 --- /dev/null +++ b/src/osgWrappers/serializers/osg/Script.cpp @@ -0,0 +1,20 @@ + + + +#include +#include +#include + +#include + +REGISTER_OBJECT_WRAPPER( Script, + new osg::Script, + osg::Script, + "osg::Object osg::Script" ) +{ +ADD_STRING_SERIALIZER( Script, "" ); // _script +ADD_STRING_SERIALIZER( Language, "" ); // _script +} + + + diff --git a/src/osgWrappers/serializers/osg/ScriptNodeCallback.cpp b/src/osgWrappers/serializers/osg/ScriptNodeCallback.cpp new file mode 100644 index 000000000..4c06c50ed --- /dev/null +++ b/src/osgWrappers/serializers/osg/ScriptNodeCallback.cpp @@ -0,0 +1,23 @@ +#undef OBJECT_CAST +#define OBJECT_CAST dynamic_cast + +#include +#include +#include + +#include + + +REGISTER_OBJECT_WRAPPER( ScriptNodeCallback, + new osg::ScriptNodeCallback, + osg::ScriptNodeCallback, + "osg::Object osg::Callback osg::CallbackObject osg::ScriptNodeCallback" ) +{ + ADD_OBJECT_SERIALIZER( Script, osg::Script, NULL ); // _script + ADD_STRING_SERIALIZER( EntryPoint, "" ); // _entrypoint +} + + +#undef OBJECT_CAST +#define OBJECT_CAST static_cast +