osgViewer::StatsHandler Class Reference

`#include <ViewerEventHandlers>`

Inheritance diagram for osgViewer::StatsHandler:

## Classes

struct | UserStatsLine

## Public Types

enum | StatsType { NO_STATS = 0 , FRAME_RATE = 1 , VIEWER_STATS = 2 , CAMERA_SCENE_STATS = 3 , VIEWER_SCENE_STATS = 4 , LAST = 5 }
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

## Public Member Functions

| StatsHandler ()
void | setKeyEventTogglesOnScreenStats (int key)
int | getKeyEventTogglesOnScreenStats () const
void | setKeyEventPrintsOutStats (int key)
int | getKeyEventPrintsOutStats () const
double | getBlockMultiplier () const
void | reset ()
osg::Camera * | getCamera ()
const osg::Camera * | getCamera () const
virtual void | collectWhichCamerasToRenderStatsFor (osgViewer::ViewerBase *viewer, osgViewer::ViewerBase::Cameras &cameras)
virtual bool | handle (const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
virtual void | getUsage (osg::ApplicationUsage &usage) const
void | addUserStatsLine (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)
void | removeUserStatsLine (const std::string &label)
Public Member Functions inherited from osgGA::GUIEventHandler
| GUIEventHandler ()
| GUIEventHandler (const GUIEventHandler &eh, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| META_Object (osgGA, GUIEventHandler)
virtual bool | handle (osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv)
virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *, osg::NodeVisitor *)
Public Member Functions inherited from osgGA::EventHandler
| EventHandler ()
| EventHandler (const EventHandler &eh, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| META_Object (osgGA, EventHandler)
virtual NodeCallback * | asNodeCallback ()
virtual const NodeCallback * | asNodeCallback () const
virtual DrawableEventCallback * | asDrawableEventCallback ()
virtual const DrawableEventCallback * | asDrawableEventCallback () const
virtual EventHandler * | asEventHandler ()
virtual const EventHandler * | asEventHandler () const
virtual bool | run (osg::Object *object, osg::Object *data)
virtual void | operator() (osg::Node *node, osg::NodeVisitor *nv)
virtual void | event (osg::NodeVisitor *nv, osg::Drawable *drawable)
Public Member Functions inherited from osg::NodeCallback
| NodeCallback ()
| NodeCallback (const NodeCallback &nc, const CopyOp &copyop)
| META_Object (osg, NodeCallback)
Public Member Functions inherited from osg::Callback
| Callback ()
| Callback (const Callback &cb, const CopyOp &copyop)
| META_Object (osg, Callback)
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual StateAttributeCallback * | asStateAttributeCallback ()
virtual const StateAttributeCallback * | asStateAttributeCallback () const
virtual UniformCallback * | asUniformCallback ()
virtual const UniformCallback * | asUniformCallback () const
virtual DrawableUpdateCallback * | asDrawableUpdateCallback ()
virtual const DrawableUpdateCallback * | asDrawableUpdateCallback () const
virtual DrawableCullCallback * | asDrawableCullCallback ()
virtual const DrawableCullCallback * | asDrawableCullCallback () const
bool | traverse (osg::Object *object, osg::Object *data)
void | setNestedCallback (osg::Callback *cb)
osg::Callback * | getNestedCallback ()
const osg::Callback * | getNestedCallback () const
void | addNestedCallback (osg::Callback *nc)
void | removeNestedCallback (osg::Callback *nc)
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const =0
virtual Object * | clone (const CopyOp &) const =0
virtual bool | isSameKindAs (const Object *) const
virtual const char * | libraryName () const =0
virtual const char * | className () const =0
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
virtual void | resizeGLObjectBuffers (unsigned int)
virtual void | releaseGLObjects (osg::State *=0) const
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const
Public Member Functions inherited from osg::DrawableEventCallback
| DrawableEventCallback ()
| DrawableEventCallback (const DrawableEventCallback &org, const CopyOp &copyop)
| META_Object (osg, DrawableEventCallback)

## Protected Types

typedef std::vector< UserStatsLine > | UserStatsLines

## Protected Member Functions

void | setUpHUDCamera (osgViewer::ViewerBase *viewer)
void | setWindowSize (int width, int height)
osg::Geometry * | createBackgroundRectangle (const osg::Vec3 &pos, const float width, const float height, osg::Vec4 &color)
osg::Geometry * | createGeometry (const osg::Vec3 &pos, float height, const osg::Vec4 &colour, unsigned int numBlocks)
osg::Geometry * | createFrameMarkers (const osg::Vec3 &pos, float height, const osg::Vec4 &colour, unsigned int numBlocks)
osg::Geometry * | createTick (const osg::Vec3 &pos, float height, const osg::Vec4 &colour, unsigned int numTicks)
void | createTimeStatsLine (const std::string &lineLabel, osg::Vec3 pos, const osg::Vec4 &textColor, const osg::Vec4 &barColor, osg::Stats *viewerStats, osg::Stats *stats, const std::string &timeTakenName, float multiplier, bool average, bool averageInInverseSpace, const std::string &beginTimeName, const std::string &endTimeName)
void | createCameraTimeStats (osg::Vec3 &pos, bool acquireGPUStats, osg::Stats *viewerStats, osg::Camera *camera)
void | setUpScene (osgViewer::ViewerBase *viewer)
void | updateThreadingModelText ()
Protected Member Functions inherited from osgGA::GUIEventHandler
virtual | ~GUIEventHandler ()
Protected Member Functions inherited from osg::NodeCallback
virtual | ~NodeCallback ()
Protected Member Functions inherited from osg::Callback
virtual | ~Callback ()
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

int | _keyEventTogglesOnScreenStats
int | _keyEventPrintsOutStats
int | _statsType
bool | _initialized
osg::ref_ptr< osg::Camera > | _camera
osg::ref_ptr< osg::Switch > | _switch
osg::ref_ptr< osg::Geode > | _statsGeode
ViewerBase::ThreadingModel | _threadingModel
osg::ref_ptr< osgText::Text > | _threadingModelText
unsigned int | _frameRateChildNum
unsigned int | _viewerChildNum
unsigned int | _cameraSceneChildNum
unsigned int | _viewerSceneChildNum
unsigned int | _numBlocks
double | _blockMultiplier
float | _statsWidth
float | _statsHeight
std::string | _font
float | _startBlocks
float | _leftPos
float | _characterSize
float | _lineHeight
UserStatsLines | _userStatsLines
Protected Attributes inherited from osg::Callback
ref_ptr< Callback > | _nestedCallback
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

Event handler for adding on screen stats reporting to Viewers.

## Member Typedef Documentation

## UserStatsLines

typedef std::vector<UserStatsLine> osgViewer::StatsHandler::UserStatsLines

protected

## Member Enumeration Documentation

## StatsType

enum osgViewer::StatsHandler::StatsType

Enumerator
NO_STATS |
FRAME_RATE |
VIEWER_STATS |
CAMERA_SCENE_STATS |
VIEWER_SCENE_STATS |
LAST |

## Constructor & Destructor Documentation

## StatsHandler()

osgViewer::StatsHandler::StatsHandler | ( |  | ) |

## Member Function Documentation

## addUserStatsLine()

void osgViewer::StatsHandler::addUserStatsLine | ( | 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 )

This allows the user to register additional stats lines that will be added to the graph. The stats for these will be gotten from the viewer (viewer->getViewerStats()). The stats can be displayed in either or all of the following ways:

- A numeric time beside the stat name Requires that an elapsed time be recorded in the viewer's stats for the "timeTakenName".
- A bar in the top bar graph Requires that two times (relative to the viewer's start tick) be recorded in the viewer's stats for the "beginTimeName" and "endTimeName".
- A line in the bottom graph Requires that an elapsed time be recorded in the viewer's stats for the "timeTakenName" and that the value be used as an average.

If you don't want a numeric value and a line in the bottom line graph for your value, pass the empty string for timeTakenName. If you don't want a bar in the graph, pass the empty string for beginTimeName and endTimeName.

Parameters

  label | The label to be displayed to identify the line in the stats.
  textColor | Will be used for the text label, the numeric time and the bottom line graph.
  barColor | Will be used for the bar in the top bar graph.
  timeTakenName | The name to be queried in the viewer stats for the numeric value (also used for the bottom line graph).
  multiplier | The multiplier to apply to the numeric value before displaying it in the stats.
  average | Whether to use the average value of the numeric value.
  averageInInverseSpace | Whether to average in inverse space (used for frame rate).
  beginTimeName | The name to be queried in the viewer stats for the begin time for the top bar graph.
  endTimeName | The name to be queried in the viewer stats for the end time for the top bar graph.
  maxValue | The value to use as maximum in the bottom line graph. Stats will be clamped between 0 and that value, and it will be the highest visible value in the graph.

## collectWhichCamerasToRenderStatsFor()

virtual void osgViewer::StatsHandler::collectWhichCamerasToRenderStatsFor | ( | osgViewer::ViewerBase * | viewer,
|  | osgViewer::ViewerBase::Cameras & | cameras )

virtual

## createBackgroundRectangle()

osg::Geometry * osgViewer::StatsHandler::createBackgroundRectangle | ( | const osg::Vec3 & | pos,
|  | const float | width,
|  | const float | height,
|  | osg::Vec4 & | color )

protected

## createCameraTimeStats()

void osgViewer::StatsHandler::createCameraTimeStats | ( | osg::Vec3 & | pos,
|  | bool | acquireGPUStats,
|  | osg::Stats * | viewerStats,
|  | osg::Camera * | camera )

protected

## createFrameMarkers()

osg::Geometry * osgViewer::StatsHandler::createFrameMarkers | ( | const osg::Vec3 & | pos,
|  | float | height,
|  | const osg::Vec4 & | colour,
|  | unsigned int | numBlocks )

protected

## createGeometry()

osg::Geometry * osgViewer::StatsHandler::createGeometry | ( | const osg::Vec3 & | pos,
|  | float | height,
|  | const osg::Vec4 & | colour,
|  | unsigned int | numBlocks )

protected

## createTick()

osg::Geometry * osgViewer::StatsHandler::createTick | ( | const osg::Vec3 & | pos,
|  | float | height,
|  | const osg::Vec4 & | colour,
|  | unsigned int | numTicks )

protected

## createTimeStatsLine()

void osgViewer::StatsHandler::createTimeStatsLine | ( | const std::string & | lineLabel,
|  | osg::Vec3 | pos,
|  | const osg::Vec4 & | textColor,
|  | const osg::Vec4 & | barColor,
|  | osg::Stats * | viewerStats,
|  | osg::Stats * | stats,
|  | const std::string & | timeTakenName,
|  | float | multiplier,
|  | bool | average,
|  | bool | averageInInverseSpace,
|  | const std::string & | beginTimeName,
|  | const std::string & | endTimeName )

protected

## getBlockMultiplier()

double osgViewer::StatsHandler::getBlockMultiplier | ( |  | ) | const

inline

References _blockMultiplier.

## getCamera() [1/2]

osg::Camera * osgViewer::StatsHandler::getCamera | ( |  | ) |

inline

References _camera.

## getCamera() [2/2]

const osg::Camera * osgViewer::StatsHandler::getCamera | ( |  | ) | const

inline

References _camera.

## getKeyEventPrintsOutStats()

int osgViewer::StatsHandler::getKeyEventPrintsOutStats | ( |  | ) | const

inline

References _keyEventPrintsOutStats.

## getKeyEventTogglesOnScreenStats()

int osgViewer::StatsHandler::getKeyEventTogglesOnScreenStats | ( |  | ) | const

inline

References _keyEventTogglesOnScreenStats.

## getUsage()

virtual void osgViewer::StatsHandler::getUsage | ( | osg::ApplicationUsage & | usage | ) | const

virtual

Get the keyboard and mouse usage of this manipulator.

Reimplemented from osgGA::EventHandler.

## handle()

virtual bool osgViewer::StatsHandler::handle | ( | const osgGA::GUIEventAdapter & | ,
|  | osgGA::GUIActionAdapter & | )

virtual

Deprecated, Handle events, return true if handled, false otherwise.

Reimplemented from osgGA::GUIEventHandler.

## removeUserStatsLine()

void osgViewer::StatsHandler::removeUserStatsLine | ( | const std::string & | label | ) |

## reset()

void osgViewer::StatsHandler::reset | ( |  | ) |

## setKeyEventPrintsOutStats()

void osgViewer::StatsHandler::setKeyEventPrintsOutStats | ( | int | key | ) |

inline

References _keyEventPrintsOutStats.

## setKeyEventTogglesOnScreenStats()

void osgViewer::StatsHandler::setKeyEventTogglesOnScreenStats | ( | int | key | ) |

inline

References _keyEventTogglesOnScreenStats.

## setUpHUDCamera()

void osgViewer::StatsHandler::setUpHUDCamera | ( | osgViewer::ViewerBase * | viewer | ) |

protected

## setUpScene()

void osgViewer::StatsHandler::setUpScene | ( | osgViewer::ViewerBase * | viewer | ) |

protected

## setWindowSize()

void osgViewer::StatsHandler::setWindowSize | ( | int | width,
|  | int | height )

protected

## updateThreadingModelText()

void osgViewer::StatsHandler::updateThreadingModelText | ( |  | ) |

protected

## Member Data Documentation

## _blockMultiplier

double osgViewer::StatsHandler::_blockMultiplier

protected

Referenced by getBlockMultiplier().

## _camera

osg::ref_ptr<osg::Camera> osgViewer::StatsHandler::_camera

protected

Referenced by getCamera(), and getCamera().

## _cameraSceneChildNum

unsigned int osgViewer::StatsHandler::_cameraSceneChildNum

protected

## _characterSize

float osgViewer::StatsHandler::_characterSize

protected

## _font

std::string osgViewer::StatsHandler::_font

protected

## _frameRateChildNum

unsigned int osgViewer::StatsHandler::_frameRateChildNum

protected

## _initialized

bool osgViewer::StatsHandler::_initialized

protected

## _keyEventPrintsOutStats

int osgViewer::StatsHandler::_keyEventPrintsOutStats

protected

Referenced by getKeyEventPrintsOutStats(), and setKeyEventPrintsOutStats().

## _keyEventTogglesOnScreenStats

int osgViewer::StatsHandler::_keyEventTogglesOnScreenStats

protected

Referenced by getKeyEventTogglesOnScreenStats(), and setKeyEventTogglesOnScreenStats().

## _leftPos

float osgViewer::StatsHandler::_leftPos

protected

## _lineHeight

float osgViewer::StatsHandler::_lineHeight

protected

## _numBlocks

unsigned int osgViewer::StatsHandler::_numBlocks

protected

## _startBlocks

float osgViewer::StatsHandler::_startBlocks

protected

## _statsGeode

osg::ref_ptr<osg::Geode> osgViewer::StatsHandler::_statsGeode

protected

## _statsHeight

float osgViewer::StatsHandler::_statsHeight

protected

## _statsType

int osgViewer::StatsHandler::_statsType

protected

## _statsWidth

float osgViewer::StatsHandler::_statsWidth

protected

## _switch

osg::ref_ptr<osg::Switch> osgViewer::StatsHandler::_switch

protected

## _threadingModel

ViewerBase::ThreadingModel osgViewer::StatsHandler::_threadingModel

protected

## _threadingModelText

osg::ref_ptr<osgText::Text> osgViewer::StatsHandler::_threadingModelText

protected

## _userStatsLines

UserStatsLines osgViewer::StatsHandler::_userStatsLines

protected

## _viewerChildNum

unsigned int osgViewer::StatsHandler::_viewerChildNum

protected

## _viewerSceneChildNum

unsigned int osgViewer::StatsHandler::_viewerSceneChildNum

protected

The documentation for this class was generated from the following file:

- osgViewer/ViewerEventHandlers