OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StatsHandler.h
Go to the documentation of this file.
1 /* -*-c++-*-
2  * Copyright (C) 2009 Cedric Pinson <mornifle@plopbyte.net>
3  *
4  * This library is open source and may be redistributed and/or modified under
5  * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
6  * (at your option) any later version. The full license is in LICENSE file
7  * included with this distribution, and on the openscenegraph.org website.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * OpenSceneGraph Public License for more details.
13 */
14 
15 #ifndef OSGANIMATION_STATSHANDLER_H
16 #define OSGANIMATION_STATSHANDLER_H
17 
18 #include <osgAnimation/Timeline>
19 #include <osgGA/GUIEventHandler>
20 #include <osgViewer/ViewerBase>
21 #include <osgViewer/Viewer>
22 #include <osgText/Text>
23 
24 namespace osgAnimation
25 {
26 #if 0
27  struct StatAction
28  {
29 
30  std::string _name;
34  osg::ref_ptr<osgText::Text> _textLabel;
35 
36  void init(osg::Stats* stats, const std::string& name, const osg::Vec3& pos, float width, float heigh, const osg::Vec4& color);
37  void setPosition(const osg::Vec3& pos);
38  void setAlpha(float v);
39  };
40 
41 #endif
42 
45  {
46  public:
47 
48  StatsHandler();
49 
50  enum StatsType
51  {
52  NO_STATS = 0,
53  FRAME_RATE = 1,
54  LAST = 2
55  };
56 
57  void setKeyEventTogglesOnScreenStats(int key) { _keyEventTogglesOnScreenStats = key; }
58  int getKeyEventTogglesOnScreenStats() const { return _keyEventTogglesOnScreenStats; }
59 
60  void setKeyEventPrintsOutStats(int key) { _keyEventPrintsOutStats = key; }
61  int getKeyEventPrintsOutStats() const { return _keyEventPrintsOutStats; }
62 
63  double getBlockMultiplier() const { return _blockMultiplier; }
64 
65  void reset();
66 
67  osg::Camera* getCamera() { return _camera.get(); }
68  const osg::Camera* getCamera() const { return _camera.get(); }
69 
70  virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa);
71 
73  virtual void getUsage(osg::ApplicationUsage& usage) const;
74 
75  protected:
76 
77  void setUpHUDCamera(osgViewer::ViewerBase* viewer);
78 
79  osg::Geometry* createBackgroundRectangle(const osg::Vec3& pos, const float width, const float height, osg::Vec4& color);
80 
81  osg::Geometry* createGeometry(const osg::Vec3& pos, float height, const osg::Vec4& colour, unsigned int numBlocks);
82 
83  osg::Geometry* createFrameMarkers(const osg::Vec3& pos, float height, const osg::Vec4& colour, unsigned int numBlocks);
84 
85  osg::Geometry* createTick(const osg::Vec3& pos, float height, const osg::Vec4& colour, unsigned int numTicks);
86 
87  osg::Node* createCameraTimeStats(const std::string& font, osg::Vec3& pos, float startBlocks, bool acquireGPUStats, float characterSize, osg::Stats* viewerStats, osg::Camera* camera);
88 
89  void setUpScene(osgViewer::Viewer* viewer);
90 
93 
95 
98 
101 
102  unsigned int _frameRateChildNum;
103  unsigned int _numBlocks;
105 
106  float _statsWidth;
108 
109 // std::map<std::string, StatAction > _actions;
110  };
111 
112 }
113 #endif
osg::ref_ptr< osg::Group > _group
Definition: StatsHandler.h:100
osg::Camera * getCamera()
Definition: StatsHandler.h:67
#define OSGANIMATION_EXPORT
Definition: Export.h:40
GLint GLenum GLsizei width
Definition: GLU.h:71
osg::ref_ptr< osg::Switch > _switch
Definition: StatsHandler.h:99
int getKeyEventTogglesOnScreenStats() const
Definition: StatsHandler.h:58
int getKeyEventPrintsOutStats() const
Definition: StatsHandler.h:61
GLint GLenum GLsizei GLsizei height
Definition: GLU.h:71
osg::ref_ptr< osg::Camera > _camera
Definition: StatsHandler.h:97
void setKeyEventPrintsOutStats(int key)
Definition: StatsHandler.h:60
const osg::Camera * getCamera() const
Definition: StatsHandler.h:68
void setKeyEventTogglesOnScreenStats(int key)
Definition: StatsHandler.h:57
double getBlockMultiplier() const
Definition: StatsHandler.h:63
Definition: Node.h:71
unsigned int _frameRateChildNum
Definition: StatsHandler.h:102