All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
HeatmapShapeRenderable.h
1 #pragma once
2 
3 #include "HeatmapShapes.h"
4 #include "RenderableBase.h"
5 #include "IdTypes.h"
6 #include "StencilMapLayerMask.h"
7 
8 namespace Eegeo
9 {
10  namespace Shapes
11  {
12  namespace Heatmaps
13  {
15  {
16  public:
18  Rendering::LayerIds::Values layerId,
19  HeatmapShapeMaterial& heatmapShapeMaterial,
20  const Rendering::VertexLayouts::VertexBinding& vertexBinding,
21  Rendering::Mesh* pMesh,
22  Eegeo::dv3 ecefPosition,
23  Rendering::TTextureId intensityMinRadiusTextureId,
24  Rendering::TTextureId intensityMaxRadiusTextureId,
25  Rendering::TTextureId gradientTextureId,
26  u32 stencilMapLayerMask,
27  bool isIndoor,
28  float floatEncodeScale
29  );
30 
32 
33  Rendering::TTextureId GetIntensityMinRadiusTextureId() const { return m_intensityMinRadiusTextureId; }
34  Rendering::TTextureId GetIntensityMaxRadiusTextureId() const { return m_intensityMaxRadiusTextureId; }
35  Rendering::TTextureId GetGradientTextureId() const { return m_gradientTextureId; }
36 
37  float GetDensityBlend() const { return m_densityBlend; }
38  float GetIntensityBias() const { return m_intensityBias; }
39  float GetIntensityScale() const { return m_intensityScale; }
40  float GetOpacity() const { return m_opacity; }
41  float GetGradientSaturation() const { return m_gradientSaturation; }
42  float GetGradientBrightness() const { return m_gradientBrightness; }
43  u32 GetStencilMapLayerMask() const { return m_stencilMapLayerMask; }
44  bool IsIndoor() const { return m_isIndoor; }
45  float GetFloatEncodeScale() const { return m_floatEncodeScale; }
46 
47  void SetIntensityMinRadiusTextureId(Rendering::TTextureId textureId) { m_intensityMinRadiusTextureId = textureId; }
48  void SetIntensityMaxRadiusTextureId(Rendering::TTextureId textureId) { m_intensityMaxRadiusTextureId = textureId; }
49  void SetDensityBlend(float densityBlend) { m_densityBlend = densityBlend; }
50  void SetIntensityBias(float intensityBias) { m_intensityBias = intensityBias; }
51  void SetIntensityScale(float intensityScale) { m_intensityScale = intensityScale; }
52  void SetOpacity(float opacity) { m_opacity = opacity; }
53  void SetGradientSaturation(float gradientSaturation) { m_gradientSaturation = gradientSaturation; }
54  void SetGradientBrightness(float gradientBrightness) { m_gradientBrightness = gradientBrightness; }
55  void SetStencilMapLayerMask(u32 stencilMapLayerMask) { m_stencilMapLayerMask = stencilMapLayerMask; }
56  void SetIsIndoor(bool isIndoor) { m_isIndoor = isIndoor; }
57 
58  void SetMesh(Rendering::Mesh& mesh);
59 
60  void Render(Rendering::GLState& glState) const;
61  private:
62  Rendering::Mesh* m_pMesh;
63 
64  // bitfield of Eegeo::Rendering::StencilMapLayerMask::Type
65  u32 m_stencilMapLayerMask;
66  // don't use stencil mask if indoors
67  bool m_isIndoor;
68  float m_floatEncodeScale;
69 
70  Rendering::TTextureId m_intensityMinRadiusTextureId;
71  Rendering::TTextureId m_intensityMaxRadiusTextureId;
72  Rendering::TTextureId m_gradientTextureId;
73  float m_densityBlend;
74  float m_intensityBias;
75  float m_intensityScale;
76  float m_opacity;
77  float m_gradientSaturation;
78  float m_gradientBrightness;
79  };
80  }
81  }
82 }