All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
HeatmapShapeBuilder.h
1 #pragma once
2 
3 #include "HeatmapShapes.h"
4 #include "ShapeCreateParamsBuilderBase.h"
5 #include "HeatmapShapeCreateParams.h"
6 #include <vector>
7 
8 namespace Eegeo
9 {
10  namespace Shapes
11  {
12  namespace Heatmaps
13  {
14  class HeatmapShapeBuilder : public TShapeCreateParamsBuilderBase<HeatmapShapeBuilder, HeatmapShapeCreateParams>
15  {
16  public:
18 
19  HeatmapShapeBuilder& SetPolygon(
20  const std::vector<Space::LatLongAltitude>& polygonVertexCoords,
21  const std::vector<int>& polygonRingVertexCounts
22  );
23  HeatmapShapeBuilder& SetWeightedPoints(
24  const std::vector<Eegeo::Space::WeightedLatLongAltitude>& weightedPoints);
25  HeatmapShapeBuilder& SetWeightMin(double weightMin);
26  HeatmapShapeBuilder& SetWeightMax(double weightMax);
27  HeatmapShapeBuilder& SetTextureDimensions(const v2& textureDimensions);
28  HeatmapShapeBuilder& SetTextureBorderPercent(float textureBorderPercent);
29  HeatmapShapeBuilder& SetHeatmapDensities(
30  const std::vector<float>& heatmapDensityStops,
31  const std::vector<double>& heatmapRadiiMeters,
32  const std::vector<double>& heatmapGains
33  );
34  HeatmapShapeBuilder& SetUseApproximation(bool useApproximation);
35  HeatmapShapeBuilder& SetDensityBlend(float densityBlend);
36  HeatmapShapeBuilder& SetInterpolateDensityByZoom(bool interpolateDensityByZoom);
37  HeatmapShapeBuilder& SetZoomMin(double zoomMin);
38  HeatmapShapeBuilder& SetZoomMax(double zoomMax);
39  HeatmapShapeBuilder& SetOpacity(float opacity);
40  HeatmapShapeBuilder& SetIntensityBias(float intensityBias);
41  HeatmapShapeBuilder& SetIntensityScale(float intensityScale);
42  HeatmapShapeBuilder& SetOccludedStencilMapLayerMask(u32 occludedStencilMapLayerMask);
43  HeatmapShapeBuilder& SetOccludedAlpha(float occludedAlpha);
44  HeatmapShapeBuilder& SetOccludedSaturation(float occludedSaturation);
45  HeatmapShapeBuilder& SetOccludedBrightness(float occludedBrightness);
46  HeatmapShapeBuilder& SetGradient(
47  const std::vector<float>& gradientStops,
48  const std::vector<v4>& gradientColors
49  );
50 
52 
53 
54  static const int TextureDimensionDefault;
55  static const int TextureDimensionMin;
56  static const int TextureDimensionMax;
57  static const float RadiusMetersDefault;
58  static const float OpacityDefault;
59  static const double ZoomMinDefault;
60  static const double ZoomMaxDefault;
61 
62  private:
63  std::vector<Space::LatLongAltitude> m_polygonVertexCoords;
64  std::vector<int> m_polygonRingVertexCounts;
65  std::vector<Eegeo::Space::WeightedLatLongAltitude> m_weightedPoints;
66  double m_weightMin;
67  double m_weightMax;
68  v2 m_textureDimensions;
69  float m_textureBorderPercent;
70  std::vector<float> m_heatmapDensityStops;
71  std::vector<double> m_heatmapRadiiMeters;
72  std::vector<double> m_heatmapGains;
73  bool m_useApproximation;
74  float m_densityBlend;
75  bool m_interpolateDensityByZoom;
76  double m_zoomMin;
77  double m_zoomMax;
78  float m_opacity;
79  float m_intensityBias;
80  float m_intensityScale;
81  u32 m_occludedStencilMapLayerMask;
82  float m_occludedAlpha;
83  float m_occludedSaturation;
84  float m_occludedBrightness;
85  std::vector<float> m_gradientStops;
86  std::vector<v4> m_gradientColors;
87  };
88  }
89  }
90 }