All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TransportPositionerModel.h
1 #pragma once
2 
3 #include "Transport.h"
4 #include "Types.h"
5 #include "Positioning.h"
6 #include "VectorMath.h"
7 #include "TransportPositionerTypes.h"
8 #include "ICallback.h"
9 #include "TransportPositionerPointOnGraph.h"
10 #include "Transport.h"
11 
12 
13 namespace Eegeo
14 {
15  namespace Transport
16  {
17 
19  {
20  public:
22  TransportPositionerId modelId,
23  double inputLatitudeDegrees,
24  double inputLongitudeDegrees,
25  double inputAltitudeInMetres,
26  Positioning::ElevationMode::Type elevationMode,
27  bool inputHasHeading,
28  double inputHeadingDegrees,
29  double maxDistanceToMatchedPoint,
30  double maxHeadingDeviationToMatchedPoint,
31  double maxDistanceForPossibleHeadingMatch,
32  TransportNetwork::Type transportNetworkType,
33  ITransportPositionerModelInputChangedEvent& positionerModelInputChangedEvent,
34  ITransportPositionerPointOnGraphChangedEvent& positionerModelMatchResultChangedEvent);
35 
36  TransportPositionerId GetId() const { return m_modelId; }
37 
38  double GetInputLatitudeDegrees() const { return m_inputLatitudeDegrees; }
39  double GetInputLongitudeDegrees() const { return m_inputLongitudeDegrees; }
40  double GetInputAltitudeInMetres() const { return m_inputAltitudeInMetres; }
41  Positioning::ElevationMode::Type GetElevationMode() const { return m_elevationMode; }
42  bool GetInputHasHeading() const { return m_inputHasHeading; }
43  double GetInputHeadingDegrees() const { return m_inputHeadingDegrees; }
44  double GetMaxDistanceToMatchedPoint() const { return m_maxDistanceToMatchedPoint; }
45  double GetMaxHeadingDeviationToMatchedPoint() const { return m_maxHeadingDeviationToMatchedPoint; }
46  double GetMaxDistanceForPossibleHeadingMatch() const { return m_maxDistanceForPossibleHeadingMatch; }
47  TransportNetwork::Type GetTransportNetworkType() const { return m_transportNetworkType; }
48 
49  bool IsMatched() const { return m_pointOnGraph.IsMatched(); }
50  const TransportPositionerPointOnGraph& GetPointOnGraph() const { return m_pointOnGraph; }
51 
52  void SetInputPosition(double inputLatitudeDegrees, double inputLongitudeDegrees);
53  void SetInputHeading(double inputHeadingDegrees);
54  void ClearInputHeading();
55  void SetPointOnGraph(const TransportPositionerPointOnGraph& pointOnGraph);
56 
57  private:
58 
59  TransportPositionerId m_modelId;
60  double m_inputLatitudeDegrees;
61  double m_inputLongitudeDegrees;
62  double m_inputAltitudeInMetres;
63  Positioning::ElevationMode::Type m_elevationMode;
64  bool m_inputHasHeading;
65  double m_inputHeadingDegrees;
66  double m_maxDistanceToMatchedPoint;
67  double m_maxHeadingDeviationToMatchedPoint;
68  double m_maxDistanceForPossibleHeadingMatch;
69  TransportPositionerPointOnGraph m_pointOnGraph;
70  TransportNetwork::Type m_transportNetworkType;
71 
72  ITransportPositionerModelInputChangedEvent& m_positionerModelInputChangedEvent;
73  ITransportPositionerPointOnGraphChangedEvent& m_positionerModelMatchResultChangedEvent;
74  };
75  }
76 }