quaternion_demo.h
Go to the documentation of this file.
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #ifndef EIGEN_QUATERNION_DEMO_H
11 #define EIGEN_QUATERNION_DEMO_H
12 
13 #include "gpuhelper.h"
14 #include "camera.h"
15 #include "trackball.h"
16 #include <map>
17 #include <QTimer>
18 #include <QtGui/QApplication>
19 #include <QtOpenGL/QGLWidget>
20 #include <QtGui/QMainWindow>
21 
22 class RenderingWidget : public QGLWidget {
23  Q_OBJECT
24 
25  typedef std::map<float, Frame> TimeLine;
27  Frame lerpFrame(float t);
28 
30  bool mAnimate;
31  float m_alpha;
32 
34 
36 
38 
40 
46  Vector2i mMouseCoords;
48 
49  QTimer m_timer;
50 
51  void setupCamera();
52 
53  std::vector<Vector3f> mVertices;
54  std::vector<Vector3f> mNormals;
55  std::vector<int> mIndices;
56 
57  protected slots:
58 
59  virtual void animate(void);
60  virtual void drawScene(void);
61 
62  virtual void grabFrame(void);
63  virtual void stopAnimation();
64 
65  virtual void setNavMode(int);
66  virtual void setLerpMode(int);
67  virtual void setRotationMode(int);
68  virtual void resetCamera();
69 
70  protected:
71  virtual void initializeGL();
72  virtual void resizeGL(int width, int height);
73  virtual void paintGL();
74 
75  //--------------------------------------------------------------------------------
76  virtual void mousePressEvent(QMouseEvent* e);
77  virtual void mouseReleaseEvent(QMouseEvent* e);
78  virtual void mouseMoveEvent(QMouseEvent* e);
79  virtual void keyPressEvent(QKeyEvent* e);
80  //--------------------------------------------------------------------------------
81 
82  public:
84 
87 
89 };
90 
91 class QuaternionDemo : public QMainWindow {
92  Q_OBJECT
93  public:
95 
96  protected:
98 };
99 
100 #endif // EIGEN_QUATERNION_DEMO_H
Array< double, 1, 3 > e(1./3., 0.5, 2.)
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Definition: Memory.h:879
Definition: camera.h:31
Definition: camera.h:17
Definition: quaternion_demo.h:91
QuaternionDemo()
Definition: quaternion_demo.cpp:557
RenderingWidget * mRenderingWidget
Definition: quaternion_demo.h:97
Definition: quaternion_demo.h:22
virtual void stopAnimation()
Definition: quaternion_demo.cpp:319
bool mAnimate
Definition: quaternion_demo.h:30
virtual void resizeGL(int width, int height)
Definition: quaternion_demo.cpp:437
NavMode mNavMode
Definition: quaternion_demo.h:43
LerpMode
Definition: quaternion_demo.h:37
@ LerpQuaternion
Definition: quaternion_demo.h:37
@ LerpEulerAngles
Definition: quaternion_demo.h:37
virtual void initializeGL()
Definition: quaternion_demo.cpp:425
~RenderingWidget()
Definition: quaternion_demo.h:86
std::map< float, Frame > TimeLine
Definition: quaternion_demo.h:25
QWidget * createNavigationControlWidget()
Definition: quaternion_demo.cpp:484
QTimer m_timer
Definition: quaternion_demo.h:49
virtual void animate(void)
Definition: quaternion_demo.cpp:245
virtual void setRotationMode(int)
Definition: quaternion_demo.cpp:443
TimeLine m_timeline
Definition: quaternion_demo.h:26
Vector2i mMouseCoords
Definition: quaternion_demo.h:46
LerpMode mLerpMode
Definition: quaternion_demo.h:44
virtual void resetCamera()
Definition: quaternion_demo.cpp:445
virtual void mousePressEvent(QMouseEvent *e)
Definition: quaternion_demo.cpp:326
Camera mCamera
Definition: quaternion_demo.h:41
virtual void setNavMode(int)
Definition: quaternion_demo.cpp:439
NavMode
Definition: quaternion_demo.h:35
@ NavFly
Definition: quaternion_demo.h:35
@ NavTurnAround
Definition: quaternion_demo.h:35
Frame mInitFrame
Definition: quaternion_demo.h:29
virtual void drawScene(void)
Definition: quaternion_demo.cpp:205
std::vector< Vector3f > mNormals
Definition: quaternion_demo.h:54
Trackball mTrackball
Definition: quaternion_demo.h:47
virtual void mouseMoveEvent(QMouseEvent *e)
Definition: quaternion_demo.cpp:358
Frame lerpFrame(float t)
virtual void setLerpMode(int)
Definition: quaternion_demo.cpp:441
TrackMode mCurrentTrackingMode
Definition: quaternion_demo.h:42
RotationMode mRotationMode
Definition: quaternion_demo.h:45
virtual void paintGL()
Definition: quaternion_demo.cpp:406
virtual void grabFrame(void)
Definition: quaternion_demo.cpp:191
EIGEN_MAKE_ALIGNED_OPERATOR_NEW RenderingWidget()
Definition: quaternion_demo.cpp:179
std::vector< Vector3f > mVertices
Definition: quaternion_demo.h:53
virtual void keyPressEvent(QKeyEvent *e)
Definition: quaternion_demo.cpp:281
float m_alpha
Definition: quaternion_demo.h:31
virtual void mouseReleaseEvent(QMouseEvent *e)
Definition: quaternion_demo.cpp:353
std::vector< int > mIndices
Definition: quaternion_demo.h:55
TrackMode
Definition: quaternion_demo.h:33
@ TM_ROTATE_AROUND
Definition: quaternion_demo.h:33
@ TM_FLY_PAN
Definition: quaternion_demo.h:33
@ TM_FLY_Z
Definition: quaternion_demo.h:33
@ TM_LOCAL_ROTATE
Definition: quaternion_demo.h:33
@ TM_NO_TRACK
Definition: quaternion_demo.h:33
@ TM_ZOOM
Definition: quaternion_demo.h:33
RotationMode
Definition: quaternion_demo.h:39
@ RotationStandard
Definition: quaternion_demo.h:39
@ RotationStable
Definition: quaternion_demo.h:39
Definition: trackball.h:17
double height(const double &x)
Height of domain.
Definition: simple_spine_channel.cc:429
t
Definition: plotPSD.py:36