All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PolylineShapeModel.h
1 #pragma once
2 
3 #include "ShapeModelBase.h"
4 
5 namespace Eegeo
6 {
7  namespace Shapes
8  {
9  namespace Polylines
10  {
11 
13  {
14  public:
15  typedef std::vector<Eegeo::Positioning::IPointOnMap*> PointOnMapVector;
16 
18 
20  IShapeModel::IdType polylineId,
21  const Resources::Interiors::InteriorId& indoorMapId,
22  int indoorMapFloorId,
23  const dv3& originEcef,
24  const ShapeModelBase::PointOnMapVector& points,
25  const std::vector<double>& perPointElevations,
26  double elevation,
27  const std::vector<u16>& geometryIndices,
28  const Space::LatLong& boundsSouthWest,
29  const Space::LatLong& boundsNorthEast,
30  const v4& fillColor,
31  float thickness,
32  float miterLimit,
33  bool shouldScaleWithMap,
34  ShapeModelChangedEvent& changedEvent);
35 
36  virtual ~PolylineShapeModel();
37 
38  virtual const v4& GetFillColor() const { return m_fillColor; }
39 
40  virtual void SetFillColor(const v4& color);
41 
42  virtual float GetThickness() const { return m_thickness; }
43 
44  virtual void SetThickness(float thickness);
45 
46  virtual float GetMiterLimit() const { return m_miterLimit; }
47 
48  virtual void SetMiterLimit(float miterLimit);
49 
50  virtual bool GetShouldScaleWithMap() const { return m_shouldScaleWithMap; }
51 
52  virtual void SetShouldScaleWithMap(bool scaleWithMap);
53 
54  protected:
55  virtual void NotifyPointOnMapChanged();
56 
57  private:
58  v4 m_fillColor;
59  float m_thickness;
60  float m_miterLimit;
61  bool m_shouldScaleWithMap;
62 
63  ShapeModelChangedEvent& m_changedEvent;
64  };
65  }
66  }
67 }
68