All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
BlueSphereAnchorView.h
1 // Copyright eeGeo Ltd (2012-2015), All Rights Reserved
2 
3 #pragma once
4 
5 #include "BlueSphere.h"
6 #include "Types.h"
7 #include "IRenderableFilter.h"
8 #include "Rendering.h"
9 #include "VectorMath.h"
10 
11 #include <string>
12 
13 
14 namespace Eegeo
15 {
16  namespace BlueSphere
17  {
19  {
20  public:
21 
22  static BlueSphereAnchorView* Create();
23 
25 
26  void SetVisible(bool visible);
27  void SetScale(float scaleParam);
28  void SetTransitionValue(float transitionParam);
29  void Update(float dt);
30  void EnqueueRenderables(const Eegeo::Rendering::RenderContext& renderContext, Eegeo::Rendering::RenderQueue& renderQueue);
31  void SetBlueSphereTransform(const Eegeo::m44& modelViewProjectionSphere, const Eegeo::m44& modelViewProjectionCylinder);
32  void SetBlueSphereStyle(const std::string& currentVisualMapTime, const std::string& currentVisualMapWeather, const int environmentScale);
33  void SetInInterior(bool inInterior);
34 
35  // TODO: Remove deprecated method once no longer used in dependent apps
36  void UpdateBlueSphereRenderingLayer(bool inInterior);
37 
38  void OnResourcesLoaded(const BlueSphereViewResources& blueSphereViewResources);
39  private:
41  bool visible,
42  float transitionParam,
43  float scaleParam,
44  bool isInInterior,
45  const Eegeo::v4& highlightColor
46  );
47 
48  bool m_visible;
49  float m_transitionParam;
50  float m_scaleParam;
51  bool m_isInInterior;
52  Eegeo::v4 m_highlightColor;
53 
54  BlueSphere::BlueSphereMeshRenderable* m_pBlueSphereHighlightSphere;
55  BlueSphere::BlueSphereMeshRenderable* m_pBlueSphereHighlightCylinder;
56  BlueSphere::BlueSphereMeshRenderable* m_pBlueSphereStencilClearSphere;
57  BlueSphere::BlueSphereMeshRenderable* m_pBlueSphereStencilClearCylinder;
58 
59  Eegeo::Rendering::Materials::ColorMaterial* m_pBlueSphereHighlightMaterial;
60 
61  bool m_hasResources;
62  bool m_modelTransformsChanged;
63 
64  Eegeo::m44 m_modelViewProjectionSphere;
65  Eegeo::m44 m_modelViewProjectionCylinder;
66  };
67  }
68 }