All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
PositionerModel.h
1 #pragma once
2 
3 #include "Positioners.h"
4 #include "Types.h"
5 #include "Positioning.h"
6 #include "VectorMath.h"
7 #include "PositionerTypes.h"
8 #include "ICallback.h"
9 
10 
11 namespace Eegeo
12 {
13  namespace Positioners
14  {
15 
17  {
18  public:
20  PositionerModelId modelId,
21  Positioning::IPointOnMap* pPointOnMap,
22  const Positioning::IPositioningViewComponent& positioningViewComponent,
23  IPositionerModelChangedEvent& positionerModelChangedEvent);
24 
25  ~PositionerModel();
26 
27  PositionerModelId GetId() const { return m_modelId; }
28 
29  Positioning::IPointOnMap& GetPointOnMap() { return *m_pPointOnMap; }
30 
31  const dv3& GetTransformedPoint() const { return m_transformedPoint; }
32 
33  bool IsTransformedPointDefined() const { return m_isTransformedPointDefined; }
34 
35  void UpdateDerivedState();
36 
37  private:
38  void OnPointOnMapChanged();
39 
40  PositionerModelId m_modelId;
41  Positioning::IPointOnMap* m_pPointOnMap;
42  const Positioning::IPositioningViewComponent& m_positioningViewComponent;
43 
44  Helpers::TCallback0<PositionerModel> m_pointOnMapChangedHandler;
45  IPositionerModelChangedEvent& m_positionerModelChangedEvent;
46 
47  dv3 m_transformedPoint;
48  bool m_isTransformedPointDefined;
49  };
50  }
51 }