Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAbstractSceneEditor.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
16 /*
17  *
18  */
19 
26 #ifndef __TY_ABSTRACT_SCENE_EDITOR__
27 #define __TY_ABSTRACT_SCENE_EDITOR__
28 
29 #include "TYAppDefines.h"
30 #include <qobject.h>
31 
32 class OGLTextElement;
33 
38 class TYAbstractSceneEditor : public QObject
39 {
40  Q_OBJECT
41 
42 public:
47  virtual ~TYAbstractSceneEditor();
48 
57  void updateText(QString msg = "", int posX = 0, int posY = 0, bool show = true);
63  void showText(bool show = true);
64 
74  static void snapToGrid(float& x, float& y, float& z, float& gridMagnStep);
84  static void snapToGrid(double& x, double& y, double& z, double& gridMagnStep);
85 
91  void setGridMagnStep(float gridMagnStep = 1.0);
92 
93 public slots:
98  virtual void connect();
103  virtual void disconnect();
104 
109 
114  virtual void init() {}
119  virtual void cancel() {}
124  virtual void close() {}
133  virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state) {}
142  virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state) {}
151  virtual void slotMouseDoubleClicked(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state) {}
160  virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state) {}
169  virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state) {}
175  virtual void slotKeyPressed(int key) {}
181  virtual void slotKeyReleased(int key) {}
187  virtual void slotViewTypeChanged(int view) {}
192  virtual void slotMouseEnter() {}
197  virtual void slotMouseLeave() {}
198 
200 
201 protected:
208 
218  void displayToWorld(double x, double y, double z, double* worldPoint);
228  void worldToDisplay(double x, double y, double z, double* displayPoint);
233  void refreshSiteFrame();
238  void refreshProjectFrame();
239 
244  void updateSiteFrame();
245 
246 protected:
249 
252 
255 
258 };
259 
260 #endif // __TY_ABSTRACT_SCENE_EDITOR__
Classe abstraite pour la gestion de l'interaction entre la vue graphique (2D ou 3D) et le clavier et ...
double _gridMagnStep
Pas de la grille magnétique de positionnement.
void refreshSiteFrame()
Rafraichit l'arborescence du TYSiteFrame.
virtual void slotViewTypeChanged(int view)
La vue courante du modeler a change.
void worldToDisplay(double x, double y, double z, double *displayPoint)
Methode utilitaire pour convertir un point en coordonnees globale en coordonnees ecran.
virtual void close()
Appeler apres l'utilisation de l'editor.
static void snapToGrid(float &x, float &y, float &z, float &gridMagnStep)
Methode utilitaire qui adapte les coordonnees d'un point pour que celui-ci soit aligne avec la grille...
virtual void disconnect()
Deconnecte cet editor a l'interactor associe.
void refreshProjectFrame()
Rafraichit l'arborescence du TYProjectFrame.
void updateText(QString msg="", int posX=0, int posY=0, bool show=true)
Mets a jour le texte informatif sur la vue 3D.
OGLTextElement * _pOGLTextElement
Affichage du texte 2D sur la vue 3D.
void updateSiteFrame()
Reconstruit l'arborescence du TYSiteFrame.
virtual void slotMouseLeave()
Le curseur de souris est sortie dans la widget.
virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
Une touche de la souris a ete enfoncee.
virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state)
La molette de la souris a ete utilisee.
virtual void slotMouseDoubleClicked(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
Une touche de la souris a ete double clickee.
TYAbstractSceneEditor(TYModelerFrame *pModeler)
Constructeur par defaut.
TYModelerFrame * _pModeler
Le modeler associe a cet editor.
void displayToWorld(double x, double y, double z, double *worldPoint)
Methode utilitaire pour convertir un point en coordonnees ecran en coordonnees globale.
virtual void init()
Appeler avant l'utilisation de l'editor.
virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
Une touche de la souris a ete relachee.
virtual void connect()
Connecte cet editor a l'interactor associe.
virtual void slotMouseEnter()
Le curseur de souris est entree dans la widget.
virtual void slotKeyPressed(int key)
Une touche a ete relachee.
virtual ~TYAbstractSceneEditor()
Destructeur.
void setGridMagnStep(float gridMagnStep=1.0)
Met Ã&#160; jour le pas de la grille magnétique.
virtual void cancel()
Annule l'action courante de l'editor.
void showText(bool show=true)
Affiche ou pas le texte informatif sur la vue 3D.
virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state)
La souris a ete deplacee.
virtual void slotKeyReleased(int key)
Une touche a ete relachee.
TYRenderWindowInteractor * _pInteractor
La vue graphique associee a cet editor.
Classe generique pour une fenetre de modeleur.
Le role de cette classe est limite a emettre des signaux pouvant etre utilise pour interagir sur le r...