All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RouteSample.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Routes.h"
6 #include "VectorMath.h"
7 #include "RouteVertexClassification.h"
8 
9 namespace Eegeo
10 {
11  namespace Routes
12  {
13  namespace Simulation
14  {
16  {
17  public:
18  RouteSample()
19  {
20 
21  }
22 
23  RouteSample(const dv3& positionEcef,
24  v3 direction,
25  v4 color,
26  float halfWidth,
27  float speed,
28  RouteVertexClassification classification,
29  double routeParam
30  )
31  : m_positionEcef(positionEcef)
32  , m_direction(direction)
33  , m_color(color)
34  , m_halfWidth(halfWidth)
35  , m_speed(speed)
36  , m_classification(classification)
37  , m_routeParam(routeParam)
38  {
39 
40  }
41 
42  const dv3& GetPositionEcef() const { return m_positionEcef; }
43  const v3& GetDirection() const { return m_direction; }
44  const v4& GetColor() const { return m_color; }
45  float GetHalfWidth() const { return m_halfWidth; }
46  float GetSpeed() const { return m_speed; }
47  RouteVertexClassification GetClassification() const { return m_classification; }
48  double GetRouteParam() const { return m_routeParam; }
49 
50 
51  static RouteSample FromLocalRouteVertex(const LocalRouteVertex& localRouteVertex, const dv3& cellOriginEcef, const v3& direction);
52  static RouteSample FromRouteVertex(const RouteVertex& routeVertex, const dv3& posEcef, const v3& direction);
53 
54  private:
55  dv3 m_positionEcef;
56  v3 m_direction;
57  v4 m_color;
58  float m_halfWidth;
59  float m_speed;
60  RouteVertexClassification m_classification;
61  double m_routeParam;
62  };
63  }
64  }
65 }