Cutout Vis2012
TUWienVisualisierung2(SS2012)-AdaptiveCutaways
 All Classes Namespaces Functions Pages
Terminal.h
1 #ifndef _TERMINAL_H_
2 #define _TERMINAL_H_
3 
4 #include "Shader.h"
5 #include "Mesh.h"
6 #include "FontRenderer.h"
7 #include "InputHandler.h"
8 #include "Commander.h"
9 #include <deque>
10 #include <string>
11 
12 class Terminal;
13 
14 static Terminal* globalTerminal;
15 
19 class Terminal
20 {
21 public:
29  Terminal(Scene* scene, InputHandler* inputHandler, FontRenderer* fontRenderer, Commander* commander);
30  ~Terminal();
31 
35  void setActive(bool active);
36  bool isActive();
37 
41  void characterCallback(int character, int action);
45  void keyCallback(int key, int action);
46 
50  void render();
54  void update(double frameLength);
55 
59  bool requestsInactive();
60 
61 private:
62  Scene* _scene;
63  InputHandler* _inputHandler;
64  Commander* _commander;
65 
66  bool _active;
67 
68  Shader _colorShader;
69 
70  Mesh* _bgMesh;
71  FontRenderer* _fontRenderer;
72 
73  Text* _currentText;
74  std::deque<Text*> _previousTexts;
75 
76  double _blinkTimer;
77  std::string _blinkCharacter;
78  std::string _currentLine;
79 
80  bool _requestInactive;
81 
82  void execute(const std::string& input);
83 };
84 
85 
86 #endif