From dd137c2442db106a97beac93b39209af94959543 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 18 Jun 2008 11:13:51 +0000 Subject: [PATCH] From Bob Kuehne, "this submission extends the osgViewer::RecordCameraPathHandler to have an optionally-enabled auto-incrementing filename. default behavior is still the same, but there's one new method to enable autoincrementing filenames." From Robert Osfield, modified the above so that the number increments come after the filename rather than before. --- include/osgViewer/ViewerEventHandlers | 3 +++ src/osgViewer/ViewerEventHandlers.cpp | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/include/osgViewer/ViewerEventHandlers b/include/osgViewer/ViewerEventHandlers index 67ff59262..1d98359cf 100644 --- a/include/osgViewer/ViewerEventHandlers +++ b/include/osgViewer/ViewerEventHandlers @@ -236,6 +236,8 @@ public: void setKeyEventTogglePlayback(int key) { _keyEventTogglePlayback = key; } int getKeyEventTogglePlayback() const { return _keyEventTogglePlayback; } + void setAutoIncrementFilename( bool autoinc = true ) { _autoinc = autoinc?0:-1; } + virtual void getUsage(osg::ApplicationUsage &usage) const; bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa); @@ -243,6 +245,7 @@ public: protected: std::string _filename; + int _autoinc; std::ofstream _fout; int _keyEventToggleRecord; diff --git a/src/osgViewer/ViewerEventHandlers.cpp b/src/osgViewer/ViewerEventHandlers.cpp index 7d02f5af1..08e3e06d2 100644 --- a/src/osgViewer/ViewerEventHandlers.cpp +++ b/src/osgViewer/ViewerEventHandlers.cpp @@ -15,9 +15,12 @@ #include #include +#include #include #include +#include + #include #include @@ -368,6 +371,7 @@ bool ThreadingHandler::handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIAction RecordCameraPathHandler::RecordCameraPathHandler(const std::string& filename): _filename(filename), + _autoinc( -1 ), _keyEventToggleRecord('z'), _keyEventTogglePlayback('Z'), _currentlyRecording(false), @@ -448,8 +452,17 @@ bool RecordCameraPathHandler::handle(const osgGA::GUIEventAdapter &ea, osgGA::GU if (!_filename.empty()) { - osg::notify(osg::NOTICE)<<"Recording camera path to file "<<_filename<