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 <EDriverTypes.h>
22 #include <vector3d.h>
23 
24 namespace irr {
25 class IrrlichtDevice;
26 namespace video {
27 class ITexture;
28 }
29 namespace scene {
30 class IAnimatedMesh;
31 class ISceneManager;
32 }
33 }
34 
35 namespace flair {
36 namespace core {
37 class Object;
38 class Vector3D;
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 class Simulator;
51 
52 class Gui : public core::Object {
53  friend class ::Simulator_impl;
54  friend class VisualizationCamera;
55 
56 public:
57  Gui(const Simulator *parent, std::string name, int app_width, int app_height,
58  int scene_width, int scene_height, std::string media_path,
59  irr::video::E_DRIVER_TYPE driver_type = irr::video::EDT_OPENGL);
60  ~Gui();
61  irr::core::vector3df getRotation(void) const;
62  irr::video::ITexture *getTexture(std::string filename) const;
63  irr::scene::IAnimatedMesh *getMesh(std::string filename) const;
64  irr::scene::ISceneManager *getSceneManager(void) const;
65  irr::IrrlichtDevice *getDevice(void) const;
66  float getAspectRatio(void) const;
67 
68 protected:
69  void setMesh(std::string file,
70  irr::core::vector3df position = irr::core::vector3df(0, 0, 0),
71  irr::core::vector3df rotation = irr::core::vector3df(0, 0, 0),
72  irr::core::vector3df scale = irr::core::vector3df(1, 1, 1));
73 
74 private:
75  Gui_impl *pimpl_;
76 };
77 
83 Gui *getGui(void);
84 
85 bool noGui(void);
86 
87 bool isGlExtensionSupported(
88  const std::string &ext); // check if a extension is supported
89 
97 float ToIrrlichtScale(float value);
98 
106 float ToSimulatorScale(float value);
107 
117 irr::core::vector3df ToIrrlichtCoordinates(irr::core::vector3df vect);
118 
128 irr::core::vector3df ToIrrlichtCoordinates(core::Vector3D vect);
129 
139 core::Vector3D ToSimulatorCoordinates(irr::core::vector3df vect);
140 
151 
152 } // end namespace simulator
153 } // end namespace flair
154 #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:28
Definition: Simulator.h:37
Definition: VisualizationCamera.h:34
Definition: Blade.h:22
Definition: Gui.h:52
core::Vector3D ToSimulatorCoordinates(irr::core::vector3df vect)
Convert to simulator coordinates.
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:25
Gui * getGui(void)
get Gui
float ToSimulatorScale(float value)
Convert to simulator scale.