All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WeatherModule.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "Rendering.h"
7 #include "Weather.h"
8 #include "Location.h"
9 #include "Modules.h"
10 #include "VectorMathDecl.h"
11 
12 namespace Eegeo
13 {
14  namespace Modules
15  {
16  namespace Map
17  {
19  {
20  public:
22  Rendering::Materials::MaterialIdGenerator& materialIdGenerator,
23  Rendering::GlBufferPool& glBufferPool,
26  Rendering::RenderableFilters& renderableFilters);
27 
28  ~WeatherModule();
29 
30  static WeatherModule* Create(Core::RenderingModule& renderingModule);
31 
32  void Update(float dt, const dv3& ecefInterestPoint, float cameraAltitude, float viewportAspectRatio);
33 
34  Rendering::Shaders::WeatherOverlayShader& GetWeatherOverlayShader() const;
35  Rendering::Materials::WeatherOverlayMaterial2& GetWeatherOverlayMaterial() const;
36  Rendering::Renderables::WorldMeshRenderable& GetWeatherOverlayRenderable() const;
37  Weather::WeatherOverlayController& GetWeatherOverlayController() const;
38  Weather::WeatherOverlayRenderer& GetWeatherOverlayRenderer() const;
39  private:
40  Rendering::Shaders::WeatherOverlayShader* m_pWeatherOverlayShader;
41  Rendering::Materials::WeatherOverlayMaterial2* m_pWeatherOverlayMaterial;
42  Rendering::Renderables::WorldMeshRenderable* m_pWeatherOverlayRenderable;
43  Eegeo::Weather::WeatherOverlayController * m_pWeatherOverlayController;
44  Eegeo::Weather::WeatherOverlayRenderer * m_pWeatherOverlayRenderer;
45  };
46  }
47  }
48 }