Flair
Framework Libre Air
Gui.h
1 // %flair:license{
2 // This file is part of the Flair framework distributed under the
3 // CECILL-C License, Version 1.0.
4 // %flair:license}
5 // created: 2013/03/27
6 // filename: Gui.h
7 //
8 // author: Guillaume Sanahuja
9 // Copyright Heudiasyc UMR UTC/CNRS 7253
10 //
11 // version: $Id: $
12 //
13 // purpose: classe definissant une Gui
14 //
15 /*********************************************************************/
16 
17 #ifndef GUI_H
18 #define GUI_H
19 
20 #include <Object.h>
21 #include <Vector3D.h>
22 #include <EDriverTypes.h>
23 #include <vector3d.h>
24 
25 namespace irr {
26 class IrrlichtDevice;
27 namespace video {
28 class ITexture;
29 }
30 namespace scene {
31 class IAnimatedMesh;
32 class ISceneManager;
33 }
34 }
35 
36 namespace flair {
37 namespace core {
38 class Object;
39 class Euler;
40 class Quaternion;
41 }
42 }
43 
44 class Gui_impl;
45 class Simulator_impl;
46 class Model_impl;
47 
48 namespace flair {
49 namespace simulator {
50 
51 class Gui: public core::Object {
52  friend class ::Simulator_impl;
53  friend class VisualizationCamera;
54 
55 public:
56  Gui(std::string name, int app_width, int app_height,
57  int scene_width, int scene_height, std::string media_path,
58  irr::video::E_DRIVER_TYPE driver_type = irr::video::EDT_OPENGL);
59  ~Gui();
60  irr::core::vector3df getRotation(void) const;
61  irr::video::ITexture *getTexture(std::string filename) const;
62  irr::scene::IAnimatedMesh *getMesh(std::string filename) const;
63  irr::scene::ISceneManager *getSceneManager(void) const;
64  irr::IrrlichtDevice *getDevice(void) const;
65  float getAspectRatio(void) const;
66 
67 protected:
68  void setMesh(std::string file,
69  irr::core::vector3df position = irr::core::vector3df(0, 0, 0),
70  irr::core::vector3df rotation = irr::core::vector3df(0, 0, 0),
71  irr::core::vector3df scale = irr::core::vector3df(1, 1, 1));
72 
73 private:
74  Gui_impl *pimpl_;
75 };
76 
82 Gui *getGui(void);
83 
84 bool noGui(void);
85 
86 bool isGlExtensionSupported(
87  const std::string &ext); // check if a extension is supported
88 
96 float ToIrrlichtScale(float value);
97 
105 float ToSimulatorScale(float value);
106 
116 irr::core::vector3df ToIrrlichtCoordinates(irr::core::vector3df vect);
117 
127 template<typename T> irr::core::vector3df ToIrrlichtCoordinates(core::Vector3D<T> vect);
128 
138 core::Vector3Df ToSimulatorCoordinates(irr::core::vector3df vect);
139 
150 
151 } // end namespace simulator
152 } // end namespace flair
153 #endif // GUI_H
core::Quaternion ToIrrlichtOrientation(core::Quaternion quat)
Convert to irrlicht orientation.
Base class for all Framework's classes.
Definition: Object.h:77
namespace of the flair Framework
Definition: Ahrs.h:19
Class defining a 3D vector.
Definition: Vector3D.h:29
Definition: VisualizationCamera.h:34
core::Vector3Df ToSimulatorCoordinates(irr::core::vector3df vect)
Convert to simulator coordinates.
Class defining a 3D vector.
Definition: Blade.h:22
Definition: Gui.h:51
Base class for all Framework's classes.
irr::core::vector3df ToIrrlichtCoordinates(irr::core::vector3df vect)
Convert to irrlicht coordinates.
float ToIrrlichtScale(float value)
Convert to irrlicht scale.
Class defining a quaternion.
Definition: Quaternion.h:26
Gui * getGui(void)
get Gui
float ToSimulatorScale(float value)
Convert to simulator scale.