All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
FireworksSequenceFactory.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Fireworks.h"
6 #include "Rendering.h"
7 #include "VectorMathDecl.h"
8 #include "Streaming.h"
9 #include "Random.h"
10 #include <vector>
11 #include <functional>
12 
13 namespace Eegeo
14 {
15  namespace Fireworks
16  {
18  {
19  public:
20 
22  Streaming::CameraFrustumStreamingVolume& cameraFrustumStreamingVolume,
23  Random& random);
25 
26  FireworksSequence* CreateRandomSequence(const dv3& ecefOrigin);
27 
28  private:
29 
30  Rendering::Renderables::BatchedSpriteRenderable& m_batchedSpriteRenderable;
31  Streaming::CameraFrustumStreamingVolume& m_cameraFrustumStreamingVolume;
32  Random& m_random;
33  std::vector<v4> m_colorTable;
34 
35  void CreateRandomPattern(std::vector<FireworksSequenceBurstConfiguration>& sequenceBursts);
36  void CreateLinePattern(std::vector<FireworksSequenceBurstConfiguration>& sequenceBursts);
37  void CreateStarPattern(std::vector<FireworksSequenceBurstConfiguration>& sequenceBursts);
38  void CreateRisingPattern(std::vector<FireworksSequenceBurstConfiguration>& sequenceBursts);
39  void CreateLayeredPatterm(std::vector<FireworksSequenceBurstConfiguration>& sequenceBursts);
40 
41  void PopulateColorTable(std::vector<v4>& colors);
42  v4 GetRandomColor();
43 
44  };
45  }
46 }