mod_sim_mode_flight.hh

Go to the documentation of this file.
00001 /*
00008  * LEGAL:   COPYRIGHT (C) 2007 JIM E. BROOKS
00009  *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
00010  *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
00011  *****************************************************************************/
00012 
00013 #if COMPILING_MODULE_SIM
00014 #ifndef MOD_SIM_FLIGHT_MODE_HH
00015 #define MOD_SIM_FLIGHT_MODE_HH 1
00016 
00017 #include "mod_base_mode.hh"
00018 #include "mod_base_craft.hh"
00019 #include "mod_base_craft_eye.hh"
00020 using namespace mod_base;
00021 #include "mod_sim_craft.hh"
00022 #include "mod_sim_craft_proxy.hh"
00023 #include "mod_sim_keyboard.hh"
00024 
00025 namespace mod_sim {
00026 
00030 class FlightMode : public mod_base::ModuleMode
00031 {
00032 
00033 public:
00034                     FlightMode( void );
00035                     ~FlightMode();
00036     void            Start( void );
00037 
00038 // ModuleMode interface:
00039 private:
00040     virtual void    ResetScene( void );
00041     virtual bool    IfEyeMode( void ) { return mEyeMode; }
00042 
00043 // FlightMode-specific:
00044 private:
00045     void            CycleViewMode( void );
00046 
00047 private:
00048     void            MakeTargets( void );
00049     WorldVertex     GetInitialEyePosition( void );
00050     WorldVertex     GetInitialProxyCraftPosition( void );
00051     void            Animate( void );
00052     void            TimerEvent( const Milliseconds millisecElapsed );
00053     void            IdleEvent( void );
00054     void            KeyboardEvent( const inp::Keyboard::Event& keyEvent );
00055 
00056 private:
00057     struct ListenerJoystickButton : public Event<inp::Joystick::eButton>::ListenerFunctor
00058     {
00059         void operator()( inp::Joystick::eButton button );
00060     };
00061 
00062 private:
00063     SharedPtr0<EyeCraft>    mEyeCraft;
00064     shptr0<ProxyCraft>  mProxyCraft;            
00065     bool                mEyeMode;               
00066     bool                mChaseMode;             
00067     bool                mOverdrive;             
00068 };
00069 
00070 } // namespace mod_sim
00071 
00072 #endif // MOD_SIM_MODE_FLIGHT_HH
00073 #endif // COMPILING_MODULE_SIM
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:13 2007