OpenSceneGraph/examples/osgframerenderer/CaptureSettings.h
2012-11-12 15:26:30 +00:00

101 lines
3.0 KiB
C++

#ifndef CAPTURESETTINGS_H
#define CAPTURESETTINGS_H
#include <osgDB/ReadFile>
#include <osgDB/FileNameUtils>
#include <osgDB/WriteFile>
#include <osgViewer/Viewer>
#include <osg/AnimationPath>
#include "UpdateProperty.h"
namespace gsc
{
class CaptureSettings : public osg::Object
{
public:
CaptureSettings();
CaptureSettings(const CaptureSettings& cs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) {}
META_Object(gsc, CaptureSettings);
void setInputFileName(const std::string& filename) { _inputFileName = filename; }
const std::string& getInputFileName() const { return _inputFileName; }
void setOutputFileName(const std::string& filename);
const std::string& getOutputFileName() const;
std::string getOutputFileName(unsigned int frameNumber) const;
std::string getOutputFileName(unsigned int cameraNumber, unsigned int frameNumber) const;
void setOffscreen(bool o) { _offscreen = o; }
bool getOffscreen() const { return _offscreen; }
void setWidth(unsigned int width) { _width = width; }
unsigned int getWidth() const { return _width; }
void setHeight(unsigned int height) { _height = height; }
unsigned int getHeight() const { return _height; }
void setSamples(unsigned int s) { _samples = s; }
unsigned int getSamples() const { return _samples; }
void setSampleBuffers(unsigned int s) { _sampleBuffers = s; }
unsigned int getSampleBuffers() const { return _sampleBuffers; }
void setStereo(bool on) { _stereo = on; }
bool getStereo() const { return _stereo; }
void setFrameRate(double fr) { _frameRate = fr; }
double getFrameRate() const { return _frameRate; }
void setNumberOfFrames(unsigned int nf) { _numberOfFrames = nf; }
unsigned int getNumberOfFrames() const { return _numberOfFrames; }
typedef std::vector< osg::ref_ptr<osgGA::GUIEventHandler> > EventHandlers;
void setEventHandlers(const EventHandlers& eh);
EventHandlers& getEventHandlers() { return _eventHandlers; }
const EventHandlers& getEventHandlers() const { return _eventHandlers; }
typedef std::vector< osg::ref_ptr<UpdateProperty> > Properties;
void addUpdateProperty(UpdateProperty* up) { _properties.push_back(up); }
void setProperties(const Properties& pl) { _properties = pl; }
Properties& getProperties() { return _properties; }
const Properties& getProperties() const { return _properties; }
bool valid() const;
protected:
virtual ~CaptureSettings() {}
std::string _inputFileName;
std::string _outputFileName;
std::string _outputDirectoryName;
std::string _outputBaseFileName;
std::string _outputExtension;
bool _offscreen;
unsigned int _width;
unsigned int _height;
unsigned int _samples;
unsigned int _sampleBuffers;
bool _stereo;
double _frameRate;
unsigned int _numberOfFrames;
EventHandlers _eventHandlers;
Properties _properties;
};
}
#endif