All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PolygonShapeBuilder.h
1 #pragma once
2 
3 #include "PolygonShapes.h"
4 #include "ShapeCreateParamsBuilderBase.h"
5 #include "PolygonShapeCreateParams.h"
6 #include <vector>
7 
8 namespace Eegeo
9 {
10  namespace Shapes
11  {
12  namespace Polygons
13  {
14  class PolygonShapeBuilder : public TShapeCreateParamsBuilderBase<PolygonShapeBuilder, PolygonShapeCreateParams>
15  {
16  public:
18 
19  PolygonShapeBuilder& SetOuterRing(const std::vector<Space::LatLong>& outerRing);
20  PolygonShapeBuilder& AddInnerRing(const std::vector<Space::LatLong>& innerRing);
21  PolygonShapeBuilder& ClearRings();
22  PolygonShapeBuilder& SetFillColor(const v4& fillColor);
23 
25  PolygonShapeBuilder& SetPolygonColor(const v4& polygonColor) { return SetFillColor(polygonColor); }
26 
28 
29  private:
30  std::vector<Space::LatLong> m_outerRing;
31  std::vector<std::vector<Space::LatLong> > m_innerRings;
32  v4 m_fillColor;
33  };
34  }
35  }
36 }