mod_sim_sky.hh

Go to the documentation of this file.
00001 /*
00008  * LEGAL:   COPYRIGHT (C) 2004 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_SKY_HH
00015 #define MOD_SIM_SKY_HH 1
00016 
00017 namespace mod_sim {
00018 
00025 class Sky
00026 {
00027 
00028 public:
00029     CLASS_METHOD void   Init( void );
00030     CLASS_METHOD void   Populate( const BoxVolume& quadrantBoxVolume );
00031 
00032 private:
00033                         Sky( void );
00034                         ~Sky();
00035     CLASS_METHOD void   MakeCumulusClouds( const BoxVolume& quadrantBoxVolume, const fp cloudLayerAlt );
00036     CLASS_METHOD void   MakePyramidCumulusClouds( const BoxVolume& quadrantBoxVolume, const fp cloudLayerAlt );
00037     CLASS_METHOD void   Draw( void );
00038     CLASS_METHOD void   DrawSkyDome( void );
00039     CLASS_METHOD void   DrawSun( void );
00040     CLASS_METHOD void   DrawMoon( void );
00041     CLASS_METHOD void   DrawQuad( const EyeVertex epos, const fp w2, const RGBA color, SharedPtr<Texture> texture );
00042 
00043 private:
00044     // Pre-draw listener.
00045     struct ListenerPreDraw : public Event<SharedPtr<View> >::ListenerFunctor
00046     {
00047         void operator()( SharedPtr<View> unused );
00048     };
00049     friend class ListenerPreDraw;
00050 };
00051 
00052 } // namespace mod_sim
00053 
00054 #endif // MOD_SIM_SKY_HH
00055 #endif // COMPILING_MODULE_SIM
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:13 2007