Update of /cvsroot/simspark/simspark/spark/plugin/rubysceneimporter
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv17034/spark/plugin/rubysceneimporter
Modified Files:
rubysceneimporter.cpp rubysceneimporter.h
rubysceneimporter_c.cpp
Log Message:
Index: rubysceneimporter.h
===================================================================
RCS file: /cvsroot/simspark/simspark/spark/plugin/rubysceneimporter/rubysceneimporter.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rubysceneimporter.h 15 Mar 2007 07:26:28 -0000 1.3
--- rubysceneimporter.h 17 May 2007 17:49:23 -0000 1.4
***************
*** 76,79 ****
--- 76,82 ----
void SetUnlinkOnCompleteScenes(bool unlink);
+ /** registers all created nodes in the RubySceneDict */
+ void EnableSceneDictionary(bool enable);
+
protected:
virtual bool ParseScene(const char* scene, int size,
***************
*** 111,114 ****
--- 114,120 ----
bool mDeltaScene;
+ /** true, if all created nodes are registered in the RubySceneDict */
+ bool mUpdateSceneDict;
+
/** the major version of the scen graph file */
int mVersionMajor;
Index: rubysceneimporter.cpp
===================================================================
RCS file: /cvsroot/simspark/simspark/spark/plugin/rubysceneimporter/rubysceneimporter.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** rubysceneimporter.cpp 15 Mar 2007 07:26:28 -0000 1.3
--- rubysceneimporter.cpp 17 May 2007 17:49:23 -0000 1.4
***************
*** 25,28 ****
--- 25,29 ----
#include <zeitgeist/scriptserver/scriptserver.h>
#include <oxygen/sceneserver/transform.h>
+ #include <oxygen/sceneserver/scenedict.h>
#include <boost/scoped_array.hpp>
***************
*** 74,77 ****
--- 75,79 ----
mDeltaScene = false;
mAutoUnlink = false;
+ mUpdateSceneDict = false;
}
***************
*** 85,88 ****
--- 87,95 ----
}
+ void RubySceneImporter::EnableSceneDictionary(bool enable)
+ {
+ mUpdateSceneDict = enable;
+ }
+
bool RubySceneImporter::ImportScene(const std::string& fileName,
shared_ptr<BaseNode> root,
***************
*** 99,102 ****
--- 106,110 ----
}
+ std::string oldFileName = mFileName;
mFileName = fileName;
***************
*** 106,110 ****
buffer[file->Size()] = 0;
! return ParseScene(buffer.get(), file->Size(), root, parameter);
}
--- 114,121 ----
buffer[file->Size()] = 0;
! bool ok = ParseScene(buffer.get(), file->Size(), root, parameter);
! mFileName = oldFileName;
!
! return ok;
}
***************
*** 144,147 ****
--- 155,168 ----
sexp = iparse_sexp(const_cast<char*>(scene),size,pcont);
+ if (sexp == 0)
+ {
+ GetLog()->Error()
+ << "(RubySceneImporter) ERROR: failed to parse S-Expressions. "
+ << "Last read line was " << pcont->line << "\n";
+ root->UnlinkChildren();
+ return false;
+
+ }
+
if (
(! mDeltaScene) &&
***************
*** 322,325 ****
--- 343,355 ----
}
+ if (
+ (mUpdateSceneDict) &&
+ (mSceneDict != 0)
+ )
+ {
+ mSceneDict->Insert
+ (node, SceneDict::FileRef(mFileName,sexp->line));
+ }
+
return node;
}
Index: rubysceneimporter_c.cpp
===================================================================
RCS file: /cvsroot/simspark/simspark/spark/plugin/rubysceneimporter/rubysceneimporter_c.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** rubysceneimporter_c.cpp 13 Dec 2005 21:48:50 -0000 1.1
--- rubysceneimporter_c.cpp 17 May 2007 17:49:23 -0000 1.2
***************
*** 23,26 ****
--- 23,42 ----
#include "rubysceneimporter.h"
+ FUNCTION(RubySceneImporter,enableSceneDictionary)
+ {
+ bool enable;
+
+ if (
+ (in.GetSize() != 1) ||
+ (! in.GetValue(in[0], enable))
+ )
+ {
+ return false;
+ }
+
+ obj->EnableSceneDictionary(enable);
+ return true;
+ }
+
FUNCTION(RubySceneImporter,setUnlinkOnCompleteScenes)
{
***************
*** 43,46 ****
--- 59,63 ----
DEFINE_BASECLASS(oxygen/SceneImporter);
DEFINE_FUNCTION(setUnlinkOnCompleteScenes);
+ DEFINE_FUNCTION(enableSceneDictionary);
}
|