All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FireworksDisplay.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Fireworks.h"
6 #include "VectorMath.h"
7 #include "Camera.h"
8 #include <vector>
9 
10 namespace Eegeo
11 {
12  namespace Fireworks
13  {
15  {
16  public:
17 
20 
21  void Update(float dt, const Camera::RenderCamera& renderCamera);
22 
23  void Play();
24  void Stop();
25 
26  bool IsPlaying() const;
27 
28  const FireworksLocationConfiguration& GetLocationConfiguration() const { return m_locationConfig; }
29  const dv3& GetEcefPosition() const { return m_ecefOrigin; }
30 
31  bool HasTerrainHeight() const { return m_assignedTerrainHeight; }
32  void SetTerrainHeight(float terrainHeight);
33 
34  private:
35 
36  void InitialiseSequences(const dv3& ecefOrigin);
37  void DestroySequences();
38 
39  FireworksSequenceFactory& m_sequenceFactory;
40  const FireworksLocationConfiguration& m_locationConfig;
41  std::vector<Fireworks::FireworksSequence*> m_pSequences;
42  dv3 m_ecefOrigin;
43  float m_currentSequenceTimer;
44  float m_timeBetweenSequences;
45  int m_currentSequence;
46  bool m_isPlaying;
47  bool m_assignedTerrainHeight;
48  };
49  }
50 }