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