Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYAbstractSceneEditor.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012-2024> <EDF-DTG> <FRANCE>
3  * This file is part of Code_TYMPAN (R).
4  * Code_TYMPAN (R) is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  * Code_TYMPAN (R) is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with Code_TYMPAN (R). If not, see <https://www.gnu.org/licenses/>.
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 
99  void setWheelStep(float step = 1.0);
100 
101 public slots:
106  virtual void connect();
111  virtual void disconnect();
112 
117 
122  virtual void init() {}
127  virtual void cancel() {}
132  virtual void close() {}
141  virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state) {}
150  virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state) {}
159  virtual void slotMouseDoubleClicked(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state) {}
168  virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state) {}
177  virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state) {}
183  virtual void slotKeyPressed(int key) {}
189  virtual void slotKeyReleased(int key) {}
195  virtual void slotViewTypeChanged(int view) {}
200  virtual void slotMouseEnter() {}
205  virtual void slotMouseLeave() {}
206 
208 
209 protected:
215  TYAbstractSceneEditor(TYModelerFrame* pModeler, TYCameraEditor* pCameraEditor = nullptr);
216 
226  void displayToWorld(double x, double y, double z, double* worldPoint);
236  void worldToDisplay(double x, double y, double z, double* displayPoint);
241  void refreshSiteFrame();
246  void refreshProjectFrame();
247 
252  void updateSiteFrame();
253 
254 protected:
257 
260 
263 
266 
269 };
270 
271 #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 setWheelStep(float step=1.0)
Met Ã&#160; jour le pas de zoom de la caméra.
TYAbstractSceneEditor(TYModelerFrame *pModeler, TYCameraEditor *pCameraEditor=nullptr)
Constructeur par defaut.
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.
TYModelerFrame * _pModeler
Le modeler associe a cet editor.
TYCameraEditor * _pCameraEditor
Le caméra editor associé Ã&#160; cet éditor.
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.
Gestion de l'edition en mode camera.
Generic class for a modeler window.
Le role de cette classe est limite a emettre des signaux pouvant etre utilise pour interagir sur le r...