Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYCameraEditor.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 
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 
41 {
42  Q_OBJECT
43 
44 public:
45  TYCameraEditor(TYModelerFrame* pModeler);
47 
48  void setLeftButtonFunction(void (TYCameraEditor::*function)());
49  void setMiddleButtonFunction(void (TYCameraEditor::*function)());
50  void setRightButtonFunction(void (TYCameraEditor::*function)());
51  void setShiftLeftButtonFunction(void (TYCameraEditor::*function)());
52  void setShiftRightButtonFunction(void (TYCameraEditor::*function)());
53 
54  void setLeftButtonFunction2D(void (TYCameraEditor::*function)());
55  void setMiddleButtonFunction2D(void (TYCameraEditor::*function)());
56  void setRightButtonFunction2D(void (TYCameraEditor::*function)());
57  void setShiftLeftButtonFunction2D(void (TYCameraEditor::*function)());
58  void setShiftRightButtonFunction2D(void (TYCameraEditor::*function)());
59 
60  void setLeftButtonFunction3D(void (TYCameraEditor::*function)());
61  void setMiddleButtonFunction3D(void (TYCameraEditor::*function)());
62  void setRightButtonFunction3D(void (TYCameraEditor::*function)());
63  void setShiftLeftButtonFunction3D(void (TYCameraEditor::*function)());
64  void setShiftRightButtonFunction3D(void (TYCameraEditor::*function)());
65 
66  void setLeftButtonFunctionFree(void (TYCameraEditor::*function)());
67  void setMiddleButtonFunctionFree(void (TYCameraEditor::*function)());
68  void setRightButtonFunctionFree(void (TYCameraEditor::*function)());
69  void setShiftLeftButtonFunctionFree(void (TYCameraEditor::*function)());
70  void setShiftRightButtonFunctionFree(void (TYCameraEditor::*function)());
71 
72  void setInteractionTime(int time)
73  {
74  _interactionTime = time;
75  }
77  {
78  return _interactionTime;
79  }
80 
81  void setSensitivity(float t)
82  {
83  _trackballFactor = t;
84  }
86  {
87  return _trackballFactor;
88  }
89 
90  void setWheelStep(float step)
91  {
92  _wheelStep = step;
93  }
94  float getWheelStep()
95  {
96  return _wheelStep;
97  }
98 
99  void cameraZoneZoom(const float focalPoint2D[3], double factor);
100 
101  void setZoomStep(float step)
102  {
103  _zoomStep = step;
104  }
105  float getZoomStep()
106  {
107  return _zoomStep;
108  }
109 
110  void setTranslateStep(float step)
111  {
112  _translateStep = step;
113  }
115  {
116  return _translateStep;
117  }
118 
119  void setRotateStep(float step)
120  {
121  _rotateStep = step;
122  }
124  {
125  return _rotateStep;
126  }
127 
128 signals:
144 
145 public slots:
146  virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state);
147  virtual void slotMouseReleased(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state);
148  virtual void slotMouseMoved(int x, int y, Qt::MouseButtons button, Qt::KeyboardModifiers state);
149  virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state);
150  virtual void slotViewTypeChanged(int view);
151  virtual void slotKeyPressed(int key);
152  virtual void slotKeyReleased(int key);
153 
158  void setNavigationOnViewType(int view);
159 
160  void setToNavigation2D();
161  void setToNavigation3D();
162  void setToNavigationFree();
163 
164  void cameraStepRotateUp();
165  void cameraStepRotateDown();
166  void cameraStepRotateLeft();
167  void cameraStepRotateRight();
168  void cameraStepTranslateUp();
172  void cameraStepZoomIn();
173  void cameraStepZoomOut();
174  void cameraRotate();
175  void cameraTranslate();
176  void cameraTranslateKey();
177  void cameraZoom();
178  void cameraRoll();
179 
180  void doNothing();
181 
182 private:
184 
185  float _renCenter[3];
188 
189  QTimer* _pStepTimer;
197  float _wheelStep;
198 
199  bool _bKeyUp;
200  bool _bKeyDown;
201  bool _bKeyLeft;
206 
212 
218 
224 
230 
231  float _zoomStep;
233  float _rotateStep;
234 };
235 
236 #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()
float _renCenter[3]
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()
virtual void slotWheeled(int x, int y, int delta, Qt::KeyboardModifiers state)
void(TYCameraEditor::* _leftButtonFunctionFree)()
virtual void slotKeyReleased(int key)
void(TYCameraEditor::* _leftButtonFunction)()
void setLeftButtonFunction3D(void(TYCameraEditor::*function)())
void setShiftLeftButtonFunction2D(void(TYCameraEditor::*function)())
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)()
virtual void slotMousePressed(int x, int y, Qt::MouseButton button, Qt::KeyboardModifiers state)
void(TYCameraEditor::* _middleButtonFunctionFree)()
void setLeftButtonFunction(void(TYCameraEditor::*function)())
void cameraZoneZoom(const float focalPoint2D[3], double factor)
float getWheelStep()
virtual void slotViewTypeChanged(int view)
void(TYCameraEditor::* _shiftRightButtonFunctionFree)()
void setWheelStep(float step)
int getInteractionTime()
Classe generique pour une fenetre de modeleur.