Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYCameraEditor.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 
26 #ifndef __TY_CAMERA_EDITOR__
27 #define __TY_CAMERA_EDITOR__
28 
29 #include "TYAppDefines.h"
30 #include "TYAbstractSceneEditor.h"
31 
32 class QTimer;
33 class OGLCamera;
34 class QVector3D;
35 
42 {
43  Q_OBJECT
44 
45 public:
46  TYCameraEditor(TYModelerFrame* pModeler);
48 
49  void setLeftButtonFunction(void (TYCameraEditor::*function)());
50  void setMiddleButtonFunction(void (TYCameraEditor::*function)());
51  void setRightButtonFunction(void (TYCameraEditor::*function)());
52  void setShiftLeftButtonFunction(void (TYCameraEditor::*function)());
53  void setShiftRightButtonFunction(void (TYCameraEditor::*function)());
54 
55  void setLeftButtonFunction2D(void (TYCameraEditor::*function)());
56  void setMiddleButtonFunction2D(void (TYCameraEditor::*function)());
57  void setRightButtonFunction2D(void (TYCameraEditor::*function)());
58  void setShiftLeftButtonFunction2D(void (TYCameraEditor::*function)());
59  void setShiftRightButtonFunction2D(void (TYCameraEditor::*function)());
60 
61  void setLeftButtonFunction3D(void (TYCameraEditor::*function)());
62  void setMiddleButtonFunction3D(void (TYCameraEditor::*function)());
63  void setRightButtonFunction3D(void (TYCameraEditor::*function)());
64  void setShiftLeftButtonFunction3D(void (TYCameraEditor::*function)());
65  void setShiftRightButtonFunction3D(void (TYCameraEditor::*function)());
66 
67  void setLeftButtonFunctionFree(void (TYCameraEditor::*function)());
68  void setMiddleButtonFunctionFree(void (TYCameraEditor::*function)());
69  void setRightButtonFunctionFree(void (TYCameraEditor::*function)());
70  void setShiftLeftButtonFunctionFree(void (TYCameraEditor::*function)());
71  void setShiftRightButtonFunctionFree(void (TYCameraEditor::*function)());
72 
73  void setInteractionTime(int time)
74  {
75  _interactionTime = time;
76  }
78  {
79  return _interactionTime;
80  }
81 
82  void setSensitivity(float t)
83  {
84  _trackballFactor = t;
85  }
87  {
88  return _trackballFactor;
89  }
90 
91  void setWheelStep(float step)
92  {
93  _wheelStep = step;
94  }
95  float getWheelStep()
96  {
97  return _wheelStep;
98  }
99 
100  void cameraZoneZoom(const QVector3D& focalPoint2D, double factor);
101 
102  void setZoomStep(float step)
103  {
104  _zoomStep = step;
105  }
106  float getZoomStep()
107  {
108  return _zoomStep;
109  }
110 
111  void setTranslateStep(float step)
112  {
113  _translateStep = step;
114  }
116  {
117  return _translateStep;
118  }
119 
120  void setRotateStep(float step)
121  {
122  _rotateStep = step;
123  }
125  {
126  return _rotateStep;
127  }
128 
132  void stopCameraZoom();
133 
134 signals:
150 
151 public slots:
152  virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state);
153  virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state);
154  virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state);
155  virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state);
156  virtual void slotViewTypeChanged(int view);
157  virtual void slotKeyPressed(int key);
158  virtual void slotKeyReleased(int key);
159 
164  void setNavigationOnViewType(int view);
165 
166  void setToNavigation2D();
167  void setToNavigation3D();
168  void setToNavigationFree();
169 
170  void cameraStepRotateUp();
171  void cameraStepRotateDown();
172  void cameraStepRotateLeft();
173  void cameraStepRotateRight();
174  void cameraStepTranslateUp();
178  void cameraStepZoomIn();
179  void cameraStepZoomOut();
180  void cameraRotate();
181  void cameraTranslate();
182  void cameraTranslateKey();
183  void cameraZoom();
184  void cameraRoll();
185 
186  void doNothing();
187 
188 private:
190 
191  float _renCenter[2];
194 
195  QTimer* _pStepTimer;
203  float _wheelStep;
204 
205  bool _bKeyUp;
206  bool _bKeyDown;
207  bool _bKeyLeft;
212 
218 
224 
230 
236 
237  float _zoomStep;
239  float _rotateStep;
240 };
241 
242 #endif // __TY_CAMERA_EDITOR__
gestion de l'interaction entre la vue graphique (2D ou 3D) et le clavier et la souris (fichier header...
Classe abstraite pour la gestion de l'interaction entre la vue graphique (2D ou 3D) et le clavier et ...
Gestion de l'edition en mode camera.
void setRotateStep(float step)
QTimer * _pStepTimer
void setMiddleButtonFunction(void(TYCameraEditor::*function)())
void setRightButtonFunctionFree(void(TYCameraEditor::*function)())
void(TYCameraEditor::* _shiftLeftButtonFunctionFree)()
void(TYCameraEditor::* _shiftRightButtonFunction)()
void setRightButtonFunction(void(TYCameraEditor::*function)())
void stopMovingCamera()
Indique la fin du deplacement de la camera.
void(TYCameraEditor::* _shiftRightButtonFunction3D)()
void setTranslateStep(float step)
void setMiddleButtonFunction3D(void(TYCameraEditor::*function)())
float getSensitivity()
void startMovingCamera()
Indique le debut du deplacement de la camera.
void(TYCameraEditor::* _middleButtonFunction2D)()
virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
void setToNavigationFree()
void setRightButtonFunction3D(void(TYCameraEditor::*function)())
OGLCamera * _pCurrentCamera
void setShiftRightButtonFunction3D(void(TYCameraEditor::*function)())
void(TYCameraEditor::* _middleButtonFunction)()
virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state)
virtual void slotKeyPressed(int key)
void setLeftButtonFunctionFree(void(TYCameraEditor::*function)())
void setLeftButtonFunction2D(void(TYCameraEditor::*function)())
void cameraUpdated()
Indique que la position ou l'orientation de la camera a ete modifiee.
void setNavigationOnViewType(int view)
Switch auto entre navi 2D ou 3D.
void(TYCameraEditor::* _shiftRightButtonFunction2D)()
void cameraStepTranslateUp()
void setShiftRightButtonFunctionFree(void(TYCameraEditor::*function)())
void(TYCameraEditor::* _shiftLeftButtonFunction2D)()
void(TYCameraEditor::* _leftButtonFunction2D)()
void setMiddleButtonFunction2D(void(TYCameraEditor::*function)())
float getTranslateStep()
void cameraStepRotateRight()
void(TYCameraEditor::* _rightButtonFunction2D)()
void(TYCameraEditor::* _shiftLeftButtonFunction3D)()
void setInteractionTime(int time)
void setRightButtonFunction2D(void(TYCameraEditor::*function)())
void(TYCameraEditor::* _rightButtonFunction3D)()
void(TYCameraEditor::* _leftButtonFunction3D)()
void setShiftLeftButtonFunctionFree(void(TYCameraEditor::*function)())
void setShiftRightButtonFunction2D(void(TYCameraEditor::*function)())
void cameraStepTranslateRight()
void cameraStepRotateDown()
virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state)
void(TYCameraEditor::* _leftButtonFunctionFree)()
float _renCenter[2]
virtual void slotKeyReleased(int key)
void(TYCameraEditor::* _leftButtonFunction)()
void setLeftButtonFunction3D(void(TYCameraEditor::*function)())
void setShiftLeftButtonFunction2D(void(TYCameraEditor::*function)())
void stopCameraZoom()
Force l'arrêt du mode zoom de la caméra.
void(TYCameraEditor::* _shiftLeftButtonFunction)()
TYCameraEditor(TYModelerFrame *pModeler)
void setZoomStep(float step)
void cameraStepTranslateDown()
void setMiddleButtonFunctionFree(void(TYCameraEditor::*function)())
void(TYCameraEditor::* _rightButtonFunction)()
void setShiftLeftButtonFunction3D(void(TYCameraEditor::*function)())
int _currentMousePos[2]
void(TYCameraEditor::* _rightButtonFunctionFree)()
float getRotateStep()
void setSensitivity(float t)
void setShiftRightButtonFunction(void(TYCameraEditor::*function)())
void cameraStepTranslateLeft()
void setShiftLeftButtonFunction(void(TYCameraEditor::*function)())
void(TYCameraEditor::* _middleButtonFunction3D)()
void cameraZoneZoom(const QVector3D &focalPoint2D, double factor)
virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
void(TYCameraEditor::* _middleButtonFunctionFree)()
void setLeftButtonFunction(void(TYCameraEditor::*function)())
float getWheelStep()
virtual void slotViewTypeChanged(int view)
void(TYCameraEditor::* _shiftRightButtonFunctionFree)()
void setWheelStep(float step)
int getInteractionTime()
Generic class for a modeler window.