glc_flymover.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00025
00026 #ifndef GLC_FLYMOVER_H_
00027 #define GLC_FLYMOVER_H_
00028 #include "glc_mover.h"
00029
00030 #include "../glc_config.h"
00031
00034
00035
00036 class GLC_LIB_EXPORT GLC_FlyMover : public GLC_Mover
00037 {
00039
00041
00042 public:
00044 GLC_FlyMover(GLC_Viewport*, const QList<GLC_RepMover*>& repsList= QList<GLC_RepMover*>());
00045
00047 GLC_FlyMover(const GLC_FlyMover& flyMover);
00048
00050 virtual ~GLC_FlyMover();
00052
00054
00056
00057 public:
00059 virtual GLC_Mover* clone() const;
00060
00062 inline double turningRate() const
00063 {return m_TurnRate / glc::PI * 180.0;}
00064
00066 inline double flyingVelocity() const
00067 {return m_Velocity;}
00069
00071
00073
00074 public:
00076 virtual void init(QMouseEvent * e);
00077
00079 virtual bool move(QMouseEvent * e);
00080
00082 virtual void ends();
00083
00085 inline void setMaximumTurnRate(double turnRate)
00086 {m_TurnRate= turnRate;}
00087
00089 void setFlyingVelocity(double velocity);
00090
00092 void increaseVelocity(double factor);
00093
00095
00096 protected:
00097 void timerEvent(QTimerEvent*);
00098
00100
00102 private:
00104 GLC_Vector3d mapForFlying(double x, double y);
00105
00107 void fly();
00108
00110
00112 private:
00114 double m_TurnRate;
00115
00117 int m_TimerId;
00118
00120 int m_TimerInterval;
00121
00123 double m_Velocity;
00124
00125 };
00126
00127 #endif