All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
AccuracyRingRenderable.h
1 // Copyright eeGeo Ltd (2012-2020), All Rights Reserved
2 
3 #pragma once
4 
5 #include "RenderableBase.h"
6 #include "Rendering.h"
7 #include "VectorMath.h"
8 
9 namespace Eegeo
10 {
11  namespace BlueSphere
12  {
13  namespace AccuracyRing
14  {
16  {
17  public:
23  );
25 
26  void Render(Eegeo::Rendering::GLState& glState) const;
27  void SetTransforms(const Eegeo::v3 cameraOffsetPosition, const Eegeo::m44& viewProj);
28  void SetRadii(float outerRadius, float innerRadius);
29  void SetColors(const Eegeo::v4& innerColor, const Eegeo::v4& ringColor);
30 
31  private:
35 
36  Eegeo::m44 m_viewProjection;
37  Eegeo::v3 m_cameraRelativePosition;
38  Eegeo::v4 m_innerColor;
39  Eegeo::v4 m_ringColor;
40  float m_outerRingRadius;
41  float m_innerRingRadius;
42 
43  void RenderClearStencil(Eegeo::Rendering::GLState& glState) const;
44  void RenderSpheres(Eegeo::Rendering::GLState& glState) const;
45  void RenderRingEffects(Eegeo::Rendering::GLState& glState) const;
46  };
47  }
48  }
49 }