14 #ifndef OSGVIEWER_VIEWEREVENTHANDLERS
15 #define OSGVIEWER_VIEWEREVENTHANDLERS 1
17 #include <osg/AnimationPath>
18 #include <osgText/Text>
19 #include <osgGA/GUIEventHandler>
20 #include <osgGA/AnimationPathManipulator>
22 #include <osgViewer/GraphicsWindow>
23 #include <osgViewer/Viewer>
25 #include <osgDB/fstream>
85 CAMERA_SCENE_STATS = 3,
86 VIEWER_SCENE_STATS = 4,
140 void addUserStatsLine(
const std::string& label,
const osg::Vec4& textColor,
const osg::Vec4& barColor,
141 const std::string& timeTakenName,
float multiplier,
bool average,
bool averageInInverseSpace,
142 const std::string& beginTimeName,
const std::string& endTimeName,
float maxValue);
144 void removeUserStatsLine(
const std::string& label);
159 void createTimeStatsLine(
const std::string& lineLabel,
osg::Vec3 pos,
161 const std::string& timeTakenName,
float multiplier,
bool average,
bool averageInInverseSpace,
162 const std::string& beginTimeName,
const std::string& endTimeName);
168 void updateThreadingModelText();
215 const std::string& timeTakenName_,
float multiplier_,
bool average_,
bool averageInInverseSpace_,
216 const std::string& beginTimeName_,
const std::string& endTimeName_,
float maxValue_)
217 : label(label_), textColor(textColor_), barColor(barColor_),
218 timeTakenName(timeTakenName_), multiplier(multiplier_), average(average_), averageInInverseSpace(averageInInverseSpace_),
219 beginTimeName(beginTimeName_), endTimeName(endTimeName_), maxValue(maxValue_)
260 unsigned int getNearestResolution(
int screenWidth,
int screenHeight,
int width,
int height)
const;
414 virtual void operator()(
const osg::Image& image,
const unsigned int context_id) = 0;
428 WriteToFile(
const std::string& filename,
const std::string& extension, SavePolicy savePolicy = SEQUENTIAL_NUMBER);
430 virtual void operator()(
const osg::Image& image,
const unsigned int context_id);
456 void setCaptureOperation(CaptureOperation* operation);
457 CaptureOperation* getCaptureOperation()
const;
468 void setFramesToCapture(
int numFrames);
471 int getFramesToCapture()
const;
527 osg::Object(),
osg::Callback(),
osgGA::GUIEventHandler(),
osg::Drawable::CullCallback(), _fullscreen(false) {}
int _keyEventToggleRecord
osg::ref_ptr< osg::Camera > _camera
bool getChangeEndBarrierPosition() const
std::vector< unsigned int > _contextSaveCounter
void setChangeThreadingModel(bool flag)
osg::ref_ptr< osgGA::AnimationPathManipulator > _animPathManipulator
InteractiveImageHandler()
std::string timeTakenName
int _keyEventIncreaseLODScale
int _keyEventChangeThreadingModel
void setKeyEventToggleSyncToVBlankHandler(int key)
int getKeyEventTogglesOnScreenStats() const
osg::Camera * getCamera()
bool getChangeWindowedResolution() const
osg::Timer_t _animStartTime
int _keyEventChangeEndBarrierPosition
void setKeyEventChangeEndBarrierPosition(int key)
const std::string _filename
int getKeyEventDecreaseLODScale() const
int getKeyEventWindowedResolutionUp() const
void setKeyEventTogglesOnScreenHelp(int key)
const osg::Camera * getCamera() const
bool _changeWindowedResolution
std::vector< osg::Vec2 > _resolutionList
unsigned int _frameRateChildNum
osg::Camera * getCamera()
int getKeyEventToggleSyncToVBlankHandler() const
void setAutoIncrementFilename(bool autoinc=true)
int getKeyEventToggleRecord() const
int getKeyEventWindowedResolutionDown() const
void setKeyEventDecreaseLODScale(int key)
UserStatsLine(const std::string &label_, const osg::Vec4 &textColor_, const osg::Vec4 &barColor_, const std::string &timeTakenName_, float multiplier_, bool average_, bool averageInInverseSpace_, const std::string &beginTimeName_, const std::string &endTimeName_, float maxValue_)
bool getToggleFullscreen() const
int _keyEventDecreaseLODScale
void setApplicationUsage(osg::ApplicationUsage *au)
bool _changeThreadingModel
osg::ref_ptr< osg::Camera > _camera
void setSavePolicy(SavePolicy savePolicy)
osg::ref_ptr< osg::Geode > _statsGeode
std::vector< UserStatsLine > UserStatsLines
int getKeyEventChangeEndBarrierPosition() const
void setChangeWindowedResolution(bool flag)
unsigned long long Timer_t
int _keyEventTogglePlayback
osg::Timer_t _tickOrLastKeyPress
void setToggleFullscreen(bool flag)
int _keyEventWindowedResolutionUp
bool averageInInverseSpace
void setKeyEventTogglePlayback(int key)
SavePolicy getSavePolicy() const
virtual bool run(osg::Object *object, osg::Object *data)
#define META_Object(library, name)
osg::Timer_t _lastFrameTime
bool getChangeThreadingModel() const
GLint GLenum GLsizei width
osg::observer_ptr< osg::Image > _image
osg::ref_ptr< osg::Switch > _switch
unsigned int _cameraSceneChildNum
void setKeyEventTakeScreenShot(int key)
void setKeyEventWindowedResolutionUp(int key)
unsigned int _viewerChildNum
int getKeyEventToggleContinuousCapture() const
InteractiveImageHandler(const InteractiveImageHandler &, const osg::CopyOp &=osg::CopyOp::SHALLOW_COPY)
int _keyEventToggleSyncToVBlank
int getKeyEventTogglePlayback() const
osg::ref_ptr< osg::ApplicationUsage > _applicationUsage
const osg::Camera * getCamera() const
int getKeyEventIncreaseLODScale() const
int _keyEventToggleContinuousCapture
ViewerBase::ThreadingModel _threadingModel
unsigned int _viewerSceneChildNum
bool _changeEndBarrierPosition
int getKeyEventToggleFullscreen() const
const osg::ApplicationUsage * getApplicationUsage() const
void setKeyEventWindowedResolutionDown(int key)
osg::observer_ptr< osg::Texture2D > _texture
int _keyEventPrintsOutStats
osg::observer_ptr< osg::Camera > _camera
GLint GLenum GLsizei GLsizei height
void setChangeEndBarrierPosition(bool flag)
osg::ref_ptr< osgText::Text > _threadingModelText
osg::ref_ptr< osgGA::CameraManipulator > _oldManipulator
void setKeyEventPrintsOutStats(int key)
int _currentResolutionIndex
void setKeyEventTogglesOnScreenStats(int key)
UserStatsLines _userStatsLines
std::string beginTimeName
int _keyEventWindowedResolutionDown
int _keyEventTakeScreenShot
int _keyEventToggleFullscreen
void setKeyEventIncreaseLODScale(int key)
osg::ref_ptr< osg::Camera::DrawCallback > _callback
int getKeyEventChangeThreadingModel() const
void setKeyEventToggleFullscreen(int key)
int getKeyEventTakeScreenShot() const
void setKeyEventToggleRecord(int key)
osg::ref_ptr< osg::AnimationPath > _animPath
int getKeyEventTogglesOnScreenHelp() const
virtual bool run(osg::Object *object, osg::Object *data)
double getBlockMultiplier() const
virtual ~InteractiveImageHandler()
void setKeyEventToggleContinuousCapture(int key)
const std::string _extension
int getKeyEventPrintsOutStats() const
void setKeyEventChangeThreadingModel(int key)
osg::ref_ptr< CaptureOperation > _operation
osg::ref_ptr< osg::Switch > _switch
osg::ApplicationUsage * getApplicationUsage()
int _keyEventTogglesOnScreenHelp
int _keyEventTogglesOnScreenStats